public override AObject Neq(AObject other) { if (other is AString) { return new ABoolean(Value != (other as AString).Value); } return base.Neq(other); }
public override AObject Ladd(AObject other) { if (other is ABoolean) { return new ABoolean(Value || (other as ABoolean).Value); } return base.Ladd(other); }
public override AObject Lmul(AObject other) { if (other is ABoolean) { return new ABoolean(Value && (other as ABoolean).Value); } return base.Lmul(other); }
public override AObject Ge(AObject other) { if (other is AInteger) { return new ABoolean(Value >= (other as AInteger).Value); } return base.Ge(other); }
public override AObject Eq(AObject other) { if (other is ABoolean) { return new ABoolean(Value == (other as ABoolean).Value); } return base.Eq(other); }
public override AObject Div(AObject other) { if (other is AInteger) { return new AInteger(Value / (other as AInteger).Value); } return base.Div(other); }
public override AObject Add(AObject other) { if (other is AInteger) { return new AInteger(Value + (other as AInteger).Value); } return base.Add(other); }
public override void Assign(AObject other) { if (other is AString) { Value = (other as AString).Value; } else { throw new InvalidTypeException(); } }
public override AObject Add(AObject other) { if (other is AString) { return new AString(Value + (other as AString).Value); } if (other is AInteger) { return new AString(Value + (other as AInteger).Value.ToString()); } return base.Add(other); }
public virtual AObject Sub(AObject other) { throw new NotDefinedOperationException(); }
public abstract void Assign(AObject other);
public override AObject Sub(AObject other) { if (other is AInteger) { return new AInteger(Value - (other as AInteger).Value); } return base.Sub(other); }
public override AObject Mul(AObject other) { if (other is AInteger) { return new AInteger(Value * (other as AInteger).Value); } return base.Mul(other); }
public override AObject Lt(AObject other) { if (other is AInteger) { return new ABoolean(Value < (other as AInteger).Value); } return base.Lt(other); }