Mercurial > projects > ddmd
annotate dmd/LinkDeclaration.d @ 182:b64060ab22df
Now compileable with dmd2.050
author | korDen |
---|---|
date | Sat, 30 Oct 2010 05:05:32 +0400 |
parents | e3afd1303184 |
children | b0d41ff5e0df |
rev | line source |
---|---|
0 | 1 module dmd.LinkDeclaration; |
2 | |
114 | 3 import dmd.common; |
0 | 4 import dmd.AttribDeclaration; |
5 import dmd.LINK; | |
6 import dmd.OutBuffer; | |
7 import dmd.HdrGenState; | |
8 import dmd.Scope; | |
9 import dmd.Dsymbol; | |
10 import dmd.Array; | |
11 | |
12 class LinkDeclaration : AttribDeclaration | |
13 { | |
14 LINK linkage; | |
15 | |
74
7e0d548de9e6
Switch Arrays of Dsymbols to the new templated Vector type
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents:
72
diff
changeset
|
16 this(LINK p, Dsymbols decl) |
0 | 17 { |
178 | 18 register(); |
0 | 19 super(decl); |
20 //printf("LinkDeclaration(linkage = %d, decl = %p)\n", p, decl); | |
21 linkage = p; | |
22 } | |
23 | |
72 | 24 override Dsymbol syntaxCopy(Dsymbol s) |
0 | 25 { |
26 assert(false); | |
27 } | |
28 | |
72 | 29 override void setScope(Scope sc) |
0 | 30 { |
31 //printf("LinkDeclaration::setScope(linkage = %d, decl = %p)\n", linkage, decl); | |
32 if (decl) | |
33 { | |
34 setScopeNewSc(sc, sc.stc, linkage, sc.protection, sc.explicitProtection, sc.structalign); | |
35 } | |
36 } | |
37 | |
72 | 38 override void semantic(Scope sc) |
0 | 39 { |
40 //printf("LinkDeclaration::semantic(linkage = %d, decl = %p)\n", linkage, decl); | |
41 if (decl) | |
42 { | |
43 semanticNewSc(sc, sc.stc, linkage, sc.protection, sc.explicitProtection, sc.structalign); | |
44 } | |
45 } | |
46 | |
72 | 47 override void semantic3(Scope sc) |
0 | 48 { |
49 //printf("LinkDeclaration::semantic3(linkage = %d, decl = %p)\n", linkage, decl); | |
50 if (decl) | |
51 { | |
52 LINK linkage_save = sc.linkage; | |
53 | |
54 sc.linkage = linkage; | |
77
ad4792a1cfd6
more D-ification container accessing
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents:
74
diff
changeset
|
55 foreach(Dsymbol s; decl) |
0 | 56 s.semantic3(sc); |
57 sc.linkage = linkage_save; | |
58 } | |
59 else | |
60 { | |
61 sc.linkage = linkage; | |
62 } | |
63 } | |
64 | |
72 | 65 override void toCBuffer(OutBuffer buf, HdrGenState* hgs) |
0 | 66 { |
67 assert(false); | |
68 } | |
69 | |
72 | 70 override string toChars() |
0 | 71 { |
72 assert(false); | |
73 } | |
72 | 74 } |