Example #1
0
        public void DotProduct()
        {
            // Parse
            DefaultParser         parser = new DefaultParser();
            VectorProductOperNode node   = new VectorProductOperNode(VectorProductMethod.DOT);

            parser.ParseString("<2,1,3>");
            node.AddChild(parser.Tree.Root);
            parser = new DefaultParser();
            parser.ParseString("<1,2,3>");
            node.AddChild(parser.Tree.Root);

            // Simplify
            Simplifier simplifier = new Simplifier();
            ExpNode    exp_result = node.Execute(simplifier);

            // Print
            DefaultPrinter printer    = new DefaultPrinter();
            string         str_result = exp_result.Print(printer);

            // Compare
            Assert.IsTrue(str_result == "13");
        }
Example #2
0
        static void Main(string[] args)
        {
            while (true)
            {
                SysCon.Write("Enter an Equation (q to quit): ");
                string str = SysCon.ReadLine();

                if (str == "q")
                {
                    SysCon.Write("Done!");
                    return;
                }

                DefaultParser  parser  = new DefaultParser();
                DefaultPrinter printer = new DefaultPrinter();
                ParserStatus   status  = parser.ParseString(str);
                if (status.Failed)
                {
                    SysCon.WriteLine($"\nError: {status.ErrorType}\n");
                }
                else
                {
                    ExpNode    root       = parser.Tree.Root;
                    Simplifier simplifier = new Simplifier();
                    root = root.Execute(simplifier);

                    if (root == null)
                    {
                        SysCon.WriteLine($"\n{simplifier.Error.Message}\n");
                    }
                    else
                    {
                        SysCon.WriteLine($"\n{root.Print(printer)}\n");
                    }
                }
            }
        }