Search in sources :

Example 1 with Assign

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

the class CFMLExpressionInterpreter method _minus.

private Ref _minus(Ref ref) throws PageException {
    // -=
    if (cfml.isCurrent('=')) {
        cfml.next();
        cfml.removeSpace();
        Ref right = assignOp();
        Ref res = preciseMath ? new BigMinus(ref, right, limited) : new Minus(ref, right, limited);
        ref = new Assign(ref, res, limited);
    } else {
        cfml.removeSpace();
        ref = preciseMath ? new BigMinus(ref, modOp(), limited) : new Minus(ref, modOp(), limited);
    }
    return ref;
}
Also used : Ref(lucee.runtime.interpreter.ref.Ref) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign) BigMinus(lucee.runtime.interpreter.ref.op.BigMinus) BigMinus(lucee.runtime.interpreter.ref.op.BigMinus) Minus(lucee.runtime.interpreter.ref.op.Minus)

Example 2 with Assign

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

the class CFMLExpressionInterpreter method _plus.

private Ref _plus(Ref ref) throws PageException {
    // +=
    if (cfml.isCurrent('=')) {
        cfml.next();
        cfml.removeSpace();
        Ref right = assignOp();
        Ref res = preciseMath ? new BigPlus(ref, right, limited) : new Plus(ref, right, limited);
        ref = new Assign(ref, res, limited);
    } else {
        cfml.removeSpace();
        ref = preciseMath ? new BigPlus(ref, modOp(), limited) : new Plus(ref, modOp(), limited);
    }
    return ref;
}
Also used : Ref(lucee.runtime.interpreter.ref.Ref) BigPlus(lucee.runtime.interpreter.ref.op.BigPlus) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign) Plus(lucee.runtime.interpreter.ref.op.Plus) BigPlus(lucee.runtime.interpreter.ref.op.BigPlus)

Example 3 with Assign

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

the class CFMLExpressionInterpreter method _mod.

private Ref _mod(Ref ref) throws PageException {
    // %=
    if (cfml.forwardIfCurrent('=')) {
        cfml.removeSpace();
        Ref right = assignOp();
        Ref res = preciseMath ? new BigMod(ref, right, limited) : new Mod(ref, right, limited);
        ref = new Assign(ref, res, limited);
    } else {
        cfml.removeSpace();
        ref = preciseMath ? new BigMod(ref, divMultiOp(), limited) : new Mod(ref, divMultiOp(), limited);
    }
    return ref;
}
Also used : Ref(lucee.runtime.interpreter.ref.Ref) BigMod(lucee.runtime.interpreter.ref.op.BigMod) Mod(lucee.runtime.interpreter.ref.op.Mod) BigMod(lucee.runtime.interpreter.ref.op.BigMod) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign)

Example 4 with Assign

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

the class CFMLExpressionInterpreter method _div.

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

Example 5 with Assign

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

the class CFMLExpressionInterpreter method _unaryOp.

private Ref _unaryOp(Ref ref, boolean isPlus) throws PageException {
    cfml.removeSpace();
    Ref res = preciseMath ? new BigPlus(ref, isPlus ? PLUS_ONE : MINUS_ONE, limited) : new Plus(ref, isPlus ? PLUS_ONE : MINUS_ONE, limited);
    ref = new Assign(ref, res, limited);
    return preciseMath ? new BigPlus(ref, isPlus ? MINUS_ONE : PLUS_ONE, limited) : new Plus(ref, isPlus ? MINUS_ONE : PLUS_ONE, limited);
}
Also used : Ref(lucee.runtime.interpreter.ref.Ref) BigPlus(lucee.runtime.interpreter.ref.op.BigPlus) Assign(lucee.runtime.interpreter.ref.var.Assign) DynAssign(lucee.runtime.interpreter.ref.var.DynAssign) Plus(lucee.runtime.interpreter.ref.op.Plus) BigPlus(lucee.runtime.interpreter.ref.op.BigPlus)

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