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