Mercurial > projects > ddmd
annotate dmd/UnionDeclaration.d @ 23:460959608115
Branch merge.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Mon, 12 Apr 2010 17:00:08 +0100 |
parents | 427f8aa74d28 f2413c9183d1 |
children | 2e2a5c3f943a |
rev | line source |
---|---|
0 | 1 module dmd.UnionDeclaration; |
2 | |
3 import dmd.StructDeclaration; | |
4 import dmd.Loc; | |
5 import dmd.Identifier; | |
6 import dmd.Dsymbol; | |
7 | |
8 class UnionDeclaration : StructDeclaration | |
9 { | |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
10 this(Loc loc, Identifier id) |
0 | 11 { |
12 super(loc, id); | |
13 } | |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
14 |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
15 Dsymbol syntaxCopy(Dsymbol s) |
0 | 16 { |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
17 UnionDeclaration ud; |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
18 |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
19 if (s) |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
20 ud = cast(UnionDeclaration)s; |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
21 else |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
22 ud = new UnionDeclaration(loc, ident); |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
23 StructDeclaration.syntaxCopy(ud); |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
24 return ud; |
0 | 25 } |
26 | |
18
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
27 string kind() |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
28 { |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
29 return "union"; |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
30 } |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
31 |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
32 UnionDeclaration isUnionDeclaration() { return this; } |
f2413c9183d1
Implemented CompileDeclaration, UAddExp, UnionDeclaration.
Robert Clipsham <robert@octarineparrot.com>
parents:
0
diff
changeset
|
33 } |