org.hibernate.hql.ast
Class HqlParser

java.lang.Object
  extended byantlr.Parser
      extended byantlr.LLkParser
          extended byorg.hibernate.hql.antlr.HqlBaseParser
              extended byorg.hibernate.hql.ast.HqlParser
All Implemented Interfaces:
HqlTokenTypes

public final class HqlParser
extends HqlBaseParser

Implements the semantic action methods defined in the HQL base parser to keep the grammar source file a little cleaner. Extends the parser class generated by ANTLR.

Author:
Joshua Davis (pgmjsd@sourceforge.net)

Field Summary
 
Fields inherited from class org.hibernate.hql.antlr.HqlBaseParser
_tokenNames, _tokenSet_0, _tokenSet_1, _tokenSet_10, _tokenSet_11, _tokenSet_12, _tokenSet_13, _tokenSet_14, _tokenSet_15, _tokenSet_16, _tokenSet_17, _tokenSet_18, _tokenSet_19, _tokenSet_2, _tokenSet_20, _tokenSet_21, _tokenSet_22, _tokenSet_23, _tokenSet_24, _tokenSet_25, _tokenSet_26, _tokenSet_27, _tokenSet_28, _tokenSet_29, _tokenSet_3, _tokenSet_30, _tokenSet_31, _tokenSet_32, _tokenSet_33, _tokenSet_34, _tokenSet_35, _tokenSet_4, _tokenSet_5, _tokenSet_6, _tokenSet_7, _tokenSet_8, _tokenSet_9
 
Fields inherited from class antlr.Parser
astFactory, inputState, returnAST, tokenNames, tokenTypeToASTClassMap, traceDepth
 
Fields inherited from interface org.hibernate.hql.antlr.HqlTokenTypes
AGGREGATE, ALIAS, ALL, AND, ANY, AS, ASCENDING, AVG, BETWEEN, BOTH, CASE, CASE2, CLASS, CLOSE, CLOSE_BRACKET, COLON, COMMA, CONCAT, CONSTANT, CONSTRUCTOR, COUNT, DELETE, DESCENDING, DISTINCT, DIV, DOT, ELEMENTS, ELSE, EMPTY, END, EOF, EQ, ESCAPE, ESCqs, EXISTS, EXPONENT, EXPR_LIST, FALSE, FETCH, FILTER_ENTITY, FLOAT_SUFFIX, FROM, FULL, GE, GROUP, GT, HAVING, HEX_DIGIT, ID_LETTER, ID_START_LETTER, IDENT, IN, IN_LIST, INDEX_OP, INDICES, INNER, INSERT, INTO, IS, IS_NOT_NULL, IS_NULL, JAVA_CONSTANT, JOIN, LE, LEADING, LEFT, LIKE, LITERAL_ascending, LITERAL_by, LITERAL_descending, LT, MAX, MEMBER, METHOD_CALL, MIN, MINUS, NE, NEW, NOT, NOT_BETWEEN, NOT_IN, NOT_LIKE, NULL, NULL_TREE_LOOKAHEAD, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OBJECT, OF, ON, OPEN, OPEN_BRACKET, OR, ORDER, ORDER_ELEMENT, OUTER, PARAM, PLUS, PROPERTIES, QUERY, QUOTED_STRING, RANGE, RIGHT, ROW_STAR, SELECT, SELECT_FROM, SET, SOME, SQL_NE, STAR, SUM, THEN, TRAILING, TRUE, UNARY_MINUS, UNARY_PLUS, UNION, UPDATE, VECTOR_EXPR, VERSIONED, WEIRD_IDENT, WHEN, WHERE, WITH, WS
 
Method Summary
static HqlParser getInstance(String hql)
           
 ParseErrorHandler getParseErrorHandler()
           
 void handleDotIdent()
          This method looks ahead and converts .
 antlr.collections.AST handleIdentifierError(antlr.Token token, antlr.RecognitionException ex)
          Overrides the base behavior to retry keywords as identifiers.
 antlr.collections.AST negateNode(antlr.collections.AST x)
          Returns an equivalent tree for (NOT (a relop b) ), for example:
static void panic()
           
 antlr.collections.AST processEqualityExpression(antlr.collections.AST x)
          Post process equality expressions, clean up the subtree.
 void processMemberOf(antlr.Token n, antlr.collections.AST p, antlr.ASTPair currentAST)
           
 void reportError(antlr.RecognitionException e)
           
 void reportError(String s)
           
 void reportWarning(String s)
           
 void showAst(antlr.collections.AST ast, PrintStream out)
           
 void weakKeywords()
           
 
