Example #1
0
        static void lala(string[] args)
        {
            string         s      = "a=5*2";
            Parser         p      = new Parser();
            List <string>  tokens = p.parse(s);
            RPNInterpreter rpn    = new RPNInterpreter();
            double         result = rpn.compute(tokens);

            Console.WriteLine(result);
            result = rpn.compute(tokens);
            Console.WriteLine(result);
        }
Example #2
0
        private static void start(string initialInput)
        {
            Parser         parser      = new Parser();
            RPNInterpreter interpreter = new RPNInterpreter();
            string         input       = initialInput;

            do
            {
                if (String.IsNullOrEmpty(initialInput))
                {
                    Console.Write("> ");
                    input = Console.ReadLine();
                }
                else
                {
                    initialInput = "";
                }
                switch (input)
                {
                case "q":
                    Console.WriteLine("Bye!");
                    break;

                default:
                    try
                    {
                        List <string> tokens = parser.parse(input);
                        double        value  = interpreter.compute(tokens);
                        if (value > Double.MaxValue)
                        {
                            value = Double.MaxValue;
                        }
                        Console.WriteLine(value);
                    }
                    catch (Exception e) {
                        Console.WriteLine("Illegal Expression!");
                    }
                    break;
                }
            } while (!input.Equals("q"));
        }