试图解析下面的句子,但是词法分析器生成不正确的令牌
输入
column(propName="~~" abc="hi")
Lexer
DOUBLEQUOTED: '"' (E_TILDE | ~ ('"') | E_DOUBLE_QUOTE)* '"';
fragment E_TILDE : '~~' ;
fragment E_DOUBLE_QUOTE : '~"' ;
试图解析输入句子,但词法分析器生成令牌
'"~~" abc="' as double quoted string
预期输出
'"~~"' as Double quoted string.
'"hi"' as Double quoted string
任何帮助表示赞赏
答案 0 :(得分:0)
ANTLR Lexer在确定下一个标记时会匹配最长的子序列。由于"~~" abc="
是有效的DOUBLEQUOTED
令牌,并且比"~~"
长,因此将被匹配。