public void ComplexExample() { Parser parser = new Parser("145.2/3+7-(8*45+22*(2-19))-88/8 + 17"); var parseTree = parser.Parse(); var calculator = new FormelParser.Visitors.CalculateVisitor(); parseTree.Accept(calculator); Assert.AreEqual(75.4, calculator.Result); var parenthizer = new FormelParser.Visitors.FullParenthesisVisitor(); parseTree.Accept(parenthizer); Assert.AreEqual("(((((145.2/3)+7)-((8*45)+(22*(2-19))))-(88/8))+17)", parenthizer.Result); }
public void SingleNumber() { Parser parser = new Parser("22"); var parseTree = parser.Parse(); var number = parseTree as NumberNode; Assert.IsNotNull(number); Assert.AreEqual(number.Number, 22.0); var calculator = new FormelParser.Visitors.CalculateVisitor(); parseTree.Accept(calculator); Assert.AreEqual(calculator.Result, 22.0); var parenthizer = new FormelParser.Visitors.FullParenthesisVisitor(); parseTree.Accept(parenthizer); Assert.AreEqual("22", parenthizer.Result); }