Mercurial > projects > ddmd
annotate dmd/LinkDeclaration.d @ 114:e28b18c23469
added a module dmd.common for commonly used stuff
it currently holds code for consistency checking of predefined versions
also added a VisualD project file
author | Trass3r |
---|---|
date | Wed, 01 Sep 2010 18:21:58 +0200 |
parents | ad4792a1cfd6 |
children | e3afd1303184 |
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 { |
18 super(decl); | |
19 //printf("LinkDeclaration(linkage = %d, decl = %p)\n", p, decl); | |
20 linkage = p; | |
21 } | |
22 | |
72 | 23 override Dsymbol syntaxCopy(Dsymbol s) |
0 | 24 { |
25 assert(false); | |
26 } | |
27 | |
72 | 28 override void setScope(Scope sc) |
0 | 29 { |
30 //printf("LinkDeclaration::setScope(linkage = %d, decl = %p)\n", linkage, decl); | |
31 if (decl) | |
32 { | |
33 setScopeNewSc(sc, sc.stc, linkage, sc.protection, sc.explicitProtection, sc.structalign); | |
34 } | |
35 } | |
36 | |
72 | 37 override void semantic(Scope sc) |
0 | 38 { |
39 //printf("LinkDeclaration::semantic(linkage = %d, decl = %p)\n", linkage, decl); | |
40 if (decl) | |
41 { | |
42 semanticNewSc(sc, sc.stc, linkage, sc.protection, sc.explicitProtection, sc.structalign); | |
43 } | |
44 } | |
45 | |
72 | 46 override void semantic3(Scope sc) |
0 | 47 { |
48 //printf("LinkDeclaration::semantic3(linkage = %d, decl = %p)\n", linkage, decl); | |
49 if (decl) | |
50 { | |
51 LINK linkage_save = sc.linkage; | |
52 | |
53 sc.linkage = linkage; | |
77
ad4792a1cfd6
more D-ification container accessing
Eldar Insafutdinov <e.insafutdinov@gmail.com>
parents:
74
diff
changeset
|
54 foreach(Dsymbol s; decl) |
0 | 55 s.semantic3(sc); |
56 sc.linkage = linkage_save; | |
57 } | |
58 else | |
59 { | |
60 sc.linkage = linkage; | |
61 } | |
62 } | |
63 | |
72 | 64 override void toCBuffer(OutBuffer buf, HdrGenState* hgs) |
0 | 65 { |
66 assert(false); | |
67 } | |
68 | |
72 | 69 override string toChars() |
0 | 70 { |
71 assert(false); | |
72 } | |
72 | 73 } |