throws IOException
{
super.lexer = new VdmLinkLexer(data);
CommonTokenStream tokens = new CommonTokenStream(lexer);
VdmLinkParser thisParser = new VdmLinkParser(tokens);
parser = thisParser;
((VdmLinkLexer)lexer).enableErrorMessageCollection(true);
thisParser.enableErrorMessageCollection(true);
try
{
thisParser.start();
if (((VdmLinkLexer)lexer).hasExceptions())
{
List<RecognitionException> exps = ((VdmLinkLexer)lexer).getExceptions();
addErrorsLexer(source, exps);
return null;
}
if (thisParser.hasExceptions())
{
List<RecognitionException> exps = thisParser.getExceptions();
addErrorsParser(source, exps);
} else
{
return thisParser.getLinks();
}
} catch (RecognitionException errEx)
{
errEx.printStackTrace();
addError(new ParseError(source, errEx.line, errEx.charPositionInLine, getErrorMessage(errEx, parser.getTokenNames())));