// i = C token to the right of type static int tok_leftScanType(LS tok, int i) { // first skip ellipsis if (subListEq(tok, i-6, ".", "", ".", "", ".")) i -= 6; // skip array brackets while (eqGet(tok, i-2, "]") && eqGet(tok, i-4, "[")) i -= 4; // skip type args i = tok_leftScanTypeArgsOpt(tok, i); // package names / outer classes while (eqGet(tok, i-2, ".")) { S t = get(tok, i-4); if (!isIdentifier(t)) break; i -= 4; } ret i; }