X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/652a871c294ff727099daa57c494eaca9da6c1d3..8adfa272f72683102c45cc6eaba00aaa5db2497a:/src/gram.h diff --git a/src/gram.h b/src/gram.h index c12698b6..021061d2 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,14 @@ typedef struct rule_s short prec; short precsym; short assoc; + short line; + bool useful; + + const char *action; + short action_line; + + const char *guard; + short guard_line; } rule_t; extern struct rule_s *rule_table; @@ -142,4 +153,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_ */