From: Akim Demaille Date: Tue, 5 Nov 2002 21:20:14 +0000 (+0000) Subject: * src/scan-gram.l: When it starts with `%', complain about the X-Git-Tag: BISON-1_875~345 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/29c017256a980c07f898d8a4e5f6a630a5bf70b7?ds=inline * src/scan-gram.l: When it starts with `%', complain about the whole directive, not just that `invalid character: %'. --- diff --git a/ChangeLog b/ChangeLog index 18a56470..30b3d102 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-11-05 Akim Demaille + + * src/scan-gram.l: When it starts with `%', complain about the + whole directive, not just that `invalid character: %'. + 2002-11-04 Akim Demaille * Makefile.maint: Update from Autoconf. diff --git a/src/scan-gram.l b/src/scan-gram.l index 4475ed27..e8620646 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -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;