1 | static L<S> tok_typesOfParams(L<S> tok) { |
2 | try { |
3 | new L<S> types; |
4 | for (int i = 1; i < l(tok); ) { |
5 | S t = tok.get(i); |
6 | if (eqOneOf(t, "final")) t = get(tok, i += 2); |
7 | |
8 | assertTrue(isIdentifier(t)); |
9 | i += 2; |
10 | S type = t; |
11 | |
12 | if (eq(t, "virtual")) { |
13 | type += " " + tok.get(i); |
14 | i += 2; |
15 | } |
16 | |
17 | while (eq(get(tok, i), ".") && isIdentifier(get(tok, i+2))) { |
18 | type += "." + get(tok, i+2); |
19 | i += 4; |
20 | } |
21 | |
22 | // ... |
23 | if (eqGet(tok, i, ".") && eqGet(tok, i+2, ".") && eqGet(tok, i+2, ".")) { |
24 | type += "[]"; |
25 | i += 6; |
26 | } |
27 | |
28 | // just a parameter name, no type |
29 | if (eqOneOf(get(tok, i), null, ",")) |
30 | t = null; |
31 | else { |
32 | if (eq(tok.get(i), "<")) { |
33 | int j = findEndOfTypeArgs(tok, i)-1; |
34 | while (eq(get(tok, j), "[") && eq(get(tok, j+2), "]")) j += 4; |
35 | type += trimJoinSubList(tok, i, j+1); |
36 | S id = assertIdentifier(tok.get(j+2)); |
37 | i = j+2; |
38 | } |
39 | while (eq(get(tok, i), "[") && eq(get(tok, i+2), "]")) { |
40 | i += 4; |
41 | type += "[]"; |
42 | } |
43 | S id = assertIdentifier(tok.get(i)); |
44 | i += 2; |
45 | while (eq(get(tok, i), "[") && eq(get(tok, i+2), "]")) { |
46 | i += 4; |
47 | type += "[]"; |
48 | } |
49 | if (i < l(tok)) { |
50 | assertEquals(get(tok, i), ","); |
51 | i += 2; |
52 | } |
53 | } |
54 | types.add(type); |
55 | } |
56 | ret types; |
57 | } catch e { |
58 | print("Bad parameter declaration: " + join(tok)); |
59 | throw rethrow(e); |
60 | } |
61 | } |
62 | |
63 | static L<S> tok_typesOfParams(S s) { |
64 | ret tok_typesOfParams(javaTok(s)); |
65 | } |
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: | #1011790 |
Snippet name: | tok_typesOfParams - converts ... to [] |
Eternal ID of this version: | #1011790/16 |
Text MD5: | a956f3eea5826bf1581610b82bfee206 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2019-04-16 18:31:58 |
Source code size: | 1715 bytes / 65 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 374 / 435 |
Version history: | 15 change(s) |
Referenced in: | [show references] |