private Nonterminal GetFresh() { var originalNonterminals = _grammar.GetNonterminals(); Nonterminal result; do { result = Nonterminal.Of("X_" + _freshx); _freshx++; } while (originalNonterminals.Contains(result)); return result; } }