public void EvaluateCanReturnExecuteCommand()
 {
     Parse parse = new Parse("1 + 5");
     Evaluate eval = new Evaluate(parse);
     eval.Execute();
     Parse parseTwo = new Parse("lastq");
     eval.ParsedInput = parseTwo;
     eval.Execute();
     Assert.AreEqual("1 + 5", eval.Answer);
 }
 public void EvaluateCanExecuteExpressionWithConstants()
 {
     Parse parse = new Parse("q= 7");
     Evaluate eval = new Evaluate(parse);
     eval.Execute();
     Parse parseTwo = new Parse("q + 5");
     eval.ParsedInput = parseTwo;
     eval.Execute();
     Assert.AreEqual("12", eval.Answer);
 }
 public void EvaluateCanExecuteBasicOperation()
 {
     Parse parse = new Parse("1 + 5");
     Evaluate eval = new Evaluate(parse);
     eval.Execute();
     Assert.AreEqual("6", eval.Answer);
 }
 public void EvaluateCanAssignConstant()
 {
     Parse parse = new Parse("q= 7");
     Evaluate eval = new Evaluate(parse);
     eval.Execute();
     Assert.AreEqual("Stored: q = 7", eval.Answer);
 }
 public void EvaluateCanSubstitueConstants()
 {
     Parse parse = new Parse("q= 7");
     Evaluate eval = new Evaluate(parse);
     eval.Execute();
     Parse parseTwo = new Parse("q + 5");
     eval.ParsedInput = parseTwo;
     eval.SubstituteConstants();
     Assert.AreEqual(7, eval.ParsedInput.FirstNumArg);
 }
        static void Main(string[] args)
        {
            int count = 0;
            string prompt = $"[{count.ToString()}]> ";
            string answer = "";
            Evaluate eval = new Evaluate();

            while (answer != "exit")
            {
                Console.Write(prompt);
                string response = Console.ReadLine();

                Parse parse = new Parse(response);
                eval.ParsedInput = parse;
                eval.Execute();
                Console.WriteLine($"   = {eval.Answer}");
                answer = eval.Answer;
                count++;
                prompt = $"[{count.ToString()}]> ";
            }
            Console.WriteLine("Bye!!");
        }