# HG changeset patch # User Aziz K?ksal # Date 1198516765 -3600 # Node ID c5a05e70911f0b6a4197946e4892e9de9586770f # Parent 19554e79e6d2def13034e69f43672b1acbf119c9 Added some semantic() methods. Fixed ctor of CondExpression. diff -r 19554e79e6d2 -r c5a05e70911f trunk/src/dil/Expressions.d --- a/trunk/src/dil/Expressions.d Mon Dec 24 16:12:41 2007 +0100 +++ b/trunk/src/dil/Expressions.d Mon Dec 24 18:19:25 2007 +0100 @@ -62,6 +62,13 @@ this.right = right; this.tok = tok; } + + Expression semantic(Scope scop) + { + left = left.semantic(scop); + right = right.semantic(scop); + return this; + } } class CondExpression : BinaryExpression @@ -69,9 +76,9 @@ Expression condition; this(Expression condition, Expression left, Expression right, Token* tok) { + addChild(condition); super(left, right, tok); mixin(set_kind); - addChild(condition); this.condition = condition; } } @@ -721,6 +728,16 @@ { mixin(set_kind); } + + Expression semantic(Scope scop) + { + if (type) + return this; + type = Types.Size_t; + // if (!scop.inArraySubscript) + // error(scop, "$ can only be in an array subscript."); + return this; + } } class BoolExpression : Expression