Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 4中的任何非换行符?_Java_Antlr_Antlr4 - Fatal编程技术网

Java 如何匹配ANTLR 4中的任何非换行符?

Java 如何匹配ANTLR 4中的任何非换行符?,java,antlr,antlr4,Java,Antlr,Antlr4,我想知道如何匹配语法中的非换行符,其中换行符是终端,希望使用它来匹配,例如,可能包含数字、标点符号等的标题文件 我现在使用的语法是: grammar ABCHeaderNew; import Configuration; root: header EOF; header: index title; index: 'X:' INDEX stop+; title: 'T:' TITLE stop+; INDEX: INTEGER+; TITLE: ANY+; stop: comment |

我想知道如何匹配语法中的非换行符,其中换行符是终端,希望使用它来匹配,例如,可能包含数字、标点符号等的标题文件

我现在使用的语法是:

grammar ABCHeaderNew;
import Configuration;

root: header EOF;

header: index title; 
index: 'X:' INDEX stop+;
title: 'T:' TITLE stop+;

INDEX: INTEGER+;
TITLE: ANY+;

stop: comment | NEWLINE; 
comment: '%' ANY* NEWLINE;

INTEGER: [0-9];
NEWLINE: '\r'? '\n';
ANY: ~(NEWLINE);

WHITESPACE: [ \t]+ -> skip;
这不会编译(错误消息:集合中当前不支持规则引用换行符)。我尝试过的其他几种变体也不起作用


有人知道一个好的解决方法吗?

not运算符只对集合进行操作,而标记引用(如
换行符
)不符合条件

只需使用正规集表示

ANY  : ~[\r\n] ;
警告:您可能需要扩展定义以排除转义的行尾字符,当然这取决于您的最终需要