0

嗨,我现在有这个语法,但是当我有服务后,一个便条。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' ;
4

1 回答 1

0

我终于通过将 NOTE 修改为:

NOTE : 'NOTE'TEXT;

即使我不确定我的语法是否真的很好。但我不确定是否能够从中获取文本到 java 变量中。我希望我是。

于 2009-09-29T08:26:47.527 回答