public void TestRemoveLeftRecursion() { Assert.IsTrue(grammar1.HasLeftRecursion()); Assert.IsFalse(grammar1.RemoveLeftRecursion().HasLeftRecursion()); Assert.IsFalse(grammar2.HasLeftRecursion()); Assert.AreEqual(grammar2, grammar2.RemoveLeftRecursion()); Assert.IsTrue(grammar3.HasLeftRecursion()); Assert.IsFalse(grammar3.RemoveLeftRecursion().HasLeftRecursion()); }