gpt4 book ai didi

c++ - 将解析树转换为 AST(抽象语法树)C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:29 25 4
gpt4 key购买 nike

我有一个解析树,可以解析出一堆 char (stack<stack<char>>) 的堆栈.这会将字符放入解析树中。我的问题是如何将此解析树转换为 AST 以便对其进行评估?

我有评估者为 AST 工作,我只需要将树转换为语法即可评估它。

如有任何帮助,我们将不胜感激。

Here is a picture of what I am trying to accomplish

最佳答案

我能够使用 Tree Traversal Algorithm 转换它们

使用预序遍历

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))

关于c++ - 将解析树转换为 AST(抽象语法树)C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10465071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com