sS mapTokens_getOrKeep(S s, SS map) { ret join(mapTokens_getOrKeep_overwrite(javaTok(s), map); } static L mapTokens_getOrKeep(L tok, SS map) { ret mapTokens_getOrKeep_overwrite(cloneList(tok), map); } static L mapTokens_getOrKeep_overwrite(L tok, SS map) { for (int i = 1; i < l(tok); i += 2) tok.set(i, getOrKeep(map, tok.get(i))); ret tok; }