!7 static L verbs = toLinesFullTrim([[ kow towed made started want ]]); static new StringTree1 tree; p { tree = multiWordMap_lower(verbs); testAnswerFunction([[ he kow towed before them i want stuff kow towed I WANT YOU ]]); botSleep(); } static L parse(S s) { ret codeTokens(nlTok4(lower(s))); } static StringTree1 multiWordMap_lower(L items) { new StringTree1 tree; for (S s : items) { L tok = parse(s); addToStringTree(tree, tok); } ret tree; } sS answer(S s) { L tok = parse(s); new L verbs; for i over tok: { StringTree1 tree = main.tree; int j = i; while (tree != null && j < l(tok)) { if (tree.leaf) verbs.add(joinWithSpace(subList(tok, i, j))); tree = tree.children.get(tok.get(j)); ++j; } } ret join(", ", verbs); }