package parsing.C.Modules;
import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.tree.ParseTree;
import parsing.ANTLRParserDriver;
import parsing.TokenSubStream;
import antlr.C.ModuleLexer;
import antlr.C.ModuleParser;
public class ANTLRCModuleParserDriver extends ANTLRParserDriver
{
public ANTLRCModuleParserDriver()
{
super();
setListener(new CModuleParserTreeListener(this));
}
@Override
public ParseTree parseTokenStreamImpl(TokenSubStream tokens)
{
ModuleParser parser = new ModuleParser(tokens);
ParseTree tree = null;
try
{
setSLLMode(parser);
tree = parser.code();
}
catch (RuntimeException ex)
{
if (isRecognitionException(ex))
{
tokens.reset();
setLLStarMode(parser);
tree = parser.code();
}
}
return tree;
}
@Override
public Lexer createLexer(ANTLRInputStream input)
{
return new ModuleLexer(input);
}
}