philips-cnc6600-interpreter/src/Program/Program.php

39 lines
516 B
PHP

<?php
namespace Program;
use ArrayIterator;
use IteratorAggregate;
use Traversable;
class Program implements IteratorAggregate
{
public int $N;
/** @var Block[] */
private array $blocks;
public function __construct(int $N)
{
$this->N = $N;
$this->blocks = [];
}
public function addBlock(Block $block): self
{
$this->blocks[] = $block;
return $this;
}
/**
* @return ArrayIterator|Traversable|Block[]
*/
public function getIterator()
{
return new ArrayIterator($this->blocks);
}
}