Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

28
LINES

< > BotCompany Repo | #1006347 // tok_autoCloseBrackets

JavaX fragment (include)

1  
static S tok_autoCloseBrackets(S s) {
2  
  ret join(tok_autoCloseBrackets(javaTok(s)));
3  
}
4  
5  
// modifies tok
6  
static L<S> tok_autoCloseBrackets(L<S> tok) {
7  
  bigloop: for (int i = 1; i < l(tok); i += 2) {
8  
    if (eq(tok.get(i), ";")) {
9  
      int j, level = 0;
10  
      for (j = i-2; j >= 0; j -= 2) {
11  
        S t = tok.get(j);
12  
        if (eqOneOf(t, ";", "{")) break;
13  
        if (eq(t, "}")) break; // TODO: skip over until other end of bracket
14  
        else if (eq(t, ")")) --level;
15  
        else if (eq(t, "(")) {
16  
          if (eq(get(tok, j-2), "for")) break;
17  
          if (eq(get(tok, j-4), "for")) break; // for ping
18  
          ++level;
19  
        }
20  
      }
21  
      while (level-- > 0) {
22  
        tok.add(i++, ")");
23  
        tok.add(i++, "");
24  
      }
25  
    }
26  
  }
27  
  ret tok;
28  
}

Author comment

Began life as a copy of #1006346

download  show line numbers  debug dex  old transpilations   

Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, sawdedvomwva, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1006347
Snippet name: tok_autoCloseBrackets
Eternal ID of this version: #1006347/3
Text MD5: ca804d3c60278e14b4856413479ac97e
Author: stefan
Category: javax / magic transformation
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2017-08-11 16:38:50
Source code size: 786 bytes / 28 lines
Pitched / IR pitched: No / No
Views / Downloads: 571 / 685
Version history: 2 change(s)
Referenced in: [show references]