ANTLR4有ANTLR4语法吗

ANTLR4有ANTLR4语法吗,antlr4,Antlr4,我知道ANTLR3有一个ANTLR3语法,在我看来,ANTLR4发行版包含了用ANTLR3编写的ANTLR4语法,但有没有用ANTLR4本身编写的ANTLR4语法?目前没有官方语法,但有一个作为ANTLRWorks 2的一部分提供。此语法肯定缺少一些官方语法中的错误报告功能,并且在行为上可能略有不同 :这是词法语法。语法使用了abstract=true选项,该选项已从正式的ANTLR版本中删除,因此语法仅适用于我的项目分支中的特殊版本 :这扩展了生成的AbstractGrammarLexer.

我知道ANTLR3有一个ANTLR3语法,在我看来,ANTLR4发行版包含了用ANTLR3编写的ANTLR4语法,但有没有用ANTLR4本身编写的ANTLR4语法?

目前没有官方语法,但有一个作为ANTLRWorks 2的一部分提供。此语法肯定缺少一些官方语法中的错误报告功能,并且在行为上可能略有不同

  • :这是词法语法。语法使用了
    abstract=true
    选项,该选项已从正式的ANTLR版本中删除,因此语法仅适用于我的项目分支中的特殊版本
  • :这扩展了生成的
    AbstractGrammarLexer.java
    ,并提供了
    emit()
    handleBeginArgAction()
    的必要实现
  • :这是语法分析器。它也被标记为抽象,但目前没有使用任何需要此选项的功能,因此可以将其删除。为了与lexer生成的代码保持一致,我加入了它

目前没有官方语法,但有一个作为ANTLRWorks 2的一部分提供。此语法肯定缺少一些官方语法中的错误报告功能,并且在行为上可能略有不同

  • :这是词法语法。语法使用了
    abstract=true
    选项,该选项已从正式的ANTLR版本中删除,因此语法仅适用于我的项目分支中的特殊版本
  • :这扩展了生成的
    AbstractGrammarLexer.java
    ,并提供了
    emit()
    handleBeginArgAction()
    的必要实现
  • :这是语法分析器。它也被标记为抽象,但目前没有使用任何需要此选项的功能,因此可以将其删除。为了与lexer生成的代码保持一致,我加入了它

GitHub上还有一本书,作者是特伦斯·帕尔本人


GitHub上还有一本书,作者是特伦斯·帕尔本人


太棒了,正是我需要的。非常感谢。刚刚开始使用语法,在grammarExer.g4和GrammarParser.g4中的
标记
部分的最后一个标记后面似乎有一个额外的逗号(,)字符。删除这些后,ANTLR生成了java文件。@TorokBalint 4.1-opt版本允许使用逗号,我更喜欢在分隔列表时保留逗号,每行一项。这正是我需要的。非常感谢。刚刚开始使用语法,在grammarExer.g4和GrammarParser.g4中的
标记
部分的最后一个标记后面似乎有一个额外的逗号(,)字符。删除这些ANTLR后,生成了java文件。@TorokBalint 4.1-opt版本允许使用该逗号,当我用每行一项分隔列表时,我更愿意保留该逗号。这个问题非常相关,因为换言之,这个问题是“如何使用ANTLR4解析ANTLR4”。该工具已指定为ANTLR4。所以这不是要求推荐。这里的问题是,这是否可以做到,如果可以,如何做到?为什么要关闭?一个完全正确的问题。例如,您希望对ANTLR4语法本身进行后处理(漂亮的打印、lint等)。这个问题非常相关,因为换言之,这个问题是“如何使用ANTLR4解析ANTLR4”。该工具已指定为ANTLR4。所以这不是要求推荐。这里的问题是,这是否可以做到,如果可以,如何做到?为什么要关闭?一个完全正确的问题。例如,您希望对ANTLR4语法本身进行后处理(漂亮的打印、lint等)。