annotate dmd/import.h @ 1650:40bd4a0d4870

Update to work with LLVM 2.7. Removed use of dyn_cast, llvm no compiles without exceptions and rtti by default. We do need exceptions for the libconfig stuff, but rtti isn't necessary (anymore). Debug info needs to be rewritten, as in LLVM 2.7 the format has completely changed. To have something to look at while rewriting, the old code has been wrapped inside #ifndef DISABLE_DEBUG_INFO , this means that you have to define this to compile at the moment. Updated tango 0.99.9 patch to include updated EH runtime code, which is needed for LLVM 2.7 as well.
author Tomas Lindquist Olsen
date Wed, 19 May 2010 12:42:32 +0200
parents def7a1d494fd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1587
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
1
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
2 // Compiler implementation of the D programming language
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
3 // Copyright (c) 1999-2007 by Digital Mars
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
4 // All Rights Reserved
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
5 // written by Walter Bright
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
6 // http://www.digitalmars.com
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
7 // License for redistribution is by either the Artistic License
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
8 // in artistic.txt, or the GNU General Public License in gnu.txt.
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
9 // See the included readme.txt for details.
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
10
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
11 #ifndef DMD_IMPORT_H
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
12 #define DMD_IMPORT_H
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
13
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
14 #ifdef __DMC__
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
15 #pragma once
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
16 #endif /* __DMC__ */
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
17
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
18 #include "dsymbol.h"
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
19
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
20
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
21 struct Identifier;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
22 struct Scope;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
23 struct OutBuffer;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
24 struct Module;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
25 struct Package;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
26 struct AliasDeclaration;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
27 #ifdef _DH
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
28 struct HdrGenState;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
29 #endif
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
30
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
31 struct Import : Dsymbol
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
32 {
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
33 Array *packages; // array of Identifier's representing packages
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
34 Identifier *id; // module Identifier
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
35 Identifier *aliasId;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
36 int isstatic; // !=0 if static import
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
37 enum PROT protection;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
38
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
39 // Pairs of alias=name to bind into current namespace
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
40 Array names;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
41 Array aliases;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
42
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
43 Array aliasdecls; // AliasDeclarations for names/aliases
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
44
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
45 Module *mod;
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
46 Package *pkg; // leftmost package/module
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
47
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
48 Import(Loc loc, Array *packages, Identifier *id, Identifier *aliasId,
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
49 int isstatic);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
50 void addAlias(Identifier *name, Identifier *alias);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
51
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
52 const char *kind();
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
53 enum PROT prot();
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
54 Dsymbol *syntaxCopy(Dsymbol *s); // copy only syntax trees
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
55 void load(Scope *sc);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
56 void importAll(Scope *sc);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
57 void semantic(Scope *sc);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
58 void semantic2(Scope *sc);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
59 Dsymbol *toAlias();
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
60 int addMember(Scope *sc, ScopeDsymbol *s, int memnum);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
61 Dsymbol *search(Loc loc, Identifier *ident, int flags);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
62 int overloadInsert(Dsymbol *s);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
63 void toCBuffer(OutBuffer *buf, HdrGenState *hgs);
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
64
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
65 Import *isImport() { return this; }
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
66 };
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
67
def7a1d494fd Merge DMD 1.051
Christian Kamm <kamm incasoftware de>
parents: 626
diff changeset
68 #endif /* DMD_IMPORT_H */