ANTLR:片段有错误

ANTLR : Have errors with Fragment

错误是:

mismatched input 'elseState' expecting RULE_TOKEN_REF

有人可以向我解释为什么会出现此错误以及如何解决吗?

我们将不胜感激您的帮助

片段保留给词法分析器规则定义,不能用于解析器规则,在您的情况下不需要它。

片段用于拆分复杂的词法分析器规则并引入可重用性而不产生专用令牌,例如:

NUMBER : DIGIT+;  
ID : LETTER (LETTER|DIGIT)*;
fragment LETTER : [a-zA-Z];
fragment DIGIT : [0-9];

在这些词法分析器规则中,我不希望 LETTERDIGIT 作为标记,但是,我想在其他词法分析器规则(NUMBERDIGIT), 所以我 'mark' 他们是 fragment。它使词法分析器更具可读性和更易于维护。

您可以在此处阅读更多详细信息:https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Lexer+Rules