【问题标题】:Cannot understand Antlr tool error parsing grammar看不懂 Antlr 工具错误解析语法
【发布时间】:2020-05-14 17:54:28
【问题描述】:
// Parser
statement
    : DELIMITER* statementPart+ DELIMITER* (EOL { newline(); })?
    ;

// Lexer
DELIMITER
    : ';'
    ;


sql-stmt.g:85:13: rule classDef trapped:
sql-stmt.g:85:13: unexpected token: DELIMITER

第 85 行是 statement 规则。我真的不知道为什么会失败。请帮忙?

这是与 Antlr2 顺便说一句。是的,是的,超级老,是的,是的……

谢谢!

【问题讨论】:

    标签: antlr antlr2


    【解决方案1】:

    玩过 Antlr4 太多了 :) 在 Antlr2 中,我猜令牌/规则必须用括号包裹才能应用 *+ 或 ...

    【讨论】:

    • 哈哈,不错!这也可以解释为什么我在 v3 甚至 v4 语法中看到带括号的单个标记:这些很可能是从 v2 语法移植过来的。
    • 谢谢巴特。更糟糕的是,我正在尝试将我们使用 Antlr 4 所做的一些工作反向移植到使用 Antlr2 的东西上。由于您对 Antlr 非常了解,如果您有时间,您愿意看看stackoverflow.com/questions/61821211/negated-lexer-rules-tokens 吗?它与同一工作有关。谢谢:)
    • 没有多少空闲时间 ATM,而且我从来没有对 ANTLR v2 做过很多事情,但是如果您的问题在周日之前没有得到回答,我会看看是否可以在我的机器上运行 v2。
    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 2016-11-09
    • 2013-11-18
    • 2018-02-28
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多