internal override Object Evaluate(){
this.completion.Continue = 0;
this.completion.Exit = 0;
this.completion.value = null;
while (Convert.ToBoolean(this.condition.Evaluate()) == true){
Completion c = (Completion)this.body.Evaluate();
if (c.value != null)
this.completion.value = c.value;
if (c.Continue > 1){
this.completion.Continue = c.Continue - 1;
break;
}
if (c.Exit > 0){
this.completion.Exit = c.Exit - 1;
break;
}
if (c.Return)
return c;
}
return this.completion;
}