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

C++ 将解析树转换为AST(抽象语法树)C++;,c++,parsing,abstract-syntax-tree,parse-tree,C++,Parsing,Abstract Syntax Tree,Parse Tree,我有一个解析树,它解析出一堆字符(stack)。这会将字符放入解析树中。我的问题是如何将此解析树转换为AST以对其进行评估 我让evaluator为AST工作,我只需要将树转换为语法来计算它 任何帮助都将不胜感激 我可以使用 使用预序遍历 preorder(node) if node == null then return print node.value preorder(node.left) preorder(node.right) 使用堆栈来存储叶节点,我将这些值添加到

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

我让evaluator为AST工作,我只需要将树转换为语法来计算它

任何帮助都将不胜感激


我可以使用

使用预序遍历

preorder(node)
  if node == null then return
  print node.value
  preorder(node.left) 
  preorder(node.right)
使用堆栈来存储叶节点,我将这些值添加到它们上,并且能够横穿堆栈并更改为lea节点

10+4的一个例子

使用preorder的解析树叶子会给我一个[+104]的堆栈

使用助手函数,我可以将其转换为


Make_Plus(Make_Int(10),Make_Int(4))使用递归

我在一堆字符中看不到树如果字符串最初是
5+6-(4*6)+5
那么一堆字符将是
[[5][+][6][-][[4][*][6]][][5]]
转换为解析树的堆栈此堆栈与任何普通的旧堆栈有何不同?任何内部堆栈都有不止一个项目吗?还有,堆栈在哪里?我看到一个字符序列逐字重复输入序列。这里的转换是什么?字符堆栈并不重要,重要的是我有一棵树,树中有字符,还有正负括号的节点等等。我需要将该树转换为ast,这样它将有一个完整的节点,我将编辑这个问题