From e5696dd8eedbcb72d66cd1431076ad26c8378436 Mon Sep 17 00:00:00 2001 From: Kia <kia@special-circumstanc.es> Date: Wed, 19 Aug 2020 11:38:02 -0600 Subject: [PATCH] we can successfully generate a string and parse it --- python_arborist.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/python_arborist.py b/python_arborist.py index b73cbdd..9ac7e97 100644 --- a/python_arborist.py +++ b/python_arborist.py @@ -261,6 +261,28 @@ MULTOP = 0xAB00 STDMASK = 0xff00 +rules = [ + (EXPRESSION, [EXPRESSION, ADDOP, TERM ]), + (EXPRESSION, [TERM ]), + (TERM, [TERM, MULTOP, FACTOR ]), + (TERM, [FACTOR ]), + (FACTOR, [OPENPAREN, EXPRESSION, CLOSEPAREN]), + (FACTOR, [INTEGER ]) + ] + +list_of_nonterminals = [EXPRESSION, TERM, FACTOR] + +list_of_terminals = [INTEGER, ADDOP, MULTOP, OPENPAREN, CLOSEPAREN] + +z = CFGBoltzmann.CFGBoltzmann(rules, list_of_nonterminals, list_of_terminals) +cooked_rules = z.preprocessor() +parse_me = z.Gzero_shimmed(EXPRESSION, 7) +parse_me.append(ENDOFPARSE) + +print("XXXXXXXXXXXXXXX",parse_me) + + + class TreeNode: def __init__(self, language_element, subnodes): self.language_element = language_element @@ -302,10 +324,9 @@ if __name__ == '__main__': break - init_data = [0XE104, ENDOFPARSE] with m.Switch(nine.input_memory_addr): - for addr,data in enumerate(init_data): + for addr,data in enumerate(parse_me): with m.Case(addr): #print(addr,data) m.d.sync += nine.input_memory_data.eq(data) -- GitLab