public function compile($name): string
    {
        [
            'template' => $template,
            'cache' => $cache,
        ] = $this->getTemplateFile($name);

        if (\filemtime($template) < @\filemtime($cache)) {
            return $cache;
        }

        $root = Tokenizer\Tokenizer::parseFile($template);

        Processor::parseToken($root, $this->processors);

        \file_put_contents($cache, (string) $root);

        return $cache;
    }