diff --git a/python_arborist.py b/python_arborist.py
index e4b78fb9b982709aff3a30a00f0e68a4c71d2c8d..b19c227ce6ac0dee2dcbae883a0cfccc83733ec3 100644
--- a/python_arborist.py
+++ b/python_arborist.py
@@ -208,6 +208,7 @@ class Cirno(Elaboratable):
         m.submodules.StateMachine = msm
 
         self.tapir = msm.tapir
+        self.finalized = msm.parse_complete_out
 
         with m.If(resetted == 0):
             m.d.sync += resetted.eq(1)
@@ -261,14 +262,22 @@ if __name__ == '__main__':
 
     trace = []
     def process():
-        for _ in range(128):
-            yield
-            array = []
-            for idx in range(36):
-                #print(idx)
-                x = yield nine.tapir[idx]
-                array.append(x)
-            trace.append(array)
+        while True:
+            z = yield nine.finalized
+            print(z)
+            if(z==0):
+                yield
+                z = yield nine.finalized
+                print(z)
+
+                array = []
+                for idx in range(36):
+                    #print(idx)
+                    x = yield nine.tapir[idx]
+                    array.append(x)
+                trace.append(array)
+            else:
+                break
 
 
     init_data = [OPENPAREN, OPENPAREN, 0XE102, CLOSEPAREN, ADDOP, 0XE103, CLOSEPAREN, ADDOP, 0XE101, ENDOFPARSE]