mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
56 lines
No EOL
2.3 KiB
C++
56 lines
No EOL
2.3 KiB
C++
topic "3.2 EvalExpr";
|
|
[i448;a25;kKO9; $$1,0#37138531426314131252341829483380:structitem]
|
|
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
|
[0 $$3,0#96390100711032703541132217272105:end]
|
|
[H6;0 $$4,0#05600065144404261032431302351956:begin]
|
|
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:codeitem]
|
|
[ $$0,0#00000000000000000000000000000000:Default]
|
|
[{_}%EN-US
|
|
[ {{10000@3 [s0; [*@(229)4 EvalExpr]]}}&]
|
|
[s3; &]
|
|
[s1;:EvalExpr`:`:class:%- [@(0.0.255) class]_[* EvalExpr]&]
|
|
[s2; &]
|
|
[s0;%- [2 It implements a simple expression evaluator including variable
|
|
handling.]&]
|
|
[s3;%- &]
|
|
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
|
|
[s0;%- &]
|
|
[s5;:EvalExpr`:`:EvalExpr`(`):%- [* EvalExpr]()&]
|
|
[s2; EvalExpr constructor.&]
|
|
[s3;%- &]
|
|
[s3;%- &]
|
|
[ {{10000F(128)G(128)@1 [s0; [*2 Public Member List]]}}&]
|
|
[s0;%- &]
|
|
[s5;:EvalExpr`:`:Eval`(String`):%- [@(0.0.255) double]_[* Eval]([_^String^ String]_[*@3 line])
|
|
&]
|
|
[s2; Evals [%-*@3 line] expression using declared constants and variables
|
|
with previously assigned values returning numerical result.&]
|
|
[s2; Eval() can be called as many times as needed.&]
|
|
[s2; For example:&]
|
|
[s2;l448; EvalExpr expr;&]
|
|
[s2;l448; double res1 `= expr.Eval(`"x `= 2`");-|-|// Returns 2&]
|
|
[s2;l448; double res2 `= expr.Eval(`"23 `+ x`^2`");-|// Returns 27&]
|
|
[s2;l448; double res3 `= expr.Eval(`"y `= 2 `+ x`");/-|// Returns
|
|
4&]
|
|
[s3; &]
|
|
[s4;%- &]
|
|
[s5;:EvalExpr`:`:EvalStr`(String`,int`):%- [_^String^ String]_[* EvalStr]([_^String^ String
|
|
]_[*@3 line], [@(0.0.255) int]_[*@3 numDigits]_`=_[@3 3])&]
|
|
[s2; Evals [%-*@3 line] expression using declared variables previously
|
|
assigned values. It returns an expression including variable
|
|
values with [%-*@3 numDigits] number of digits. If [%-*@3 numDigits]
|
|
is Null, variables will not be replaced by its numerical value&]
|
|
[s3; &]
|
|
[s4;%- &]
|
|
[s5;:EvalExpr`:`:constants:%- [_^VectorMap^ VectorMap]<[_^String^ String],
|
|
[@(0.0.255) double]>_[* constants]&]
|
|
[s2; [%-* constants] VectorMap includes all constants. Instead of with
|
|
variables, the value of a constant is not shown with EvalStr().
|
|
It will be converted private soon.&]
|
|
[s3;%- &]
|
|
[s4;%- &]
|
|
[s5;:EvalExpr`:`:variables:%- [_^VectorMap^ VectorMap]<[_^String^ String],
|
|
[@(0.0.255) double]>_[* variables]&]
|
|
[s2; [%-* variables] VectorMap includes all variables.&]
|
|
[s3;%- &]
|
|
[s3; ]] |