ANTLR4解析期间的StackOverflower错误

ANTLR4解析期间的StackOverflower错误,antlr4,Antlr4,输入:toAccount='电/水' 语法: 我猜它与字符串值中的/有关,因为没有它,表达式可以成功解析。我试图调试它,但我不明白在ANTLR引擎盖下发生了什么。我也曾在谷歌上搜索过在ANTLR中逃跑,但据我所知,没有必要逃脱刀砍 另外,关于语法的一般性评论也很受欢迎,这是我的第一个评论 有什么想法吗?问题在于设置范围操作符,也称为“破折号”。要将范围运算符作为文本包含,必须对其进行转义 STRING_VALUE: '\'' [a-zA-Z0-9\-/ ]+ '\'' ; 或将其指定为集合中的

输入:
toAccount='电/水'
语法:

我猜它与
字符串值中的/有关,因为没有它,表达式可以成功解析。我试图调试它,但我不明白在ANTLR引擎盖下发生了什么。我也曾在谷歌上搜索过在ANTLR中逃跑,但据我所知,没有必要逃脱刀砍

另外,关于语法的一般性评论也很受欢迎,这是我的第一个评论


有什么想法吗?

问题在于设置范围操作符,也称为“破折号”。要将范围运算符作为文本包含,必须对其进行转义

STRING_VALUE: '\'' [a-zA-Z0-9\-/ ]+ '\'' ;
或将其指定为集合中的最后一个成员项

DATE_VALUE  :  [0-9-]+ ;
STRING_VALUE: '\'' [a-zA-Z0-9\-/ ]+ '\'' ;
DATE_VALUE  :  [0-9-]+ ;