Disons que j'ai deux règles comme ci-dessous:Comment «soustraire» les règles lexer dans ANTLR?
printable_characters : '\u0020' .. '\uFFEF' ;
newline_characters : '\n' | '\r' ;
Maintenant, disons que je veux faire une nouvelle règle appelée printable_no_newlines
. Je voudrais le faire en soustrayant newline_characters
de printable_characters
comme ceci:
printable_no_newlines : printable_characters - newline_characters ;
Cette syntaxe ne fonctionne pas dans antlr3 mais personne ne sait ce que la meilleure façon serait d'imiter cela sans retapant la règle entière?
Salut Martin. J'ai édité mon exemple pour avoir plus de sens. Je n'aurais pas dû utiliser. * Pour la règle des caractères imprimables. Si vous réexaminez maintenant la question, est-ce que cela a plus de sens pour ce que j'essaie de faire? –
Certains des commentaires de Martin ne sont plus pertinents, mais le point clé de ce n'est pas possible sans écrire manuellement la différence de réglage est correcte. –
@Jeffrey: votre modification ne rend toujours pas la requête sensée. Comme 'newline_characters' n'est pas inclus dans' printable_characters' (puisqu'ils sont en dessous de U + 0020), de toute façon, 'printable_no_newlines' serait le même que' printable_characters'. –