static Set ai_buParser_simplify(AI_BottomUpParser1 parser, AI_BottomUpParser1.Word group, S category, Map, S> simplifications) { new LinkedHashSet out; if (group == null) ret out; L>> groupings = ai_buParser1_reconstructedGroupings2(parser, group, category); print("Have " + n2(groupings, "grouping") + " for: " + group.text()); pnl(groupings); for (T3> t : groupings) { T3 production = t.c; S simp = simplifications.get(production); if (eqOneOf(simp, "K", "L", "R")) { print("Simplifying: " + simp + " " + production); if (eq(simp, "L")) out.addAll(ai_buParser_simplify(parser, t.a, production.a, simplifications)); else if (eq(simp, "R")) out.addAll(ai_buParser_simplify(parser, t.b, production.b, simplifications)); else { // K //temp tempIndent(); Set l = ai_buParser_simplify(parser, t.a, production.a, simplifications); Set r = ai_buParser_simplify(parser, t.b, production.b, simplifications); for (S ll : l) for (S rr : r) out.add(ll + " " + rr); } } else print("Unknown simplification for " + t.c + ": " + simp); } out.add(group.text); ret out; }