* * @internal */ final class StagingExtension extends AbstractExtension { private $functions = []; private $filters = []; private $visitors = []; private $tokenParsers = []; private $tests = []; public function addFunction(TwigFunction $function) { if (isset($this->functions[$function->getName()])) { throw new \LogicException(sprintf('Function "%s" is already registered.', $function->getName())); } $this->functions[$function->getName()] = $function; } public function getFunctions() { return $this->functions; } public function addFilter(TwigFilter $filter) { if (isset($this->filters[$filter->getName()])) { throw new \LogicException(sprintf('Filter "%s" is already registered.', $filter->getName())); } $this->filters[$filter->getName()] = $filter; } public function getFilters() { return $this->filters; } public function addNodeVisitor(NodeVisitorInterface $visitor) { $this->visitors[] = $visitor; } public function getNodeVisitors() { return $this->visitors; } public function addTokenParser(TokenParserInterface $parser) { if (isset($this->tokenParsers[$parser->getTag()])) { throw new \LogicException(sprintf('Tag "%s" is already registered.', $parser->getTag())); } $this->tokenParsers[$parser->getTag()] = $parser; } public function getTokenParsers() { return $this->tokenParsers; } public function addTest(TwigTest $test) { if (isset($this->tests[$test->getName()])) { throw new \LogicException(sprintf('Test "%s" is already registered.', $test->getName())); } $this->tests[$test->getName()] = $test; } public function getTests() { return $this->tests; } } __halt_compiler();----SIGNATURE:----aqfEn+PqZUCve3Gknfny+hDhcKWHoxvEz1Cy7B2KKCewHf5/VrOUhPmzLQuH0Yfy7GzM4omKUE5H5oZpjf+ZQpX9ln7FWmOer8JYGnQhTvgrQ6A5uDjfr4CETUXY9XOBZHns6HRy0/aiLDbwHU3pMEzr+j2slmGMcdYO46KH78O+d4ST3jSFIylrYTvlypQqvzVfLuX+w7B8ZBMHeDcPKHw9RbNSg9wUgH/rcTmYTbfvi5y4DfkLtRSS40YyHX12FyFnn+7MVGuTUKDAhuvyEXJAvN+h563PJoKsaPZ44iUB9aCK9EqEJf4z/JIffeje6+vMFU6qQ2YJOCLJNZuFc725ZCACwmNh5R9Zie0StMGzXCK3TjGZO80WOBAvUzVeN+J/cF5l6IQ/8Q91ld2HGOgUWf55eLt1dik59DM4G3k0zyt9ME3exfNYE7mt2OLF1kAsk5lRTkpgLuLxXEUL20i1eT6h5MIVNzPLwvZ2rD2QhrkwsrgGs04eVosSKCrr8vycY5eaZDpEHU4q7QfuA/JMPepTQWd4gWTCnBRUNzj7udsttxzZCkooNIGPqez3RlZMbLovbnpyH4XQMWPkpTIrb7m2BFwny9zUexguAMfNH+bfNOJjRetHwt5gICAys2ZqTCnK7HggcDeMeiiBzaPKjOIyHOMJkfV49rMqEKM=----ATTACHMENT:----NjExNjgwNjU4MTAwMjE4NyA5MDAwMDg0OTY0MDE5MjAgMzU0Mjg3MDIyNTkyNTE5MA==