public IEnumerable <RegexMutation> Mutate() { try { var parser = new Parser(_pattern); RegexTree tree = parser.Parse(); _root = tree.Root; } catch (RegexParseException) { yield break; } var regexNodes = _root.GetDescendantNodes().ToList(); regexNodes.Add(_root); foreach (RegexMutation mutant in regexNodes.SelectMany(node => FindMutants(node, _root))) { yield return(mutant); } }