public function __construct($input, array $tokens = [], $script_source = self::TEMPLATE_INPUT)
{
$this->process = new Process('');
$this->process->setTimeout(null);
if ($script_source === self::TEMPLATE_INPUT) {
$this->script = with(new Parser())->parseFile($input, $tokens);
} else {
$this->script = with(new Parser())->parseString($input, $tokens);
}
}