IOperatorCalculator


This module has been removed in release 14.0.0. Use Script module instead.

Interface of class responsible for calculation of different operators.

You can find more information in comments below.

class IOperatorCalculator
    {
    public:
        // Calculate math simple 2 operand expression 
        virtual CVariable *Percent(CVariable *value1, CVariable *value2) = 0; // %
        virtual CVariable *Ampersand(CVariable *value1, CVariable *value2) = 0; // &
        virtual CVariable *Asterisk(CVariable *value1, CVariable *value2) = 0; // *
        virtual CVariable *Plus(CVariable *value1, CVariable *value2) = 0; // +
        virtual CVariable *Minus(CVariable *value1, CVariable *value2) = 0; // -
        virtual CVariable *Period(CVariable *value1, CVariable *value2) = 0; // .
        virtual CVariable *Slash(CVariable *value1, CVariable *value2) = 0; // /
        virtual CVariable *Less(CVariable *value1, CVariable *value2) = 0; // <
        virtual CVariable *Equal(CVariable *value1, CVariable *value2) = 0; // =
        virtual CVariable *Greater(CVariable *value1, CVariable *value2) = 0; // >
        virtual CVariable *Caret(CVariable *value1, CVariable *value2) = 0; // ^
        virtual CVariable *Pipe(CVariable *value1, CVariable *value2) = 0; // |
        virtual CVariable *ExclamationEqual(CVariable *value1, CVariable *value2) = 0; // !=
        virtual CVariable *Exclamation2Equal(CVariable *value1, CVariable *value2) = 0; // !==
        virtual CVariable *DoubleAmpersand(CVariable *value1, CVariable *value2) = 0; // &&
        virtual CVariable *LessEqual(CVariable *value1, CVariable *value2) = 0; // <=
        virtual CVariable *Less2Equal(CVariable *value1, CVariable *value2) = 0; // <==
        virtual CVariable *LessGreater(CVariable *value1, CVariable *value2) = 0; // <>
        virtual CVariable *DoubleLess(CVariable *value1, CVariable *value2) = 0; // <<
        virtual CVariable *DoubleEqual(CVariable *value1, CVariable *value2) = 0; // ==
        virtual CVariable *TripleEqual(CVariable *value1, CVariable *value2) = 0; // ===
        virtual CVariable *DoubleGreater(CVariable *value1, CVariable *value2) = 0; // >>
        virtual CVariable *GreaterEqual(CVariable *value1, CVariable *value2) = 0; // >=
        virtual CVariable *Greater2Equal(CVariable *value1, CVariable *value2) = 0; // >==
        virtual CVariable *DoublePipe(CVariable *value1, CVariable *value2) = 0; // ||
        virtual CVariable *SymAnd(CVariable *value1, CVariable *value2) = 0; // and
        virtual CVariable *SymOr(CVariable *value1, CVariable *value2) = 0; // or
        virtual CVariable *SymXor(CVariable *value1, CVariable *value2) = 0; // xor
        virtual CVariable *SymShr(CVariable *value1, CVariable *value2) = 0; // shr
        virtual CVariable *SymShl(CVariable *value1, CVariable *value2) = 0; // shl
        virtual CVariable *SymDiv(CVariable *value1, CVariable *value2) = 0; // div
        virtual CVariable *SymMod(CVariable *value1, CVariable *value2) = 0; // mod
    
        // Change value according to "pre" operator 
        virtual bool PreExclamation(CVariable *value) = 0; // !
        virtual bool PrePlus(CVariable *value) = 0; // +
        virtual bool PreMinus(CVariable *value) = 0; // -
        virtual bool Pre2Plus(CVariable *value) = 0; // ++
        virtual bool Pre2Minus(CVariable *value) = 0; // --
        virtual bool PreSymNot(CVariable *value) = 0; // not
    
        // Change value according to "post" operator 
        virtual bool Post2Plus(CVariable *value) = 0; // ++
        virtual bool Post2Minus(CVariable *value) = 0; // --
    
        virtual void Release() = 0;
    };
Namespace: nitisa::scripting
Include: Nitisa/Modules/Scripting/IOperatorCalculator.h