Esempio n. 1
0
 public void Visit(AdditionExpression ae)
 {
     sb.Append("(");
     ae.Left.Accept(this);
     sb.Append("+");
     ae.Right.Accept(this);
     sb.Append(")");
 }
        static void Main(string[] args)
        {
            var e = new AdditionExpression(
                left: new DoubleExpression(1),
                right: new AdditionExpression(
                    left: new DoubleExpression(2),
                    right: new DoubleExpression(3)));
            var ep = new ExpressionPrinter();

            ep.Visit(e);
            WriteLine(ep.ToString());

            var calc = new ExpressionCalculator();

            calc.Visit(e);
            WriteLine($"{ep} = {calc.Result}");
            ReadKey();
        }