Search in sources :

Example 6 with Assign

use of lucee.runtime.interpreter.ref.var.Assign in project Lucee by lucee.

the class CFMLExpressionInterpreter method _intdiv.

private Ref _intdiv(Ref ref) throws PageException {
    // \=
    if (cfml.forwardIfCurrent('=')) {
        cfml.removeSpace();
        Ref right = assignOp();
        Ref res = preciseMath ? new BigIntDiv(ref, right, limited) : new IntDiv(ref, right, limited);
        ref = new Assign(ref, res, limited);
    } else {
        cfml.removeSpace();
        ref = preciseMath ? new BigIntDiv(ref, expoOp(), limited) : new IntDiv(ref, expoOp(), limited);
    }
    return ref;
}
Also used : Ref(lucee.runtime.interpreter.ref.Ref) BigIntDiv(lucee.runtime.interpreter.ref.op.BigIntDiv) IntDiv(lucee.runtime.interpreter.ref.op.IntDiv) BigIntDiv(lucee.runtime.interpreter.ref.op.BigIntDiv) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign)

Example 7 with Assign

use of lucee.runtime.interpreter.ref.var.Assign in project Lucee by lucee.

the class CFMLExpressionInterpreter method negateMinusOp.

/**
 * Liest die Vordlobe einer Zahl ein
 * @return CFXD Element
 * @throws PageException
 */
private Ref negateMinusOp() throws PageException {
    // And Operation
    if (cfml.forwardIfCurrent('-')) {
        if (cfml.forwardIfCurrent('-')) {
            cfml.removeSpace();
            Ref expr = clip();
            Ref res = preciseMath ? new BigMinus(expr, new LNumber(new Double(1)), limited) : new Minus(expr, new LNumber(new Double(1)), limited);
            return new Assign(expr, res, limited);
        }
        cfml.removeSpace();
        return new Negate(clip(), limited);
    }
    if (cfml.forwardIfCurrent('+')) {
        if (cfml.forwardIfCurrent('+')) {
            cfml.removeSpace();
            Ref expr = clip();
            Ref res = preciseMath ? new BigPlus(expr, new LNumber(new Double(1)), limited) : new Plus(expr, new LNumber(new Double(1)), limited);
            return new Assign(expr, res, limited);
        }
        cfml.removeSpace();
        return new Casting("numeric", CFTypes.TYPE_NUMERIC, clip());
    }
    return clip();
}
Also used : Casting(lucee.runtime.interpreter.ref.cast.Casting) Ref(lucee.runtime.interpreter.ref.Ref) LNumber(lucee.runtime.interpreter.ref.literal.LNumber) BigPlus(lucee.runtime.interpreter.ref.op.BigPlus) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign) Negate(lucee.runtime.interpreter.ref.op.Negate) Plus(lucee.runtime.interpreter.ref.op.Plus) BigPlus(lucee.runtime.interpreter.ref.op.BigPlus) BigMinus(lucee.runtime.interpreter.ref.op.BigMinus) BigMinus(lucee.runtime.interpreter.ref.op.BigMinus) Minus(lucee.runtime.interpreter.ref.op.Minus)

Example 8 with Assign

use of lucee.runtime.interpreter.ref.var.Assign in project Lucee by lucee.

the class CFMLExpressionInterpreter method _concat.

private Ref _concat(Ref ref) throws PageException {
    // &=
    if (cfml.forwardIfCurrent('=')) {
        cfml.removeSpace();
        Ref right = assignOp();
        Ref res = new Concat(ref, right, limited);
        ref = new Assign(ref, res, limited);
    } else {
        cfml.removeSpace();
        ref = new Concat(ref, plusMinusOp(), limited);
    }
    return ref;
}
Also used : Concat(lucee.runtime.interpreter.ref.op.Concat) Ref(lucee.runtime.interpreter.ref.Ref) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign)

Example 9 with Assign

use of lucee.runtime.interpreter.ref.var.Assign in project Lucee by lucee.

the class CFMLExpressionInterpreter method _multi.

private Ref _multi(Ref ref) throws PageException {
    // \=
    if (cfml.forwardIfCurrent('=')) {
        cfml.removeSpace();
        Ref right = assignOp();
        Ref res = preciseMath ? new BigMulti(ref, right, limited) : new Multi(ref, right, limited);
        ref = new Assign(ref, res, limited);
    } else {
        cfml.removeSpace();
        ref = preciseMath ? new BigMulti(ref, expoOp(), limited) : new Multi(ref, expoOp(), limited);
    }
    return ref;
}
Also used : Ref(lucee.runtime.interpreter.ref.Ref) BigMulti(lucee.runtime.interpreter.ref.op.BigMulti) Multi(lucee.runtime.interpreter.ref.op.Multi) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign) BigMulti(lucee.runtime.interpreter.ref.op.BigMulti)

Aggregations

Ref (lucee.runtime.interpreter.ref.Ref)9 Assign (lucee.runtime.interpreter.ref.var.Assign)9 DynAssign (lucee.runtime.interpreter.ref.var.DynAssign)9 BigPlus (lucee.runtime.interpreter.ref.op.BigPlus)3 Plus (lucee.runtime.interpreter.ref.op.Plus)3 BigIntDiv (lucee.runtime.interpreter.ref.op.BigIntDiv)2 BigMinus (lucee.runtime.interpreter.ref.op.BigMinus)2 IntDiv (lucee.runtime.interpreter.ref.op.IntDiv)2 Minus (lucee.runtime.interpreter.ref.op.Minus)2 Casting (lucee.runtime.interpreter.ref.cast.Casting)1 LNumber (lucee.runtime.interpreter.ref.literal.LNumber)1 BigDiv (lucee.runtime.interpreter.ref.op.BigDiv)1 BigMod (lucee.runtime.interpreter.ref.op.BigMod)1 BigMulti (lucee.runtime.interpreter.ref.op.BigMulti)1 Concat (lucee.runtime.interpreter.ref.op.Concat)1 Div (lucee.runtime.interpreter.ref.op.Div)1 Mod (lucee.runtime.interpreter.ref.op.Mod)1 Multi (lucee.runtime.interpreter.ref.op.Multi)1 Negate (lucee.runtime.interpreter.ref.op.Negate)1