📄 dqlbaseparser.java
字号:
// $ANTLR 2.7.6 (2005-12-22): "/C:/Java/jboss-4.0.1sp1/server/test/deploy/webapp.war/WEB-INF/classes/cn/myapps/core/dynaform/document/dql/dql.g" -> "DqlBaseParser.java"$
package cn.myapps.core.dynaform.document.dql;
import org.hibernate.hql.ast.*;
import org.hibernate.hql.ast.util.*;
import cn.myapps.base.action.ParamsTable;
import antlr.TokenBuffer;
import antlr.TokenStreamException;
import antlr.TokenStreamIOException;
import antlr.ANTLRException;
import antlr.LLkParser;
import antlr.Token;
import antlr.TokenStream;
import antlr.RecognitionException;
import antlr.NoViableAltException;
import antlr.MismatchedTokenException;
import antlr.SemanticException;
import antlr.ParserSharedInputState;
import antlr.collections.impl.BitSet;
import antlr.collections.AST;
import java.util.Hashtable;
import antlr.ASTFactory;
import antlr.ASTPair;
import antlr.collections.impl.ASTArray;
public class DqlBaseParser extends antlr.LLkParser implements DqlTokenTypes
{
/** True if this is a filter query (allow no FROM clause). **/
private boolean filter = false;
/**
* Sets the filter flag.
* @param f True for a filter query, false for a normal query.
*/
public void setFilter(boolean f) {
filter = f;
}
/**
* Returns true if this is a filter query, false if not.
* @return true if this is a filter query, false if not.
*/
public boolean isFilter() {
return filter;
}
/**
* This method is overriden in the sub class in order to provide the
* 'keyword as identifier' hack.
* @param token The token to retry as an identifier.
* @param ex The exception to throw if it cannot be retried as an identifier.
*/
public AST handleIdentifierError(Token token,RecognitionException ex) throws RecognitionException, TokenStreamException {
// Base implementation: Just re-throw the exception.
throw ex;
}
/**
* This method looks ahead and converts . <token> into . IDENT when
* appropriate.
*/
public void handleDotIdent() throws TokenStreamException {
}
/**
* Returns the negated equivalent of the expression.
* @param x The expression to negate.
*/
public AST negateNode(AST x) {
// Just create a 'not' parent for the default behavior.
return ASTUtil.createParent(astFactory, NOT, "not", x);
}
/**
* Returns the 'cleaned up' version of a comparison operator sub-tree.
* @param x The comparison operator to clean up.
*/
public AST processEqualityExpression(AST x) throws RecognitionException {
return x;
}
public void weakKeywords() throws TokenStreamException { }
public void processMemberOf(Token n,AST p,ASTPair currentAST) { }
protected DqlBaseParser(TokenBuffer tokenBuf, int k) {
super(tokenBuf,k);
tokenNames = _tokenNames;
buildTokenTypeASTClassMap();
astFactory = new ASTFactory(getTokenTypeToASTClassMap());
}
public DqlBaseParser(TokenBuffer tokenBuf) {
this(tokenBuf,3);
}
protected DqlBaseParser(TokenStream lexer, int k) {
super(lexer,k);
tokenNames = _tokenNames;
buildTokenTypeASTClassMap();
astFactory = new ASTFactory(getTokenTypeToASTClassMap());
}
public DqlBaseParser(TokenStream lexer) {
this(lexer,3);
}
public DqlBaseParser(ParserSharedInputState state) {
super(state,3);
tokenNames = _tokenNames;
buildTokenTypeASTClassMap();
astFactory = new ASTFactory(getTokenTypeToASTClassMap());
}
public final void setClause() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST setClause_AST = null;
try { // for error handling
{
AST tmp22_AST = null;
tmp22_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp22_AST);
match(SET);
assignment();
astFactory.addASTChild(currentAST, returnAST);
{
_loop4:
do {
if ((LA(1)==COMMA)) {
match(COMMA);
assignment();
astFactory.addASTChild(currentAST, returnAST);
}
else {
break _loop4;
}
} while (true);
}
}
setClause_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_0);
}
returnAST = setClause_AST;
}
public final void assignment() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST assignment_AST = null;
try { // for error handling
stateField();
astFactory.addASTChild(currentAST, returnAST);
AST tmp24_AST = null;
tmp24_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp24_AST);
match(EQ);
newValue();
astFactory.addASTChild(currentAST, returnAST);
assignment_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_1);
}
returnAST = assignment_AST;
}
public final void stateField() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST stateField_AST = null;
try { // for error handling
path();
astFactory.addASTChild(currentAST, returnAST);
stateField_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_2);
}
returnAST = stateField_AST;
}
public final void newValue() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST newValue_AST = null;
try { // for error handling
concatenation();
astFactory.addASTChild(currentAST, returnAST);
newValue_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_1);
}
returnAST = newValue_AST;
}
public final void path() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST path_AST = null;
try { // for error handling
identifier();
astFactory.addASTChild(currentAST, returnAST);
{
_loop110:
do {
if ((LA(1)==DOT)) {
AST tmp25_AST = null;
tmp25_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp25_AST);
match(DOT);
weakKeywords();
identifier();
astFactory.addASTChild(currentAST, returnAST);
}
else {
break _loop110;
}
} while (true);
}
path_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_3);
}
returnAST = path_AST;
}
public final void concatenation() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST concatenation_AST = null;
Token c = null;
AST c_AST = null;
try { // for error handling
additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
{
switch ( LA(1)) {
case CONCAT:
{
c = LT(1);
c_AST = astFactory.create(c);
astFactory.makeASTRoot(currentAST, c_AST);
match(CONCAT);
c_AST.setType(EXPR_LIST); c_AST.setText("concatList");
additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop44:
do {
if ((LA(1)==CONCAT)) {
match(CONCAT);
additiveExpression();
astFactory.addASTChild(currentAST, returnAST);
}
else {
break _loop44;
}
} while (true);
}
concatenation_AST = (AST)currentAST.root;
concatenation_AST = (AST)astFactory.make( (new ASTArray(3)).add(astFactory.create(METHOD_CALL,"||")).add((AST)astFactory.make( (new ASTArray(1)).add(astFactory.create(IDENT,"concat")))).add(c_AST));
currentAST.root = concatenation_AST;
currentAST.child = concatenation_AST!=null &&concatenation_AST.getFirstChild()!=null ?
concatenation_AST.getFirstChild() : concatenation_AST;
currentAST.advanceChildToEnd();
break;
}
case EOF:
case AND:
case BETWEEN:
case ESCAPE:
case IN:
case IS:
case LIKE:
case ILIKE:
case NOT:
case OR:
case THEN:
case MEMBER:
case COMMA:
case EQ:
case NE:
case SQL_NE:
case LT:
case GT:
case LE:
case GE:
case CLOSE:
case CLOSE_BRACKET:
{
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
concatenation_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_4);
}
returnAST = concatenation_AST;
}
public final void withClause() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST withClause_AST = null;
try { // for error handling
AST tmp27_AST = null;
tmp27_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp27_AST);
match(WITH);
logicalExpression();
astFactory.addASTChild(currentAST, returnAST);
withClause_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_0);
}
returnAST = withClause_AST;
}
public final void logicalExpression() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST logicalExpression_AST = null;
try { // for error handling
expression();
astFactory.addASTChild(currentAST, returnAST);
logicalExpression_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_5);
}
returnAST = logicalExpression_AST;
}
public final void expression() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST expression_AST = null;
try { // for error handling
logicalOrExpression();
astFactory.addASTChild(currentAST, returnAST);
expression_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_6);
}
returnAST = expression_AST;
}
public final void logicalOrExpression() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST logicalOrExpression_AST = null;
try { // for error handling
logicalAndExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop13:
do {
if ((LA(1)==OR)) {
AST tmp28_AST = null;
tmp28_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp28_AST);
match(OR);
logicalAndExpression();
astFactory.addASTChild(currentAST, returnAST);
}
else {
break _loop13;
}
} while (true);
}
logicalOrExpression_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_6);
}
returnAST = logicalOrExpression_AST;
}
public final void logicalAndExpression() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST logicalAndExpression_AST = null;
try { // for error handling
negatedExpression();
astFactory.addASTChild(currentAST, returnAST);
{
_loop16:
do {
if ((LA(1)==AND)) {
AST tmp29_AST = null;
tmp29_AST = astFactory.create(LT(1));
astFactory.makeASTRoot(currentAST, tmp29_AST);
match(AND);
negatedExpression();
astFactory.addASTChild(currentAST, returnAST);
}
else {
break _loop16;
}
} while (true);
}
logicalAndExpression_AST = (AST)currentAST.root;
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_7);
}
returnAST = logicalAndExpression_AST;
}
public final void negatedExpression() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST negatedExpression_AST = null;
AST x_AST = null;
AST y_AST = null;
weakKeywords();
try { // for error handling
switch ( LA(1)) {
case NOT:
{
AST tmp30_AST = null;
tmp30_AST = astFactory.create(LT(1));
match(NOT);
negatedExpression();
x_AST = (AST)returnAST;
negatedExpression_AST = (AST)currentAST.root;
negatedExpression_AST = negateNode(x_AST);
currentAST.root = negatedExpression_AST;
currentAST.child = negatedExpression_AST!=null &&negatedExpression_AST.getFirstChild()!=null ?
negatedExpression_AST.getFirstChild() : negatedExpression_AST;
currentAST.advanceChildToEnd();
break;
}
case ALL:
case ANY:
case AVG:
case COUNT:
case ELEMENTS:
case EXISTS:
case FALSE:
case INDICES:
case MAX:
case MIN:
case NULL:
case SOME:
case SUM:
case TRUE:
case CASE:
case EMPTY:
case NUM_DOUBLE:
case NUM_FLOAT:
case NUM_LONG:
case PLUS:
case MINUS:
case OPEN:
case COLON:
case PARAM:
case NUM_INT:
case QUOTED_STRING:
case IDENT:
{
equalityExpression();
y_AST = (AST)returnAST;
negatedExpression_AST = (AST)currentAST.root;
negatedExpression_AST = y_AST;
currentAST.root = negatedExpression_AST;
currentAST.child = negatedExpression_AST!=null &&negatedExpression_AST.getFirstChild()!=null ?
negatedExpression_AST.getFirstChild() : negatedExpression_AST;
currentAST.advanceChildToEnd();
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
catch (RecognitionException ex) {
reportError(ex);
recover(ex,_tokenSet_8);
}
returnAST = negatedExpression_AST;
}
public final void equalityExpression() throws RecognitionException, TokenStreamException {
returnAST = null;
ASTPair currentAST = new ASTPair();
AST equalityExpression_AST = null;
AST x_AST = null;
Token is = null;
AST is_AST = null;
Token ne = null;
AST ne_AST = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -