Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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
Java 如何在antlr中生成语法,null是终止条件?_Java_Antlr - Fatal编程技术网

Java 如何在antlr中生成语法,null是终止条件?

Java 如何在antlr中生成语法,null是终止条件?,java,antlr,Java,Antlr,我在antlr中返回此代码,但它不是终止标识符 如何解决此问题?标识符的语法规则没有终止。添加|'\r'?'\不遵守那条规则 e、 g 或者你可以试试 identifier : 'int' (ID|ID '=' INT) (','ID|','ID '=' INT)*';' '\n' identifier | 'float' (ID|ID '=' FLOAT) (','ID|','ID '=' FLOAT)*';' '\n' identifier | 'char' (I

我在antlr中返回此代码,但它不是终止标识符
如何解决此问题?

标识符的语法规则没有终止。添加|'\r'?'\不遵守那条规则

e、 g

或者你可以试试

identifier 
    : 'int' (ID|ID '=' INT) (','ID|','ID '=' INT)*';' '\n' identifier 
    | 'float' (ID|ID '=' FLOAT) (','ID|','ID '=' FLOAT)*';' '\n' identifier
    | 'char' (ID|ID '=' CHAR) (','ID|','ID '=' CHAR)*';' '\n' identifier
    | 'string' (ID|ID '=' STRING) (','ID|','ID '=' STRING)*';' '\n' identifier  
    | '\r\n';
    ;

标识符的语法规则没有终止。添加|'\r'?'\n′;但标识符是递归的,所以它不能结束…它是无限的如何解决。。。
identifier 
    : 'int' (ID|ID '=' INT) (','ID|','ID '=' INT)*';' '\n' identifier 
    | 'float' (ID|ID '=' FLOAT) (','ID|','ID '=' FLOAT)*';' '\n' identifier
    | 'char' (ID|ID '=' CHAR) (','ID|','ID '=' CHAR)*';' '\n' identifier
    | 'string' (ID|ID '=' STRING) (','ID|','ID '=' STRING)*';' '\n' identifier  
    | '\r\n';
    ;
identifier 
    : 'int' (ID|ID '=' INT) (','ID|','ID '=' INT)*';' '\n' identifier 
    | 'float' (ID|ID '=' FLOAT) (','ID|','ID '=' FLOAT)*';' '\n' identifier
    | 'char' (ID|ID '=' CHAR) (','ID|','ID '=' CHAR)*';' '\n' identifier
    | 'string' (ID|ID '=' STRING) (','ID|','ID '=' STRING)*';' '\n' identifier  
    | EOF
    ;