I'm new to ANTLR, having my first experiments in version 4. Since I use Eclipse Mars, I decided to install the Eclipse ANTLR 4 plugin. After all done, I created the following grammar (MetaCoder.g4
file):
grammar MetaCoder;
init: '{' value (',' value)* '}' ;
value: init
| INT
;
INT: [0-9]+ ;
WS: [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
The plugin generated to following java code (I removed most the comments to make it shorter):
// Generated from MetaCoder.g4 by ANTLR 4.4
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
public class MetaCoderBaseListener implements MetaCoderListener {
@Override public void enterInit(@NotNull MetaCoderParser.InitContext ctx) { }
@Override public void exitInit(@NotNull MetaCoderParser.InitContext ctx) { }
@Override public void enterValue(@NotNull MetaCoderParser.ValueContext ctx) { }
@Override public void exitValue(@NotNull MetaCoderParser.ValueContext ctx) { }
@Override public void enterEveryRule(@NotNull ParserRuleContext ctx) { }
@Override public void exitEveryRule(@NotNull ParserRuleContext ctx) { }
@Override public void visitTerminal(@NotNull TerminalNode node) { }
@Override public void visitErrorNode(@NotNull ErrorNode node) { }
}
For all the overriden methods Eclipse shows the following error:
The method xxx of type MetaCoderBaseListener must override a superclass method
The message seems to be correct, since this class does not have an ancestor.
What went wrong and how to fix it?