comparison dmd/BoolExp.d @ 141:7171e6ea651d

+ Expression.toElem + Expression.toDt + Expression.isBit + BoolExp.optimize
author Trass3r
date Tue, 14 Sep 2010 02:38:37 +0200
parents e28b18c23469
children 3685b521ed05
comparison
equal deleted inserted replaced
140:31c086f76669 141:7171e6ea651d
22 type = t; 22 type = t;
23 } 23 }
24 24
25 override Expression semantic(Scope sc) 25 override Expression semantic(Scope sc)
26 { 26 {
27 UnaExp.semantic(sc); 27 super.semantic(sc);
28 e1 = resolveProperties(sc, e1); 28 e1 = resolveProperties(sc, e1);
29 e1 = e1.checkToBoolean(); 29 e1 = e1.checkToBoolean();
30 type = Type.tboolean; 30 type = Type.tboolean;
31 return this; 31 return this;
32 } 32 }
33 33
34 override Expression optimize(int result) 34 override Expression optimize(int result)
35 { 35 {
36 assert(false); 36 Expression e;
37
38 e1 = e1.optimize(result);
39 if (e1.isConst() == 1)
40 {
41 e = Bool(type, e1);
42 }
43 else
44 e = this;
45 return e;
37 } 46 }
38 47
39 override Expression interpret(InterState istate) 48 override Expression interpret(InterState istate)
40 { 49 {
41 assert(false); 50 assert(false);