2017-02-24 1 views
1

En tant que débutant à ANTLR, je suis tombé sur un problème: ma grammaire comprendANTLR4 notifyErrorListeners

COMMENT : ('*' {getCharPositionInLine()==0}? .* NL 
      | '*' {getCharPositionInLine()>0}? .* NL {System.out.println("* at wrong position"); notifyListeners("xxx");} 
); 

qui signifie que je veux vérifier si une ligne de départ avec un * (OK) ou si le * est dans un autre position (erreur).

Dans IntelliJ IDEA, je reçois l'erreur de compilation suivante:

Error:(106, 68) java: cannot find symbol 
    symbol: method notifyErrorListeners(java.lang.String) 
    location: class MQSC.MQSCLexer 

Comme cela semble être la solution telle que décrite dans le livre « La référence ANTLR4 définitive », je suis coincé. Est-ce la bonne façon, est-ce que quelque chose me manque?

+0

Avez-vous réussi à résoudre le problème suite à ma réponse? – CrazyCoder

Répondre

0

Il semble que vous avez besoin de dépendance ANTLR Java Runtime dans votre classpath, pour un projet Maven qui serait:

<dependency> 
    <groupId>org.antlr</groupId> 
    <artifactId>antlr4-runtime</artifactId> 
    <version>4.6</version> 
</dependency> 

Sinon, télécharger antlr-runtime-4.6.jar et l'ajouter à la module dependencies.