!7 sclass Entry { S pattern; Map params; // null if not matched } cmodule MatchingInputPatterns > DynObjectTable { start { dm_onTopInput_q(vf process); } void process(S s) { LS patterns = collect pattern(dm_requireAndCallModule("#1020518/InputPatterns", 'crud)); new Matches m; data = new L; for (S pat : patterns) if (match(pat, s, m)) data.add(Entry(pattern := pat, params := matchesToMap(m))); setData(data); } }