diff sema/SymbolTableBuilder.d @ 11:642c6a998fd9

Support for while statements and fixed scope for if
author Anders Halager <halager@gmail.com>
date Fri, 18 Apr 2008 13:45:39 +0200
parents ae5bbe4e7fd6
children a51bdf15a33d
line wrap: on
line diff
--- a/sema/SymbolTableBuilder.d	Fri Apr 18 13:01:11 2008 +0200
+++ b/sema/SymbolTableBuilder.d	Fri Apr 18 13:45:39 2008 +0200
@@ -61,6 +61,29 @@
         super.visitVarDecl(d);
     }
 
+    override void visitIfStmt(IfStmt s)
+    {
+        s.env = current();
+        visitExp(s.cond);
+        push();
+        foreach (stmt; s.then_body)
+            visitStmt(stmt);
+        pop();
+
+        push();
+        foreach (stmt; s.else_body)
+            visitStmt(stmt);
+        pop();
+    }
+
+    override void visitWhileStmt(WhileStmt s)
+    {
+        s.env = current();
+        push();
+        super.visitWhileStmt(s);
+        pop();
+    }
+
 private:
     Scope[] table;