Expression evaluator
1.0.0
具有使用者函數和變數的 Delphi 簡單Expression evaluator 。這項工作基於舊的 Zeos 解析庫。
支援變數和函數定義。
支援的營運商:
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
有關範例,請參閱 SGT.Parser.ZFunction。
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 ;