休息了几个星期,又到了和ANTLR战斗的时候了……
无论如何,我定义了以下 Lexer 标记:
fragment EQ: '=';
fragment NE: '<>';
BOOLEAN_FIELD
: ('ISTRAINED'|'ISCITIZEN')
;
BOOLEAN_CONSTANT
: ('TRUE'|'FALSE'|'Y'|'N')
;
BOOLEAN_LOGICAL
: BOOLEAN_FIELD (EQ|NE) (BOOLEAN_FIELD|BOOLEAN_CONSTANT)
;
不幸的是,BOOLEAN_LOGICAL 令牌以简单的术语(例如“ISTRAINED = ISTRAINED”)引发 NoViableAltException。
我知道一些响应将是“这应该在解析器中”。它以前在解析器中,但是,我试图将一些简单的项目卸载到词法分析器中,因为我只需要“是/否,这个文本块有效吗?”
任何帮助表示赞赏。