在 Antlr Lexer 中,如何实现解析这样的令牌:
包含任何非空格字母但不包含 '.{' 的单词。我能想到的最好的方法是使用语义谓词。
WORD: WL+ {!getText().contains(".{")};
WL: ~[ \n\r\t];
我有点担心使用语义谓词,尽管因为这里的 WORD 会被数百万次词法分析,我认为放置语义谓词会影响性能。
这是来自我需要解析以下内容的要求:
TOKEN_ONE.{TOKEN_TWO}
而 TOKEN_ONE 可以包括 . 和 { 在它的信中。
我正在使用 Antlr 4。