public override Item Or(Item other) { switch (other) { case Integer number: return(New(Value | number.Value)); case Long number: return(Long.New(Value | number.Value)); case Float number: return(Float.New(nz(Value) | nz(number.Value))); case Double number: return(Double.New(nz(Value) | nz(number.Value))); default: return(base.Or(other)); } }
public override Item Divide(Item other) { switch (other) { case Integer number: return(New(Value / number.Value)); case Long number: return(Long.New(Value / number.Value)); case Float number: return(Float.New(Value / number.Value)); case Double number: return(Double.New(Value / number.Value)); default: return(base.Divide(other)); } }
public override Item And(Item other) { switch (other) { case Integer number: return(New(Value & number.Value)); case Long number: return(Long.New(Value & number.Value)); case Float number: return(New(nz(Value) & nz(number.Value))); case Double number: return(New(nz(Value) & nz(number.Value))); default: return(base.And(other)); } }
public override Item Plus(Item other) { switch (other) { case Integer number: return(New(Value + number.Value)); case Long number: return(Long.New(Value + number.Value)); case Float number: return(Float.New(Value + number.Value)); case Double number: return(Double.New(Value + number.Value)); case Object obj: return(Object.New(Value.ToString() + obj.Value)); default: return(base.Plus(other)); } }