Exemplo n.º 1
0
        public void AddToParser(ParserXBase pParser)
        {
            pParser.DefineConst("i", new Complex(0.0, 1.0));

            pParser.AddValueReader(new CmplxValReader());

            // Complex valued functions
            pParser.DefineFun(new FunCmplxReal());
            pParser.DefineFun(new FunCmplxImag());
            pParser.DefineFun(new FunCmplxConj());
            pParser.DefineFun(new FunCmplxArg());
            pParser.DefineFun(new FunCmplxNorm());
            pParser.DefineFun(new FunCmplxSin());
            pParser.DefineFun(new FunCmplxCos());
            pParser.DefineFun(new FunCmplxTan());
            pParser.DefineFun(new FunCmplxSinH());
            pParser.DefineFun(new FunCmplxCosH());
            pParser.DefineFun(new FunCmplxTanH());
            pParser.DefineFun(new FunCmplxSqrt());
            pParser.DefineFun(new FunCmplxExp());
            pParser.DefineFun(new FunCmplxLn());
            pParser.DefineFun(new FunCmplxLog());
            pParser.DefineFun(new FunCmplxLog2());
            pParser.DefineFun(new FunCmplxLog10());
            pParser.DefineFun(new FunCmplxAbs());
            pParser.DefineFun(new FunCmplxPow());

            // Complex valued operators
            pParser.DefineOprt(new OprtAddCmplx());
            pParser.DefineOprt(new OprtSubCmplx());
            pParser.DefineOprt(new OprtMulCmplx());
            pParser.DefineOprt(new OprtDivCmplx());
            pParser.DefineOprt(new OprtPowCmplx());
            pParser.DefineInfixOprt(new OprtSignCmplx());
        }
Exemplo n.º 2
0
        public void AddToParser(ParserXBase pParser)
        {
            pParser.AddValueReader(new NumericReader());

            pParser.DefineFun(new FunSin());
            pParser.DefineFun(new FunCos());
            pParser.DefineFun(new FunTan());
            pParser.DefineFun(new FunSinH());
            pParser.DefineFun(new FunCosH());
            pParser.DefineFun(new FunTanH());
            pParser.DefineFun(new FunASin());
            pParser.DefineFun(new FunACos());
            pParser.DefineFun(new FunATan());
            pParser.DefineFun(new FunASinH());
            pParser.DefineFun(new FunACosH());
            pParser.DefineFun(new FunATanH());
            pParser.DefineFun(new FunLog());
            pParser.DefineFun(new FunLog10());
            pParser.DefineFun(new FunLog2());
            pParser.DefineFun(new FunLn());
            pParser.DefineFun(new FunExp());
            pParser.DefineFun(new FunSqrt());
            pParser.DefineFun(new FunCbrt());
            pParser.DefineFun(new FunAbs());

            // binary functions
            pParser.DefineFun(new FunPow());
            pParser.DefineFun(new FunHypot());
            pParser.DefineFun(new FunAtan2());
            pParser.DefineFun(new FunFmod());
            pParser.DefineFun(new FunRemainder());

            // Operator callbacks
            pParser.DefineInfixOprt(new OprtSign());
            pParser.DefineInfixOprt(new OprtSignPos());
            pParser.DefineOprt(new OprtAdd());
            pParser.DefineOprt(new OprtSub());
            pParser.DefineOprt(new OprtMul());
            pParser.DefineOprt(new OprtDiv());
            pParser.DefineOprt(new OprtPow());
        }
Exemplo n.º 3
0
        public void AddToParser(ParserXBase pParser)
        {
            // Readers that need fancy decorations on their values must
            // be added first (i.e. hex . "0x...") Otherwise the
            // zero in 0x will be read as a value of zero!
            pParser.AddValueReader(new HexValReader());
            pParser.AddValueReader(new BinValReader());
            pParser.AddValueReader(new BoolValReader());

            // Constants
            pParser.DefineConst("pi", Math.PI);
            pParser.DefineConst("e", Math.E);

            // Vector
            pParser.DefineFun(new FunSizeOf());

            // Generic functions
            pParser.DefineFun(new FunMax());
            pParser.DefineFun(new FunMin());
            pParser.DefineFun(new FunSum());

            // misc
            pParser.DefineFun(new FunParserID());

            // integer package
            pParser.DefineOprt(new OprtLAnd());
            pParser.DefineOprt(new OprtLOr());
            pParser.DefineOprt(new OprtAnd());
            pParser.DefineOprt(new OprtOr());
            pParser.DefineOprt(new OprtShr());
            pParser.DefineOprt(new OprtShl());

            // booloean package
            pParser.DefineOprt(new OprtLE());
            pParser.DefineOprt(new OprtGE());
            pParser.DefineOprt(new OprtLT());
            pParser.DefineOprt(new OprtGT());
            pParser.DefineOprt(new OprtEQ());
            pParser.DefineOprt(new OprtNEQ());
            pParser.DefineOprt(new OprtLAnd("and"));  // add logic and with a different identifier
            pParser.DefineOprt(new OprtLOr("or"));    // add logic and with a different identifier
                                                      //  pParser.DefineOprt(new OprtBXor());

            // assignement operators
            pParser.DefineOprt(new OprtAssign());
            pParser.DefineOprt(new OprtAssignAdd());
            pParser.DefineOprt(new OprtAssignSub());
            pParser.DefineOprt(new OprtAssignMul());
            pParser.DefineOprt(new OprtAssignDiv());

            // infix operators
            pParser.DefineInfixOprt(new OprtCastToFloat());
            pParser.DefineInfixOprt(new OprtCastToInt());
            pParser.DefineInfixOprt(new OprtCastToChar());

            // postfix operators
            pParser.DefinePostfixOprt(new OprtFact());
            // <ibg 20130708> commented: "%" is a reserved sign for either the
            //                modulo operator or comment lines.
            pParser.DefinePostfixOprt(new OprtPercentage());
            // </ibg>
        }