mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-14 11:27:00 +00:00
added some helper method to build common nodes more easily (experimental)
This commit is contained in:
@@ -45,6 +45,43 @@ abstract class Twig_SimpleTokenParser extends Twig_TokenParser
|
||||
*/
|
||||
abstract protected function getNode(array $values, $line);
|
||||
|
||||
protected function getAttribute($node, $attribute, $arguments = array(), $line = -1)
|
||||
{
|
||||
return new \Twig_Node_Expression_GetAttr(
|
||||
$node instanceof Twig_NodeInterface ? $node : new \Twig_Node_Expression_Name($node, $line),
|
||||
$attribute instanceof Twig_NodeInterface ? $attribute : new \Twig_Node_Expression_Constant($attribute, $line),
|
||||
$arguments instanceof Twig_NodeInterface ? $arguments : new \Twig_Node($arguments),
|
||||
\Twig_Node_Expression_GetAttr::TYPE_ANY,
|
||||
$line
|
||||
);
|
||||
}
|
||||
|
||||
protected function markAsSafe(Twig_NodeInterface $node, $line = -1)
|
||||
{
|
||||
return new \Twig_Node_Expression_Filter(
|
||||
$node,
|
||||
new \Twig_Node(array(new \Twig_Node_Expression_Constant('safe', $line), new \Twig_Node())),
|
||||
$line
|
||||
);
|
||||
}
|
||||
|
||||
protected function output(Twig_NodeInterface $node, $line = -1)
|
||||
{
|
||||
return new \Twig_Node_Print($node, $line);
|
||||
}
|
||||
|
||||
protected function getNodeValues(array $values)
|
||||
{
|
||||
$nodes = array();
|
||||
foreach ($values as $value) {
|
||||
if ($value instanceof \Twig_NodeInterface) {
|
||||
$nodes[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $nodes;
|
||||
}
|
||||
|
||||
static public function parseGrammar($str, $main = true)
|
||||
{
|
||||
static $cursor;
|
||||
|
||||
Reference in New Issue
Block a user