有没有其他方法可以预览ANTLR生成的解析树?

时间:2018-04-04 21:16:17

标签: java intellij-idea antlr antlr4 intellij-plugin

我正在为ANTLR v4使用IntelliJ Idea插件,它预览了解析树。但是在大代码的情况下生成大型二叉树时,预览很难解释。

是否有其他方法可以查看相同的内容或以PDF等任何其他格式生成输出。

example for large code base

2 个答案:

答案 0 :(得分:1)

如果您愿意切换工具,还有其他选择。例如,ANTLR4 extension for Visual Studio Code可以显示交互式解析树(您可以在不同的布局中查看它,您可以折叠节点以隐藏不感兴趣的部分等)。下面是树的图片或观看动画on my homepage

enter image description here

这个生成的图形可以存储为SVG以及内置或自定义CSS来设置样式。

答案 1 :(得分:1)

Antlr 以 lisp 格式提供解析树的输出。 ParseTree tree = parser.yourRule() 然后用 tree.toString(parser) 输出。然后会生成一个 lisp 树。也可以用 Gson 生成 json 格式的树。然而,这些树并不是那么“可视化”,而是非常适合进一步处理。