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