Antlrworks为输入源代码文件提供可视化的解析树。我想知道javacc&是否有任何等价工具。 JTB 感谢
答案 0 :(得分:2)
走树。以graphviz(“点”)格式吐出节点和弧。在结果上调用graphviz。
这对于超过一百个节点来说不是很有用,因为它不是很密集。
值得注意的是,一种更具伸缩性的方法是打印嵌套的S-expression,格式如下:
<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)
)-
这也可以通过树步行轻松完成。您可以轻松地进行打印 版本更密集,或添加更多信息。
查看这两个示例,here。