public LogicalNot(Expr expr) : base(expr) { if (!(expr.Type is LongType || expr.Type is ULongType || expr.Type is FloatType || expr.Type is DoubleType)) { throw new InvalidOperationException("Invalid operand type."); } }