Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的语法不正确';t按照antlr中的要求工作_Antlr - Fatal编程技术网

我的语法不正确';t按照antlr中的要求工作

我的语法不正确';t按照antlr中的要求工作,antlr,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>name

我用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>
name1
名称1名称2
名称1

我没有得到所需的输出。到目前为止,生成的树只显示第一个值。我是antlr的新手,任何帮助都将不胜感激。

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

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

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

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

stat: name (SPACE name)* SPACE? NEWLINE;
假设在您的小示例中,每一行代表一个与stat规则匹配的完整条目