static L dropLeadingPunctuation_keep = ll("*", "<", ">", "(", "{", "["); static L dropLeadingPunctuation(L tok) { tok = new ArrayList(tok); for (int i = 1; i < l(tok); ) { S t = tok.get(i); if (eq(t, "...") || t.length() == 1 && !Character.isLetterOrDigit(t.charAt(0)) && !dropLeadingPunctuation_keep.contains(t)) { tok.remove(i); tok.remove(i); } else break; } return tok; } static S dropLeadingPunctuation(S s) { ret join(dropLeadingPunctuation(nlTok(s))); }