diff options
author | bd-912 <bdunahu@colostate.edu> | 2024-03-27 13:09:08 -0600 |
---|---|---|
committer | bd-912 <bdunahu@colostate.edu> | 2024-03-27 13:09:08 -0600 |
commit | 8131ddc22af5d39114a55349d71bcdc467599187 (patch) | |
tree | 9aaa7b984f223b1b405bb1598982ea992eeba67d /vaporize/tests/TreeVisitor.vapor | |
parent | e8af241aa57104d62c25c8bcbc2df76510998bf9 (diff) |
Expand file structure, Vaporize skeleton
Diffstat (limited to 'vaporize/tests/TreeVisitor.vapor')
-rw-r--r-- | vaporize/tests/TreeVisitor.vapor | 855 |
1 files changed, 855 insertions, 0 deletions
diff --git a/vaporize/tests/TreeVisitor.vapor b/vaporize/tests/TreeVisitor.vapor new file mode 100644 index 0000000..d8aa63b --- /dev/null +++ b/vaporize/tests/TreeVisitor.vapor @@ -0,0 +1,855 @@ + +const vmt_TV + :TV.Start + +const vmt_Tree + :Tree.Init + :Tree.SetRight + :Tree.SetLeft + :Tree.GetRight + :Tree.GetLeft + :Tree.GetKey + :Tree.SetKey + :Tree.GetHas_Right + :Tree.GetHas_Left + :Tree.SetHas_Left + :Tree.SetHas_Right + :Tree.Compare + :Tree.Insert + :Tree.Delete + :Tree.Remove + :Tree.RemoveRight + :Tree.RemoveLeft + :Tree.Search + :Tree.Print + :Tree.RecPrint + :Tree.accept + +const vmt_Visitor + :Visitor.visit + +const vmt_MyVisitor + :MyVisitor.visit + + +func Main() + t.0 = HeapAllocZ(4) + [t.0] = :vmt_TV + if t.0 goto :null1 + Error("null pointer") + null1: + t.1 = [t.0] + t.1 = [t.1+0] + t.2 = call t.1(t.0) + PrintIntS(t.2) + ret + +func TV.Start(this) + t.0 = HeapAllocZ(28) + [t.0] = :vmt_Tree + root = t.0 + if root goto :null2 + Error("null pointer") + null2: + t.1 = [root] + t.1 = [t.1+0] + ntb = call t.1(root 16) + if root goto :null3 + Error("null pointer") + null3: + t.2 = [root] + t.2 = [t.2+72] + ntb = call t.2(root) + PrintIntS(100000000) + if root goto :null4 + Error("null pointer") + null4: + t.3 = [root] + t.3 = [t.3+48] + ntb = call t.3(root 8) + if root goto :null5 + Error("null pointer") + null5: + t.4 = [root] + t.4 = [t.4+48] + ntb = call t.4(root 24) + if root goto :null6 + Error("null pointer") + null6: + t.5 = [root] + t.5 = [t.5+48] + ntb = call t.5(root 4) + if root goto :null7 + Error("null pointer") + null7: + t.6 = [root] + t.6 = [t.6+48] + ntb = call t.6(root 12) + if root goto :null8 + Error("null pointer") + null8: + t.7 = [root] + t.7 = [t.7+48] + ntb = call t.7(root 20) + if root goto :null9 + Error("null pointer") + null9: + t.8 = [root] + t.8 = [t.8+48] + ntb = call t.8(root 28) + if root goto :null10 + Error("null pointer") + null10: + t.9 = [root] + t.9 = [t.9+48] + ntb = call t.9(root 14) + if root goto :null11 + Error("null pointer") + null11: + t.10 = [root] + t.10 = [t.10+72] + ntb = call t.10(root) + PrintIntS(100000000) + t.11 = HeapAllocZ(12) + [t.11] = :vmt_MyVisitor + v = t.11 + PrintIntS(50000000) + if root goto :null12 + Error("null pointer") + null12: + t.12 = [root] + t.12 = [t.12+80] + nti = call t.12(root v) + PrintIntS(100000000) + if root goto :null13 + Error("null pointer") + null13: + t.13 = [root] + t.13 = [t.13+68] + t.14 = call t.13(root 24) + PrintIntS(t.14) + if root goto :null14 + Error("null pointer") + null14: + t.15 = [root] + t.15 = [t.15+68] + t.16 = call t.15(root 12) + PrintIntS(t.16) + if root goto :null15 + Error("null pointer") + null15: + t.17 = [root] + t.17 = [t.17+68] + t.18 = call t.17(root 16) + PrintIntS(t.18) + if root goto :null16 + Error("null pointer") + null16: + t.19 = [root] + t.19 = [t.19+68] + t.20 = call t.19(root 50) + PrintIntS(t.20) + if root goto :null17 + Error("null pointer") + null17: + t.21 = [root] + t.21 = [t.21+68] + t.22 = call t.21(root 12) + PrintIntS(t.22) + if root goto :null18 + Error("null pointer") + null18: + t.23 = [root] + t.23 = [t.23+52] + ntb = call t.23(root 12) + if root goto :null19 + Error("null pointer") + null19: + t.24 = [root] + t.24 = [t.24+72] + ntb = call t.24(root) + if root goto :null20 + Error("null pointer") + null20: + t.25 = [root] + t.25 = [t.25+68] + t.26 = call t.25(root 12) + PrintIntS(t.26) + ret 0 + +func Tree.Init(this v_key) + [this+12] = v_key + [this+16] = 0 + [this+20] = 0 + ret 1 + +func Tree.SetRight(this rn) + [this+8] = rn + ret 1 + +func Tree.SetLeft(this ln) + [this+4] = ln + ret 1 + +func Tree.GetRight(this) + t.0 = [this+8] + ret t.0 + +func Tree.GetLeft(this) + t.0 = [this+4] + ret t.0 + +func Tree.GetKey(this) + t.0 = [this+12] + ret t.0 + +func Tree.SetKey(this v_key) + [this+12] = v_key + ret 1 + +func Tree.GetHas_Right(this) + t.0 = [this+20] + ret t.0 + +func Tree.GetHas_Left(this) + t.0 = [this+16] + ret t.0 + +func Tree.SetHas_Left(this val) + [this+16] = val + ret 1 + +func Tree.SetHas_Right(this val) + [this+20] = val + ret 1 + +func Tree.Compare(this num1 num2) + ntb = 0 + nti = Add(num2 1) + t.0 = LtS(num1 num2) + if0 t.0 goto :if1_else + ntb = 0 + goto :if1_end + if1_else: + t.1 = LtS(num1 nti) + t.2 = Sub(1 t.1) + if0 t.2 goto :if2_else + ntb = 0 + goto :if2_end + if2_else: + ntb = 1 + if2_end: + if1_end: + ret ntb + +func Tree.Insert(this v_key) + t.0 = HeapAllocZ(28) + [t.0] = :vmt_Tree + new_node = t.0 + if new_node goto :null21 + Error("null pointer") + null21: + t.1 = [new_node] + t.1 = [t.1+0] + ntb = call t.1(new_node v_key) + current_node = this + cont = 1 + while1_top: + if0 cont goto :while1_end + if current_node goto :null22 + Error("null pointer") + null22: + t.2 = [current_node] + t.2 = [t.2+20] + key_aux = call t.2(current_node) + t.3 = LtS(v_key key_aux) + if0 t.3 goto :if3_else + if current_node goto :null23 + Error("null pointer") + null23: + t.4 = [current_node] + t.4 = [t.4+32] + t.5 = call t.4(current_node) + if0 t.5 goto :if4_else + if current_node goto :null24 + Error("null pointer") + null24: + t.6 = [current_node] + t.6 = [t.6+16] + current_node = call t.6(current_node) + goto :if4_end + if4_else: + cont = 0 + if current_node goto :null25 + Error("null pointer") + null25: + t.7 = [current_node] + t.7 = [t.7+36] + ntb = call t.7(current_node 1) + if current_node goto :null26 + Error("null pointer") + null26: + t.8 = [current_node] + t.8 = [t.8+8] + ntb = call t.8(current_node new_node) + if4_end: + goto :if3_end + if3_else: + if current_node goto :null27 + Error("null pointer") + null27: + t.9 = [current_node] + t.9 = [t.9+28] + t.10 = call t.9(current_node) + if0 t.10 goto :if5_else + if current_node goto :null28 + Error("null pointer") + null28: + t.11 = [current_node] + t.11 = [t.11+12] + current_node = call t.11(current_node) + goto :if5_end + if5_else: + cont = 0 + if current_node goto :null29 + Error("null pointer") + null29: + t.12 = [current_node] + t.12 = [t.12+40] + ntb = call t.12(current_node 1) + if current_node goto :null30 + Error("null pointer") + null30: + t.13 = [current_node] + t.13 = [t.13+4] + ntb = call t.13(current_node new_node) + if5_end: + if3_end: + goto :while1_top + while1_end: + ret 1 + +func Tree.Delete(this v_key) + current_node = this + parent_node = this + cont = 1 + found = 0 + is_root = 1 + while2_top: + if0 cont goto :while2_end + if current_node goto :null31 + Error("null pointer") + null31: + t.0 = [current_node] + t.0 = [t.0+20] + key_aux = call t.0(current_node) + t.1 = LtS(v_key key_aux) + if0 t.1 goto :if6_else + if current_node goto :null32 + Error("null pointer") + null32: + t.2 = [current_node] + t.2 = [t.2+32] + t.3 = call t.2(current_node) + if0 t.3 goto :if7_else + parent_node = current_node + if current_node goto :null33 + Error("null pointer") + null33: + t.4 = [current_node] + t.4 = [t.4+16] + current_node = call t.4(current_node) + goto :if7_end + if7_else: + cont = 0 + if7_end: + goto :if6_end + if6_else: + t.5 = LtS(key_aux v_key) + if0 t.5 goto :if8_else + if current_node goto :null34 + Error("null pointer") + null34: + t.6 = [current_node] + t.6 = [t.6+28] + t.7 = call t.6(current_node) + if0 t.7 goto :if9_else + parent_node = current_node + if current_node goto :null35 + Error("null pointer") + null35: + t.8 = [current_node] + t.8 = [t.8+12] + current_node = call t.8(current_node) + goto :if9_end + if9_else: + cont = 0 + if9_end: + goto :if8_end + if8_else: + if0 is_root goto :if10_else + if current_node goto :null36 + Error("null pointer") + null36: + t.10 = [current_node] + t.10 = [t.10+28] + t.11 = call t.10(current_node) + t.12 = Sub(1 t.11) + if0 t.12 goto :ss1_else + if current_node goto :null37 + Error("null pointer") + null37: + t.13 = [current_node] + t.13 = [t.13+32] + t.14 = call t.13(current_node) + t.9 = Sub(1 t.14) + goto :ss1_end + ss1_else: + t.9 = 0 + ss1_end: + if0 t.9 goto :if11_else + ntb = 1 + goto :if11_end + if11_else: + t.15 = [this] + t.15 = [t.15+56] + ntb = call t.15(this parent_node current_node) + if11_end: + goto :if10_end + if10_else: + t.16 = [this] + t.16 = [t.16+56] + ntb = call t.16(this parent_node current_node) + if10_end: + found = 1 + cont = 0 + if8_end: + if6_end: + is_root = 0 + goto :while2_top + while2_end: + ret found + +func Tree.Remove(this p_node c_node) + if c_node goto :null38 + Error("null pointer") + null38: + t.0 = [c_node] + t.0 = [t.0+32] + t.1 = call t.0(c_node) + if0 t.1 goto :if12_else + t.2 = [this] + t.2 = [t.2+64] + ntb = call t.2(this p_node c_node) + goto :if12_end + if12_else: + if c_node goto :null39 + Error("null pointer") + null39: + t.3 = [c_node] + t.3 = [t.3+28] + t.4 = call t.3(c_node) + if0 t.4 goto :if13_else + t.5 = [this] + t.5 = [t.5+60] + ntb = call t.5(this p_node c_node) + goto :if13_end + if13_else: + if c_node goto :null40 + Error("null pointer") + null40: + t.6 = [c_node] + t.6 = [t.6+20] + auxkey1 = call t.6(c_node) + if p_node goto :null41 + Error("null pointer") + null41: + t.7 = [p_node] + t.7 = [t.7+16] + t.8 = call t.7(p_node) + if t.8 goto :null42 + Error("null pointer") + null42: + t.9 = [t.8] + t.9 = [t.9+20] + auxkey2 = call t.9(t.8) + t.10 = [this] + t.10 = [t.10+44] + t.11 = call t.10(this auxkey1 auxkey2) + if0 t.11 goto :if14_else + if p_node goto :null43 + Error("null pointer") + null43: + t.12 = [p_node] + t.12 = [t.12+8] + t.13 = [this+24] + ntb = call t.12(p_node t.13) + if p_node goto :null44 + Error("null pointer") + null44: + t.14 = [p_node] + t.14 = [t.14+36] + ntb = call t.14(p_node 0) + goto :if14_end + if14_else: + if p_node goto :null45 + Error("null pointer") + null45: + t.15 = [p_node] + t.15 = [t.15+4] + t.16 = [this+24] + ntb = call t.15(p_node t.16) + if p_node goto :null46 + Error("null pointer") + null46: + t.17 = [p_node] + t.17 = [t.17+40] + ntb = call t.17(p_node 0) + if14_end: + if13_end: + if12_end: + ret 1 + +func Tree.RemoveRight(this p_node c_node) + while3_top: + if c_node goto :null47 + Error("null pointer") + null47: + t.0 = [c_node] + t.0 = [t.0+28] + t.1 = call t.0(c_node) + if0 t.1 goto :while3_end + if c_node goto :null48 + Error("null pointer") + null48: + t.2 = [c_node] + t.2 = [t.2+24] + if c_node goto :null49 + Error("null pointer") + null49: + t.3 = [c_node] + t.3 = [t.3+12] + t.4 = call t.3(c_node) + if t.4 goto :null50 + Error("null pointer") + null50: + t.5 = [t.4] + t.5 = [t.5+20] + t.6 = call t.5(t.4) + ntb = call t.2(c_node t.6) + p_node = c_node + if c_node goto :null51 + Error("null pointer") + null51: + t.7 = [c_node] + t.7 = [t.7+12] + c_node = call t.7(c_node) + goto :while3_top + while3_end: + if p_node goto :null52 + Error("null pointer") + null52: + t.8 = [p_node] + t.8 = [t.8+4] + t.9 = [this+24] + ntb = call t.8(p_node t.9) + if p_node goto :null53 + Error("null pointer") + null53: + t.10 = [p_node] + t.10 = [t.10+40] + ntb = call t.10(p_node 0) + ret 1 + +func Tree.RemoveLeft(this p_node c_node) + while4_top: + if c_node goto :null54 + Error("null pointer") + null54: + t.0 = [c_node] + t.0 = [t.0+32] + t.1 = call t.0(c_node) + if0 t.1 goto :while4_end + if c_node goto :null55 + Error("null pointer") + null55: + t.2 = [c_node] + t.2 = [t.2+24] + if c_node goto :null56 + Error("null pointer") + null56: + t.3 = [c_node] + t.3 = [t.3+16] + t.4 = call t.3(c_node) + if t.4 goto :null57 + Error("null pointer") + null57: + t.5 = [t.4] + t.5 = [t.5+20] + t.6 = call t.5(t.4) + ntb = call t.2(c_node t.6) + p_node = c_node + if c_node goto :null58 + Error("null pointer") + null58: + t.7 = [c_node] + t.7 = [t.7+16] + c_node = call t.7(c_node) + goto :while4_top + while4_end: + if p_node goto :null59 + Error("null pointer") + null59: + t.8 = [p_node] + t.8 = [t.8+8] + t.9 = [this+24] + ntb = call t.8(p_node t.9) + if p_node goto :null60 + Error("null pointer") + null60: + t.10 = [p_node] + t.10 = [t.10+36] + ntb = call t.10(p_node 0) + ret 1 + +func Tree.Search(this v_key) + current_node = this + cont = 1 + ifound = 0 + while5_top: + if0 cont goto :while5_end + if current_node goto :null61 + Error("null pointer") + null61: + t.0 = [current_node] + t.0 = [t.0+20] + key_aux = call t.0(current_node) + t.1 = LtS(v_key key_aux) + if0 t.1 goto :if15_else + if current_node goto :null62 + Error("null pointer") + null62: + t.2 = [current_node] + t.2 = [t.2+32] + t.3 = call t.2(current_node) + if0 t.3 goto :if16_else + if current_node goto :null63 + Error("null pointer") + null63: + t.4 = [current_node] + t.4 = [t.4+16] + current_node = call t.4(current_node) + goto :if16_end + if16_else: + cont = 0 + if16_end: + goto :if15_end + if15_else: + t.5 = LtS(key_aux v_key) + if0 t.5 goto :if17_else + if current_node goto :null64 + Error("null pointer") + null64: + t.6 = [current_node] + t.6 = [t.6+28] + t.7 = call t.6(current_node) + if0 t.7 goto :if18_else + if current_node goto :null65 + Error("null pointer") + null65: + t.8 = [current_node] + t.8 = [t.8+12] + current_node = call t.8(current_node) + goto :if18_end + if18_else: + cont = 0 + if18_end: + goto :if17_end + if17_else: + ifound = 1 + cont = 0 + if17_end: + if15_end: + goto :while5_top + while5_end: + ret ifound + +func Tree.Print(this) + current_node = this + t.0 = [this] + t.0 = [t.0+76] + ntb = call t.0(this current_node) + ret 1 + +func Tree.RecPrint(this node) + if node goto :null66 + Error("null pointer") + null66: + t.0 = [node] + t.0 = [t.0+32] + t.1 = call t.0(node) + if0 t.1 goto :if19_else + t.2 = [this] + t.2 = [t.2+76] + if node goto :null67 + Error("null pointer") + null67: + t.3 = [node] + t.3 = [t.3+16] + t.4 = call t.3(node) + ntb = call t.2(this t.4) + goto :if19_end + if19_else: + ntb = 1 + if19_end: + if node goto :null68 + Error("null pointer") + null68: + t.5 = [node] + t.5 = [t.5+20] + t.6 = call t.5(node) + PrintIntS(t.6) + if node goto :null69 + Error("null pointer") + null69: + t.7 = [node] + t.7 = [t.7+28] + t.8 = call t.7(node) + if0 t.8 goto :if20_else + t.9 = [this] + t.9 = [t.9+76] + if node goto :null70 + Error("null pointer") + null70: + t.10 = [node] + t.10 = [t.10+12] + t.11 = call t.10(node) + ntb = call t.9(this t.11) + goto :if20_end + if20_else: + ntb = 1 + if20_end: + ret 1 + +func Tree.accept(this v) + PrintIntS(333) + if v goto :null71 + Error("null pointer") + null71: + t.0 = [v] + t.0 = [t.0+0] + nti = call t.0(v this) + ret 0 + +func Visitor.visit(this n) + if n goto :null72 + Error("null pointer") + null72: + t.0 = [n] + t.0 = [t.0+28] + t.1 = call t.0(n) + if0 t.1 goto :if21_else + if n goto :null73 + Error("null pointer") + null73: + t.2 = [n] + t.2 = [t.2+12] + t.3 = call t.2(n) + [this+8] = t.3 + t.4 = [this+8] + if t.4 goto :null74 + Error("null pointer") + null74: + t.5 = [t.4] + t.5 = [t.5+80] + nti = call t.5(t.4 this) + goto :if21_end + if21_else: + nti = 0 + if21_end: + if n goto :null75 + Error("null pointer") + null75: + t.6 = [n] + t.6 = [t.6+32] + t.7 = call t.6(n) + if0 t.7 goto :if22_else + if n goto :null76 + Error("null pointer") + null76: + t.8 = [n] + t.8 = [t.8+16] + t.9 = call t.8(n) + [this+4] = t.9 + t.10 = [this+4] + if t.10 goto :null77 + Error("null pointer") + null77: + t.11 = [t.10] + t.11 = [t.11+80] + nti = call t.11(t.10 this) + goto :if22_end + if22_else: + nti = 0 + if22_end: + ret 0 + +func MyVisitor.visit(this n) + if n goto :null78 + Error("null pointer") + null78: + t.0 = [n] + t.0 = [t.0+28] + t.1 = call t.0(n) + if0 t.1 goto :if23_else + if n goto :null79 + Error("null pointer") + null79: + t.2 = [n] + t.2 = [t.2+12] + t.3 = call t.2(n) + [this+8] = t.3 + t.4 = [this+8] + if t.4 goto :null80 + Error("null pointer") + null80: + t.5 = [t.4] + t.5 = [t.5+80] + nti = call t.5(t.4 this) + goto :if23_end + if23_else: + nti = 0 + if23_end: + if n goto :null81 + Error("null pointer") + null81: + t.6 = [n] + t.6 = [t.6+20] + t.7 = call t.6(n) + PrintIntS(t.7) + if n goto :null82 + Error("null pointer") + null82: + t.8 = [n] + t.8 = [t.8+32] + t.9 = call t.8(n) + if0 t.9 goto :if24_else + if n goto :null83 + Error("null pointer") + null83: + t.10 = [n] + t.10 = [t.10+16] + t.11 = call t.10(n) + [this+4] = t.11 + t.12 = [this+4] + if t.12 goto :null84 + Error("null pointer") + null84: + t.13 = [t.12] + t.13 = [t.13+80] + nti = call t.13(t.12 this) + goto :if24_end + if24_else: + nti = 0 + if24_end: + ret 0 |