changeset 557:c5a05e70911f

Added some semantic() methods. Fixed ctor of CondExpression.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Mon, 24 Dec 2007 18:19:25 +0100
parents 19554e79e6d2
children 32f55cac5c46
files trunk/src/dil/Expressions.d
diffstat 1 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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