!7 !include once #1017394 // Parse Tree Classes sclass BottomUpParser > DynSCPWithInput { start { dm_useLocallyCopiedMechLists(); set flag NoFancyMechParsing. } void update(S s) { temp enter(); if (!isShowing()) { inputChooser.forgetInput(); ret; } final new AI_BottomUpParser1 parser; parser.parse(s); AI_BottomUpParser1.Word w = parser.fullGroup(); print("Full group: " + w); if (w == null) ret; final L productions = ai_buParser_parseWeightedProductions(); print("Have " + n2(productions, "production")); ChooseCategory root = new(w, asList(w.classes)); setComponent(jDynamicTree(root, func(final Element e) -> L { ai_parseTree_getChildren(parser, productions, e) })); } }