comparison dmd/ContinueStatement.d @ 155:a43c65469219

+ Statement.interpret() + ContinueStatement.interpret() + DoStatement.interpret()
author trass3r
date Wed, 15 Sep 2010 17:31:22 +0200
parents e28b18c23469
children e3afd1303184
comparison
equal deleted inserted replaced
154:14feb7ae01a6 155:a43c65469219
1 module dmd.ContinueStatement; 1 module dmd.ContinueStatement;
2 2
3 import dmd.common; 3 import dmd.common;
4 import dmd.interpret.Util;
4 import dmd.Statement; 5 import dmd.Statement;
5 import dmd.FuncDeclaration; 6 import dmd.FuncDeclaration;
7 import dmd.GlobalExpressions;
6 import dmd.IntegerExp; 8 import dmd.IntegerExp;
7 import dmd.ReturnStatement; 9 import dmd.ReturnStatement;
8 import dmd.LabelStatement; 10 import dmd.LabelStatement;
9 import dmd.Identifier; 11 import dmd.Identifier;
10 import dmd.Loc; 12 import dmd.Loc;
107 return this; 109 return this;
108 } 110 }
109 111
110 override Expression interpret(InterState istate) 112 override Expression interpret(InterState istate)
111 { 113 {
112 assert(false); 114 version(LOG)
115 writef("ContinueStatement::interpret()\n");
116
117 mixin(START);
118 if (ident)
119 return EXP_CANT_INTERPRET;
120 else
121 return EXP_CONTINUE_INTERPRET;
113 } 122 }
114 123
115 override BE blockExit() 124 override BE blockExit()
116 { 125 {
117 return ident ? BE.BEgoto : BE.BEcontinue; 126 return ident ? BE.BEgoto : BE.BEcontinue;