aladdinparser.java
来自「mysql集群」· Java 代码 · 共 2,114 行 · 第 1/5 页
JAVA
2,114 行
if(expression != null){
if(andExpression == null){
andExpression = new AndExpression();
}
andExpression.addExpression(expression);
}
}
jj_consume_token(133);
break;
default:
jj_la1[77] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
JoinCondition();
{if (true) return andExpression;}
throw new Error("Missing return statement in function");
}
final public Expression TableSpec() throws ParseException {
Expression expression = null;
Table table = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
table = TableReference();
break;
case K_TABLE:
case 132:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TABLE:
jj_consume_token(K_TABLE);
break;
default:
jj_la1[78] = jj_gen;
;
}
jj_consume_token(132);
expression = FullSelectStatement();
jj_consume_token(133);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
case IDENTIFIER:
CorrelationClause();
break;
default:
jj_la1[79] = jj_gen;
;
}
break;
default:
jj_la1[80] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public void JoinCondition() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ON:
jj_consume_token(K_ON);
SQLExpression();
break;
case K_USING:
jj_consume_token(K_USING);
jj_consume_token(132);
SQLExpression();
jj_consume_token(133);
break;
default:
jj_la1[81] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public Expression WhereClause() throws ParseException {
Expression expression;
jj_consume_token(K_WHERE);
expression = SQLExpression();
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public void CorrelationClause() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
jj_consume_token(K_AS);
break;
default:
jj_la1[82] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 132:
ColumnNames();
break;
default:
jj_la1[83] = jj_gen;
;
}
}
final public void ColumnNames() throws ParseException {
jj_consume_token(132);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[84] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
label_14:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 131:
;
break;
default:
jj_la1[85] = jj_gen;
break label_14;
}
jj_consume_token(131);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[86] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(133);
}
final public void GroupByClause() throws ParseException {
jj_consume_token(K_GROUP);
jj_consume_token(K_BY);
GroupByColumn();
label_15:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 131:
;
break;
default:
jj_la1[87] = jj_gen;
break label_15;
}
jj_consume_token(131);
GroupByColumn();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_HAVING:
jj_consume_token(K_HAVING);
SQLExpression();
break;
default:
jj_la1[88] = jj_gen;
;
}
}
final public void GroupByColumn() throws ParseException {
SQLSimpleExpression();
}
final public void OrderByClause() throws ParseException {
jj_consume_token(K_ORDER);
jj_consume_token(K_BY);
OrderByColumn();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_COMMA_IDENTIFIER:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[89] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[90] = jj_gen;
;
}
label_16:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 131:
;
break;
default:
jj_la1[91] = jj_gen;
break label_16;
}
jj_consume_token(131);
OrderByColumn();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_COMMA_IDENTIFIER:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[92] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[93] = jj_gen;
;
}
}
}
final public void OrderByColumn() throws ParseException {
SQLSimpleExpression();
}
final public Expression SQLExpression() throws ParseException {
OrExpression orExpression = null;
AndExpression andExpression = null;
Expression expression = null;
Token token;
int count = 0;
expression = SQLAndExpression();
orExpression = new OrExpression(expression);
label_17:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OR:
;
break;
default:
jj_la1[94] = jj_gen;
break label_17;
}
jj_consume_token(K_OR);
expression = SQLAndExpression();
count++;
orExpression.addExpression(expression);
}
if(count >0){
{if (true) return orExpression;}
}else{
{if (true) return expression;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLAndExpression() throws ParseException {
AndExpression andExpression = null;;
Expression expression;
Expression currentExpression;
expression = SQLUnaryLogicalExpression();
label_18:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AND:
;
break;
default:
jj_la1[95] = jj_gen;
break label_18;
}
jj_consume_token(K_AND);
currentExpression = SQLUnaryLogicalExpression();
if(andExpression == null && currentExpression != null){
andExpression = new AndExpression(expression);
}
if(currentExpression != null){
andExpression.addExpression(currentExpression);
}
}
if(andExpression != null){
{if (true) return andExpression;}
}else{
{if (true) return expression;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLUnaryLogicalExpression() throws ParseException {
Expression expression = null;
boolean not = false;
if (jj_2_13(2)) {
ExistsClause();
} else if (jj_2_14(1)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[96] = jj_gen;
;
}
expression = SQLRelationalExpression();
{if (true) return reverseExpression(not,expression);}
} else {
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public Expression ExistsClause() throws ParseException {
Expression expression = null;
boolean not = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[97] = jj_gen;
;
}
jj_consume_token(K_EXISTS);
jj_consume_token(132);
expression = FullSelectStatement();
jj_consume_token(133);
{if (true) return reverseExpression(not,expression);}
throw new Error("Missing return statement in function");
}
final public Expression SQLRelationalExpression() throws ParseException {
Expression expression = null;
Expression otherExpression = null;
String functionName = null;
int function = 0;
if (jj_2_15(2147483647)) {
jj_consume_token(132);
SQLExpressionList();
jj_consume_token(133);
} else if (jj_2_16(1)) {
expression = SQLSimpleExpression();
} else {
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_BETWEEN:
case K_IN:
case K_IS:
case K_LIKE:
case K_NOT:
case 130:
case 134:
case 135:
case 136:
case 137:
case 138:
case 139:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 130:
case 134:
case 135:
case 136:
case 137:
case 138:
case 139:
functionName = Relop();
function = Comparative.getComparisonByIdent(functionName);
otherExpression = SQLRelationalOperatorExpression();
if(expression == null || otherExpression == null){
{if (true) return null;}
}
if(expression instanceof ColumnExpression && !(otherExpression instanceof ColumnExpression)){
ColumnExpression colExp = (ColumnExpression)expression;
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setComparison(function);
comparativeExpression.setExpression(otherExpression);
colExp.setExpression(comparativeExpression);
{if (true) return colExp;}
}else if(!(expression instanceof ColumnExpression) && (otherExpression instanceof ColumnExpression)){
ColumnExpression colExp = (ColumnExpression)otherExpression;
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setComparison(Comparative.exchangeComparison(function));
comparativeExpression.setExpression(expression);
colExp.setExpression(comparativeExpression);
{if (true) return colExp;}
}else{
{if (true) return null;}
}
break;
default:
jj_la1[98] = jj_gen;
if (jj_2_17(2)) {
otherExpression = SQLInClause(expression);
{if (true) return otherExpression;}
} else if (jj_2_18(2)) {
otherExpression = SQLBetweenClause(expression);
{if (true) return otherExpression;}
} else if (jj_2_19(2)) {
otherExpression = S
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?