protected function Twig_Parser::filterBodyNodes in Translation template extractor 7.3
Same name and namespace in other branches
- 6.3 vendor/Twig/Parser.php \Twig_Parser::filterBodyNodes()
1 call to Twig_Parser::filterBodyNodes()
- Twig_Parser::parse in vendor/
Twig/ Parser.php - Converts a token stream to a node tree.
File
- vendor/
Twig/ Parser.php, line 362
Class
- Twig_Parser
- Default parser implementation.
Code
protected function filterBodyNodes(Twig_NodeInterface $node) {
// check that the body does not contain non-empty output nodes
if ($node instanceof Twig_Node_Text && !ctype_space($node
->getAttribute('data')) || !$node instanceof Twig_Node_Text && !$node instanceof Twig_Node_BlockReference && $node instanceof Twig_NodeOutputInterface) {
if (false !== strpos((string) $node, chr(0xef) . chr(0xbb) . chr(0xbf))) {
throw new Twig_Error_Syntax('A template that extends another one cannot have a body but a byte order mark (BOM) has been detected; it must be removed.', $node
->getLine(), $this
->getFilename());
}
throw new Twig_Error_Syntax('A template that extends another one cannot have a body.', $node
->getLine(), $this
->getFilename());
}
// bypass "set" nodes as they "capture" the output
if ($node instanceof Twig_Node_Set) {
return $node;
}
if ($node instanceof Twig_NodeOutputInterface) {
return;
}
foreach ($node as $k => $n) {
if (null !== $n && null === $this
->filterBodyNodes($n)) {
$node
->removeNode($k);
}
}
return $node;
}