private void InterpretWhileExpression(WhileExpression expression) { while ((bool)((AphidObject)(InterpretExpression(expression.Condition))).Value) { EnterChildScope(); Interpret(expression.Body, false); if (LeaveChildScope(true) || _isBreaking) { _isBreaking = false; break; } } }
private CodeStatementCollection GenerateImperativeStatement(WhileExpression node) { var whileStmt = CodeHelper.While( GenerateImperativeExpression(node.Condition, isCondition: true), GenerateImperativeStatements(node.Body).OfType<CodeStatement>().ToArray()); return new CodeStatementCollection(new[] { whileStmt }); }