} symbol_list;
int lineno;
-char **tags;
-short *user_toknums;
static symbol_list *grammar;
static int start_flag;
static bucket *startval;
/* A token which translation has already been set? */
if (token_translations[bp->user_token_number] != 2)
complain (_("tokens %s and %s both assigned number %d"),
- tags[token_translations[bp->user_token_number]],
+ symbols[token_translations[bp->user_token_number]]->tag,
bp->tag, bp->user_token_number);
token_translations[bp->user_token_number] = bp->value;
}
}
-/*------------------------------------------------------------------.
-| Assign symbol numbers, and write definition of token names into |
-| FDEFINES. Set up vectors TAGS and SPREC of names and precedences |
-| of symbols. |
-`------------------------------------------------------------------*/
+/*----------------------------------------------------------------.
+| Assign symbol numbers, and write definition of token names into |
+| FDEFINES. Set up vectors SYMBOL_TABLE, TAGS of symbols. |
+`----------------------------------------------------------------*/
static void
packsymbols (void)
int tokno = 1;
int last_user_token_number;
- tags = XCALLOC (char *, nsyms + 1);
- user_toknums = XCALLOC (short, nsyms + 1);
-
- sprec = XCALLOC (short, nsyms);
- sassoc = XCALLOC (short, nsyms);
+ symbols = XCALLOC (bucket *, nsyms);
max_user_token_number = 256;
last_user_token_number = 256;
max_user_token_number = bp->user_token_number;
}
- tags[bp->value] = bp->tag;
- user_toknums[bp->value] = bp->user_token_number;
- sprec[bp->value] = bp->prec;
- sassoc[bp->value] = bp->assoc;
+ symbols[bp->value] = bp;
}
token_translations_init ();