mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Implement %define lr.default_rules.
Its value describes the states that are permitted to contain default rules: "all", "consistent", or "accepting". * src/reader.c (reader): Default lr.default_rules to "all". Check for a valid lr.default_rules value. * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules is "accepting", then only mark the accepting state as consistent. (initialize_LA): Tell state_lookahead_tokens_count whether lr.default_rules is "accepting". * src/tables.c (action_row): If lr.default_rules is not "all", then disable default rules in inconsistent states. * src/print.c (print_reductions): Use this opportunity to perform some assertions about whether lr.default_rules was obeyed correctly. * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that helps with checking the parser tables for a grammar. * tests/input.at (%define lr.default_rules invalid values): New test group. * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using AT_TEST_TABLES_AND_PARSE. (`no %define lr.default_rules'): New test group generated by AT_TEST_LR_DEFAULT_RULES. (`%define lr.default_rules "all"'): Likewise. (`%define lr.default_rules "consistent"'): Likewise. (`%define lr.default_rules "accepting"'): Likewise.
This commit is contained in:
29
ChangeLog
29
ChangeLog
@@ -1,3 +1,32 @@
|
||||
2009-04-20 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||
|
||||
Implement %define lr.default_rules.
|
||||
Its value describes the states that are permitted to contain
|
||||
default rules: "all", "consistent", or "accepting".
|
||||
* src/reader.c (reader): Default lr.default_rules to "all".
|
||||
Check for a valid lr.default_rules value.
|
||||
* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
|
||||
is "accepting", then only mark the accepting state as
|
||||
consistent.
|
||||
(initialize_LA): Tell state_lookahead_tokens_count whether
|
||||
lr.default_rules is "accepting".
|
||||
* src/tables.c (action_row): If lr.default_rules is not "all",
|
||||
then disable default rules in inconsistent states.
|
||||
* src/print.c (print_reductions): Use this opportunity to
|
||||
perform some assertions about whether lr.default_rules was
|
||||
obeyed correctly.
|
||||
* tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
|
||||
helps with checking the parser tables for a grammar.
|
||||
* tests/input.at (%define lr.default_rules invalid values): New
|
||||
test group.
|
||||
* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
|
||||
AT_TEST_TABLES_AND_PARSE.
|
||||
(`no %define lr.default_rules'): New test group generated by
|
||||
AT_TEST_LR_DEFAULT_RULES.
|
||||
(`%define lr.default_rules "all"'): Likewise.
|
||||
(`%define lr.default_rules "consistent"'): Likewise.
|
||||
(`%define lr.default_rules "accepting"'): Likewise.
|
||||
|
||||
2009-04-20 Akim Demaille <demaille@gostai.com>
|
||||
|
||||
Consistently refer to Yacc, not YACC.
|
||||
|
||||
Reference in New Issue
Block a user