我有一个解析树,它解析出一堆char (stack<stack<char>>)
的堆栈。这会将字符转换为解析树。我的问题是如何将这个解析树转换为AST来评估它?
我让评估员为AST工作我只需要将树转换为语法以便对其进行评估。
任何帮助都将不胜感激。
答案 0 :(得分:2)
使用预订序遍历
preorder(node)
if node == null then return
print node.value
preorder(node.left)
preorder(node.right)
使用堆栈存储叶节点我将值添加到它们上,并且能够横向堆栈并转换为lea节点。
10 + 4
的示例使用预订的解析树叶子会给我一堆[+ 10 4]
使用辅助函数我可以将其转换为
使用递归Make_Plus(Make_Int(10),Make_Int(4))