]> git.saurik.com Git - bison.git/commit
Don't allow an undeclared string literal, but allow a string literal to
authorJoel E. Denny <jdenny@ces.clemson.edu>
Fri, 18 Aug 2006 10:25:50 +0000 (10:25 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Fri, 18 Aug 2006 10:25:50 +0000 (10:25 +0000)
commit965537bc543191a048b6afb2404c878f06ab877f
tree6d63d7627eaa30ab0d7e1809fe2c23b7417acaec
parent5362ed19b6e8a8091345d979eefb4e11087b728f
Don't allow an undeclared string literal, but allow a string literal to
be used before its declaration.
* src/reader.c (check_and_convert_grammar): Don't invoke packgram if
symbols_pack complained.
* src/symtab.c (symbol_new): Don't count a string literal as a new
symbol.
(symbol_class_set): Don't count a string literal as a new token, and
don't assign it a symbol number since symbol_make_alias does that.
(symbol_make_alias): It's not necessary to decrement the symbol and
token counts anymore.  Don't assume that an alias declaration occurs
before any uses of the identifier or string, and thus don't assert that
one of them has the highest symbol number so far.
(symbol_check_alias_consistency): Complain if there's a string literal
that wasn't declared as an alias.
(symbols_pack): Bail if symbol_check_alias_consistency failed since
symbol_pack asserts that every token has been assigned a symbol number
although undeclared string literals have not.
* tests/regression.at (String alias declared after use, Undeclared
string literal): New test case.
(Characters Escapes, Web2c Actions): Declare string literals as
aliases.
* tests/sets.at (Firsts): Likewise.
ChangeLog
src/reader.c
src/symtab.c
tests/regression.at
tests/sets.at