Mercurial > projects > ldc
comparison dmd2/scope.h @ 1452:638d16625da2
LDC 2 compiles again.
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Sat, 30 May 2009 17:23:32 +0100 |
parents | 356e65836fb5 |
children | 54b3c1394d62 |
comparison
equal
deleted
inserted
replaced
1423:42bd767ec5a4 | 1452:638d16625da2 |
---|---|
1 | 1 |
2 // Copyright (c) 1999-2005 by Digital Mars | 2 // Copyright (c) 1999-2009 by Digital Mars |
3 // All Rights Reserved | 3 // All Rights Reserved |
4 // written by Walter Bright | 4 // written by Walter Bright |
5 // http://www.digitalmars.com | 5 // http://www.digitalmars.com |
6 // License for redistribution is by either the Artistic License | 6 // License for redistribution is by either the Artistic License |
7 // in artistic.txt, or the GNU General Public License in gnu.txt. | 7 // in artistic.txt, or the GNU General Public License in gnu.txt. |
10 #ifndef DMD_SCOPE_H | 10 #ifndef DMD_SCOPE_H |
11 #define DMD_SCOPE_H | 11 #define DMD_SCOPE_H |
12 | 12 |
13 #ifdef __DMC__ | 13 #ifdef __DMC__ |
14 #pragma once | 14 #pragma once |
15 #endif /* __DMC__ */ | 15 #endif |
16 | 16 |
17 struct Dsymbol; | 17 struct Dsymbol; |
18 struct ScopeDsymbol; | 18 struct ScopeDsymbol; |
19 struct Array; | 19 struct Array; |
20 struct Identifier; | 20 struct Identifier; |
27 struct ClassDeclaration; | 27 struct ClassDeclaration; |
28 struct AggregateDeclaration; | 28 struct AggregateDeclaration; |
29 struct AnonymousAggregateDeclaration; | 29 struct AnonymousAggregateDeclaration; |
30 struct FuncDeclaration; | 30 struct FuncDeclaration; |
31 struct DocComment; | 31 struct DocComment; |
32 struct TemplateInstance; | |
33 | |
34 #if IN_LLVM | |
32 struct EnclosingHandler; | 35 struct EnclosingHandler; |
33 struct AnonDeclaration; | 36 struct AnonDeclaration; |
37 #endif | |
38 | |
34 #if __GNUC__ | 39 #if __GNUC__ |
40 // Requires a full definition for PROT and LINK | |
35 #include "dsymbol.h" // PROT | 41 #include "dsymbol.h" // PROT |
36 #include "mars.h" // LINK | 42 #include "mars.h" // LINK |
37 #else | 43 #else |
38 enum LINK; | 44 enum LINK; |
39 enum PROT; | 45 enum PROT; |
49 // sd gets the addMember() | 55 // sd gets the addMember() |
50 FuncDeclaration *func; // function we are in | 56 FuncDeclaration *func; // function we are in |
51 Dsymbol *parent; // parent to use | 57 Dsymbol *parent; // parent to use |
52 LabelStatement *slabel; // enclosing labelled statement | 58 LabelStatement *slabel; // enclosing labelled statement |
53 SwitchStatement *sw; // enclosing switch statement | 59 SwitchStatement *sw; // enclosing switch statement |
54 TryFinallyStatement *tf; // enclosing try finally statement; set inside its finally block | 60 TryFinallyStatement *enclosingFinally; // enclosing try finally statement; set inside its finally block |
55 EnclosingHandler *tfOfTry; // enclosing try-finally, volatile or synchronized statement; set inside its try or body block | 61 TemplateInstance *tinst; // enclosing template instance |
56 TemplateInstance *tinst; // enclosing template instance | 62 Statement *enclosingScopeExit; // enclosing statement that wants to do something on scope exit |
57 Statement *sbreak; // enclosing statement that supports "break" | 63 Statement *sbreak; // enclosing statement that supports "break" |
58 Statement *scontinue; // enclosing statement that supports "continue" | 64 Statement *scontinue; // enclosing statement that supports "continue" |
59 ForeachStatement *fes; // if nested function for ForeachStatement, this is it | 65 ForeachStatement *fes; // if nested function for ForeachStatement, this is it |
60 unsigned offset; // next offset to use in aggregate | 66 unsigned offset; // next offset to use in aggregate |
61 int inunion; // we're processing members of a union | 67 int inunion; // we're processing members of a union |