X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9291f914de488c64d78a1e24cc471e7761ab7eb2..e89a22bfab22e4d2ee73be49dcb66b51f8d0e892:/src/gram.h diff --git a/src/gram.h b/src/gram.h index c12698b6..e26582fe 100644 --- a/src/gram.h +++ b/src/gram.h @@ -55,7 +55,11 @@ RULE_TABLE[R].precsym -- the symbol-number of the symbol in %prec for R (if any). - RULE_TABLE[R].assoc -- the associativity of the rule. + RULE_TABLE[R].assoc -- the associativity of R. + + RULE_TABLE[R].line -- the line where R was defined. + + RULE_TABLE[R].useful -- TRUE iff the rule is used. The right hand side is stored as symbol numbers in a portion of RITEM. @@ -97,7 +101,6 @@ extern short *ritem; extern short *sprec; extern short *sassoc; -extern short *rline; /* Source line number of each rule */ extern int start_symbol; @@ -117,6 +120,8 @@ typedef struct rule_s short prec; short precsym; short assoc; + short line; + bool useful; } rule_t; extern struct rule_s *rule_table; @@ -142,4 +147,12 @@ extern int pure_parser; /* ERROR_TOKEN_NUMBER is the token number of the error token. */ extern int error_token_number; + + +/* Dump RITEM for traces. */ +void ritem_print PARAMS ((FILE *out)); + +/* Return the size of the longest rule RHS. */ +size_t ritem_longest_rhs PARAMS ((void)); + #endif /* !GRAM_H_ */