ANTLR - 在括号之间只写数字

时间:2014-06-16 11:31:22

标签: antlr grammar antlr3

我除了在括号内写字母/数字之外。但是,我的语法不接受数字。

规则在我的语法文件中定义如下:

id_list
    :   '(' ID (',' ID)* ')' 
    ->  ID+
    ;

ID
    :   ('a'..'z' | 'A'..'Z' | '_' | '.' | '-' | Digit)* 
    ;

Number
    :   Int ('.' Digit*)?
    ;

fragment Int
    :  '1'..'9' Digit*
    |  '0'
    ;

fragment Digit 
    :  '0'..'9'
    ;

但我无法写(1,2)。它告诉我 "不匹配的输入' 1'期待ID" 它只接受带有数字的字母或字母,而不仅仅是数字。

你能说出我的错误吗?

1 个答案:

答案 0 :(得分:1)

当给出1234444时,词法分析器无法猜测你是指ID还是数字。 此问题类似于:ANTLR lexer rule consumes too much