2015-10-27 152 views
1

我在写ANTLR语法如下我的语法不工作:根据需要在ANTLR

grammar names; 
init : stat+; 
stat : name NEWLINE 
    | name SPACE NEWLINE 
    |NEWLINE 
    | name SPACE name SPACE 
    ; 
name : ID ; 
ID : [a-zA-Z]+ ; 
NEWLINE:'\r'? '\n' ; 
SPACE : ' '; 

这种语法应该接受形式的输入:

name1 
name1<space>name2<space> 
name1<space> 

我没有得到的要求的输出。截至目前,生成的树只显示第一个值。我是antlr的新手,任何帮助将不胜感激。

回答

0

您的统计规则应该更是这样的:

stat: name (SPACE name)* SPACE? NEWLINE; 

从您假设小的例子,每一行代表由统计规则相匹配的完整的条目。