我想以铁路格式导出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