我想以铁路格式导出ANTLR4规则。

请注意,此格式与命令行选项“ -atn”生成的格式不同。

铁路格式是由antlrworks生成的,但我想以编程方式生成此格式。

我正在寻找类似http://clapham.sourceforge.net/的东西

clapham从BNF生成我想要的东西。有什么工具可以将antlr4转换为BNF? (问题可能与Generate BNF diagrams from an antlr grammar?有关,但是请注意,我在这里不是在问同样的问题。转换为BNF只是一种解决方法,我想要的是直接从ANTLR语法生成铁路图)

遵循Generate BNF diagrams from an antlr grammar?的答案对我有用

只需获取您的ANTLR语法,发送到http://bottlecaps.de/convert/,然后发送到http://bottlecaps.de/rr/ui

ANTLR4表达式,例如“ WS:[\ t \ r \ n] +-> skip;”无法处理,因此我已更改为传统形式“ WS :: =(#x9 | #xD | #xA)*”

不幸的是,Clapham无法使用http://bottlecaps.de/convert/生成的BNF语法。

这是获取图表的方法,但这不是以编程方式。我希望我可以添加一些JAR,以便即时生成。

最佳答案

这是一个[我写的]库,您可以从命令行执行该代码,也可以将其嵌入您自己的代码中,以根据ANTLR 4语法规则生成PNG或SVG铁路图:

https://github.com/bkiers/rrd-antlr4

09-25 20:25