private void RemoveFalsifiedCases(List <KthSet> alts, MSet <AndPred> falsified) { if (falsified.Count == 0) { return; } var results = new List <KthSet>(alts.Count); foreach (var alt in alts) { if (alt.Cases.RemoveAll(t => falsified.Overlaps(t.AndPreds)) != 0) { alt.UpdateSet(alt.Set.ContainsEOF); } } alts.RemoveAll(alt => alt.Cases.Count == 0); }
private void RemoveFalsifiedCases(List<KthSet> alts, MSet<AndPred> falsified) { if (falsified.Count == 0) return; var results = new List<KthSet>(alts.Count); foreach (var alt in alts) { if (alt.Cases.RemoveAll(t => falsified.Overlaps(t.AndPreds)) != 0) alt.UpdateSet(alt.Set.ContainsEOF); } alts.RemoveAll(alt => alt.Cases.Count == 0); }