Libraryless. Click here for Pure Java version (2402L/16K/54K).
1 | !759 |
2 | |
3 | p { |
4 | L<S> log = scanEventLogForText("#1004032", "wallpaper"); |
5 | psl(log); |
6 | genLog_set(log); |
7 | |
8 | for (Matches m : gJMatch("if * and * then *")) { |
9 | //print("if then: " + struct(m)); |
10 | Iterator<SS> sat = satisfyStatements(ll(m.unq(0), m.unq(1))); |
11 | while (sat.hasNext()) |
12 | print("Inferred statement: " + replaceVars(m.unq(2), sat.next())); |
13 | } |
14 | } |
15 | |
16 | // null = no satisfaction |
17 | // otherwise return var map |
18 | static Iterator<SS> satisfyStatements(L<S> statements) { |
19 | if (l(statements) == 1) |
20 | ret satisfyStatement(first(statements)); |
21 | |
22 | if (l(statements) == 2) { |
23 | new L<SS> l; |
24 | for (SS map : satisfyStatement(first(statements))) |
25 | for (SS map2 : satisfyStatement(get(statements, 1))) |
26 | addIfNotEmpty(l, mergeMappings(map, map2)); |
27 | ret l.iterator(); |
28 | } |
29 | |
30 | fail("too complicated for now :)"); |
31 | } |
32 | |
33 | static IterableIterator<SS> satisfyStatement(S statement) { |
34 | final new L<S> vars; |
35 | S pat = upperCaseVarsToStars(statement, vars); |
36 | ret mapI(func(Matches m) { |
37 | new SS map; |
38 | for (int i = 0; i < l(m.m); i++) |
39 | map.put(vars.get(i), m.unq(i)); |
40 | ret map; |
41 | }, gJMatch(pat)); |
42 | } |
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1004284 |
Snippet name: | Simple Logic |
Eternal ID of this version: | #1004284/1 |
Text MD5: | ad64f00936e33feb3d951e3597ee7a48 |
Transpilation MD5: | dfd4002bf46cc049f897110b43341425 |
Author: | stefan |
Category: | javax |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-08-13 00:47:17 |
Source code size: | 1163 bytes / 42 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 772 / 1024 |
Referenced in: | [show references] |