antlr4 括号与字符串规则的双引号冲突

antlr4 parentheses collide with double quote for string rules

我定义了这样一个字符串: STRING_TOKEN: '"'[A-Za-z0-9]+'"'; 当我使用这样的规则时: LENGTH_TOKEN '( 'function' )' #lengthScalarOperator

例如:长度("skip")

其中函数是一个字符串,我得到了这个错误:不匹配的输入 '("' 期待 '('

原因是,它正在寻找一个 ( 标记,但它找到了一个 (" 标记,因为您没有将标记指定为 "("。尝试移动 LENGTH_TOKEN 中的两个 ' 所以它变成了 LENGTH_TOKEN '(' function ')'