| Gary Beene's Information Centers | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser Code Comparison | eoeq.dll | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 June 2007 | Note: Include files are part of the product installation package. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clsMathParser | Simple Expression Evaluator | MTParser | muParser | Formula One | MSScript | AxEval | bcParser | TFunctionParser | ecMathExpr | Cioina | Precision Expression Evaluator | #Calculation Component | USPExpress | EquTranslator | uCalc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim Parser As New clsMathParser | Equation = "x + y" 'set the equation | Dim Parser As New MTParser | hParser = mupCreate | Equation = "x + y" | sc1.ExecuteStatement "x = " & iX | txtAxHidden.Text = "x = " & iX & vbCrLf & "y = " & iY & vbCrLf & Equation | Dim WithEvents bcParser As BCPARSERLib.Parser | Dim FunctionParser As Object | ecMathExpr1.compile Formula | PEE.Expression = Equation | EvalResult = SharpCalc1.Evaluate("x=" & iX & ",y=" & iY & "," & Equation) | Dim iEq As USPExpression, iErr As Integer, sVariables(1 To 2) As String | Dim arg(1) As Double, Formula As String | xPtr = ucDefineVariable("x As Long", VarPtr(X)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.StoreExpression Equation | Equation = Replace(Equation, "x", iX) 'set X | Dim X As New MTDouble, Y As New MTDouble | Equation = Replace(LCase(Equation), "exp", "qqq") 'remove x references | sc1.ExecuteStatement "y = " & iY | AxEval.Evaluate txtAxHidden.Text, d(1) | Set bcParser = New BCPARSERLib.Parser | Set FunctionParser = CreateObject("mhgspars.FunctionParser") | Dim Saved8087CW As Integer | Dim dValues(1 To 2) As Double, Index As Integer, sExpression As String | BuildEqu "f(x,y)=" & Equation | yPtr = ucDefineVariable("y As Long", VarPtr(Y)) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Equation = Replace(Equation, "y", iY) 'set Y | X.Create "x", 1 | mupDefineVar hParser, "x", VarPtr(X) | EvalResult = sc1.Eval(Equation) | bcParser.OptimizationOn = True | FunctionParser.Term = Equation | ecMathExpr1.Variable("x") = iX 'set X | Saved8087CW = GetFPU8087CW | PEE.SetVariable "x", X 'set X | ExprPtr = ucParse(Equation) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.VarValue(1) = iX 'set X | EvalResult = ParseVB(Formula3) 'evaluate equation | Y.Create "y", 1 | mupDefineVar hParser, "y", VarPtr(Y) | Formula1 = Replace(LCase(Formula1), "x", str$(iX)) 'replace x with values | bcParser.Expression = Formula | ecMathExpr1.Variable("y") = iY 'set Y | SetFPU8087CW 4978 | PEE.SetVariable "y", Y 'set Y | Set iEq = New USPExpression | arg(0) = iX 'set X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.VarValue(2) = iY 'set Y | Parser.defineVar X | mupSetExpr hParser, Equation | Formula2 = Replace(LCase(Formula1), "y", str$(iY)) 'replace y with values | FunctionParser.SetVarValue "x", iX 'set X | EvalResult = ecMathExpr1.Value 'evaluate expression with new values | CreateList | sVariables(1) = "x": sVariables(2) = "y" | arg(1) = iY 'set Y | EvalResult = ucEvaluate(ExprPtr) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = Parser.Eval 'evalute results | Parser.defineVar Y | Formula2 = Replace(LCase(Formula1), "qqq", "EXP") 'restore x references | bcParser.X = iX 'set X | FunctionParser.SetVarValue "y", iY 'set Y | AddMathExpressionWithUserFunctions | EvalResult = PEE.Evaluate 'evaluate expression | sExpression = txtUSPEquation.Text | EvalResult = CalcFor(arg(0)) 'evaluate expression | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.compile txtMTEquation.Text | X = iX 'set X | F1.FormulaRC(1, 1) = Formula2 'put equation in cells | bcParser.Y = iY 'set Y | EvalResult = FunctionParser.Result 'evaluate expression | Index = iEq.Parse(sExpression, sVariables, iErr) | ucReleaseItem ExprPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Y = iY 'set Y | EvalResult = F1.NumberRC(1, 1) 'read value from cell | EvalResult = bcParser.Evaluate 'evaluate expression | SetProtectVariablesEndedWithoutNumber 0, True | ucReleaseItem xPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| X.Value = iX 'set X | EvalResult = mupEval(hParser) 'evaluate expression | Parse 0, txtCioEquation.Text, "x,y", False | dValues(1) = X | ucReleaseItem yPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Y.Value = iY 'set Y | dValues(2) = Y | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = Parser.evaluateCompiled() 'evaluate expression | mupRelease (hParser) | SetVariableValue 0, 1, iX | EvalResult = iEq.Evaluate(dValues) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SetVariableValue 0, 2, iY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = DoMathExpression(0) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||