use of org.beetl.core.statement.CompareExpression in project beetl2.0 by javamonkey.
the class AntlrProgramBuilder method parseCompareExpression.
protected CompareExpression parseCompareExpression(CompareExpContext ctx) {
Expression a = this.parseExpress(ctx.expression(0));
Expression b = this.parseExpress(ctx.expression(1));
TerminalNode tn = (TerminalNode) ctx.children.get(1);
short mode = 0;
if (ctx.EQUAL() != null) {
mode = 0;
} else if (ctx.NOT_EQUAL() != null) {
mode = 1;
} else if (ctx.LARGE() != null) {
mode = 2;
} else if (ctx.LARGE_EQUAL() != null) {
mode = 3;
} else if (ctx.LESS() != null) {
mode = 4;
} else if (ctx.LESS_EQUAL() != null) {
mode = 5;
}
return new CompareExpression(a, b, mode, this.getBTToken(tn.getSymbol()));
}
use of org.beetl.core.statement.CompareExpression in project beetl2.0 by javamonkey.
the class AntlrProgramBuilder method parseExpress.
protected Expression parseExpress(ExpressionContext ctx) {
if (ctx == null)
return null;
if (ctx instanceof LiteralExpContext) {
return parseLiteralExpress(((LiteralExpContext) ctx).literal());
} else if (ctx instanceof VarRefExpContext) {
return this.parseVarRefExpression(((VarRefExpContext) ctx).varRef());
} else if (ctx instanceof CompareExpContext) {
CompareExpression compare = parseCompareExpression((CompareExpContext) ctx);
if (gt.conf.isStrict) {
throw new MVCStrictException(compare.token);
}
return compare;
} else if (ctx instanceof TernaryExpContext) {
return this.parseTernaryExpression((TernaryExpContext) ctx);
} else if (ctx instanceof MuldivmodExpContext) {
ArthExpression arth = this.parseMuldivmodExpression((MuldivmodExpContext) ctx);
if (gt.conf.isStrict) {
throw new MVCStrictException(arth.token);
}
return arth;
} else if (ctx instanceof AddminExpContext) {
return this.parsePlusMins((AddminExpContext) ctx);
} else if (ctx instanceof ParExpContext) {
ParExpContext par = (ParExpContext) ctx;
return this.parseExpress(par.expression());
} else if (ctx instanceof FunctionCallExpContext) {
FunctionCallExpContext fceCtx = (FunctionCallExpContext) ctx;
FunctionExpression fun = parseFunExp(fceCtx.functionCall());
if (gt.conf.isStrict) {
throw new MVCStrictException(fun.token);
}
return fun;
} else if (ctx instanceof JsonExpContext) {
JsonContext jc = ((JsonExpContext) ctx).json();
return this.parseJson(jc);
} else if (ctx instanceof NativeCallExpContext) {
NativeCallContext ncc = ((NativeCallExpContext) ctx).nativeCall();
NativeCallExpression nativeCall = this.parseNativeCallExpression(ncc);
if (!gt.conf.nativeCall || gt.conf.isStrict) {
throw new NativeNotAllowedException(nativeCall.token);
}
return nativeCall;
} else if (ctx instanceof AndExpContext) {
AndExpContext andCtx = (AndExpContext) ctx;
return this.parseAndExpression(andCtx);
} else if (ctx instanceof OrExpContext) {
OrExpContext orExp = (OrExpContext) ctx;
return this.parseOrExpression(orExp);
} else if (ctx instanceof NotExpContext) {
NotExpContext notCtx = (NotExpContext) ctx;
return this.parseNotExpression(notCtx);
} else if (ctx instanceof NegExpContext) {
NegExpContext negCtx = (NegExpContext) ctx;
return this.parseNegExpression(negCtx);
} else if (ctx instanceof IncDecOneContext) {
IncDecOneContext oneCtx = (IncDecOneContext) ctx;
IncDecExpression exp = this.parseIncDecOneContext(oneCtx);
if (gt.conf.isStrict) {
throw new NativeNotAllowedException(exp.token);
}
return exp;
} else if (ctx instanceof OneIncDecContext) {
OneIncDecContext oneCtx = (OneIncDecContext) ctx;
IncDecExpression exp = this.parseOneIncDecContext(oneCtx);
if (gt.conf.isStrict) {
throw new NativeNotAllowedException(exp.token);
}
return exp;
} else if (ctx instanceof AssignGeneralInExpContext) {
AssignGeneralInExpContext agc = (AssignGeneralInExpContext) ctx;
VarRefAssignExpress vas = this.parseAssingInExp(agc);
return vas;
} else {
throw new UnsupportedOperationException();
}
}
Aggregations