示例#1
0
        private void InterpretWhileExpression(WhileExpression expression)
        {
            while ((bool)((AphidObject)(InterpretExpression(expression.Condition))).Value)
            {
                EnterChildScope();
                Interpret(expression.Body, false);

                if (LeaveChildScope(true) || _isBreaking)
                {
                    _isBreaking = false;
                    break;
                }
            }
        }
示例#2
0
        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 });
        }