📄 expressionparser.java
字号:
} else {
l = new OrPredicate((Predicate)l,(Predicate)r);
}
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression XorExpression() throws ParseException {
Expression l, r;
l = AndExpression();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case XOR:
;
break;
default:
jj_la1[2] = jj_gen;
break label_2;
}
jj_consume_token(XOR);
r = AndExpression();
if ( l instanceof XorPredicate ) {
((XorPredicate)l).add((Predicate)r);
} else {
l = new XorPredicate((Predicate)l,(Predicate)r);
}
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression AndExpression() throws ParseException {
Expression l, r;
l = EqualityExpression();
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND:
;
break;
default:
jj_la1[3] = jj_gen;
break label_3;
}
jj_consume_token(AND);
r = EqualityExpression();
if ( l instanceof AndPredicate ) {
((AndPredicate)l).add((Predicate)r);
} else {
l = new AndPredicate((Predicate)l,(Predicate)r);
}
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression EqualityExpression() throws ParseException {
Expression l, r; Token t; int op;
l = RelationalExpression();
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ:
case NE:
;
break;
default:
jj_la1[4] = jj_gen;
break label_4;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ:
t = jj_consume_token(EQ);
break;
case NE:
t = jj_consume_token(NE);
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
r = RelationalExpression();
op = (t.kind==EQ ? ComparisonPredicate.EQ : ComparisonPredicate.NEQ);
l = new ComparisonPredicate(op, l, r);
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression RelationalExpression() throws ParseException {
Expression l, r; Token t; int op=-1;
l = AdditiveExpression();
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case GT:
case LT:
case LE:
case GE:
;
break;
default:
jj_la1[6] = jj_gen;
break label_5;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LT:
t = jj_consume_token(LT);
break;
case GT:
t = jj_consume_token(GT);
break;
case LE:
t = jj_consume_token(LE);
break;
case GE:
t = jj_consume_token(GE);
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
r = AdditiveExpression();
switch ( t.kind ) {
case LT:
op = ComparisonPredicate.LT;
break;
case GT:
op = ComparisonPredicate.GT;
break;
case LE:
op = ComparisonPredicate.LTEQ;
break;
case GE:
op = ComparisonPredicate.GTEQ;
break;
}
l = new ComparisonPredicate(op, l, r);
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression AdditiveExpression() throws ParseException {
Expression l, r; Token t; int op=-1;
l = MultiplicativeExpression();
label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ADD:
case SUB:
case MOD:
;
break;
default:
jj_la1[8] = jj_gen;
break label_6;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ADD:
t = jj_consume_token(ADD);
break;
case SUB:
t = jj_consume_token(SUB);
break;
case MOD:
t = jj_consume_token(MOD);
break;
default:
jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
r = MultiplicativeExpression();
switch ( t.kind ) {
case ADD:
op = ArithmeticExpression.ADD;
break;
case SUB:
op = ArithmeticExpression.SUB;
break;
case MOD:
op = ArithmeticExpression.MOD;
break;
}
l = new ArithmeticExpression(op, l, r);
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression MultiplicativeExpression() throws ParseException {
Expression l, r; Token t; int op=-1;
l = UnaryExpression();
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MUL:
case DIV:
case POW:
;
break;
default:
jj_la1[10] = jj_gen;
break label_7;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MUL:
t = jj_consume_token(MUL);
break;
case DIV:
t = jj_consume_token(DIV);
break;
case POW:
t = jj_consume_token(POW);
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
r = UnaryExpression();
switch ( t.kind ) {
case MUL:
op = ArithmeticExpression.MUL;
break;
case DIV:
op = ArithmeticExpression.DIV;
break;
case POW:
op = ArithmeticExpression.POW;
break;
}
l = new ArithmeticExpression(op, l, r);
}
{if (true) return l;}
throw new Error("Missing return statement in function");
}
static final public Expression UnaryExpression() throws ParseException {
Expression e; Token t;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ADD:
case SUB:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ADD:
t = jj_consume_token(ADD);
break;
case SUB:
t = jj_consume_token(SUB);
break;
default:
jj_la1[12] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
e = UnaryExpression();
if ( t.kind == SUB && e instanceof NumericLiteral ) {
Number n = (Number)e.get(null);
if ( n instanceof Integer ) {
{if (true) return new NumericLiteral(-1*n.intValue());}
} if ( n instanceof Double ) {
{if (true) return new NumericLiteral(-1*n.doubleValue());}
} if ( n instanceof Long ) {
{if (true) return new NumericLiteral(-1*n.longValue());}
} if ( n instanceof Float ) {
{if (true) return new NumericLiteral(-1*n.floatValue());}
} else {
{if (true) return new ArithmeticExpression(ArithmeticExpression.MUL,
new NumericLiteral(-1), e);}
}
} else if ( t.kind == SUB ) {
{if (true) return new ArithmeticExpression(ArithmeticExpression.MUL,
new NumericLiteral(-1), e);}
} else {
{if (true) return e;}
}
break;
case NOT:
e = UnaryExpressionNotPlusMinus();
{if (true) return e;}
break;
case TRUE:
case FALSE:
case NULL:
case IF:
case INT:
case LONG:
case DOUBLE:
case FLOAT:
case STRING:
case QUOTED:
case IDENTIFIER:
case LPAREN:
e = PrimaryExpression();
{if (true) return e;}
break;
default:
jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
Expression e;
jj_consume_token(NOT);
e = UnaryExpression();
if ( e instanceof NotPredicate ) {
{if (true) return ((NotPredicate)e).getPredicate();}
} else {
if ( !(e instanceof Predicate) ) {
{if (true) throw new ParseException("Can't negate a non-predicate");}
} else {
{if (true) return new NotPredicate((Predicate)e);}
}
}
throw new Error("Missing return statement in function");
}
static final public Expression PrimaryExpression() throws ParseException {
Expression e;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case TRUE:
case FALSE:
case NULL:
case INT:
case LONG:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -