【手搓一个脚本语言】七、用C语言抽象语法树AST实现一个可交互运行的表达式计算器 接上一篇【手搓一个脚本语言】六、用C语言抽象语法树AST计算表达式的值-CSDN博客代码,再进一步改进!!! 目标:实现一个可交互运行的表达式计算器,即输入表达式,输出正确的表达式的结果值! 1.1 表达式只有一个数字 在处理右括时,判断当前运算符栈节点是否为空,如为空,将数字栈节点赋值给记号,然后再创建子节点! ... case ')': { AstNode node = NULL; Token tk = { .type = T_SUBA, .V.aobj = st[lv] }; if (st[lv] == NULL) tk.V.aobj = tp[lv]; node = astnode_new (tk); ... 在返回head前判断当前运算符栈节点是否为空,如为空,将数字栈节点赋值给head! ... if (st[lv] == NULL) { if (tp[lv] == NULL) {} else head = tp[lv]; } else { head = st[lv]; } ...