Beispiel #1
0
        static void Main(string[] args)
        {
            var showHelp = false;
            var p        = new OptionSet()
            {
                {
                    "h|help", "show this message and exit",
                    v => showHelp = v != null
                }
            };

            try
            {
                p.Parse(args);
            }
            catch (OptionException e)
            {
                Console.Write("bundling: ");
                Console.WriteLine(e.Message);
                Console.WriteLine("Try `greet --help' for more information.");
                return;
            }

            if (showHelp || args.Length == 0)
            {
                ShowHelp(p);
                return;
            }

            var expressionProcessor = new MathExpressionProcessor();
            var mapper     = new NotationMapper(expressionProcessor);
            var calculator = new Calculator(expressionProcessor);

            var expression = string.Join(" ", args);

            try
            {
                var expressionInReversePolishNotation = mapper.ReversePolishNotation(expression);
                var computedValue = calculator.CalculateFromReversePolishNotation(expressionInReversePolishNotation);
                Console.Write(computedValue);
            }
            catch (Exception e)
            {
                Console.Write("ERROR: " + e.Message);
            }
        }
 public NotationMapper(MathExpressionProcessor expressionProcessor)
 {
     ExpressionProcessor = expressionProcessor;
 }
Beispiel #3
0
 public Calculator(MathExpressionProcessor expressionProcessor)
 {
     ExpressionProcessor = expressionProcessor;
 }