Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Example: ");
            MathTree tree = new MathTree(new MathTreeNode(new MathSymbol(MathSymbol.Operator.Add)));
            tree.root.right = new MathTreeNode(new MathSymbol(MathSymbol.Operator.Add));
            tree.root.right.right = new MathTreeNode(new MathSymbol(MathSymbol.Operator.Multiply));
            tree.root.right.right.right = new MathTreeNode(new MathSymbol(4));
            tree.root.right.right.left = new MathTreeNode(new MathSymbol(3));
            tree.root.right.left = new MathTreeNode(new MathSymbol(2));
            tree.root.left = new MathTreeNode(new MathSymbol(1));

            Console.WriteLine(": " + String.Join(" ", tree.ToPreOrderString().ToCharArray()));
            Console.WriteLine("=> " + tree.Evaluate());
            while (true)
            {
                Console.Write(": ");
                string input = Console.ReadLine();
                try
                {
                    tree = MathTree.FromString(input);
                    Console.WriteLine("=> " + tree.Evaluate());
                }
                catch (InvalidOperationException e)
                {
                    Console.WriteLine("Error: " + e.Message);
                }
            }
        }