Antlrworks为输入源代码文件提供了一个可视化的解析树。我想知道是否有适用于javacc&jtb感谢
在树上漫步。以graphviz("点")格式吐出节点和圆弧。对结果调用graphviz。
这对于超过一百个节点来说不是很有用,因为它不是很密集。
值得注意的是,一种更具伸缩性的方法是打印嵌套的S表达式,格式如下:
<depth_from_root*spaces> ( <nodetype> <newline>
<childnode1_as_S-expression>
<childnode2_as_S-expression>
...
<childnodeN_as_S-expression>
)<nodetype>
这实际上是横向打印树,例如,使用根在左边,孩子们在右边。你可以打印出来以这种方式阅读大树,并且仍然能够阅读它们(如果你可以在文本中上下滚动)。
例如:对于a*(b+c)-d:
(-
(*
(+
(variable b)
(variable c)
)+
)*
(constant 1)
)-
这也很容易通过走树来完成。你可以很容易地打印版本更密集,或添加更多信息。
请在此处查看这两个方面的示例。