Mercurial > projects > ldc
comparison dmd2/dsymbol.h @ 1526:54b3c1394d62
Merged dmdfe 2.031.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Tue, 07 Jul 2009 02:26:11 +0100 |
parents | 638d16625da2 |
children | e4f7b5d9c68a |
comparison
equal
deleted
inserted
replaced
1525:d28cd7c45267 | 1526:54b3c1394d62 |
---|---|
1 | 1 |
2 // Compiler implementation of the D programming language | 2 // Compiler implementation of the D programming language |
3 // Copyright (c) 1999-2008 by Digital Mars | 3 // Copyright (c) 1999-2009 by Digital Mars |
4 // All Rights Reserved | 4 // All Rights Reserved |
5 // written by Walter Bright | 5 // written by Walter Bright |
6 // http://www.digitalmars.com | 6 // http://www.digitalmars.com |
7 // License for redistribution is by either the Artistic License | 7 // License for redistribution is by either the Artistic License |
8 // in artistic.txt, or the GNU General Public License in gnu.txt. | 8 // in artistic.txt, or the GNU General Public License in gnu.txt. |
72 struct StaticStructInitDeclaration; | 72 struct StaticStructInitDeclaration; |
73 struct Expression; | 73 struct Expression; |
74 struct DeleteDeclaration; | 74 struct DeleteDeclaration; |
75 struct HdrGenState; | 75 struct HdrGenState; |
76 struct OverloadSet; | 76 struct OverloadSet; |
77 #if TARGET_NET | |
78 struct PragmaScope; | |
79 #endif | |
77 #if IN_LLVM | 80 #if IN_LLVM |
78 struct TypeInfoDeclaration; | 81 struct TypeInfoDeclaration; |
79 struct ClassInfoDeclaration; | 82 struct ClassInfoDeclaration; |
80 #endif | |
81 | |
82 #if IN_DMD | |
83 struct Symbol; | |
84 #endif | 83 #endif |
85 | 84 |
86 #if IN_GCC | 85 #if IN_GCC |
87 union tree_node; | 86 union tree_node; |
88 typedef union tree_node TYPE; | 87 typedef union tree_node TYPE; |
124 Symbol *csym; // symbol for code generator | 123 Symbol *csym; // symbol for code generator |
125 Symbol *isym; // import version of csym | 124 Symbol *isym; // import version of csym |
126 #endif | 125 #endif |
127 unsigned char *comment; // documentation comment for this Dsymbol | 126 unsigned char *comment; // documentation comment for this Dsymbol |
128 Loc loc; // where defined | 127 Loc loc; // where defined |
128 Scope *scope; // !=NULL means context to use for semantic() | |
129 | 129 |
130 Dsymbol(); | 130 Dsymbol(); |
131 Dsymbol(Identifier *); | 131 Dsymbol(Identifier *); |
132 char *toChars(); | 132 char *toChars(); |
133 char *toPrettyChars(); | 133 char *toPrettyChars(); |
149 static Array *arraySyntaxCopy(Array *a); | 149 static Array *arraySyntaxCopy(Array *a); |
150 | 150 |
151 virtual const char *kind(); | 151 virtual const char *kind(); |
152 virtual Dsymbol *toAlias(); // resolve real symbol | 152 virtual Dsymbol *toAlias(); // resolve real symbol |
153 virtual int addMember(Scope *sc, ScopeDsymbol *s, int memnum); | 153 virtual int addMember(Scope *sc, ScopeDsymbol *s, int memnum); |
154 virtual void setScope(Scope *sc); | |
154 virtual void semantic(Scope *sc); | 155 virtual void semantic(Scope *sc); |
155 virtual void semantic2(Scope *sc); | 156 virtual void semantic2(Scope *sc); |
156 virtual void semantic3(Scope *sc); | 157 virtual void semantic3(Scope *sc); |
157 virtual void inlineScan(); | 158 virtual void inlineScan(); |
158 virtual Dsymbol *search(Loc loc, Identifier *ident, int flags); | 159 virtual Dsymbol *search(Loc loc, Identifier *ident, int flags); |
243 virtual StaticStructInitDeclaration *isStaticStructInitDeclaration() { return NULL; } | 244 virtual StaticStructInitDeclaration *isStaticStructInitDeclaration() { return NULL; } |
244 virtual AttribDeclaration *isAttribDeclaration() { return NULL; } | 245 virtual AttribDeclaration *isAttribDeclaration() { return NULL; } |
245 virtual OverloadSet *isOverloadSet() { return NULL; } | 246 virtual OverloadSet *isOverloadSet() { return NULL; } |
246 virtual TypeInfoDeclaration* isTypeInfoDeclaration() { return NULL; } | 247 virtual TypeInfoDeclaration* isTypeInfoDeclaration() { return NULL; } |
247 virtual ClassInfoDeclaration* isClassInfoDeclaration() { return NULL; } | 248 virtual ClassInfoDeclaration* isClassInfoDeclaration() { return NULL; } |
248 | 249 #if TARGET_NET |
250 virtual PragmaScope* isPragmaScope() { return NULL; } | |
251 #endif | |
249 #if IN_LLVM | 252 #if IN_LLVM |
250 /// Codegen traversal | 253 /// Codegen traversal |
251 virtual void codegen(Ir* ir); | 254 virtual void codegen(Ir* ir); |
252 | 255 |
253 // llvm stuff | 256 // llvm stuff |