void form_load(Object _sender, EventArgs _e1) { string str = String.Empty; sMTOperator opInfo = new sMTOperator(); sMTFunction funcInfo = new sMTFunction(); sMTConstant constInfo = new sMTConstant(); int nbOps = 0; int t = 0; int nbFuncs = 0; int nbConsts = 0; MTParserLocalizer loc = new MTParserLocalizer(); sMTSyntax syntax = m_parser.getSyntax(); nbOps = m_parser.getNbDefinedOps(); for (t = 0; t <= nbOps - 1; t += 1) { opInfo = m_parser.getOp(t); try { opInfo = loc.getOpInfo(opInfo.ID); } catch (Exception) {} str = opInfo.symbol + (char)(9) + opInfo.helpString + (char)(9) + opInfo.description; Operators.Items.Add(str); } nbFuncs = m_parser.getNbDefinedFuncs(); for (t = 0; t <= nbFuncs - 1; t += 1) { funcInfo = m_parser.getFunc(t); try { funcInfo = loc.getFuncInfo(funcInfo.ID, ref syntax); } catch (Exception) {} str = funcInfo.symbol + (char)(9) + funcInfo.helpString + (char)(9) + funcInfo.description; Functions.Items.Add(str); } nbConsts = m_parser.getNbDefinedConsts(); for (t = 0; t <= nbConsts - 1; t += 1) { constInfo = m_parser.getConst(t); str = constInfo.name + (char)(9) + constInfo.value; Constants.Items.Add(str); } }
void form_load(Object _sender, EventArgs _e1) { try { _macroDefinition.SetParser(m_parser); // Define the variables and keep the keys to speed up value assignations m_parser.defineVar(m_x as IMTVariable); m_parser.defineVar(m_y as IMTVariable); m_parser.defineVar(m_z as IMTVariable); // Define a shared double variable for test purpose MTDouble v = new MTDouble(); v.create("v", 1.0); m_parser.defineVar(v as IMTVariable); double r = 0; r = m_parser.evaluate("v"); // Change the variable's value v.value = 10.0; r = m_parser.evaluate("v"); Console.Out.WriteLine("r = {0}", r); // Create another parser and copy the existing parser configuration MTParser p2 = new MTParser(); p2.copy(m_parser); r = p2.evaluate("v"); // the shared variable has been copied // Changing the shared variable's value updates all parsers using this variable v.value = 3.0; r = p2.evaluate("v"); r = m_parser.evaluate("v"); // define a constant m_parser.defineConst("pi", 3.14159); // define a user-defined function m_parser.defineFunc(new MySumFunction()); // Load localized information string dir = System.AppDomain.CurrentDomain.BaseDirectory; MTParserLocalizer localizer = new MTParserLocalizer(); localizer.locale = "en"; localizer.registerAllLibraries(dir, "*.xml"); sMTSyntax syntax = m_parser.getSyntax(); syntax.decimalPoint = '.'; syntax.argumentSeparator = ','; m_parser.setSyntax(ref syntax); // Load plug-ins m_parser.loadAllPlugins(dir, "*.xml"); } catch (Exception) { MessageBox.Show("Error: " + getLastExcepText(m_parser), "Project1"); } }