* @throws ParsingException in case any exception occurs during parsing
*/
public <T> T parseQuery(String queryString, AstProcessingChain<T> processingChain) throws ParsingException {
HQLLexer lexer = new HQLLexer( new ANTLRStringStream( queryString ) );
CommonTokenStream tokens = new CommonTokenStream( lexer );
HQLParser parser = new HQLParser( tokens );
try {
// parser#statement() is the entry point for evaluation of any kind of statement
HQLParser.statement_return r = parser.statement();
if ( parser.hasErrors() ) {
throw log.getInvalidQuerySyntaxException( queryString, parser.getErrorMessages() );
}
String unconsumedTokens = getUnconsumedTokens( tokens );
if ( unconsumedTokens != null ) {
throw log.getInvalidQuerySyntaxDueToUnconsumedTokensException( queryString, unconsumedTokens );