解析返回算术表达式的结果。我需要能够使用抽象语法树显示此表达式和结果。我是flex和bison的新手。
答案 0 :(得分:0)
您可以将树打印为s-expression。这很容易做到。
如何:执行访问(Root,0)。
Visit(node N, D)
{ For i=1 to D print " ";
Print "(", type(N)), newline
For i=1 to #Children(N)
Visit(NthChild(N,i),D+1)
Print ")", newline
}
这将生成树作为文本输出。
使用GraphViz执行此操作时,请执行相同的递归遍历。生成节点描述 进入参观。每次调用Visit时生成Arc描述。