J'ai un problème lors de la construction d'AST dans ANTLR (j'utilise ANTLR 3.2, ANTLRWorks 1.4).Règle de réécriture optionnelle pour AST dans ANTLR
C'est ma grammaire:
classDeclaration
:
(
'class' n=IDENTIFIER ('extends' e=IDENTIFIER)?
'{'
…
'}'
)
-> ^(CLASSDECLARATION ^(NAME $n) ^(EXTENDS $e)
;
Le problème se produit avec une partie optionnelle de la classe - ('extends' e=IDENTIFIER)?
.
Ainsi la grammaire fonctionne bien avec cette déclaration de classe:
class Test1 extends AbstractTest1 {
…
}
Et échoue quand j'exclus extends
partie, comme suit:
class Test2 {
…
}
ANTLR arrête juste avant ce fragment et donne cette exception console: javax.swing.text.BadLocationException: Position not represented by view
Comment puis-je pointer vers ANTLR pour gérer la règle de réécriture ^(EXTENDS $e)
en option?