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

20
LINES

< > BotCompany Repo | #1017552 // tok_ifCast

JavaX fragment (include) [tags: use-pretranspiled]

Transpiled version (5726L) is out of date.

1  
svoid tok_ifCast(L<S> tok) {
2  
  int i;
3  
  while ((i = jfind_check cast(tok, "if (<id> cast <id>")) >= 0) {
4  
    int iEndOfType = indexOfAny(tok, i, ")", "&");
5  
    int iClosing = tok_endOfExpression(tok, i+4)+1;
6  
    S var = tok.get(i+4), type = joinSubList(tok, i+8, iEndOfType-1);
7  
    S rawType = tok_dropTypeParameters(type);
8  
    int start = iClosing+2, end = tok_findEndOfStatement(tok, start);
9  
    replaceTokens(tok, i+6, iEndOfType-1, "instanceof " + rawType);
10  
    
11  
    // replace "var" with "((Type) var)" in enclosed block
12  
    // unless it's another cast expression or an assignment
13  
    
14  
    printVars(+iEndOfType, +iClosing, iClosing := get(tok, iClosing), +start, start := get(tok, start), +end, lTok := l(tok));
15  
    end = min(end, l(tok));
16  
    
17  
    tok_insertCasts_noReTok(tok, iEndOfType, end, var, type);
18  
    reTok(tok, i+6, end);
19  
  }
20  
}

download  show line numbers  debug dex  old transpilations   

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

No comments. add comment

Snippet ID: #1017552
Snippet name: tok_ifCast
Eternal ID of this version: #1017552/24
Text MD5: 854fc5e971da13ac0e8e062b8ecefb94
Author: stefan
Category: javax / transpiling
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2023-02-21 16:49:20
Source code size: 863 bytes / 20 lines
Pitched / IR pitched: No / No
Views / Downloads: 405 / 528
Version history: 23 change(s)
Referenced in: [show references]