Only calculate lookahead tokens when needed - #28
Lookahead tokens are only need if either: (1) There is more than one rule that could be reduced in a given parser state, or (2) There are shift actions for a state and at least one rule that could be reduced in the same state (to warn about shift/reduce conflicts).
This commit is contained in:
1 parent
61339aeae9
commit
fec2c28693
2 files changed
+30
-19
No files matched your search
@@ -2,7 +2,7 @@ class Propane
|
||||
class Parser
|
||||
|
||||
# Represent a parser "item set", which is a set of possible items that the
|
||||
# parser could currently be parsing.
|
||||
# parser could currently be parsing. This is equivalent to a parser state.
|
||||
class ItemSet
|
||||
|
||||
# @return [Set<Item>]
|
||||
@@ -25,6 +25,10 @@ class Propane
|
||||
# Rule to reduce if there is only one possibility.
|
||||
attr_accessor :reduce_rule
|
||||
|
||||
# @return [Set<Rule>]
|
||||
# Set of rules that could be reduced in this parser state.
|
||||
attr_accessor :reduce_rules
|
||||
|
||||
# @return [nil, Hash]
|
||||
# Reduce actions, mapping lookahead tokens to rules, if there is
|
||||
# more than one rule that could be reduced.
|
||||
|
||||
Reference in new issue
Block a user