diff --git a/python_arborist.py b/python_arborist.py index c0ee7e0e5084eef81ca477cea209a312384541ea..b72e820e6ec7eb83b3b36e119b42209a8024caad 100644 --- a/python_arborist.py +++ b/python_arborist.py @@ -301,6 +301,32 @@ if __name__ == '__main__': print(x) +serialized_tree_final = trace[-1] +print("EGG") + +print(serialized_tree_final) + + +top_bit = 0x1000 + +def deserializer(serialized_array): + idx = 0 + while (idx < len(serialized_array)): + new_element = serialized_array[idx] + number_subnodes = serialized_array[idx + 1] + if (number_subnodes < 1): + print("MALFORMED AT IDX", idx) + print("TOTAL LEN OF ARRAY IS", len(serialized_array)) + break + + subnodes_array = [] + for sub_idx in range(idx + 2, idx + 2 + number_subnodes): + subnodes_array.append(serialized_array[sub_idx]) + + print("NEW SUBNODES ARE:",subnodes_array) + idx += 2 + number_subnodes + + class TreeNode: def __init__(self, language_element, subnodes): @@ -309,14 +335,4 @@ class TreeNode: def __str__(self): return str(self.language_element) - -x = TreeNode("abcd", []) - -print(x) -print(x.subnodes) - -x.subnodes=[TreeNode("defg",[423])] - -print(x) -print(x.subnodes) -print(x.subnodes[0].subnodes) \ No newline at end of file +deserializer(serialized_tree_final) \ No newline at end of file