philips-cnc6600-interpreter/src/Loader/ProgramLoader.php

31 lines
576 B
PHP

<?php
namespace Loader;
use Machine\Memory\ProgramMemory;
use Program\Builder\ProgramBuilder;
use Program\Parser\WordParser;
class ProgramLoader
{
private WordParser $parser;
private ProgramBuilder $builder;
public function __construct()
{
$this->parser = new WordParser();
$this->builder = new ProgramBuilder();
}
public function load(ProgramMemory $memory, string $globPattern): void
{
foreach (glob($globPattern) as $file) {
$words = $this->parser->parseFile($file);
$program = $this->builder->build($words);
$memory->write($program);
}
}
}