Je travaille sur une grammaire ANTLR qui ressemble à ...Rédaction d'une action ANTLR « entre » la multiplicité
A : B+;
... et je voudrais être en mesure d'effectuer une action avant et après chaque instance de B. Par exemple, je voudrais quelque chose comme ...
A : A {out("Before");} B {out("After");}
| {out("Before");} B {out("After");};
Alors que le flux d'entrée A B B
je voyais la sortie ...
Before
After
Before
After
Bien entendu, le deuxième exemple n'est pas une syntaxe ANTLR valide en raison de la règle récursive gauche. Existe-t-il un moyen d'accomplir ce que je veux avec la syntaxe ANTLR appropriée?
Je devrais également mentionner qu'il y a d'autres manières d'atteindre la règle de B donc entourer simplement la règle de B avec avant et après ne fonctionnera pas.
A travaillé parfaitement. Merci. – Pace