2009-09-29 4 views
0

Salut j'ai cette grammaire pour l'instant, mais quand j'ai après un service, une note. Antlr ne veut pas reconnaître que ce n'est pas le service, mais notez. Et le service et la note ont une structure différente. Comment écrire ça?antlr - problème

J'essaye d'analyser ceci. mais NOTE bla bla; est en service

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' ; 

Répondre

0

J'ai finalement résolu très facilement en modifiant NOTE à:

NOTE : 'NOTE'TEXT; 

Même si je ne sais pas si ma grammaire est vraiment bon. Mais je ne suis pas sûr si je suis en mesure d'obtenir du texte dans Java variable à partir de cela. J'espère que je le suis.

Questions connexes