diff --git a/python_arborist.py b/python_arborist.py index af23d8b7c2e0371312a9db05fb3d1bfd86d358a2..92554be2131430fc72f8c1462ed87846a0d4bada 100644 --- a/python_arborist.py +++ b/python_arborist.py @@ -316,7 +316,7 @@ list_of_terminals = [INTEGER, ADDOP, MULTOP, OPENPAREN, CLOSEPAREN] z = CFGBoltzmann.CFGBoltzmann(rules, list_of_nonterminals, list_of_terminals) cooked_rules = z.preprocessor() -bgen = z.Gzero_shimmed(EXPRESSION, 7) +bgen = z.Gzero_shimmed(EXPRESSION, 1) parse_me = bgen[0] @@ -371,22 +371,22 @@ if __name__ == '__main__': serialized_tree_final = trace[-1] -print("EGG") +print() +print("DESER TREE FINAL is " '[{}]'.format(', '.join(hex(x) for x in serialized_tree_final))) -print(serialized_tree_final) top_bit = (1<<16) -def deserializer(serialized_array): +def deserializer(serialized_array, last_idx_written): list_of_nodes = [] physical_to_logical = {} physical_idx = 0 logical_idx = 0 - while (True): #len(serialized_array)): + while (physical_idx < last_idx_written + 1): new_element = serialized_array[physical_idx] - print("NEW ELEMENT IS:", new_element) + print("The element at the current index", physical_idx, "is:", hex(new_element)) number_subnodes = serialized_array[physical_idx + 1] print(" WITH", number_subnodes, "SUBNODES") if (number_subnodes < 1): @@ -423,7 +423,7 @@ def deserializer(serialized_array): physical_to_logical[physical_idx] = logical_idx physical_idx += 2 + number_subnodes logical_idx += 1 - print(physical_to_logical) + print("physical to logical mapping is", physical_to_logical) return new_node @@ -431,10 +431,7 @@ def deserializer(serialized_array): - - -the_tree = deserializer(serialized_tree_final) -print(the_tree) +the_tree = deserializer(serialized_tree_final, 8) walk_the_tree(the_tree,0)