コード例 #1
0
ファイル: AString.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Neq(AObject other)
        {
            if (other is AString)
            {
                return new ABoolean(Value != (other as AString).Value);
            }

            return base.Neq(other);
        }
コード例 #2
0
ファイル: ABoolean.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Ladd(AObject other)
        {
            if (other is ABoolean)
            {
                return new ABoolean(Value || (other as ABoolean).Value);
            }

            return base.Ladd(other);
        }
コード例 #3
0
ファイル: ABoolean.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Lmul(AObject other)
        {
            if (other is ABoolean)
            {
                return new ABoolean(Value && (other as ABoolean).Value);
            }

            return base.Lmul(other);
        }
コード例 #4
0
ファイル: AInteger.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Ge(AObject other)
        {
            if (other is AInteger)
            {
                return new ABoolean(Value >= (other as AInteger).Value);
            }

            return base.Ge(other);
        }
コード例 #5
0
ファイル: ABoolean.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Eq(AObject other)
        {
            if (other is ABoolean)
            {
                return new ABoolean(Value == (other as ABoolean).Value);
            }

            return base.Eq(other);
        }
コード例 #6
0
ファイル: AInteger.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Div(AObject other)
        {
            if (other is AInteger)
            {
                return new AInteger(Value / (other as AInteger).Value);
            }

            return base.Div(other);
        }
コード例 #7
0
ファイル: AInteger.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Add(AObject other)
        {
            if (other is AInteger)
            {
                return new AInteger(Value + (other as AInteger).Value);
            }

            return base.Add(other);
        }
コード例 #8
0
ファイル: AString.cs プロジェクト: greenflame/vsu_compiler
 public override void Assign(AObject other)
 {
     if (other is AString)
     {
         Value = (other as AString).Value;
     }
     else
     {
         throw new InvalidTypeException();
     }
 }
コード例 #9
0
ファイル: AString.cs プロジェクト: greenflame/vsu_compiler
        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);
        }
コード例 #10
0
ファイル: AObject.cs プロジェクト: greenflame/vsu_compiler
 public virtual AObject Sub(AObject other)
 {
     throw new NotDefinedOperationException();
 }
コード例 #11
0
ファイル: AObject.cs プロジェクト: greenflame/vsu_compiler
 public abstract void Assign(AObject other);
コード例 #12
0
ファイル: AInteger.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Sub(AObject other)
        {
            if (other is AInteger)
            {
                return new AInteger(Value - (other as AInteger).Value);
            }

            return base.Sub(other);
        }
コード例 #13
0
ファイル: AInteger.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Mul(AObject other)
        {
            if (other is AInteger)
            {
                return new AInteger(Value * (other as AInteger).Value);
            }

            return base.Mul(other);
        }
コード例 #14
0
ファイル: AInteger.cs プロジェクト: greenflame/vsu_compiler
        public override AObject Lt(AObject other)
        {
            if (other is AInteger)
            {
                return new ABoolean(Value < (other as AInteger).Value);
            }

            return base.Lt(other);
        }