svoid gazelle_addPredictionToTreeNode(GazelleTree child, O... _) { bool debug = boolPar debug(_); Set badComments = cast optPar badComments(_); Set acceptablePurposes = cast optPar acceptablePurposes(_); RuleEngine2_MatchedRule r = child.mr; GazelleEvalContext ctx = child.ctx; if (containsAny(r.rule.comments, badComments) || acceptablePurposes != null && !acceptablePurposes.contains(unnull(r.rule.purpose))) { if (debug) print("prediction=bad for various reasons"); child.prediction = 'bad; } else { /*ai_gazelle_analyzeStatementsForRule_Data data = ctx.dataByRule.get(r.rule.globalID); child.prediction = data == null ? null : ai_gazelle_predictor1_onData(r, data);*/ if (ctx.predictor == null) child.prediction = null; else { child.prediction = ctx.predictor.get(ctx, r); if (debug) print("Prediction=" + child.prediction + " for " + r + " (" + (r.moreConditions() ? "unsatisfied" : "satisfied") + ") by " + ctx.predictor); } } }