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)