private CommonTree parseAST(String query) {
ANTLRStringStream stream = new ANTLRStringStream(query);
CMSQueryLexer lexer = new CMSQueryLexer(stream);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
CMSQueryParser parser = new CMSQueryParser(tokenStream);
ParserRuleReturnScope result = null;
try {
result = parser.query();
} catch (RecognitionException re) {
throw new QueryParseException(QueryErrCodeEnum.PARSE_GRAMMER_ERROR, query, re);
}
CommonToken stopToken = (CommonToken) result.getStop();
if (stopToken.getStopIndex() != query.length() - 1) {
int stop = stopToken.getStopIndex();
String part = "none";
if (stop > 0) {
part = query.substring(0, stop + 1);
}
throw new QueryParseException(QueryErrCodeEnum.PARSE_GRAMMER_ERROR, "query - " + query + " syntax error! - Consumed query part : " + part + " !");
}
return (CommonTree)result.getTree();
}