Mercurial > projects > ddmd
annotate dmd/expression/Shr.d @ 157:b7b61140701d
* added all missing default cases in switch statements
+ Lexer.getDocComment
+ Lexer.combineComments
author | trass3r |
---|---|
date | Thu, 16 Sep 2010 01:34:10 +0200 |
parents | e28b18c23469 |
children |
rev | line source |
---|---|
0 | 1 module dmd.expression.Shr; |
2 | |
114 | 3 import dmd.common; |
0 | 4 import dmd.Expression; |
5 import dmd.Type; | |
6 import dmd.Loc; | |
7 import dmd.IntegerExp; | |
8 import dmd.TY; | |
9 | |
10 Expression Shr(Type type, Expression e1, Expression e2) | |
11 { | |
12 Loc loc = e1.loc; | |
13 | |
14 long value = e1.toInteger(); | |
15 uint count = cast(uint)e2.toInteger(); | |
16 | |
17 switch (e1.type.toBasetype().ty) | |
18 { | |
19 case TY.Tint8: | |
20 value = cast(byte)(value) >> count; | |
21 break; | |
22 | |
23 case TY.Tuns8: | |
24 value = cast(ubyte)(value) >> count; | |
25 break; | |
26 | |
27 case TY.Tint16: | |
28 value = cast(short)(value) >> count; | |
29 break; | |
30 | |
31 case TY.Tuns16: | |
32 value = cast(ushort)(value) >> count; | |
33 break; | |
34 | |
35 case TY.Tint32: | |
36 value = cast(int)(value) >> count; | |
37 break; | |
38 | |
39 case TY.Tuns32: | |
40 value = cast(uint)(value) >> count; | |
41 break; | |
42 | |
43 case TY.Tint64: | |
44 value = cast(long)(value) >> count; | |
45 break; | |
46 | |
47 case TY.Tuns64: | |
48 value = cast(ulong)(value) >> count; | |
49 break; | |
157
b7b61140701d
* added all missing default cases in switch statements
trass3r
parents:
114
diff
changeset
|
50 |
b7b61140701d
* added all missing default cases in switch statements
trass3r
parents:
114
diff
changeset
|
51 default: |
b7b61140701d
* added all missing default cases in switch statements
trass3r
parents:
114
diff
changeset
|
52 assert(0); |
0 | 53 } |
54 | |
55 return new IntegerExp(loc, value, type); | |
56 } |