Example #1
0
        public override void Eval(ref IValue ret, IValue[] a_pArg)
        {
            ParserXBase.EnableDebugDump(false, false);
            var pt = new ParserTester();

            pt.Run();
            ret = 0;
        }
Example #2
0
        public override void Eval(ref IValue ret, IValue[] a_pArg)
        {
            bool bo = a_pArg[0].GetBool();
            bool so = a_pArg[1].GetBool();

            Console.WriteLine($"Bytecode output {(bo ? "de" : "")}activated.");
            Console.WriteLine($"Stack output {(so ? "de" : "")}activated.");
            ParserXBase.EnableDebugDump(so, bo);
            ret = 0;
        }
Example #3
0
            private static void Initialise(ParserX parser)
            {
                // Create an array variable
                Value arr1 = new Value(3, 0);

                arr1[0] = (1.0);
                arr1[1] = 2.0;
                arr1[2] = 3.0;

                Value arr2 = new Value(3, 0);

                arr2[0] = 4.0;
                arr2[1] = 3.0;
                arr2[2] = 2.0;

                Value arr3 = new Value(4, 0);

                arr3[0] = 1.0;
                arr3[1] = 2.0;
                arr3[2] = 3.0;
                arr3[3] = 4.0;

                Value arr4 = new Value(3, 0);

                arr4[0] = 4.0;
                arr4[1] = false;
                arr4[2] = "hallo";

                // Create a 3x3 matrix with zero elements
                Value m1 = new Value(3, 3, 0);

                m1[0, 0] = 1.0;
                m1[1, 1] = 1.0;
                m1[2, 2] = 1.0;

                Value m2 = new Value(3, 3, 0);

                m2[0, 0] = 1.0;
                m2[0, 1] = 2.0;
                m2[0, 2] = 3.0;
                m2[1, 0] = 4.0;
                m2[1, 1] = 5.0;
                m2[1, 2] = 6.0;
                m2[2, 0] = 7.0;
                m2[2, 1] = 8.0;
                m2[2, 2] = 9.0;

                Value[] val = new Value[5];
                val[0] = 1.1;
                val[1] = 1.0;
                val[2] = false;
                val[3] = "Hello";
                val[4] = "World";

                Value[] fVal = new Value[3];
                fVal[0] = 1;
                fVal[1] = 2.22;
                fVal[2] = 3.33;

                Value[] sVal = new Value[3];
                sVal[0] = "hello";
                sVal[1] = "world";
                sVal[2] = "test";

                Value[] cVal = new Value[3];
                cVal[0] = new Complex(1, 1);
                cVal[1] = new Complex(2, 2);
                cVal[2] = new Complex(3, 3);

                var size_3x1 = new Value(1, 2, 0);

                size_3x1.At(0, 0) = 3.0;
                size_3x1.At(0, 1) = 1.0;

                parser.DefineVar("s31", new Variable(size_3x1));
                Value ans = new Value(0);

                parser.DefineVar("ans", new Variable(ans));

                // some tests for vectors
                parser.DefineVar("va", new Variable(arr1));
                parser.DefineVar("vb", new Variable(arr2));
                parser.DefineVar("vc", new Variable(arr3));
                parser.DefineVar("vd", new Variable(arr4));
                parser.DefineVar("m1", new Variable(m1));
                parser.DefineVar("m2", new Variable(m2));

                parser.DefineVar("a", new Variable(fVal[0]));
                parser.DefineVar("b", new Variable(fVal[1]));
                parser.DefineVar("c", new Variable(fVal[2]));

                parser.DefineVar("ca", new Variable(cVal[0]));
                parser.DefineVar("cb", new Variable(cVal[1]));
                parser.DefineVar("cc", new Variable(cVal[2]));

                parser.DefineVar("sa", new Variable(sVal[0]));
                parser.DefineVar("sb", new Variable(sVal[1]));

                // Add functions for inspecting the parser properties
                parser.DefineFun(new FunListVar());
                parser.DefineFun(new FunListFunctions());
                parser.DefineFun(new FunListConst());
                parser.DefineFun(new FunBenchmark());
                parser.DefineFun(new FunEnableOptimizer());
                parser.DefineFun(new FunSelfTest());
                parser.DefineFun(new FunEnableDebugDump());
                parser.DefineFun(new FunTest0());
                parser.DefineFun(new FunPrint());


                parser.DefineFun(new FunLang());
                parser.EnableAutoCreateVar(true);

#if DEBUG
                ParserXBase.EnableDebugDump(bDumpStack: false, bDumpRPN: false);
#endif

                Value x = 1.0;
                Value y = new Complex(0, 1);
                parser.DefineVar("x", new Variable(x));
                parser.DefineVar("y", new Variable(y));
            }