首先,我是 ANTLR 的新手。我问的对你们其他人来说可能是微不足道的,但我需要你的帮助。
我想匹配流中的所有限定名称,并忽略流中的其余字符。
我尝试了以下方法:
findAllQualifiedNames
: qualifiedName+
;
qualifiedName
: IDENTIFIER
('.' IDENTIFIER)*
;
IDENTIFIER
: ('_'
| '$'
| ('a'..'z' | 'A'..'Z'))
('a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '$')*
;
AnyOtherChar
: .
{$channel=HIDDEN;}
;
但它没有按我预期的方式工作:对于 input ,它仅作为限定名称a.b.c;d.e.f;
匹配。a.b.c
我得到了错误:
没有可行的替代方案;
编辑:
对于上面的语法,我尝试了以下输入:abc; 定义;.. {xy;}
我希望匹配a.b.c, d.e.f
and x.y
,但我得到以下信息: