/* Lists of symbols for Bison
- Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
symbol *sym;
location location;
+ /* If this symbol is the generated lhs for a midrule but this is the rule in
+ whose rhs it appears, MIDRULE = a pointer to that midrule. */
+ struct symbol_list *midrule;
+
+ /* If this symbol is the generated lhs for a midrule and this is that
+ midrule, MIDRULE_PARENT_RULE = a pointer to the rule in whose rhs it
+ appears, and MIDRULE_PARENT_RHS_INDEX = its rhs index (1-origin) in the
+ parent rule. */
+ struct symbol_list *midrule_parent_rule;
+ int midrule_parent_rhs_index;
+
/* The action is attached to the LHS of a rule. */
const char *action;
location action_location;
- /* Whether this symbol's value is used in the current action. */
+ /* Whether this symbol's value is used in the current action. */
bool used;
/* Precedence/associativity. */
symbol *ruleprec;
int dprec;
int merger;
+ location merger_declaration_location;
/* The list. */
struct symbol_list *next;
void symbol_list_free (symbol_list *l);
/* Return its length. */
-unsigned int symbol_list_length (const symbol_list *l);
+int symbol_list_length (symbol_list const *l);
/* Get symbol N in symbol list L. */
symbol_list *symbol_list_n_get (symbol_list *l, int n);