Mercurial > projects > ddmd
annotate dmd/UnionDeclaration.d @ 187:b0d41ff5e0df
Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
author | Abscissa |
---|---|
date | Tue, 07 Jun 2011 23:37:34 -0400 |
parents | e3afd1303184 |
children |
rev | line source |
---|---|
0 | 1 module dmd.UnionDeclaration; |
2 | |
114 | 3 import dmd.common; |
0 | 4 import dmd.StructDeclaration; |
5 import dmd.Loc; | |
6 import dmd.Identifier; | |
7 import dmd.Dsymbol; | |
8 | |
187
b0d41ff5e0df
Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents:
178
diff
changeset
|
9 import dmd.DDMDExtensions; |
b0d41ff5e0df
Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents:
178
diff
changeset
|
10 |
0 | 11 class UnionDeclaration : StructDeclaration |
12 { | |
187
b0d41ff5e0df
Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents:
178
diff
changeset
|
13 mixin insertMemberExtension!(typeof(this)); |
b0d41ff5e0df
Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
Abscissa
parents:
178
diff
changeset
|
14 |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
15 this(Loc loc, Identifier id) |
0 | 16 { |
178 | 17 register(); |
0 | 18 super(loc, id); |
19 } | |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
20 |
72 | 21 override Dsymbol syntaxCopy(Dsymbol s) |
0 | 22 { |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
23 UnionDeclaration ud; |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
24 |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
25 if (s) |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
26 ud = cast(UnionDeclaration)s; |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
27 else |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
28 ud = new UnionDeclaration(loc, ident); |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
29 StructDeclaration.syntaxCopy(ud); |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
30 return ud; |
0 | 31 } |
32 | |
72 | 33 override string kind() |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
34 { |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
35 return "union"; |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
36 } |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
37 |
72 | 38 override UnionDeclaration isUnionDeclaration() { return this; } |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
39 } |