Transpiled version (1363L) is out of date.
!752 static S rule = "If A likes B then A will greet B."; static S ifThenPattern = "If A then B."; static S fact = "John likes Paul."; static S toCheck = "John will greet Paul."; p { MultiMap ruleVars = singleCharacterVars(rule); assertEquals(2, l(ruleVars.keySet())); printStructure(ruleVars); match(ifThenPattern, rule); } static match(S pattern, S input) { MultiMap<Range, ... singleCharacterVars(pattern) Map<Int, Pair<O, Range>> vars = ); matchImpl(pattern, vars, 0, input, 0); } static void matchImpl(S pattern, Map<Int, Pair<O, Range>> vars, int iPattern, S input, int iInput, Map<O, S> values) { if (iPattern >= l(pattern)) { print("Match!"); ret; } vars } // a range of characters in a string sclass Range { int i, j; // i = from, j = to *() {} *(int *i, int *j) {} } static MultiMap<O, Range> singleCharacterVars(S s) { L<S> tok = nlTok(s); int pos = 0; new MultiMap<S, Range> vars; for i over tok: { S t = tok.get(i); int nextPos = pos+l(t); if (l(t) == 1 && isUpperCaseLetter(t.charAt(0))) vars.put(t, new Range(pos, nextPos)); pos = nextPos; } ret (MultiMap) vars; }
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: | #1005169 |
Snippet name: | Rule Matching Test [abandoned] |
Eternal ID of this version: | #1005169/1 |
Text MD5: | 07939e37ac42d20e9af68ee10abbc35e |
Author: | stefan |
Category: | javax / a.i. |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-10-18 19:47:29 |
Source code size: | 1207 bytes / 50 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 550 / 621 |
Referenced in: | [show references] |