我的语法在antlr中没有按照要求工作

时间:2015-10-27 10:23:48

标签: 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的新手,任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你的统计规则应该更像这样:

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

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