static L tok_parseArgsList(S s) { ret tok_parseArgsList(javaTok(s)); } static L tok_parseArgsList(L tok) { ret tok_parseArgsList(tok, getBracketMap(tok)); } static L tok_parseArgsList(L tok, Map bracketMap) { int i = indexOfAny(tok, 0, "(", "{"); if (i < 0) null; if (eq(get(tok, i), "{")) ret ll(); // e.g. void bla { ... } int argStart = (i += 2); new L args; while (i < l(tok)-2 && neq(get(tok, i), ")")) { Int j = bracketMap.get(i); if (j != null) continue with i = j+2; if (eqGetOneOf(tok, i, ",")) { if (i > argStart) args.add(trimJoinSubList(tok, argStart, i)); argStart = i+2; } i += 2; } if (i > argStart) args.add(trimJoinSubList(tok, argStart, i)); ret args; }