static L dropPunctuation3_keep = ll("*", "<", ">"); static L dropPunctuation3(L tok) { tok = new ArrayList(tok); for (int i = 1; i < tok.size(); i += 2) { S t = tok.get(i); if (t.length() == 1 && !Character.isLetter(t.charAt(0)) && !Character.isDigit(t.charAt(0)) && !dropPunctuation_keep.contains(t)) { tok.set(i-1, tok.get(i-1) + tok.get(i+1)); tok.remove(i); tok.remove(i); i -= 2; } } return tok; } static S dropPunctuation3(S s) { ret join(dropPunctuation3(javaTokNoQuotes(s))); }