public override void Eval(ref IValue ret, IValue[] a_pArg) { ParserXBase.EnableDebugDump(false, false); var pt = new ParserTester(); pt.Run(); ret = 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; }
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)); }