是否有任何工具可以像 antlrworks 一样可视化 jtb 和 javacc 的解析树
Is there any tool to visualize parsed tree for jtb & javacc like antlrworks
Antlrworks 为输入的源代码文件提供了一个可视化的解析树。我想知道是否有适用于 javacc 和 jtb 的等效工具
谢谢
走树。以 graphviz ("dot") 格式吐出节点和弧。对结果调用 graphviz。
这对于超过一百个节点来说不是很有用,因为它不是很密集。
值得注意的是,一种更具可扩展性的方法是按以下格式打印嵌套 S-expression:
<depth_from_root*spaces> ( <nodetype> <newline>
<childnode1_as_S-expression>
<childnode2_as_S-expression>
...
<childnodeN_as_S-expression>
)<nodetype>
这实际上是横向打印树,例如,根
在左边, children 在右边。你可以打印出来很
大树这样,仍然能够阅读它们(如果你
可以上下滚动文本)。
举个例子:对于a*(b+c)-d:
(-
(*
(+
(variable b)
(variable c)
)+
)*
(constant 1)
)-
这也可以通过树木漫步轻松完成。您可以轻松地打印出
版本更密集,或添加更多信息。
查看这两个示例,here。
Antlrworks 为输入的源代码文件提供了一个可视化的解析树。我想知道是否有适用于 javacc 和 jtb 的等效工具 谢谢
走树。以 graphviz ("dot") 格式吐出节点和弧。对结果调用 graphviz。
这对于超过一百个节点来说不是很有用,因为它不是很密集。
值得注意的是,一种更具可扩展性的方法是按以下格式打印嵌套 S-expression:
<depth_from_root*spaces> ( <nodetype> <newline>
<childnode1_as_S-expression>
<childnode2_as_S-expression>
...
<childnodeN_as_S-expression>
)<nodetype>
这实际上是横向打印树,例如,根 在左边, children 在右边。你可以打印出来很 大树这样,仍然能够阅读它们(如果你 可以上下滚动文本)。
举个例子:对于a*(b+c)-d:
(-
(*
(+
(variable b)
(variable c)
)+
)*
(constant 1)
)-
这也可以通过树木漫步轻松完成。您可以轻松地打印出 版本更密集,或添加更多信息。
查看这两个示例,here。