Methods inherited from class org.hibernate.hql.antlr.HqlBaseParser
additiveExpression, aggregate, alias, aliasedExpression, altWhenClause, asAlias, ascendingOrDescending, assignment, atom, betweenList, buildTokenTypeASTClassMap, caseExpression, collectionExpr, compoundExpr, concatenation, constant, deleteStatement, elseClause, equalityExpression, expression, expressionOrVector, exprList, fromClassOrOuterQueryPath, fromClause, fromJoin, fromRange, groupByClause, havingClause, identifier, identPrimary, inClassDeclaration, inCollectionDeclaration, inCollectionElementsDeclaration, inList, insertablePropertySpec, insertStatement, intoClause, isFilter, likeEscape, logicalAndExpression, logicalExpression, logicalOrExpression, multiplyExpression, negatedExpression, newExpression, newValue, optionalFromTokenFromClause, orderByClause, orderElement, path, primaryExpression, propertyFetch, quantifiedExpression, queryRule, relationalExpression, selectClause, selectedPropertiesList, selectFrom, selectObject, selectStatement, setClause, setFilter, stateField, statement, subQuery, unaryExpression, union, updateStatement, vectorExpr, whenClause, whereClause, withClause
 
Methods inherited from class antlr.LLkParser
consume, LA, LT, traceIn, traceOut
 
Methods inherited from class antlr.Parser
addMessageListener, addParserListener, addParserMatchListener, addParserTokenListener, addSemanticPredicateListener, addSyntacticPredicateListener, addTraceListener, consumeUntil, consumeUntil, defaultDebuggingSetup, getAST, getASTFactory, getFilename, getInputState, getTokenName, getTokenNames, getTokenTypeToASTClassMap, isDebugMode, mark, match, match, matchNot, recover, removeMessageListener, removeParserListener, removeParserMatchListener, removeParserTokenListener, removeSemanticPredicateListener, removeSyntacticPredicateListener, removeTraceListener, rewind, setASTFactory, setASTNodeClass, setASTNodeType, setDebugMode, setFilename, setIgnoreInvalidDebugCalls, setInputState, setTokenBuffer, traceIndent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static HqlParser getInstance(String hql)

reportError

public void reportError(antlr.RecognitionException e)

reportError

public void reportError(String s)

reportWarning

public void reportWarning(String s)

getParseErrorHandler

public ParseErrorHandler getParseErrorHandler()

handleIdentifierError

public antlr.collections.AST handleIdentifierError(antlr.Token token,
                                                   antlr.RecognitionException ex)
                                            throws antlr.RecognitionException,
                                                   antlr.TokenStreamException
Overrides the base behavior to retry keywords as identifiers.

Overrides:
handleIdentifierError in class HqlBaseParser
Parameters:
token - The token.
ex - The recognition exception.
Returns:
AST - The new AST.
Throws:
antlr.RecognitionException - if the substitution was not possible.
antlr.TokenStreamException - if the substitution was not possible.

negateNode

public antlr.collections.AST negateNode(antlr.collections.AST x)
Returns an equivalent tree for (NOT (a relop b) ), for example:
 (NOT (GT a b) ) => (LE a b)
 

Overrides:
negateNode in class HqlBaseParser
Parameters:
x - The sub tree to transform, the parent is assumed to be NOT.
Returns:
AST - The equivalent sub-tree.

processEqualityExpression

public antlr.collections.AST processEqualityExpression(antlr.collections.AST x)
Post process equality expressions, clean up the subtree.

Overrides:
processEqualityExpression in class HqlBaseParser
Parameters:
x - The equality expression.
Returns:
AST - The clean sub-tree.

showAst

public void showAst(antlr.collections.AST ast,
                    PrintStream out)

weakKeywords

public void weakKeywords()
                  throws antlr.TokenStreamException
Overrides:
weakKeywords in class HqlBaseParser
Throws:
antlr.TokenStreamException

handleDotIdent

public void handleDotIdent()
                    throws antlr.TokenStreamException
Description copied from class: HqlBaseParser
This method looks ahead and converts . into . IDENT when appropriate.

Overrides:
handleDotIdent in class HqlBaseParser
Throws:
antlr.TokenStreamException

processMemberOf

public void processMemberOf(antlr.Token n,
                            antlr.collections.AST p,
                            antlr.ASTPair currentAST)
Overrides:
processMemberOf in class HqlBaseParser

panic

public static void panic()