regola lexer Commento
-
18-09-2019 - |
Domanda
Sono nuovo di ANTLR e mi è venuta in mente questa regola lexer per analizzare le osservazioni, funzionerà?
COMMENT_LINE : (COMMENT (. - LINE_ENDING)* LINE_ENDING){$channel=hidden};
(non ho trovato nulla per quanto riguarda la sintassi di questo tipo nella documentazione)
Soluzione
La regola non può essere compilato a tutti. Se si utilizza ANTLRWorks per creare una nuova grammatica lexer, è possibile selezionare una casella di averlo generare una regola lexer che corrisponde commenti a linea singola. Genera questo:
COMMENT
: '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
;
In alternativa, è possibile utilizzare qualcosa di simile per abbinare commenti sola riga:
COMMENT_LINE
: COMMENT (options{greedy=false;}: .)* LINE_ENDING {$channel=HIDDEN;}
;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow