我的语法在 antlr 中不符合要求

My grammar doesn't work as required in 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 的新手,如有任何帮助,我们将不胜感激。

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

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

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