mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 00:03:03 +00:00
* src/gram.h, src/gram.c (rules_rhs_length): New.
(ritem_longest_rhs): Use it. * src/gram.h (rule_t): `number' is a new member. * src/reader.c (packgram): Set it. * src/reduce.c (reduce_grammar_tables): Move the useless rules at the end of `rules', and count them out of `nrules'. (reduce_output, dump_grammar): Adjust. * src/print.c (print_grammar): It is no longer needed to check for the usefulness of a rule, as useless rules are beyond `nrules + 1'. * tests/reduce.at (Reduced Automaton): New test.
This commit is contained in:
@@ -124,6 +124,10 @@ typedef enum
|
||||
|
||||
typedef struct rule_s
|
||||
{
|
||||
/* The number of the rule in the source. It is usually the index in
|
||||
RULES too, except if there are useless rules. */
|
||||
short number;
|
||||
|
||||
short lhs;
|
||||
short *rhs;
|
||||
short prec;
|
||||
@@ -166,6 +170,8 @@ extern int pure_parser;
|
||||
|
||||
extern int error_token_number;
|
||||
|
||||
/* Report the length of the RHS. */
|
||||
int rule_rhs_length PARAMS ((rule_t *rule));
|
||||
|
||||
/* Dump RITEM for traces. */
|
||||
void ritem_print PARAMS ((FILE *out));
|
||||
|
||||
Reference in New Issue
Block a user