svoid gazelle_splitMultiRule(S ruleID) { PairS p = dm_textAndCommentForRule(ruleID); if (p == null) ret; LPair lines = ai_findDoubleArrowRulesAsPairs(p.a); S comment = "extracted from multi-rule " + ruleID; L rules = dm_gazelle_allRulesWithComment(comment); Set textsNeeded = asSet(mapPairsToList gazelle_constructRuleText(lines)); for (T3S t : rules) if (!textsNeeded.remove(t.a)) gazelle_deleteRule(t.c); for (S text : textsNeeded) dm_gazelle_addRuleWithComment(text, appendWithNewLine(p.b, comment)); }