Mercurial > projects > ldc
comparison dmd/interpret.c @ 336:aaade6ded589 trunk
[svn r357] Merged DMD 1.033
author | lindquist |
---|---|
date | Sat, 12 Jul 2008 19:38:31 +0200 |
parents | 5acec6b2eef8 |
children | 870652a9af23 |
comparison
equal
deleted
inserted
replaced
335:17b844102023 | 336:aaade6ded589 |
---|---|
727 if (key) | 727 if (key) |
728 key->value = keysave; | 728 key->value = keysave; |
729 return e; | 729 return e; |
730 } | 730 } |
731 | 731 |
732 #if V2 | 732 #if DMDV2 |
733 Expression *ForeachRangeStatement::interpret(InterState *istate) | 733 Expression *ForeachRangeStatement::interpret(InterState *istate) |
734 { | 734 { |
735 #if LOG | 735 #if LOG |
736 printf("ForeachRangeStatement::interpret()\n"); | 736 printf("ForeachRangeStatement::interpret()\n"); |
737 #endif | 737 #endif |
987 Expression *e = EXP_CANT_INTERPRET; | 987 Expression *e = EXP_CANT_INTERPRET; |
988 VarDeclaration *v = d->isVarDeclaration(); | 988 VarDeclaration *v = d->isVarDeclaration(); |
989 SymbolDeclaration *s = d->isSymbolDeclaration(); | 989 SymbolDeclaration *s = d->isSymbolDeclaration(); |
990 if (v) | 990 if (v) |
991 { | 991 { |
992 #if V2 | 992 #if DMDV2 |
993 if ((v->isConst() || v->isInvariant()) && v->init && !v->value) | 993 if ((v->isConst() || v->isInvariant()) && v->init && !v->value) |
994 #else | 994 #else |
995 if (v->isConst() && v->init) | 995 if (v->isConst() && v->init) |
996 #endif | 996 #endif |
997 { e = v->init->toExpression(); | 997 { e = v->init->toExpression(); |
1043 if (ie) | 1043 if (ie) |
1044 e = ie->exp->interpret(istate); | 1044 e = ie->exp->interpret(istate); |
1045 else if (v->init->isVoidInitializer()) | 1045 else if (v->init->isVoidInitializer()) |
1046 e = NULL; | 1046 e = NULL; |
1047 } | 1047 } |
1048 #if V2 | 1048 #if DMDV2 |
1049 else if (s == v && (v->isConst() || v->isInvariant()) && v->init) | 1049 else if (s == v && (v->isConst() || v->isInvariant()) && v->init) |
1050 #else | 1050 #else |
1051 else if (s == v && v->isConst() && v->init) | 1051 else if (s == v && v->isConst() && v->init) |
1052 #endif | 1052 #endif |
1053 { e = v->init->toExpression(); | 1053 { e = v->init->toExpression(); |
1853 if (e1->op == TOKvar) | 1853 if (e1->op == TOKvar) |
1854 { | 1854 { |
1855 FuncDeclaration *fd = ((VarExp *)e1)->var->isFuncDeclaration(); | 1855 FuncDeclaration *fd = ((VarExp *)e1)->var->isFuncDeclaration(); |
1856 if (fd) | 1856 if (fd) |
1857 { | 1857 { |
1858 #if V2 | 1858 #if DMDV2 |
1859 enum BUILTIN b = fd->isBuiltin(); | 1859 enum BUILTIN b = fd->isBuiltin(); |
1860 if (b) | 1860 if (b) |
1861 { Expressions args; | 1861 { Expressions args; |
1862 args.setDim(arguments->dim); | 1862 args.setDim(arguments->dim); |
1863 for (size_t i = 0; i < args.dim; i++) | 1863 for (size_t i = 0; i < args.dim; i++) |