!7 sclass MatchInput > DynPrintLogWithInput { start { dm_useLocallyCopiedMechLists(); } void update(S s) { print("\n> " + s); L tokInput = printStruct(javaTokWithAngleBracketsC(s)); PlanInMotion plan = new(mech_englishSentencePatterns()); L>> results = new L; // pattern + match // Try matching pattern & input word-by-word for (S pat : plan.master()) ai_matchAngleBracketPattern_toResults(pat, tokInput, results); // Try expanding patterns for (S pat : mech_englishSentencePatterns()) { LS tokPat = javaTokWithAngleBracketsC(pat); for (LS spreadInput : ai_spreadAllAngleVars(tokPat, tokInput)) ai_matchAngleBracketPattern_toResults(pat, spreadInput, results); } for (Pair> p : sortedByLengthOfPairBList(results)) print(" [" + l(p.b) + "] " + ai_renderMatchWithQuestionMarks(p.b) + " | pattern " + quote(p.a) + " for input " + quote(s)); } }