static LinkedHashSet ai_parseTree_simplifiedTexts(PTElement e) { new LinkedHashSet out; ai_parseTree_simplifiedTexts_collect(e, out); ret out; } svoid ai_parseTree_simplifiedTexts_collect(PTElement e, LinkedHashSet out) { e = ai_parseTree_getToChoicePoint(e); if (e instanceof ChoosePart) { ai_Reconstructed r = e/ChoosePart.reconstruction; WeightedProduction prod = r.production; //print("Hint: " + prod.simplificationHint + " in prod: " + sfu(prod)); if (eq(prod.simplificationHint, "L")) out.add(r.a.text()); else if (eq(prod.simplificationHint, "R")) out.add(r.b.text()); L a = asList(ai_parseTree_simplifiedTexts(first(e.children))); L b = asList(ai_parseTree_simplifiedTexts(second(e.children))); print(r.a.text() + " => " + a); print(r.b.text() + " => " + b); for (S aa : a) for (S bb : b) out.add(aa + " " + bb); // Add full text too out.add(e/ChoosePart.word.text()); } }