我有以下ANTL3语法(仅限相关部分):
from_list
: from_list_elt (COMMA from_list_elt)*
;
我需要一些原因,最好留下无法解释的重写是
from_list
: from_list_elt
| from_list_elt (COMMA from_list_elt)+
;
我希望它是等价的。然而,第一语法接受的东西被第二语法拒绝。为什么???
我的选择:
options {
language=Java;
backtrack=true;
memoize=true;
output=AST;
}