Mercurial > projects > dang
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;