X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/dc9701e848f27ae64b6ddcf809580998667d60f2..d1ff7a7cc62900b658ee4bb8cb2a2c6a1b0a2bea:/src/scan-gram.l diff --git a/src/scan-gram.l b/src/scan-gram.l index 98c5da47..3c7d37c4 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -24,6 +24,11 @@ %option prefix="gram_" outfile="lex.yy.c" %{ +/* Work around a bug in flex 2.5.31. See Debian bug 333231 + . */ +#undef gram_wrap +#define gram_wrap() 1 + #include "system.h" #include @@ -224,6 +229,7 @@ splice (\\[ \f\t\v]*\n)* "%prec" rule_length--; return PERCENT_PREC; "%printer" token_type = PERCENT_PRINTER; BEGIN SC_PRE_CODE; "%pure"[-_]"parser" return PERCENT_PURE_PARSER; + "%require" return PERCENT_REQUIRE; "%right" return PERCENT_RIGHT; "%skeleton" return PERCENT_SKELETON; "%start" return PERCENT_START; @@ -549,7 +555,7 @@ splice (\\[ \f\t\v]*\n)* } else { - complain_at (*loc, _("missing `{' in `%s'"), + complain_at (*loc, _("missing `{' in %s"), token_name (token_type)); obstack_sgrow (&obstack_for_string, "{}"); STRING_FINISH; @@ -612,6 +618,15 @@ splice (\\[ \f\t\v]*\n)* "$"("<"{tag}">")?(-?[0-9]+|"$") handle_dollar (token_type, yytext, *loc); "@"(-?[0-9]+|"$") handle_at (token_type, yytext, *loc); + "$" { + warn_at (*loc, _("stray `$'")); + obstack_sgrow (&obstack_for_string, "$]["); + } + "@" { + warn_at (*loc, _("stray `@'")); + obstack_sgrow (&obstack_for_string, "@@"); + } + <> unexpected_eof (code_start, "}"); BEGIN INITIAL; }