Ejemplo n.º 1
0
 public static void SwitchBasedPrint(ReflectiveExpression e, StringBuilder sb)
 {
     if (e is ReflectiveDoubleExpression de)
     {
         sb.Append(de.Value);
     }
     else if (e is ReflectiveAdditionExpression ae)
     {
         sb.Append("(");
         SwitchBasedPrint(ae.Left, sb);
         sb.Append("+");
         SwitchBasedPrint(ae.Right, sb);
         sb.Append(")");
     }
 }
Ejemplo n.º 2
0
 public static void LookupBasedPrint(ReflectiveExpression e, StringBuilder sb)
 {
     Actions[e.GetType()].Invoke(e, sb);
 }
 public ReflectiveAdditionExpression(ReflectiveExpression left, ReflectiveExpression right)
 {
     Left  = left ?? throw new ArgumentNullException(nameof(left));
     Right = right ?? throw new ArgumentNullException(nameof(right));
 }