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