static L ai_ruleEngine2_rulesForInput_5_allConditions(RuleEngine2 engine, SS inputsByType, O... _) { L notDone = ai_ruleEngine2_rulesForInput_5(engine, inputsByType, _); new L done; bool debug = boolPar debug(_); while (nempty(notDone)) { L l = notDone; notDone = new L; for (RuleEngine2_MatchedRule mr : l) { if (!mr.moreConditions()) { if (debug) print("Done: " + mr.ruleID()); done.add(mr); } else { if (debug) print("Matching step " + mr.iCond + " in " + mr.ruleID()); if (ai_ruleEngine2_matchStep(mr, inputsByType, false)) { if (debug) print("Step succeeded"); notDone.add(mr); } else done.add(mr); // keep partially applied rule } } } ret done; }