simple.cpp.expectation 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. ===== AST after parser =====
  2. f():
  3. TreeList
  4. IfBranch
  5. UnresolvedReference cond1
  6. TreeList
  7. BinaryOperation Declaration
  8. UnresolvedReference a
  9. MathematicalConstant 1
  10. IfBranch
  11. UnresolvedReference cond2
  12. TreeList
  13. BinaryOperation Declaration
  14. UnresolvedReference b
  15. UnresolvedReference a
  16. ElseIfBranch Else
  17. TreeList
  18. BinaryOperation Declaration
  19. UnresolvedReference b
  20. MathematicalConstant 3
  21. ElseIfBranch Else
  22. TreeList
  23. BinaryOperation Declaration
  24. UnresolvedReference b
  25. MathematicalConstant 4
  26. ReturnNode
  27. UnresolvedReference b
  28. ===== AST after function-call-canonicalization =====
  29. f():
  30. TreeList
  31. IfBranch
  32. UnresolvedReference cond1
  33. TreeList
  34. BinaryOperation Declaration
  35. UnresolvedReference a
  36. MathematicalConstant 1
  37. IfBranch
  38. UnresolvedReference cond2
  39. TreeList
  40. BinaryOperation Declaration
  41. UnresolvedReference b
  42. UnresolvedReference a
  43. ElseIfBranch Else
  44. TreeList
  45. BinaryOperation Declaration
  46. UnresolvedReference b
  47. MathematicalConstant 3
  48. ElseIfBranch Else
  49. TreeList
  50. BinaryOperation Declaration
  51. UnresolvedReference b
  52. MathematicalConstant 4
  53. ReturnNode
  54. UnresolvedReference b
  55. ===== AST after if-branch-merging =====
  56. f():
  57. TreeList
  58. IfElseIfChain
  59. UnresolvedReference cond1
  60. TreeList
  61. BinaryOperation Declaration
  62. UnresolvedReference a
  63. MathematicalConstant 1
  64. IfElseIfChain
  65. UnresolvedReference cond2
  66. TreeList
  67. BinaryOperation Declaration
  68. UnresolvedReference b
  69. UnresolvedReference a
  70. TreeList
  71. BinaryOperation Declaration
  72. UnresolvedReference b
  73. MathematicalConstant 3
  74. TreeList
  75. BinaryOperation Declaration
  76. UnresolvedReference b
  77. MathematicalConstant 4
  78. ReturnNode
  79. UnresolvedReference b
  80. ===== AST after reference-resolving =====
  81. f():
  82. TreeList
  83. IfElseIfChain
  84. UnresolvedReference cond1
  85. TreeList
  86. BinaryOperation Declaration
  87. Var a
  88. MathematicalConstant 1
  89. IfElseIfChain
  90. UnresolvedReference cond2
  91. TreeList
  92. BinaryOperation Declaration
  93. Var b
  94. Var a
  95. TreeList
  96. BinaryOperation Declaration
  97. Var b
  98. MathematicalConstant 3
  99. TreeList
  100. BinaryOperation Declaration
  101. Var b
  102. MathematicalConstant 4
  103. ReturnNode
  104. Var b
  105. ===== AST after cfg-building =====
  106. f():
  107. TreeList
  108. IfElseIfChain
  109. UnresolvedReference cond1
  110. TreeList
  111. BinaryOperation Declaration
  112. Var a
  113. MathematicalConstant 1
  114. IfElseIfChain
  115. UnresolvedReference cond2
  116. TreeList
  117. BinaryOperation Declaration
  118. Var b
  119. Var a
  120. TreeList
  121. BinaryOperation Declaration
  122. Var b
  123. MathematicalConstant 3
  124. TreeList
  125. BinaryOperation Declaration
  126. Var b
  127. MathematicalConstant 4
  128. ReturnNode
  129. Var b
  130. ===== CFG after cfg-building =====
  131. f():
  132. 0:
  133. ControlFlowBranch true=3 false=7
  134. UnresolvedReference cond1
  135. 1:
  136. ControlFlowFunctionReturn
  137. Var $return
  138. 2:
  139. BinaryOperation Assignment
  140. Var $return
  141. Var b
  142. ControlFlowJump jump=1
  143. 3:
  144. BinaryOperation Declaration
  145. Var a
  146. MathematicalConstant 1
  147. ControlFlowBranch true=5 false=6
  148. UnresolvedReference cond2
  149. 4:
  150. ControlFlowJump jump=2
  151. 5:
  152. BinaryOperation Declaration
  153. Var b
  154. Var a
  155. ControlFlowJump jump=4
  156. 6:
  157. BinaryOperation Declaration
  158. Var b
  159. MathematicalConstant 3
  160. ControlFlowJump jump=4
  161. 7:
  162. BinaryOperation Declaration
  163. Var b
  164. MathematicalConstant 4
  165. ControlFlowJump jump=2
  166. 8:
  167. BinaryOperation Assignment
  168. Var $return
  169. Error ""
  170. ControlFlowJump jump=1