* src/scan-gram.l: When it starts with `%', complain about the

whole directive, not just that `invalid character: %'.
This commit is contained in:
Akim Demaille
2002-11-05 21:20:14 +00:00
parent 8aeac3ca0c
commit 29c017256a
2 changed files with 14 additions and 3 deletions

View File

@@ -1,3 +1,8 @@
2002-11-05 Akim Demaille <akim@epita.fr>
* src/scan-gram.l: When it starts with `%', complain about the
whole directive, not just that `invalid character: %'.
2002-11-04 Akim Demaille <akim@epita.fr>
* Makefile.maint: Update from Autoconf.

View File

@@ -186,9 +186,10 @@ static int convert_ucn_to_byte (char const *hex_text);
%x SC_ESCAPED_STRING SC_ESCAPED_CHARACTER
%x SC_BRACED_CODE SC_PROLOGUE SC_EPILOGUE
letter [.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]
id {letter}({letter}|[0-9])*
int [0-9]+
letter [.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]
id {letter}({letter}|[0-9])*
directive %{letter}({letter}|[0-9]|-)*
int [0-9]+
/* POSIX says that a tag must be both an id and a C union member, but
historically almost any character is allowed in a tag. We disallow
@@ -247,6 +248,11 @@ splice (\\[ \f\t\v]*\n)*
"%verbose" return PERCENT_VERBOSE;
"%yacc" return PERCENT_YACC;
{directive} {
complain_at (*yylloc, _("invalid directive: %s"), quote (yytext));
YY_STEP;
}
"=" return EQUAL;
":" rule_length = 0; return COLON;
"|" rule_length = 0; return PIPE;