diff options
Diffstat (limited to 'parser.c')
-rw-r--r-- | parser.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -252,10 +252,19 @@ val lisp_parse(val source_in, val error_stream, val error_return_val, val name_i return pi->syntax_tree; } -val read_eval_stream(val stream, val error_stream) +val read_eval_stream(val stream, val error_stream, val hash_bang_support) { val error_val = gensym(nil); + if (hash_bang_support) { + val firstline = get_line(stream); + + if (!match_str(firstline, lit("#!"), nil)) { + val string_stream = make_string_byte_input_stream(firstline); + stream = make_catenated_stream(list(string_stream, stream, nao)); + } + } + for (;;) { val form = lisp_parse(stream, error_stream, error_val, nil); |