Mercurial > projects > ddmd
comparison dmd/GlobalExpressions.d @ 167:50a6d232176c
rewrite GlobalExpressions, moved DsymbolTable to Global, some cleanup
author | korDen |
---|---|
date | Thu, 30 Sep 2010 12:13:49 +0400 |
parents | e28b18c23469 |
children | eb38fdcb3e62 |
comparison
equal
deleted
inserted
replaced
166:d8565fbd755c | 167:50a6d232176c |
---|---|
1 module dmd.GlobalExpressions; | 1 module dmd.GlobalExpressions; |
2 | 2 |
3 import dmd.common; | 3 import dmd.common; |
4 import dmd.Expression; | 4 import dmd.Expression; |
5 import dmd.TOK; | |
6 import dmd.Loc; | |
7 | 5 |
8 Expression EXP_CANT_INTERPRET; | 6 __gshared Expression EXP_CANT_INTERPRET = castToExpression(1); |
9 Expression EXP_CONTINUE_INTERPRET; | 7 __gshared Expression EXP_CONTINUE_INTERPRET = castToExpression(2); |
10 Expression EXP_BREAK_INTERPRET; | 8 __gshared Expression EXP_BREAK_INTERPRET = castToExpression(3); |
11 Expression EXP_GOTO_INTERPRET; | 9 __gshared Expression EXP_GOTO_INTERPRET = castToExpression(4); |
12 Expression EXP_VOID_INTERPRET; | 10 __gshared Expression EXP_VOID_INTERPRET = castToExpression(5); |
13 | 11 |
14 void* castToVoid(int i) | 12 Expression castToExpression(int i) |
15 { | 13 { |
16 return cast(void*)i; | 14 union U |
15 { | |
16 int i; | |
17 Expression e; | |
18 } | |
19 | |
20 U u; | |
21 u.i = i; | |
22 return u.e; | |
17 } | 23 } |
18 | |
19 static this() | |
20 { | |
21 //EXP_CANT_INTERPRET = new Expression(Loc(0), TOK.init, 0); | |
22 //EXP_CONTINUE_INTERPRET = new Expression(Loc(0), TOK.init, 0); | |
23 //EXP_BREAK_INTERPRET = new Expression(Loc(0), TOK.init, 0); | |
24 //EXP_GOTO_INTERPRET = new Expression(Loc(0), TOK.init, 0); | |
25 //EXP_VOID_INTERPRET = new Expression(Loc(0), TOK.init, 0); | |
26 | |
27 EXP_CANT_INTERPRET = cast(Expression)castToVoid(1); | |
28 EXP_CONTINUE_INTERPRET = cast(Expression)castToVoid(2); | |
29 EXP_BREAK_INTERPRET = cast(Expression)castToVoid(3); | |
30 EXP_GOTO_INTERPRET = cast(Expression)castToVoid(4); | |
31 EXP_VOID_INTERPRET = cast(Expression)castToVoid(5); | |
32 } |