Search in sources :

Example 1 with IncDecExpression

use of org.beetl.core.statement.IncDecExpression in project beetl2.0 by javamonkey.

the class AntlrProgramBuilder method parseIncDecOneContext.

protected IncDecExpression parseIncDecOneContext(IncDecOneContext ctx) {
    IncDecExpression exp = null;
    boolean isInc = ctx.INCREASE() != null;
    GrammarToken t = this.getBTToken(ctx.Identifier().getSymbol());
    exp = new IncDecExpression(isInc, false, t);
    this.pbCtx.setVarPosition(t.text, exp);
    return exp;
}
Also used : IncDecExpression(org.beetl.core.statement.IncDecExpression) GrammarToken(org.beetl.core.statement.GrammarToken)

Example 2 with IncDecExpression

use of org.beetl.core.statement.IncDecExpression 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();
    }
}
Also used : CompareExpContext(org.beetl.core.parser.BeetlParser.CompareExpContext) NotExpContext(org.beetl.core.parser.BeetlParser.NotExpContext) NativeCallExpContext(org.beetl.core.parser.BeetlParser.NativeCallExpContext) OrExpContext(org.beetl.core.parser.BeetlParser.OrExpContext) CompareExpression(org.beetl.core.statement.CompareExpression) FunctionCallExpContext(org.beetl.core.parser.BeetlParser.FunctionCallExpContext) OneIncDecContext(org.beetl.core.parser.BeetlParser.OneIncDecContext) FunctionExpression(org.beetl.core.statement.FunctionExpression) VarRefExpContext(org.beetl.core.parser.BeetlParser.VarRefExpContext) NativeCallContext(org.beetl.core.parser.BeetlParser.NativeCallContext) NativeNotAllowedException(org.beetl.core.exception.NativeNotAllowedException) TernaryExpContext(org.beetl.core.parser.BeetlParser.TernaryExpContext) IncDecExpression(org.beetl.core.statement.IncDecExpression) AssignGeneralInExpContext(org.beetl.core.parser.BeetlParser.AssignGeneralInExpContext) MVCStrictException(org.beetl.core.exception.MVCStrictException) ParExpContext(org.beetl.core.parser.BeetlParser.ParExpContext) ArthExpression(org.beetl.core.statement.ArthExpression) LiteralExpContext(org.beetl.core.parser.BeetlParser.LiteralExpContext) MuldivmodExpContext(org.beetl.core.parser.BeetlParser.MuldivmodExpContext) AndExpContext(org.beetl.core.parser.BeetlParser.AndExpContext) JsonExpContext(org.beetl.core.parser.BeetlParser.JsonExpContext) VarRefAssignExpress(org.beetl.core.statement.VarRefAssignExpress) NativeCallExpression(org.beetl.core.statement.NativeCallExpression) JsonContext(org.beetl.core.parser.BeetlParser.JsonContext) NegExpContext(org.beetl.core.parser.BeetlParser.NegExpContext) AddminExpContext(org.beetl.core.parser.BeetlParser.AddminExpContext) IncDecOneContext(org.beetl.core.parser.BeetlParser.IncDecOneContext)

Example 3 with IncDecExpression

use of org.beetl.core.statement.IncDecExpression in project beetl2.0 by javamonkey.

the class AntlrProgramBuilder method parseOneIncDecContext.

protected IncDecExpression parseOneIncDecContext(OneIncDecContext ctx) {
    IncDecExpression exp = null;
    boolean isInc = ctx.INCREASE() != null;
    GrammarToken t = this.getBTToken(ctx.Identifier().getSymbol());
    exp = new IncDecExpression(isInc, true, t);
    this.pbCtx.setVarPosition(t.text, exp);
    return exp;
}
Also used : IncDecExpression(org.beetl.core.statement.IncDecExpression) GrammarToken(org.beetl.core.statement.GrammarToken)

Aggregations

IncDecExpression (org.beetl.core.statement.IncDecExpression)3 GrammarToken (org.beetl.core.statement.GrammarToken)2 MVCStrictException (org.beetl.core.exception.MVCStrictException)1 NativeNotAllowedException (org.beetl.core.exception.NativeNotAllowedException)1 AddminExpContext (org.beetl.core.parser.BeetlParser.AddminExpContext)1 AndExpContext (org.beetl.core.parser.BeetlParser.AndExpContext)1 AssignGeneralInExpContext (org.beetl.core.parser.BeetlParser.AssignGeneralInExpContext)1 CompareExpContext (org.beetl.core.parser.BeetlParser.CompareExpContext)1 FunctionCallExpContext (org.beetl.core.parser.BeetlParser.FunctionCallExpContext)1 IncDecOneContext (org.beetl.core.parser.BeetlParser.IncDecOneContext)1 JsonContext (org.beetl.core.parser.BeetlParser.JsonContext)1 JsonExpContext (org.beetl.core.parser.BeetlParser.JsonExpContext)1 LiteralExpContext (org.beetl.core.parser.BeetlParser.LiteralExpContext)1 MuldivmodExpContext (org.beetl.core.parser.BeetlParser.MuldivmodExpContext)1 NativeCallContext (org.beetl.core.parser.BeetlParser.NativeCallContext)1 NativeCallExpContext (org.beetl.core.parser.BeetlParser.NativeCallExpContext)1 NegExpContext (org.beetl.core.parser.BeetlParser.NegExpContext)1 NotExpContext (org.beetl.core.parser.BeetlParser.NotExpContext)1 OneIncDecContext (org.beetl.core.parser.BeetlParser.OneIncDecContext)1 OrExpContext (org.beetl.core.parser.BeetlParser.OrExpContext)1