<?php declare(strict_types=1);



namespace PhpParser\Node\Stmt;



use PhpParser\Node;



class For_ extends Node\Stmt

{

    /** @var Node\Expr[] Init expressions */

    public $init;

    /** @var Node\Expr[] Loop conditions */

    public $cond;

    /** @var Node\Expr[] Loop expressions */

    public $loop;

    /** @var Node\Stmt[] Statements */

    public $stmts;



    /**

     * Constructs a for loop node.

     *

     * @param array $subNodes   Array of the following optional subnodes:

     *                          'init'  => array(): Init expressions

     *                          'cond'  => array(): Loop conditions

     *                          'loop'  => array(): Loop expressions

     *                          'stmts' => array(): Statements

     * @param array $attributes Additional attributes

     */

    public function __construct(array $subNodes = [], array $attributes = []) {

        $this->attributes = $attributes;

        $this->init = $subNodes['init'] ?? [];

        $this->cond = $subNodes['cond'] ?? [];

        $this->loop = $subNodes['loop'] ?? [];

        $this->stmts = $subNodes['stmts'] ?? [];

    }



    public function getSubNodeNames() : array {

        return ['init', 'cond', 'loop', 'stmts'];

    }

    

    public function getType() : string {

        return 'Stmt_For';

    }

}

