sclass Rule { new L<S> in; new L<S> out; *() {} *(L<S> *in, L<S> *out) {} } static L<Rule> parseRules(S text) { L<S> log = toLinesTrim2(text); L<Int> emptyLines = concatLists(ll(-1), indexesOf(log, ""), ll(l(log))); new L<Rule> rules; for (int ii = 0; ii+1 < l(emptyLines); ii++) { int i = emptyLines.get(ii), j = emptyLines.get(ii+1); L<S> l = subList(log, i+1, j); continue if empty(l); L<Int> arrows = indexesOfLinesStartingWith(l, "->"); if (empty(arrows)) continue; // it's a rule for (int ia : arrows) l.set(ia, dropPrefixTrim("->", l.get(ia))); rules.add(new Rule( subList(l, 0, first(arrows)), subList(l, first(arrows)))); } ret rules; }
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1004491 |
Snippet name: | parseRules (ooold) |
Eternal ID of this version: | #1004491/2 |
Text MD5: | a2fcb8c0608243d9ee06eb180231bbc3 |
Author: | stefan |
Category: | javax / talking robots |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2018-08-19 00:37:52 |
Source code size: | 751 bytes / 28 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 547 / 547 |
Version history: | 1 change(s) |
Referenced in: | #1006654 - Standard functions list 2 (LIVE, continuation of #761) |