diff sema/Visitor.d @ 94:48bb2287c035 new_gen

Added Modules. Right now it's very simple - will grow with time and need.
author Anders Johnsen <skabet@gmail.com>
date Tue, 06 May 2008 16:24:14 +0200
parents 9e90694f5da0
children 857f0d530789
line wrap: on
line diff
--- a/sema/Visitor.d	Mon May 05 20:53:13 2008 +0200
+++ b/sema/Visitor.d	Tue May 06 16:24:14 2008 +0200
@@ -3,25 +3,35 @@
 import tango.io.Stdout;
 
 public
-import ast.Decl,
+import ast.Module,
+       ast.Decl,
        ast.Stmt,
        ast.Exp;
 
 import lexer.Token;
 
-class Visitor(FinalT = int, DeclT = FinalT, StmtT = DeclT, ExpT = StmtT)
+class Visitor(FinalT = int, ModuleT = FinalT, DeclT = ModuleT, StmtT = DeclT, ExpT = StmtT)
 {
 public:
-    FinalT visit(Decl[] decls)
+    FinalT visit(Module m)
     {
-        foreach (decl; decls)
-            visitDecl(decl);
+        visitModule(m);
         static if (is(FinalT == void))
             return;
         else
             return FinalT.init;
     }
 
+    ModuleT visitModule(Module m)
+    {
+        foreach (decl; m.decls)
+            visitDecl(decl);
+        static if (is(ModuleT == void))
+            return;
+        else
+            return ModuleT.init;
+    }
+
     DeclT visitDecl(Decl decl)
     {
         switch(decl.declType)