Expression evaluator
1.0.0
Um Expression evaluator simples Delphi com funções e variáveis de usuário. Este trabalho é baseado em antigas bibliotecas de análise Zeos.
Suporta definições de variáveis e funções.
Operadores suportados:
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
Consulte SGT.Parser.ZFunction para obter exemplos.
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 ;