コード例 #1
0
ファイル: AphidInterpreter.cs プロジェクト: robocoder/aphid
        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
ファイル: ParserGenerator.cs プロジェクト: robocoder/aphid
        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 });
        }