/jcl/examples/common/expreval/ExprEvalExampleLogic.pas
https://github.com/the-Arioch/jcl · Pascal · 105 lines · 93 code · 10 blank · 2 comment · 0 complexity · fe7747b0693df96fa0f01326a2cc72ec MD5 · raw file
- unit ExprEvalExampleLogic;
- interface
- uses
- SysUtils, Classes, JclExprEval;
- procedure Init(Evaluator: TEasyEvaluator; FuncList: TStrings);
- function ResultAsText(Evaluator: TEvaluator; const Input: string): string;
- implementation
- uses
- JclMath;
- procedure Init(Evaluator: TEasyEvaluator; FuncList: TStrings);
- begin
- with Evaluator do
- begin
- // Constants
- AddConst('Pi', Pi);
- // Functions
- AddFunc('LogBase10', LogBase10);
- AddFunc('LogBase2', LogBase2);
- AddFunc('LogBaseN', LogBaseN);
- AddFunc('ArcCos', ArcCos);
- AddFunc('ArcCot', ArcCot);
- AddFunc('ArcCsc', ArcCsc);
- AddFunc('ArcSec', ArcSec);
- AddFunc('ArcSin', ArcSin);
- AddFunc('ArcTan', ArcTan);
- AddFunc('ArcTan2', ArcTan2);
- AddFunc('Cos', Cos);
- AddFunc('Cot', Cot);
- AddFunc('Coversine', Coversine);
- AddFunc('Csc', Csc);
- AddFunc('Exsecans', Exsecans);
- AddFunc('Haversine', Haversine);
- AddFunc('Sec', Sec);
- AddFunc('Sin', Sin);
- AddFunc('Tan', Tan);
- AddFunc('Versine', Versine);
- AddFunc('ArcCosH', ArcCosH);
- AddFunc('ArcCotH', ArcCotH);
- AddFunc('ArcCscH', ArcCscH);
- AddFunc('ArcSecH', ArcSecH);
- AddFunc('ArcSinH', ArcSinH);
- AddFunc('ArcTanH', ArcTanH);
- AddFunc('CosH', CosH);
- AddFunc('CotH', CotH);
- AddFunc('CscH', CscH);
- AddFunc('SecH', SecH);
- AddFunc('SinH', SinH);
- AddFunc('TanH', TanH);
- end;
- with FuncList do
- begin
- Add('LogBase10');
- Add('LogBase2');
- Add('LogBaseN');
- Add('ArcCos');
- Add('ArcCot');
- Add('ArcCsc');
- Add('ArcSec');
- Add('ArcSin');
- Add('ArcTan');
- Add('ArcTan2');
- Add('Cos');
- Add('Cot');
- Add('Coversine');
- Add('Csc');
- Add('Exsecans');
- Add('Haversine');
- Add('Sec');
- Add('Sin');
- Add('Tan');
- Add('Versine');
- Add('ArcCosH');
- Add('ArcCotH');
- Add('ArcCscH');
- Add('ArcSecH');
- Add('ArcSinH');
- Add('ArcTanH');
- Add('CosH');
- Add('CotH');
- Add('CscH');
- Add('SecH');
- Add('SinH');
- Add('TanH');
- end;
- end;
- function ResultAsText(Evaluator: TEvaluator; const Input: string): string;
- begin
- try
- Result := FloatToStr(Evaluator.Evaluate(Input));
- except
- on E: Exception do
- Result := E.Message;
- end;
- end;
- end.