static ai_gazelle_analyzeStatementsForRule_Data ai_gazelle_analyzeStatementsForRule_multiSet(MultiSet l) { ai_gazelle_analyzeStatementsForRule_Data data = ai_gazelle_analyzeStatementsForRule(keys(l)); data.statements = l; data.varScores = new Map; new Matches m; for (S s : keys(l)) if "in a * mapping, variable * was mapped to *" { PairS p = pair($2, $3); PosNegScore score = getOrCreatePosNegScore(data.varScores, p); if (eq($1, 'good)) score.pos += l.get(s); else if (eq($1, 'bad)) score.neg += l.get(s); } ret data; }