1 | static S rules_unfoldIndented(S s, S prefix) { |
2 | if (containsTabs(s)) warn("Tabs in input"); |
3 | s = s.replace("\t", " "); |
4 | L<S> lines = toLines(s); |
5 | for i over lines: { |
6 | S line = lines.get(i); |
7 | S trimmed = trim(line); |
8 | if (empty(trimmed)) continue; |
9 | int n = getIndent(line); |
10 | int j = i+1; |
11 | bool any = false; |
12 | while (j < l(lines)) { |
13 | if (emptyAfterTrim(lines.get(j))) ++j; |
14 | else if (getIndent(lines.get(j)) > n) { ++j; any = true; } |
15 | else break; |
16 | } |
17 | if (!any) continue; |
18 | lines.set(i, ""); |
19 | while (i+1 < j) { |
20 | ++i; |
21 | S l = lines.get(i); |
22 | if (!emptyAfterTrim(l)) |
23 | lines.set(i, rep(' ', getIndent(l)) + prefix |
24 | + "(" + trimmed + ") & " + trim(l)); |
25 | } |
26 | } |
27 | ret fromLines(lines); |
28 | } |
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1008322 |
Snippet name: | rules_unfoldIndented |
Eternal ID of this version: | #1008322/10 |
Text MD5: | 3ae1f1bcec807e6d2448ed2cb1403b48 |
Author: | stefan |
Category: | javax / a.i. |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2017-05-07 21:38:16 |
Source code size: | 786 bytes / 28 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 471 / 511 |
Version history: | 9 change(s) |
Referenced in: | [show references] |