From f5471c0064cc767bba5c51b0e0761da0660ec75e Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sat, 30 Jan 2016 22:51:06 -0500 Subject: [PATCH] give the $ / 0 symbol a type of void so it won't be destructed when there's a parse error. --- lemon.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lemon.c b/lemon.c index 013e328..a34f98a 100644 --- a/lemon.c +++ b/lemon.c @@ -1551,6 +1551,9 @@ int main(int argc, char **argv) int exitcode; struct lemon lem; + struct symbol *dollar; + + #ifdef LEMONPLUSPLUS /* %define lemonplusplus */ handle_D_option("__lemonplusplus"); @@ -1580,7 +1583,11 @@ int main(int argc, char **argv) lem.filename = OptArg(0); lem.basisflag = basisflag; lem.nolinenosflag = nolinenosflag; - Symbol_new("$"); + dollar = Symbol_new("$"); +#ifdef LEMONPLUSPLUS + dollar->datatype = "void"; +#endif + lem.errsym = Symbol_new("error"); lem.errsym->datatype = "int"; lem.errsym->useCnt = 0;