是否有EBNF铁路发电机可以创建更大的块,而不是每个语法生成一个图表?
我已经尝试了http://bottlecaps.de/rr/ui并且它非常好:可以从W3C规范中删除EBNF语法(例如http://www.w3.org/TR/sparql11-query/),生成带有嵌入式SVG的单个XHTML,或者带有许多PNG的zip,交叉 - 链接定义和用法。
然而,SPARQL 1.1语法有173个产品。当每个产品有一个图表时,很难理解。我正在寻找像这样的东西:http://ontologicalengineering.blogspot.com/2008/12/sparql-railroad-diagram-from-hell.html
答案 0 :(得分:0)
我也遇到了这个问题。我最后写了一个快速而肮脏的vim脚本,将我的整个语法压缩成一个单独的作品。
质量较差的铁路图的问题在于它们会丢失一些更细粒度的标签。
对于EBNF的任何常规(IE:sans递归)子集,您只需查找并替换'右手边的左手边,直到它处于所需的形状。例如我压缩了:
Identifier ::= Letter AlphaNum*
Letter ::= [a-zA-Z]|[_]
NonZeroDigit ::= [1-9]
Digit ::= NonZeroDigit | [0]
AlphaNum ::= Letter|Digit
成:
Identifier ::= ([a-zA-Z]|[_]) (([a-zA-Z]|[_])|(([1-9])|[0]))*
具有预期的效果。
过程:
Letter ::= [a-zA-Z]|[_]
)编辑:如果您找不到任何规则,只需选择任何规则,它仍然有效,但会导致稍微混乱的过程希望这有帮助!