예제 #1
0
파일: Evaluator.cs 프로젝트: lucian044/OOP
 public void Visit(AddExpression expr)
 {
     if (expr.Left.Value.HasValue && expr.Right.Value.HasValue)
     {
         expr.Value = expr.Left.Value.Value + expr.Right.Value.Value;
     }
 }
예제 #2
0
        public static void Main(string[] args)
        {
            var expr = new AddExpression
            {
                Left = new ValueExpression {
                    Value = 3
                },
                Right = new MultiplyExpression
                {
                    Left = new ValueExpression {
                        Value = 2
                    },
                    Right = new ValueExpression {
                        Value = 7
                    }
                }
            };

            var printer = new Printer();

            expr.Accept(printer);
            Console.WriteLine();

            var evaluator = new Evaluator();

            expr.Accept(evaluator);
            Console.WriteLine(expr.Value.Value);
        }
예제 #3
0
파일: Printer.cs 프로젝트: lucian044/OOP
 public void Visit(AddExpression expr)
 {
     Console.Write(" + ");
 }