public Min(Exp left, Exp right) : base(left, right) { }
public Minus(Exp operand) : base(operand) { }
public void AddValue(Exp value) { _values.Add(value); }
protected UnaryOperator(Exp operand) { Operand = operand; }
public Product(Exp left, Exp right) : base(left, right) { }
public Return(Exp retExp = null) { ReturnExp = retExp; }
public EvalExp(Exp exp) { Exp = exp; }
public Power(Exp left, Exp right) : base(left, right) { }
public Division(Exp left, Exp right) : base(left, right) { }
public Dot(Exp left, string right) { Left = left; Right = right; }
protected BinaryOp(Exp left, Exp right) { Left = left; _right = right; }
public Assignment(string varName, Exp exp, Exp loadExp) { VarName = varName; Exp = exp; LoadExp = loadExp; }
public While(Exp guard, Stmt body) { Guard = guard; Body = body; }
public Not(Exp operand) : base(operand) { }
public Factorial(Exp operand) : base(operand) { }
public Or(Exp left, Exp right) : base(left, right) { }
public void AddArgument(Exp arg) { _args.Add(arg); }
public Print(Exp exp) { _exp = exp; }
public If(Exp guard, Stmt body) { Guard = guard; Body = body; }
public Remainder(Exp left, Exp right) : base(left, right) { }
public LessEqual(Exp left, Exp right) : base(left, right) { }
public And(Exp left, Exp right) : base(left, right) { }
public LessThan(Exp left, Exp right) : base(left, right) { }
public Subtraction(Exp left, Exp right) : base(left, right) { }
public Sum(Exp left, Exp right) : base(left, right) { }