1 | scope gazelle_addCalculationFunctionsToRules. |
2 | |
3 | sclass #Calculator { |
4 | S var1, var2, var3; |
5 | O function; // func(double, double) -> double |
6 | bool debug; |
7 | |
8 | *() {} |
9 | *(S *var1, S *var2, S *var3, O *function, bool *debug) {} |
10 | |
11 | SS get(SS map, LS tokC, LS tokI, RuleEngine2_MatchedRule matched) { |
12 | if (map == null) null; |
13 | double result; |
14 | try { |
15 | S value1 = getOrKeep(map, var1), value2 = getOrKeep(map, var2); |
16 | result = (double) callAndMake_orF2(function, parseDouble(value1), parseDouble(value2)); |
17 | } catch { |
18 | ret null; |
19 | } |
20 | if (!strictPutIC(map, var3, str(iround(result)))) null; |
21 | ret map; |
22 | } |
23 | } |
24 | |
25 | svoid gazelle_addCalculationFunctionsToRules(RuleEngine2 engine, O... _) { |
26 | bool debug = boolPar debug(_) || boolPar calcDebug(_); |
27 | for (final RuleEngine2.Rule r : engine.rules) |
28 | for (Matches m : getJMatches_all("compute var * from * and * using *", r.comments)) { |
29 | r.addMapMassager(new Calculator($2, $3, $1, $4, debug)); |
30 | if (debug) print("Calculator made"); |
31 | } |
32 | } |
33 | |
34 | end scope |
Began life as a copy of #1021872
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, cfunsshuasjs, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1021895 |
Snippet name: | gazelle_addCalculationFunctionsToRules |
Eternal ID of this version: | #1021895/8 |
Text MD5: | 8a06edc9dc8c7510447c339d42340ce7 |
Author: | stefan |
Category: | javax / a.i. |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2019-03-03 00:49:10 |
Source code size: | 1059 bytes / 34 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 259 / 306 |
Version history: | 7 change(s) |
Referenced in: | [show references] |