diff options
| author | Felix Perktold <Felix.Perktold@student.uibk.ac.at> | 2025-12-23 13:36:33 +0100 |
|---|---|---|
| committer | Felix Perktold <Felix.Perktold@student.uibk.ac.at> | 2025-12-23 13:36:33 +0100 |
| commit | b99be4933bcb850cbaf96f89750e925ecf2e8386 (patch) | |
| tree | b9bdfb0ae1a4731f414f1db1d959656a57657f34 /lisp.y | |
| parent | fddfed044719c2e8d9664a007b214dacc8a0aa36 (diff) | |
rename eq? to equal?, fix syntax error on empty newline
Diffstat (limited to 'lisp.y')
| -rw-r--r-- | lisp.y | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -8,21 +8,21 @@ int yyerror(const char *s); %} %union { - int ival; double dval; const char *strval; value *val; } %token <dval> NUMBER %token <strval> STRING SYMBOL -%token <ival> LPAREN RPAREN DOT QUOTE +%token LPAREN RPAREN DOT QUOTE NLINE %type <val> expr atom list list_items %start exprs %% -exprs: expr +exprs: /* nothing */ + | expr { value *v = eval(global_env, $1); printf(";> "); @@ -38,7 +38,8 @@ exprs: expr expr: atom | list | LPAREN expr DOT expr RPAREN { $$ = cons($2, $4); } - | QUOTE expr { $$ = cons(make_symbol("quote"), cons($2, make_nil())); }; + | QUOTE expr { $$ = cons(make_symbol("quote"), cons($2, make_nil())); } + | NLINE { $$ = make_nil(); }; list: LPAREN list_items RPAREN { $$ = $2; }; |
