Mercurial > projects > ddmd
view dmd/expression/Shr.d @ 156:0c8cc2a10f99
+ ArrayInitializer.toAssocArrayLiteral()
+ FuncDeclaration.isUnique()
+ TypeEnum.alignsize()
+ TypeEnum.toChars()
+ TypeEnum.getProperty()
+ VarExp.equals()
+ expression.Util.fpunique()
* fixed missing default in TypeBasic
author | trass3r |
---|---|
date | Wed, 15 Sep 2010 18:24:39 +0200 |
parents | e28b18c23469 |
children | b7b61140701d |
line wrap: on
line source
module dmd.expression.Shr; import dmd.common; import dmd.Expression; import dmd.Type; import dmd.Loc; import dmd.IntegerExp; import dmd.TY; Expression Shr(Type type, Expression e1, Expression e2) { Loc loc = e1.loc; long value = e1.toInteger(); uint count = cast(uint)e2.toInteger(); switch (e1.type.toBasetype().ty) { case TY.Tint8: value = cast(byte)(value) >> count; break; case TY.Tuns8: value = cast(ubyte)(value) >> count; break; case TY.Tint16: value = cast(short)(value) >> count; break; case TY.Tuns16: value = cast(ushort)(value) >> count; break; case TY.Tint32: value = cast(int)(value) >> count; break; case TY.Tuns32: value = cast(uint)(value) >> count; break; case TY.Tint64: value = cast(long)(value) >> count; break; case TY.Tuns64: value = cast(ulong)(value) >> count; break; } return new IntegerExp(loc, value, type); }