From f13237a6d295bd15206ae6246f04f5275a8d7588 Mon Sep 17 00:00:00 2001 From: Kia <kia@special-circumstanc.es> Date: Sat, 25 Jan 2020 18:15:07 -0700 Subject: [PATCH] feed stack state descriptions through everything that needs them --- combinatorial_LR_parser.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/combinatorial_LR_parser.py b/combinatorial_LR_parser.py index 59156ed..42aaf05 100644 --- a/combinatorial_LR_parser.py +++ b/combinatorial_LR_parser.py @@ -442,7 +442,7 @@ class RuleExecutor(Elaboratable): # it stalls the input. class MasterStateMachine(Elaboratable): - def __init__(self, item_width, stack_depth, validitem_ruleset, forceshift_ruleset, pairwise_priority_ruleset, reduce_ruleset, execute_rules): + def __init__(self, item_width, stack_depth, stack_state_descriptions, validitem_ruleset, forceshift_ruleset, pairwise_priority_ruleset, reduce_ruleset, execute_rules): self.item_width = item_width self.stack_depth = stack_depth @@ -452,6 +452,7 @@ class MasterStateMachine(Elaboratable): self.pairwise_priority_ruleset = pairwise_priority_ruleset self.reduce_ruleset = reduce_ruleset self.execute_rules = execute_rules + self.stack_state_descriptions = stack_state_descriptions # Data stream in @@ -477,7 +478,8 @@ class MasterStateMachine(Elaboratable): validitem_ruleset = self.validitem_ruleset, forceshift_ruleset = self.forceshift_ruleset, pairwise_priority_ruleset = self.pairwise_priority_ruleset, - reduce_ruleset = self.reduce_ruleset) + reduce_ruleset = self.reduce_ruleset, + reduction_rule_count=len(self.execute_rules), stack_state_descriptions = self.stack_state_descriptions) rex = RuleExecutor(item_width=self.item_width, stack_depth=self.stack_depth, execution_ruleset=self.execute_rules) skbuffer = RegisteredSkidBuffer(width = self.item_width) m.submodules.Stack = stack @@ -744,8 +746,8 @@ class DummyPlug(Elaboratable): validitem_ruleset = validitem_ruleset, pairwise_priority_ruleset = pairwise_priority_ruleset, forceshift_ruleset = forceshift_ruleset, - reduce_ruleset=match_rules, - execute_rules=execute_rules) + reduce_ruleset=reduce_ruleset, + execute_rules=execute_rules, stack_state_descriptions=common_stack_states) m.submodules.StateMachine = msm -- GitLab