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 に答える