static S ai_mechList_placeholdersToRandomEntry(S s) { ret (S) applyUntilEq(f ai_mechList_placeholdersToRandomEntry_1, s); } static S ai_mechList_placeholdersToRandomEntry_1(S s) { L tok = javaTokWithAngleBrackets(s); for (int i = 1; i < l(tok); i += 2) { S t = tok.get(i); if (isAngleBracketed(t)) { t = deAngleBracket(t); S list = or(ai_placeholderToList(t), t); L entries = mechList(list); if (entries == null) fail("No list for <" + t + ">"); tok.set(i, random(entries)); } } ret join(tok); }