Expression evaluator
1.0.0
Un Expression evaluator simple Delphi avec des fonctions et des variables utilisateur. Ce travail est basé sur les anciennes bibliothèques d'analyse Zeos.
Prend en charge les définitions de variables et de fonctions.
Opérateurs pris en charge :
Begin
Parser = TParser.Create();
P.Equation = ' (5*7) / 2) ' ;
WriteLn(P.Evalute<Int>());
End
procedure GetVar (sender: TParser; VarName: string; var Value : Variant);
begin
If (UpperCase(VarName) = ' X ' ) Then
Value := 3
else
Raise Exception.Create( ' Unkonow variable ' );
end ;
Begin
Parser = TParser.Create(GetVar);
P.Equation = ' (5*7) / x) ' ;
WriteLn(P.Evalute<Int>());
End
Voir SGT.Parser.ZFunction pour des exemples.
procedure GetVar (sender: TParser; VarName: string; var Value : Variant);
begin
// In a form with a dataset, you can use Value:= DataSet.FieldByName(VarName).Value
If (UpperCase(VarName) = ' X ' ) Then
Value := ' say hello!! '
else
Raise Exception.Create( ' Unkonow variable ' );
end ;
begin
p:= TParser.Create(GetVar) ;
TParser.AddFunction( ' Upper ' , function (sender: TParser; const Args: Array of Variant): Variant
begin
result := UpperCase(Args[ 0 ]);
end
);
p.Equation := ' Upper(x) ' ;
Writeln(p.Evalute<String>);
end ;