Mercurial > projects > dang
comparison ast/Module.d @ 194:08f68d684047
Rename some files. Hopefully we can get a more iterative sema pass, that's a lot easier to "get startet with".
Also added support for alias.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Tue, 29 Jul 2008 13:54:44 +0200 |
parents | 6c5a3c0bb4fb |
children |
comparison
equal
deleted
inserted
replaced
193:658178183018 | 194:08f68d684047 |
---|---|
13 this.moduleName = moduleName; | 13 this.moduleName = moduleName; |
14 } | 14 } |
15 | 15 |
16 void addDecl(Decl decl) | 16 void addDecl(Decl decl) |
17 { | 17 { |
18 if(!decl) | |
19 return; | |
18 switch(decl.declType) | 20 switch(decl.declType) |
19 { | 21 { |
20 case DeclType.FuncDecl: | 22 case DeclType.FuncDecl: |
21 functions ~= cast(FuncDecl)decl; | 23 functions ~= cast(FuncDecl)decl; |
22 break; | 24 break; |
29 case DeclType.ClassDecl: | 31 case DeclType.ClassDecl: |
30 classes ~= cast(ClassDecl)decl; | 32 classes ~= cast(ClassDecl)decl; |
31 break; | 33 break; |
32 case DeclType.InterfaceDecl: | 34 case DeclType.InterfaceDecl: |
33 interfaces ~= cast(InterfaceDecl)decl; | 35 interfaces ~= cast(InterfaceDecl)decl; |
36 break; | |
37 case DeclType.AliasDecl: | |
38 aliases ~= cast(AliasDecl)decl; | |
34 break; | 39 break; |
35 default: | 40 default: |
36 assert(0, "DeclType not implemented"); | 41 assert(0, "DeclType not implemented"); |
37 } | 42 } |
38 decls ~= decl; | 43 decls ~= decl; |
47 VarDecl[] vars; | 52 VarDecl[] vars; |
48 FuncDecl[] functions; | 53 FuncDecl[] functions; |
49 StructDecl[] structs; | 54 StructDecl[] structs; |
50 ClassDecl[] classes; | 55 ClassDecl[] classes; |
51 InterfaceDecl[] interfaces; | 56 InterfaceDecl[] interfaces; |
57 AliasDecl[] aliases; | |
52 Decl[] decls; | 58 Decl[] decls; |
53 | 59 |
54 char[] moduleName; | 60 char[] moduleName; |
55 Scope env; | 61 Scope env; |
56 Symbol symbol; | 62 Symbol symbol; |