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