X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/280a38c306200177ef15e0f52775312edc057065..72a23c9797290f1f2c948cf3027d80fa5c9370bc:/src/lex.c diff --git a/src/lex.c b/src/lex.c index 5b77f248..cb7b2127 100644 --- a/src/lex.c +++ b/src/lex.c @@ -364,9 +364,13 @@ lex (void) obstack_1grow (&token_obstack, '\0'); token_buffer = obstack_finish (&token_obstack); symval = getsym (token_buffer); - symval->class = token_sym; - if (symval->user_token_number == SUNDEF) - symval->user_token_number = code; + if (symval->number == -1) + { + symval->number = ntokens++; + symval->class = token_sym; + if (symval->user_token_number == SUNDEF) + symval->user_token_number = code; + } return tok_identifier; } @@ -388,7 +392,11 @@ lex (void) token_buffer = obstack_finish (&token_obstack); symval = getsym (token_buffer); - symval->class = token_sym; + if (symval->number == -1) + { + symval->number = ntokens++; + symval->class = token_sym; + } return tok_identifier; }