Libraryless. Click here for Pure Java version (1182L/8K/27K).
!752 p { S s = "L<S> list2 = [S s in list | isIdentifier(s)];"; L<S> tok = javaTok(s); Map<Integer, Integer> bracketMap = getBracketMap(tok); int i = jfind(tok, "[<id> <id> in"); if (i >= 0) { S type = tok.get(i+2), id = tok.get(i+4); int j = scanOverExpression(tok, bracketMap, i+8, "|"); S exp = join(tok.subList(i+8, j)); j += 2; int k = scanOverExpression(tok, bracketMap, j, "]"); S where = join(tok.subList(j, k)); ++k; S rest = join(subList(tok, k)); S temp = "temp"; /* S code = "new L<" + type + "> " + temp + ";\n" + "for (" + type + " " + id + " : " + exp + ")\n" + " if (" + where + ") " + temp + ".add(" + id + ");\n";*/ S code = "filter(" + exp + ", func(" + type + " " + id + ") { " + where + " })"; print(join(tok.subList(0, i)) + code + rest); } }
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: | #1003522 |
Snippet name: | Test parsing list comprehension |
Eternal ID of this version: | #1003522/1 |
Text MD5: | 4f63a7dd97d4da9b7bb978a74773b051 |
Transpilation MD5: | 0de862956b5cfe7f83dfbedee2296b30 |
Author: | stefan |
Category: | javax / language |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-07-11 01:27:05 |
Source code size: | 878 bytes / 27 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 653 / 749 |
Referenced in: | [show references] |