static S dollarVarsToStars_underscores(S s) { ret dollarVarsToStars_underscores(s, null); } static S dollarVarsToStars_underscores(S s, L varNames_out) { L tok = javaTok(s); for (int i = 1; i < l(tok); i += 2) { S t = tok.get(i); if (isDollarVar(t)) { listAdd(varNames_out, t); tok.set(i, joinWithSpace(rep("*", underscoreWordCount(t)))); } else if (eq(t, "*")) listAdd(varNames_out, "*"); } ret join(tok); }