【发布时间】:2015-12-04 22:35:57
【问题描述】:
我想知道如何在换行符是终端的语法中匹配非换行符,以希望使用它来匹配可能包含数字标点符号等的标题文件。
我现在使用的语法是:
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;
这不会编译(错误消息:规则引用 NEWLINE 目前在集合中不受支持)。我尝试过的其他几种变体也不起作用。
有人知道一个好的解决方法吗?
【问题讨论】: