I am using ANTLR 4 to create a parser, and I have completed my grammar. I need to inject some Java code into the resulting parser file that ANTLR auto-generates for me.
If I want to include a method in the resulting parser, I can add this to the ANTLR grammar:
@parser::members
{
@Override
public CGrammarParser.CSnippetContext call()
{
return cSnippet();
}
}
If I want to include some import statements, I can add this to the grammar:
@header
{
import java.lang.Thread;
import java.lang.InterruptedException;
import java.util.concurrent.Callable;
}
If I want to modify the class declaration so that it implements an interface, how do I do that? In other words, this is what ANTLR auto-generates:
public class CGrammarParser extends Parser
{
...
}
But this is what I want it to generate:
public class CGrammarParser extends Parser implements Callable<CGrammarParser.CSnippetContext>
{
...
}