static S formatXYZ(S pattern, L args) { ret join(formatXYZ(javaTok(pattern), args)); } // modifies tok! static L formatXYZ(L tok, L args) { for (int i = 1; i < l(tok); i += 2) { S t = tok.get(i); int idx = formatXYZ_varToIndex(t)-1; if (idx >= 0 && l(args) > idx) tok.set(i, args.get(idx)); } ret tok; } static S formatXYZ(S pattern, S... args) { ret formatXYZ(pattern, asList(args)); }