comparison dmd/scope.h @ 309:d59c363fccad trunk

[svn r330] Implemented synchronized statements. Changed the tryfinally handlers to a more generalized EnclosingHandler. Changed ClassInfoS to be mutable so they can be used as locks. Added new BB after throw ala return/break etc.
author lindquist
date Sat, 28 Jun 2008 11:37:53 +0200
parents 5acec6b2eef8
children d4e95db0e62b
comparison
equal deleted inserted replaced
308:6b62e8cdf970 309:d59c363fccad
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 EnclosingHandler;
32 enum LINK; 33 enum LINK;
33 enum PROT; 34 enum PROT;
34 35
35 struct Scope 36 struct Scope
36 { 37 {
43 FuncDeclaration *func; // function we are in 44 FuncDeclaration *func; // function we are in
44 Dsymbol *parent; // parent to use 45 Dsymbol *parent; // parent to use
45 LabelStatement *slabel; // enclosing labelled statement 46 LabelStatement *slabel; // enclosing labelled statement
46 SwitchStatement *sw; // enclosing switch statement 47 SwitchStatement *sw; // enclosing switch statement
47 TryFinallyStatement *tf; // enclosing try finally statement; set inside its finally block 48 TryFinallyStatement *tf; // enclosing try finally statement; set inside its finally block
48 TryFinallyStatement *tfOfTry; // enclosing try finally statement; set inside its try block 49 EnclosingHandler *tfOfTry; // enclosing try-finally, volatile or synchronized statement; set inside its try or body block
49 Statement *sbreak; // enclosing statement that supports "break" 50 Statement *sbreak; // enclosing statement that supports "break"
50 Statement *scontinue; // enclosing statement that supports "continue" 51 Statement *scontinue; // enclosing statement that supports "continue"
51 ForeachStatement *fes; // if nested function for ForeachStatement, this is it 52 ForeachStatement *fes; // if nested function for ForeachStatement, this is it
52 unsigned offset; // next offset to use in aggregate 53 unsigned offset; // next offset to use in aggregate
53 int inunion; // we're processing members of a union 54 int inunion; // we're processing members of a union