From 02403ee6f96fa22b74df221fd21986434b853582 Mon Sep 17 00:00:00 2001
From: Kia <kia@special-circumstanc.es>
Date: Mon, 24 Aug 2020 16:57:04 -0600
Subject: [PATCH] tree equality check!

---
 python_arborist.py | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/python_arborist.py b/python_arborist.py
index db3f369..c7ed80d 100644
--- a/python_arborist.py
+++ b/python_arborist.py
@@ -431,9 +431,9 @@ def deserializer(serialized_array, last_idx_written):
 
 
 
-the_tree = deserializer(serialized_tree_final, 30)
+parser_output_tree = deserializer(serialized_tree_final, 30)
 
-walk_the_tree(the_tree,0)
+walk_the_tree(parser_output_tree,0)
 
 #print("derivation tree was")
 #walk_the_tree(bgen[1])
@@ -442,4 +442,17 @@ print("reversed derivation tree is")
 z.reversiflip(bgen[1])
 walk_the_tree(bgen[1])
 
-print("THE ORIGINAL WAS", [hex_to_name(x) for x in parse_me])
+print("THE ORIGINAL STRING WAS", [hex_to_name(x) for x in parse_me])
+
+
+def are_trees_equal(tree_one_root, tree_two_root): # returns True if equal, False otherwise
+    if (tree_one_root.language_element != tree_two_root.language_element):
+        return False
+    if (len(tree_one_root.subnodes)    != len(tree_two_root.subnodes)):
+        return False
+    if ((len(tree_one_root.subnodes) == 0) and (len(tree_two_root.subnodes) == 0) and (tree_one_root.language_element == tree_two_root.language_element)):
+        return True
+    for idx, elem in enumerate(tree_one_root.subnodes):
+        return are_trees_equal(elem, tree_two_root.subnodes[idx])
+
+print("ARE TREES EQUAL???", are_trees_equal(bgen[1], parser_output_tree))
\ No newline at end of file
-- 
GitLab