!7 sclass BottomUpParser > DynPrintLogWithInput { transient S lastOutput; start { dm_useLocallyCopiedMechLists(); set flag NoFancyMechParsing. doEvery(5000, r { update(inputChooser.input()) }); } void update(S s) { temp enter(); final new AI_BottomUpParser1 parser; parser.parse(s); S rendered = hijackPrint(r { parser.printWordsAndGroups(); parser.printConstituentsOfFullGroup(); AI_BottomUpParser1.Word w = parser.fullGroup(); L l = ai_buParser1_reconstructedProductions(parser, ai_buParser_parseWeightedProductions(), w, ""); print("Reconstructions."); pnl(l); /*Map, S> simplifications = ai_buParser_parseSimplifications(mL_raw(ai_language() + " groupings with simplification rules")); Set out = ai_buParser_simplify(parser, parser.fullGroup(), "", simplifications); print("Simplifications."); pnl(out);*/ }); bool shouldPrint = neq(rendered, lastOutput); lastOutput = rendered; if (shouldPrint) print("\n> " + s + "\n" + rendered); } }