diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2009-11-20 15:18:12 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2009-11-20 15:18:12 -0800 |
commit | 1dc0ed67b0b00b74f2abbf4e5a5d9512bb04dab0 (patch) | |
tree | 14cdbb19823b2c2d9cd13502feda787e7ac136db /parser.y | |
parent | 768d6f677643332a440f822787517b1939135f2b (diff) | |
download | txr-1dc0ed67b0b00b74f2abbf4e5a5d9512bb04dab0.tar.gz txr-1dc0ed67b0b00b74f2abbf4e5a5d9512bb04dab0.tar.bz2 txr-1dc0ed67b0b00b74f2abbf4e5a5d9512bb04dab0.zip |
* parser.y (grammar): Fix error actions that do not assign
a value to $$.
Diffstat (limited to 'parser.y')
-rw-r--r-- | parser.y | 35 |
1 files changed, 23 insertions, 12 deletions
@@ -201,11 +201,13 @@ define_clause : DEFINE exprs ')' newl | DEFINE ')' newl clauses_opt END newl { $$ = list(define, nil, $4, nao); } - | DEFINE error { yybadtoken(yychar, "list expression"); } + | DEFINE error { $$ = nil; + yybadtoken(yychar, "list expression"); } | DEFINE exprs ')' newl - error { yybadtoken(yychar, "define"); } + error { $$ = nil; yybadtoken(yychar, "define"); } | DEFINE ')' newl - error { yybadtoken(yychar, "define"); } + error { $$ = nil; + yybadtoken(yychar, "define"); } ; try_clause : TRY newl @@ -242,11 +244,14 @@ catch_clauses_opt : CATCH ')' newl nil); } | { $$ = nil; } | CATCH ')' newl - error { yybadtoken(yychar, "try clause"); } + error { $$ = nil; + yybadtoken(yychar, "try clause"); } | CATCH exprs ')' newl - error { yybadtoken(yychar, "try clause"); } + error { $$ = nil; + yybadtoken(yychar, "try clause"); } | FINALLY newl - error { yybadtoken(yychar, "try clause"); } + error { $$ = nil; + yybadtoken(yychar, "try clause"); } ; @@ -261,9 +266,11 @@ output_clause : OUTPUT ')' o_elems '\n' END newl { $$ = list(output, $5, nil, $2, nao); } | OUTPUT exprs ')' o_elems '\n' out_clauses - END newl { yyerror("invalid combination of old and " + END newl { $$ = nil; + yyerror("invalid combination of old and " "new syntax in output directive"); } - | OUTPUT error { yybadtoken(yychar, "list expression"); } + | OUTPUT error { $$ = nil; + yybadtoken(yychar, "list expression"); } | OUTPUT ')' o_elems '\n' error { $$ = nil; yybadtoken(yychar, "output clause"); } @@ -394,9 +401,11 @@ var : IDENT { $$ = list(var, intern(string_own($1)), nil, $1, nao); } | var_op '{' IDENT '}' elem { $$ = list(var, intern(string_own($3)), $5, $1, nao); } - | var_op '{' IDENT regex '}' { yyerror("longest match " + | var_op '{' IDENT regex '}' { $$ = nil; + yyerror("longest match " "not useable with regex"); } - | var_op '{' IDENT NUMBER '}' { yyerror("longest match " + | var_op '{' IDENT NUMBER '}' { $$ = nil; + yyerror("longest match " "not useable with " "fixed width match"); } | IDENT error { $$ = nil; @@ -488,10 +497,12 @@ newl : '\n' strlit : '"' '"' { $$ = null_string; } | '"' litchars '"' { $$ = lit_char_helper($2); } - | '"' error { yybadtoken(yychar, "string literal"); } + | '"' error { $$ = nil; + yybadtoken(yychar, "string literal"); } ; -chrlit : '\'' '\'' { yyerror("empty character literal"); } +chrlit : '\'' '\'' { $$ = nil; + yyerror("empty character literal"); } { $$ = nil; } | '\'' litchars '\'' { $$ = car($2); if (cdr($2)) |