1

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

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

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

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

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

遵循从 antlr 语法生成 BNF 图表的答案?为我工作

只需获取您的 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 可以添加以即时生成。

4

2 回答 2

3

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

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

于 2014-03-12T10:45:10.720 回答
0

结帐 ANTLR 4 IDE:https ://github.com/jknack/antlr4ide

这是一个 Java.g4 到 HTML 的例子:http: //jknack.github.io/antlr4ide/Java/Javav4.g4.html

您将在http://jknack.github.io/antlr4ide/Java/images目录下找到图像。

该工具的最后一次更新是在 2016 年 12 月。

于 2014-01-15T16:07:42.780 回答