首先,我是 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.fand x.y,但我得到以下信息:

