Antlr 图形规则表示法

Antlr 图形规则表示法,antlr,antlr4,Antlr,Antlr4,是否有工具可以创建antlr4语法的图形表示,这意味着解析器/词法分析器规则,例如作为有限状态机的图形表示 它应该是这样的情况,因为它可以表示为巴科斯诺尔形式 例如: plus: INT '+' INT | plus '+' INT INT: [0-9]+ 相应的有限状态机是 start -> INT <-> plus | v exit start->INT plus | v 出口 除有限状态机外,还可能有其他图形表

是否有工具可以创建antlr4语法的图形表示,这意味着解析器/词法分析器规则,例如作为有限状态机的图形表示

它应该是这样的情况,因为它可以表示为巴科斯诺尔形式

例如:

plus: INT '+' INT | plus '+' INT
INT: [0-9]+
相应的有限状态机是

start -> INT <-> plus
          |
          v
        exit
start->INT plus
|
v
出口

除有限状态机外,还可能有其他图形表示。我们的目标是提供一个不同的视角,以便更容易地调试/理解语法。

您可能需要这样的内容:。这些类型的图形称为铁路图。

您可能需要这样的图形:。这些类型的图形称为铁路图。

另一种解决方案是使用ANTLRWorks 2.1。包含一个名为“语法图”的视图,可以生成解析器规则和词法规则的铁路图


我在硕士论文中使用了这些图像,到目前为止,这个过程运行良好。

另一个解决方案是使用ANTLRWorks 2.1。包含一个名为“语法图”的视图,可以生成解析器规则和词法规则的铁路图


我在硕士论文中使用了这些图像,到目前为止,这一过程运作良好。

BNF没有清晰的“树”表示法。你愿意提供一个你想要的例子吗?当然你是对的。它可以图形化地表示为自动机。表示为有限状态machine@Waschbaer:这仅适用于lexer-大多数语法不能表示为有限状态自动机(只有常规语法可以,并且一旦您执行了无限深度嵌套之类的操作,您的语法就不再是常规语法)如果其他人读到这个问题及其评论感到困惑,那是因为OP在他的问题中将“树”一词改为“有限状态机”。BNF没有“树”的清晰表示。你愿意提供一个你想要的例子吗?当然你是对的。它可以图形化地表示为自动机。表示为有限状态machine@Waschbaer:这仅适用于lexer-大多数语法不能表示为有限状态自动机(只有常规语法可以,并且一旦您执行了无限深度嵌套之类的操作,您的语法就不再是常规语法)如果其他人读到这个问题及其评论感到困惑,那是因为OP在他的问题中将“树”一词改为“有限状态机”。