我试图找出这个错误。目前,当我提供几个不同的输入时,我要么得到正确的结果,要么得到 ANTLRWorks 调试器无限循环。
1) {v0, p1} = Infinite loop or mismatched token exception
2) {v0..v1} Works!
3) {v0,p1} Works? Why?! Notice the lack of space?
如果有人可以帮助我理解为什么这是模棱两可的,我将不胜感激。我已经尝试过更改运算符优先级,但我仍然无法让它按照我认为的方式工作。谢谢!
WHITESPACE : ( '\t' | ' ' | '\r' | '\n'| '\u000C' )+ { $channel = HIDDEN; };
LEFTCURL : '{';
RIGHTCURL : '}';
REGISTER : ('v'|'p') NUMBER+;
REGISTERLIST : LEFTCURL REGISTER (',' REGISTER)* RIGHTCURL;
REGISTERANGE : LEFTCURL REGISTER '..' REGISTER RIGHTCURL;