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