antlr - 问题

时间:2009-09-29 07:48:02

标签: java antlr

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

1 个答案:

答案 0 :(得分:0)

我通过将NOTE修改为:

,最终很容易解决了这个问题
NOTE : 'NOTE'TEXT;

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