嗨,我现在有这个语法, 但是,当我有一个服务,一个笔记。 Antlr不想承认它不是服务,而是注意。服务和说明有不同的结构。 怎么写这个?
我正在尝试解析这个问题。但请注意bla bla;正在服役
777014322;O2 Optimum Profi Promo;
Free sms;0:00;250:00;0:00;
NOTE bla bla;
STM;
thank you.
grammar teste;
file : phoneNumber*;
phoneNumber
: number SEPARATOR tariff SEPARATOR? newline
service*
note?
stm SEPARATOR* newline
;
note : NOTE TEXT SEPARATOR? newline;
service
: TEXT SEPARATOR TEXT SEPARATOR TEXT SEPARATOR TEXT SEPARATOR? newline;
stm : STM;
tariff : TEXT;
newline : NEWLINE*;
number : NUMBER;
separator : SEPARATOR;
NOTE : 'NOTE';
STM : 'STM';
NEWLINE : '\r'? '\n';
NUMBER : (DIGIT)+ ;
SEPARATOR : ';';
TEXT : ~(';' | '\r' | '\n')+;
fragment DIGIT : '0'..'9' ;
答案 0 :(得分:0)
我通过将NOTE修改为:
,最终很容易解决了这个问题NOTE : 'NOTE'TEXT;
即使我不确定我的语法是否真的很好。但是我不确定能否从这里获取java变量的文本。我希望我是。