Yaffs site version 1.1
[yaffs-website] / vendor / twig / twig / lib / Twig / Node / Expression / MethodCall.php
1 <?php
2
3 /*
4  * This file is part of Twig.
5  *
6  * (c) Fabien Potencier
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 class Twig_Node_Expression_MethodCall extends Twig_Node_Expression
12 {
13     public function __construct(Twig_Node_Expression $node, $method, Twig_Node_Expression_Array $arguments, $lineno)
14     {
15         parent::__construct(array('node' => $node, 'arguments' => $arguments), array('method' => $method, 'safe' => false), $lineno);
16
17         if ($node instanceof Twig_Node_Expression_Name) {
18             $node->setAttribute('always_defined', true);
19         }
20     }
21
22     public function compile(Twig_Compiler $compiler)
23     {
24         $compiler
25             ->subcompile($this->getNode('node'))
26             ->raw('->')
27             ->raw($this->getAttribute('method'))
28             ->raw('(')
29         ;
30         $first = true;
31         foreach ($this->getNode('arguments')->getKeyValuePairs() as $pair) {
32             if (!$first) {
33                 $compiler->raw(', ');
34             }
35             $first = false;
36
37             $compiler->subcompile($pair['value']);
38         }
39         $compiler->raw(')');
40     }
41 }
42
43 class_alias('Twig_Node_Expression_MethodCall', 'Twig\Node\Expression\MethodCallExpression', false);