comparison sema/ScopeBuilder.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 621cedba53ea
children 857f0d530789
comparison
equal deleted inserted replaced
93:621cedba53ea 94:48bb2287c035
9 import sema.Visitor, 9 import sema.Visitor,
10 basic.SmallArray; 10 basic.SmallArray;
11 11
12 class ForwardReference : Visitor!(void) 12 class ForwardReference : Visitor!(void)
13 { 13 {
14 override void visit(Decl[] decls)
15 {
16 foreach (decl; decls)
17 visitDecl(decl);
18 }
19
20 override void visitFuncDecl(FuncDecl d) 14 override void visitFuncDecl(FuncDecl d)
21 { 15 {
22 visitExp(d.returnType); 16 visitExp(d.returnType);
23 visitExp(d.identifier); 17 visitExp(d.identifier);
24 foreach (arg; d.funcArgs) 18 foreach (arg; d.funcArgs)
76 table[0].types["uint"] = DType.UInt; 70 table[0].types["uint"] = DType.UInt;
77 table[0].types["long"] = DType.Long; 71 table[0].types["long"] = DType.Long;
78 table[0].types["ulong"] = DType.ULong; 72 table[0].types["ulong"] = DType.ULong;
79 } 73 }
80 74
81 override void visit(Decl[] decls) 75 override void visit(Module m)
82 { 76 {
83 foreach (decl; decls) 77 visitModule(m);
84 visitDecl(decl);
85 auto fr = new ForwardReference(); 78 auto fr = new ForwardReference();
86 fr.visit(decls); 79 fr.visit(m);
87 } 80 }
88 81
89 override void visitDecl(Decl d) 82 override void visitDecl(Decl d)
90 { 83 {
91 d.env = current(); 84 d.env = current();