scope gazelle_addForbiddenBindingHelpers. sclass #Blocker { S var, value; bool debug; *() {} *(S *var, S *value, bool *debug) {} SS get(SS map, LS tokC, LS tokI, RuleEngine2_MatchedRule matched) { if (map == null) null; if (eqic(value, map.get(var))) null; ret map; } } sclass #TotalBlocker { SS get(SS map, LS tokC, LS tokI, RuleEngine2_MatchedRule matched) { if (nempty(map)) null; ret map; } } svoid gazelle_addForbiddenBindingHelpers(RuleEngine2 engine, O... _) { bool debug = boolPar debug(_) || boolPar forbiddenBindingsDebug(_); for (final RuleEngine2.Rule r : engine.rules) { for (Matches m : getJMatches_all("don't change * to *", r.comments)) r.addMapMassager(new Blocker($1, $2, debug)); if (cic(r.comments, "don't change anything")) r.addMapMassager( } } end scope