svoid dm_gazelle_matchAdditionalInput2(L l, LS preContext, O... _) { for (GazelleTree t : l) if (t.rule() != null) { RuleEngine2_MatchedRule mr = t.mr; L insWithType = t.rule().insWithType; int iCond = t.mr.iCond; TextAndType next = get(insWithType, iCond); if (next != null && startsWith(next.type, "history-")) { int historyIdx = parseFirstInt(next.type); S line = get(preContext, l(preContext)-historyIdx); if (line == null) continue with print("Got no line for: " + next.type); SS inputMap = litmap(next.type, line); if (ai_ruleEngine2_matchStep(t.mr, inputMap, true, _)) { print("Input match OK: " + line + " - new map: " + t.mr.map + ". Updating prediction."); gazelle_addPredictionToTreeNode(t); } else print("Input match failed: " + line); } } }