diff sema/Visitor.d @ 99:857f0d530789 new_gen

Imports and improved module statement Allow "module a.b.c" Supports most forms of D's import. import A, B; import A, B = C; import A, B : a = b, c;
author Anders Halager <halager@gmail.com>
date Tue, 06 May 2008 21:59:22 +0200
parents 48bb2287c035
children fea8d61a2451
line wrap: on
line diff
--- a/sema/Visitor.d	Tue May 06 21:55:29 2008 +0200
+++ b/sema/Visitor.d	Tue May 06 21:59:22 2008 +0200
@@ -40,6 +40,8 @@
                 return visitFuncDecl(cast(FuncDecl)decl);
             case DeclType.VarDecl:
                 return visitVarDecl(cast(VarDecl)decl);
+            case DeclType.ImportDecl:
+                return visitImportDecl(cast(ImportDecl)decl);
             case DeclType.StructDecl:
                 return visitStructDecl(cast(StructDecl)decl);
             default:
@@ -118,6 +120,24 @@
             return DeclT.init;
     }
 
+    DeclT visitImportDecl(ImportDecl d)
+    {
+        visitIdentifier(d.name);
+        visitIdentifier(d.aliasedName);
+        foreach (id; d.packages)
+            visitIdentifier(id);
+        foreach (ids; d.explicitSymbols)
+        {
+            visitIdentifier(ids[0]);
+            visitIdentifier(ids[1]);
+        }
+
+        static if (is(DeclT == void))
+            return;
+        else
+            return DeclT.init;
+    }
+
     DeclT visitFuncDecl(FuncDecl f)
     {
         visitExp(f.returnType);