我正在尝试将Chris Lambro's ANTLR3
Javascript Grammar移至ANTLR4
我收到以下错误,
集合
目前不支持规则参考'LT'
在以下代码~(LT)*
LineComment
: '//' ~(LT)* -> skip
;
LT : '\n' // Line feed.
| '\r' // Carriage return.
| '\u2028' // Line separator.
| '\u2029' // Paragraph separator.
;
我需要帮助理解为什么我会收到此错误,以及我如何解决它。
答案 0 :(得分:8)
ANTLR中的~
运算符反转一组符号(词法分析器中的字符或解析器中的标记)。在集合中,您可以引用LT
词法分析器规则,ANTLR 4目前不支持该规则。要解决此问题,您需要内联规则引用:
LineComment
: '//' ~([\n\r\u2028\u2029])* -> skip
;