* src/gram.h, src/gram.c (error_token_number): Remove, use

errtoken->number.
* src/reader.c (reader): Don't specify the user token number (2)
for $undefined, as it uselessly prevents using it.
* src/gram.h (token_number_t): Move to...
* src/symtab.h: here.
(state_t.number): Is a token_number_t.
* src/print.c, src/reader.c: Use undeftoken->number instead of
hard coded 2.
(Even though this 2 is not the same as above: the number of the
undeftoken remains being 2, it is its user token number which
might not be 2).
* src/output.c (prepare_tokens): Rename the `maxtok' muscle with
`user_token_number_max'.
Output `undef_token_number'.
* data/bison.simple, data/bison.c++: Use them.
Be sure to map invalid yylex return values to
`undef_token_number'.  This saves us from gratuitous SEGV.
* tests/conflicts.at (Solved SR Conflicts)
(Unresolved SR Conflicts): Adjust.
* tests/regression.at (Web2c Actions): Adjust.
This commit is contained in:
Akim Demaille
2002-04-09 19:19:59 +00:00
parent 491bdd7ae5
commit 007a50a493
13 changed files with 67 additions and 33 deletions

View File

@@ -237,7 +237,7 @@ symbol_translation (symbol_t *this)
&& this->user_token_number != SALIAS)
{
/* A token which translation has already been set? */
if (token_translations[this->user_token_number] != 2)
if (token_translations[this->user_token_number] != undeftoken->number)
complain (_("tokens %s and %s both assigned number %d"),
symbols[token_translations[this->user_token_number]]->tag,
this->tag, this->user_token_number);
@@ -1697,7 +1697,7 @@ token_translations_init (void)
token number for $undefined., which represents all invalid
inputs. */
for (i = 0; i < max_user_token_number + 1; i++)
token_translations[i] = 2;
token_translations[i] = undeftoken->number;
symbols_do (symbol_translation, NULL);
}
@@ -1718,8 +1718,6 @@ packsymbols (void)
token_translations_init ();
error_token_number = errtoken->number;
if (startval->class == unknown_sym)
fatal (_("the start symbol %s is undefined"), startval->tag);
else if (startval->class == token_sym)
@@ -1831,7 +1829,6 @@ reader (void)
undeftoken = getsym ("$undefined.");
undeftoken->class = token_sym;
undeftoken->number = ntokens++;
undeftoken->user_token_number = 2;
/* Initialize the obstacks. */
obstack_init (&action_obstack);