Ste*_* H. 6 parsing antlr lexer
我对如何在ANTLR4中捕获带引号的字符串感到有点困惑.
目前,这个词法分析器规则并没有像我期望的那样标记.
示例字符串是"=\"".我已经尝试了很多不同的方法来捕捉这个,但我对我正在做的不正确感到茫然.我非常感谢对此最佳实践的一些见解.非常感谢!
ESCAPED_QUOTE : '\"';
QUOTED_STRING : '"' ( ESCAPED_QUOTE | ~('\n'|'\r') )*? '"';
Run Code Online (Sandbox Code Playgroud)
上述规则存在两个问题.
'\\"'.ESCAPED_QUOTE规则本身并不构成令牌,因此它应该是一个fragment规则.这两个变化的结果如下:
fragment ESCAPED_QUOTE : '\\"';
QUOTED_STRING : '"' ( ESCAPED_QUOTE | ~('\n'|'\r') )*? '"';
Run Code Online (Sandbox Code Playgroud)