variables: accept dashes.

* src/scan-gram.l ({id}): Also accept dashes after the initial
	letter.
	({directive}): Use {id}.
	* src/parse-gram.y: Comment and formatting changes.
	* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
	symbols.
	* src/complain.h, src/complain.c (yacc_at): New.
	* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
	symbol names.
	* src/output.c (token_definitions_output): Do not #define token
	names with dashes.
(cherry picked from commit 4f646c3794)

Conflicts:

	data/bison.m4
	src/parse-gram.y
This commit is contained in:
Akim Demaille
2009-04-20 12:24:23 +02:00
committed by Joel E. Denny
parent 379261b3fd
commit 663ce7bb3e
10 changed files with 86 additions and 34 deletions

View File

@@ -90,8 +90,8 @@ static void unexpected_newline (boundary, char const *);
%x SC_STRING SC_CHARACTER
letter [.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_]
id {letter}({letter}|[0-9])*
directive %{letter}({letter}|[0-9]|-)*
id {letter}({letter}|[0-9]|-)*
directive %{id}
int [0-9]+
/* POSIX says that a tag must be both an id and a C union member, but
@@ -382,7 +382,7 @@ splice (\\[ \f\t\v]*\n)*
unexpected_eof (token_start, "'");
STRING_FINISH;
loc->start = token_start;
if (strlen(last_string) > 1)
if (strlen (last_string) > 1)
val->character = last_string[1];
else
val->character = last_string[0];