From da549843ce4a75fa736a33028788042c76bb538f Mon Sep 17 00:00:00 2001
From: Kia <kia@special-circumstanc.es>
Date: Tue, 15 Sep 2020 19:19:40 -0600
Subject: [PATCH] export parse status output as well into the test harness

---
 CFGBoltzmann.py            |  0
 cfg_utils.py               |  0
 combinatorial_LR_parser.py |  0
 gearbox.py                 |  0
 one_hot_utils.py           |  0
 python_arborist.py         | 23 ++++++++++++++++++-----
 skidbuffer.py              |  0
 string_lexer.py            |  0
 test_fsm.py                |  0
 test_testing_scheme.py     |  0
 10 files changed, 18 insertions(+), 5 deletions(-)
 mode change 100644 => 100755 CFGBoltzmann.py
 mode change 100644 => 100755 cfg_utils.py
 mode change 100644 => 100755 combinatorial_LR_parser.py
 mode change 100644 => 100755 gearbox.py
 mode change 100644 => 100755 one_hot_utils.py
 mode change 100644 => 100755 python_arborist.py
 mode change 100644 => 100755 skidbuffer.py
 mode change 100644 => 100755 string_lexer.py
 mode change 100644 => 100755 test_fsm.py
 mode change 100644 => 100755 test_testing_scheme.py

diff --git a/CFGBoltzmann.py b/CFGBoltzmann.py
old mode 100644
new mode 100755
diff --git a/cfg_utils.py b/cfg_utils.py
old mode 100644
new mode 100755
diff --git a/combinatorial_LR_parser.py b/combinatorial_LR_parser.py
old mode 100644
new mode 100755
diff --git a/gearbox.py b/gearbox.py
old mode 100644
new mode 100755
diff --git a/one_hot_utils.py b/one_hot_utils.py
old mode 100644
new mode 100755
diff --git a/python_arborist.py b/python_arborist.py
old mode 100644
new mode 100755
index 13f0845..b1d4310
--- a/python_arborist.py
+++ b/python_arborist.py
@@ -76,7 +76,7 @@ class Cirno(Elaboratable):
 
         # State 1 in the paper
         # Bottom of parse stack        Expression
-        [(1, STDMASK, BOTTOM),          (0, STDMASK, EXPRESSION)],
+        [(0, STDMASK, EXPRESSION)],
 
         # state 2 in paper
         # TERM
@@ -236,6 +236,7 @@ class Cirno(Elaboratable):
         self.tapir = msm.tapir
         self.finalized = msm.parse_complete_out
         self.numwritten = msm.last_index_to_smem
+        self.parse_success = msm.parse_success_out
 
         with m.If(resetted == 0):
             m.d.sync += resetted.eq(1)
@@ -271,6 +272,7 @@ def run_the_sim(parse_me):
     m.submodules.baka = nine = Cirno()
     trace = []
     numwritten = []
+    parse_success = [0]
 
 
     def process():
@@ -292,8 +294,10 @@ def run_the_sim(parse_me):
                 yield
                 yield
                 xz = yield nine.numwritten
+                parse_success[0] = yield nine.parse_success
                 numwritten.append(xz)
                 print("NUM WRITTEN INSIDE", numwritten)
+                print("PARSE SUCCESS,", parse_success)
                 break
 
 
@@ -314,9 +318,14 @@ def run_the_sim(parse_me):
 
     for x in trace:
         print(x)
-    print("XXXXXXXXXXXXXXXXXXXXX", numwritten)
+    print("XXXXXXXXXXXXXXXXXXXXX", numwritten, parse_success)
 
-    return (trace, numwritten)
+    if (parse_success[0] == 1):
+        success = True
+    else:
+        success = False
+
+    return (trace, numwritten, success)
 
 top_bit = (1<<16)
 
@@ -458,7 +467,11 @@ def do_an_iteration():
 
     parse_me.append(ENDOFPARSE)
     
-    (trace, numwritten) = run_the_sim(parse_me)
+    (trace, numwritten, success) = run_the_sim(parse_me)
+
+    if (success == False):
+        return
+
     numwritten = numwritten[0] - 1
     print("NUM WRITTEN = ",numwritten)
 
@@ -487,6 +500,6 @@ def do_an_iteration():
         exit(1)
 
 
-for x in range(1024):
+for x in range(131072):
     do_an_iteration()
 
diff --git a/skidbuffer.py b/skidbuffer.py
old mode 100644
new mode 100755
diff --git a/string_lexer.py b/string_lexer.py
old mode 100644
new mode 100755
diff --git a/test_fsm.py b/test_fsm.py
old mode 100644
new mode 100755
diff --git a/test_testing_scheme.py b/test_testing_scheme.py
old mode 100644
new mode 100755
-- 
GitLab