diff options
| author | Michael Foster <savetheinternet@tinyboard.org> | 2013-09-19 16:08:25 +1000 |
|---|---|---|
| committer | Michael Foster <savetheinternet@tinyboard.org> | 2013-09-19 16:08:25 +1000 |
| commit | 9c48084f3b5064d580a5c88a6fe9170599cf8879 (patch) | |
| tree | cfee62fb06abbd182568efa0395be2077a021fca /inc/lib/Twig/Node | |
| parent | 01857d176a2a9a2e3816b9cbf32da0c58f6aac3d (diff) | |
upgrade twig library
Diffstat (limited to 'inc/lib/Twig/Node')
74 files changed, 100 insertions, 8 deletions
diff --git a/inc/lib/Twig/Node/AutoEscape.php b/inc/lib/Twig/Node/AutoEscape.php index 8f190e0b..8f190e0b 100644..100755 --- a/inc/lib/Twig/Node/AutoEscape.php +++ b/inc/lib/Twig/Node/AutoEscape.php diff --git a/inc/lib/Twig/Node/Block.php b/inc/lib/Twig/Node/Block.php index 50eb67ed..50eb67ed 100644..100755 --- a/inc/lib/Twig/Node/Block.php +++ b/inc/lib/Twig/Node/Block.php diff --git a/inc/lib/Twig/Node/BlockReference.php b/inc/lib/Twig/Node/BlockReference.php index 013e369e..013e369e 100644..100755 --- a/inc/lib/Twig/Node/BlockReference.php +++ b/inc/lib/Twig/Node/BlockReference.php diff --git a/inc/lib/Twig/Node/Body.php b/inc/lib/Twig/Node/Body.php index 3ffb1342..3ffb1342 100644..100755 --- a/inc/lib/Twig/Node/Body.php +++ b/inc/lib/Twig/Node/Body.php diff --git a/inc/lib/Twig/Node/Do.php b/inc/lib/Twig/Node/Do.php index c528066b..c528066b 100644..100755 --- a/inc/lib/Twig/Node/Do.php +++ b/inc/lib/Twig/Node/Do.php diff --git a/inc/lib/Twig/Node/Embed.php b/inc/lib/Twig/Node/Embed.php index 4c9456dc..4c9456dc 100644..100755 --- a/inc/lib/Twig/Node/Embed.php +++ b/inc/lib/Twig/Node/Embed.php diff --git a/inc/lib/Twig/Node/Expression.php b/inc/lib/Twig/Node/Expression.php index a7382e7d..a7382e7d 100644..100755 --- a/inc/lib/Twig/Node/Expression.php +++ b/inc/lib/Twig/Node/Expression.php diff --git a/inc/lib/Twig/Node/Expression/Array.php b/inc/lib/Twig/Node/Expression/Array.php index 1da785fe..1da785fe 100644..100755 --- a/inc/lib/Twig/Node/Expression/Array.php +++ b/inc/lib/Twig/Node/Expression/Array.php diff --git a/inc/lib/Twig/Node/Expression/AssignName.php b/inc/lib/Twig/Node/Expression/AssignName.php index 2ddea78c..2ddea78c 100644..100755 --- a/inc/lib/Twig/Node/Expression/AssignName.php +++ b/inc/lib/Twig/Node/Expression/AssignName.php diff --git a/inc/lib/Twig/Node/Expression/Binary.php b/inc/lib/Twig/Node/Expression/Binary.php index 9dd5de2c..9dd5de2c 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary.php +++ b/inc/lib/Twig/Node/Expression/Binary.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Add.php b/inc/lib/Twig/Node/Expression/Binary/Add.php index 0ef8e117..0ef8e117 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Add.php +++ b/inc/lib/Twig/Node/Expression/Binary/Add.php diff --git a/inc/lib/Twig/Node/Expression/Binary/And.php b/inc/lib/Twig/Node/Expression/Binary/And.php index d5752ebb..d5752ebb 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/And.php +++ b/inc/lib/Twig/Node/Expression/Binary/And.php diff --git a/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php b/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php index 9a46d845..9a46d845 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php +++ b/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php diff --git a/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php b/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php index 058a20bf..058a20bf 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php +++ b/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php diff --git a/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php b/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php index f4da73d4..f4da73d4 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php +++ b/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Concat.php b/inc/lib/Twig/Node/Expression/Binary/Concat.php index f9a64627..f9a64627 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Concat.php +++ b/inc/lib/Twig/Node/Expression/Binary/Concat.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Div.php b/inc/lib/Twig/Node/Expression/Binary/Div.php index e0797a61..e0797a61 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Div.php +++ b/inc/lib/Twig/Node/Expression/Binary/Div.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Equal.php b/inc/lib/Twig/Node/Expression/Binary/Equal.php index 7b1236d0..7b1236d0 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Equal.php +++ b/inc/lib/Twig/Node/Expression/Binary/Equal.php diff --git a/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php b/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php index 7fbd0556..7fbd0556 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php +++ b/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Greater.php b/inc/lib/Twig/Node/Expression/Binary/Greater.php index a110bd92..a110bd92 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Greater.php +++ b/inc/lib/Twig/Node/Expression/Binary/Greater.php diff --git a/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php b/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php index 3754fed2..3754fed2 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php +++ b/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php diff --git a/inc/lib/Twig/Node/Expression/Binary/In.php b/inc/lib/Twig/Node/Expression/Binary/In.php index 788f9377..788f9377 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/In.php +++ b/inc/lib/Twig/Node/Expression/Binary/In.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Less.php b/inc/lib/Twig/Node/Expression/Binary/Less.php index 45fd3004..45fd3004 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Less.php +++ b/inc/lib/Twig/Node/Expression/Binary/Less.php diff --git a/inc/lib/Twig/Node/Expression/Binary/LessEqual.php b/inc/lib/Twig/Node/Expression/Binary/LessEqual.php index e38e257c..e38e257c 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/LessEqual.php +++ b/inc/lib/Twig/Node/Expression/Binary/LessEqual.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Mod.php b/inc/lib/Twig/Node/Expression/Binary/Mod.php index 9924114f..9924114f 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Mod.php +++ b/inc/lib/Twig/Node/Expression/Binary/Mod.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Mul.php b/inc/lib/Twig/Node/Expression/Binary/Mul.php index c91529ca..c91529ca 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Mul.php +++ b/inc/lib/Twig/Node/Expression/Binary/Mul.php diff --git a/inc/lib/Twig/Node/Expression/Binary/NotEqual.php b/inc/lib/Twig/Node/Expression/Binary/NotEqual.php index 26867ba2..26867ba2 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/NotEqual.php +++ b/inc/lib/Twig/Node/Expression/Binary/NotEqual.php diff --git a/inc/lib/Twig/Node/Expression/Binary/NotIn.php b/inc/lib/Twig/Node/Expression/Binary/NotIn.php index f347b7b6..f347b7b6 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/NotIn.php +++ b/inc/lib/Twig/Node/Expression/Binary/NotIn.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Or.php b/inc/lib/Twig/Node/Expression/Binary/Or.php index adba49c6..adba49c6 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Or.php +++ b/inc/lib/Twig/Node/Expression/Binary/Or.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Power.php b/inc/lib/Twig/Node/Expression/Binary/Power.php index b2c59040..b2c59040 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Power.php +++ b/inc/lib/Twig/Node/Expression/Binary/Power.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Range.php b/inc/lib/Twig/Node/Expression/Binary/Range.php index bea4f2a6..bea4f2a6 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Range.php +++ b/inc/lib/Twig/Node/Expression/Binary/Range.php diff --git a/inc/lib/Twig/Node/Expression/Binary/Sub.php b/inc/lib/Twig/Node/Expression/Binary/Sub.php index d4463991..d4463991 100644..100755 --- a/inc/lib/Twig/Node/Expression/Binary/Sub.php +++ b/inc/lib/Twig/Node/Expression/Binary/Sub.php diff --git a/inc/lib/Twig/Node/Expression/BlockReference.php b/inc/lib/Twig/Node/Expression/BlockReference.php index 647196eb..647196eb 100644..100755 --- a/inc/lib/Twig/Node/Expression/BlockReference.php +++ b/inc/lib/Twig/Node/Expression/BlockReference.php diff --git a/inc/lib/Twig/Node/Expression/Call.php b/inc/lib/Twig/Node/Expression/Call.php index 87b62deb..dba9b0e6 100644..100755 --- a/inc/lib/Twig/Node/Expression/Call.php +++ b/inc/lib/Twig/Node/Expression/Call.php @@ -146,7 +146,7 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression if (array_key_exists($name, $parameters)) { if (array_key_exists($pos, $parameters)) { - throw new Twig_Error_Syntax(sprintf('Arguments "%s" is defined twice for %s "%s".', $name, $this->getAttribute('type'), $this->getAttribute('name'))); + throw new Twig_Error_Syntax(sprintf('Argument "%s" is defined twice for %s "%s".', $name, $this->getAttribute('type'), $this->getAttribute('name'))); } $arguments[] = $parameters[$name]; @@ -164,8 +164,8 @@ abstract class Twig_Node_Expression_Call extends Twig_Node_Expression } } - foreach (array_keys($parameters) as $name) { - throw new Twig_Error_Syntax(sprintf('Unknown argument "%s" for %s "%s".', $name, $this->getAttribute('type'), $this->getAttribute('name'))); + if (!empty($parameters)) { + throw new Twig_Error_Syntax(sprintf('Unknown argument%s "%s" for %s "%s".', count($parameters) > 1 ? 's' : '' , implode('", "', array_keys($parameters)), $this->getAttribute('type'), $this->getAttribute('name'))); } return $arguments; diff --git a/inc/lib/Twig/Node/Expression/Conditional.php b/inc/lib/Twig/Node/Expression/Conditional.php index edcb1e2d..edcb1e2d 100644..100755 --- a/inc/lib/Twig/Node/Expression/Conditional.php +++ b/inc/lib/Twig/Node/Expression/Conditional.php diff --git a/inc/lib/Twig/Node/Expression/Constant.php b/inc/lib/Twig/Node/Expression/Constant.php index a91dc698..a91dc698 100644..100755 --- a/inc/lib/Twig/Node/Expression/Constant.php +++ b/inc/lib/Twig/Node/Expression/Constant.php diff --git a/inc/lib/Twig/Node/Expression/ExtensionReference.php b/inc/lib/Twig/Node/Expression/ExtensionReference.php index 00ac6701..00ac6701 100644..100755 --- a/inc/lib/Twig/Node/Expression/ExtensionReference.php +++ b/inc/lib/Twig/Node/Expression/ExtensionReference.php diff --git a/inc/lib/Twig/Node/Expression/Filter.php b/inc/lib/Twig/Node/Expression/Filter.php index 207b062a..207b062a 100644..100755 --- a/inc/lib/Twig/Node/Expression/Filter.php +++ b/inc/lib/Twig/Node/Expression/Filter.php diff --git a/inc/lib/Twig/Node/Expression/Filter/Default.php b/inc/lib/Twig/Node/Expression/Filter/Default.php index 1827c888..1827c888 100644..100755 --- a/inc/lib/Twig/Node/Expression/Filter/Default.php +++ b/inc/lib/Twig/Node/Expression/Filter/Default.php diff --git a/inc/lib/Twig/Node/Expression/Function.php b/inc/lib/Twig/Node/Expression/Function.php index 3e1f6b55..3e1f6b55 100644..100755 --- a/inc/lib/Twig/Node/Expression/Function.php +++ b/inc/lib/Twig/Node/Expression/Function.php diff --git a/inc/lib/Twig/Node/Expression/GetAttr.php b/inc/lib/Twig/Node/Expression/GetAttr.php index 81a9b137..55d9fcc3 100644..100755 --- a/inc/lib/Twig/Node/Expression/GetAttr.php +++ b/inc/lib/Twig/Node/Expression/GetAttr.php @@ -32,10 +32,10 @@ class Twig_Node_Expression_GetAttr extends Twig_Node_Expression $compiler->raw(', ')->subcompile($this->getNode('attribute')); - if (count($this->getNode('arguments')) || Twig_TemplateInterface::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) { + if (count($this->getNode('arguments')) || Twig_Template::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) { $compiler->raw(', ')->subcompile($this->getNode('arguments')); - if (Twig_TemplateInterface::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) { + if (Twig_Template::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) { $compiler->raw(', ')->repr($this->getAttribute('type')); } diff --git a/inc/lib/Twig/Node/Expression/MacroCall.php b/inc/lib/Twig/Node/Expression/MacroCall.php new file mode 100755 index 00000000..3e6b8c12 --- /dev/null +++ b/inc/lib/Twig/Node/Expression/MacroCall.php @@ -0,0 +1,60 @@ +<?php + +/* + * This file is part of Twig. + * + * (c) 2012 Fabien Potencier + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Represents a macro call node. + * + * @author Martin HasoĊ <martin.hason@gmail.com> + */ +class Twig_Node_Expression_MacroCall extends Twig_Node_Expression +{ + public function __construct(Twig_Node_Expression $template, $name, Twig_Node_Expression_Array $arguments, $lineno) + { + parent::__construct(array('template' => $template, 'arguments' => $arguments), array('name' => $name), $lineno); + } + + public function compile(Twig_Compiler $compiler) + { + $namedNames = array(); + $namedCount = 0; + $positionalCount = 0; + foreach ($this->getNode('arguments')->getKeyValuePairs() as $pair) { + $name = $pair['key']->getAttribute('value'); + if (!is_int($name)) { + $namedCount++; + $namedNames[$name] = 1; + } elseif ($namedCount > 0) { + throw new Twig_Error_Syntax(sprintf('Positional arguments cannot be used after named arguments for macro "%s".', $this->getAttribute('name')), $this->lineno); + } else { + $positionalCount++; + } + } + + $compiler + ->raw('$this->callMacro(') + ->subcompile($this->getNode('template')) + ->raw(', ')->repr($this->getAttribute('name')) + ->raw(', ')->subcompile($this->getNode('arguments')) + ; + + if ($namedCount > 0) { + $compiler + ->raw(', ')->repr($namedNames) + ->raw(', ')->repr($namedCount) + ->raw(', ')->repr($positionalCount) + ; + } + + $compiler + ->raw(')') + ; + } +} diff --git a/inc/lib/Twig/Node/Expression/MethodCall.php b/inc/lib/Twig/Node/Expression/MethodCall.php index 620b02bf..620b02bf 100644..100755 --- a/inc/lib/Twig/Node/Expression/MethodCall.php +++ b/inc/lib/Twig/Node/Expression/MethodCall.php diff --git a/inc/lib/Twig/Node/Expression/Name.php b/inc/lib/Twig/Node/Expression/Name.php index 3b8fae01..3b8fae01 100644..100755 --- a/inc/lib/Twig/Node/Expression/Name.php +++ b/inc/lib/Twig/Node/Expression/Name.php diff --git a/inc/lib/Twig/Node/Expression/Parent.php b/inc/lib/Twig/Node/Expression/Parent.php index dcf618c0..dcf618c0 100644..100755 --- a/inc/lib/Twig/Node/Expression/Parent.php +++ b/inc/lib/Twig/Node/Expression/Parent.php diff --git a/inc/lib/Twig/Node/Expression/TempName.php b/inc/lib/Twig/Node/Expression/TempName.php index e6b058e8..e6b058e8 100644..100755 --- a/inc/lib/Twig/Node/Expression/TempName.php +++ b/inc/lib/Twig/Node/Expression/TempName.php diff --git a/inc/lib/Twig/Node/Expression/Test.php b/inc/lib/Twig/Node/Expression/Test.php index 639f501a..639f501a 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test.php +++ b/inc/lib/Twig/Node/Expression/Test.php diff --git a/inc/lib/Twig/Node/Expression/Test/Constant.php b/inc/lib/Twig/Node/Expression/Test/Constant.php index de55f5f5..de55f5f5 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Constant.php +++ b/inc/lib/Twig/Node/Expression/Test/Constant.php diff --git a/inc/lib/Twig/Node/Expression/Test/Defined.php b/inc/lib/Twig/Node/Expression/Test/Defined.php index 247b2e23..247b2e23 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Defined.php +++ b/inc/lib/Twig/Node/Expression/Test/Defined.php diff --git a/inc/lib/Twig/Node/Expression/Test/Divisibleby.php b/inc/lib/Twig/Node/Expression/Test/Divisibleby.php index 0aceb530..0aceb530 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Divisibleby.php +++ b/inc/lib/Twig/Node/Expression/Test/Divisibleby.php diff --git a/inc/lib/Twig/Node/Expression/Test/Even.php b/inc/lib/Twig/Node/Expression/Test/Even.php index d7853e89..d7853e89 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Even.php +++ b/inc/lib/Twig/Node/Expression/Test/Even.php diff --git a/inc/lib/Twig/Node/Expression/Test/Null.php b/inc/lib/Twig/Node/Expression/Test/Null.php index 1c83825a..1c83825a 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Null.php +++ b/inc/lib/Twig/Node/Expression/Test/Null.php diff --git a/inc/lib/Twig/Node/Expression/Test/Odd.php b/inc/lib/Twig/Node/Expression/Test/Odd.php index 421c19e8..421c19e8 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Odd.php +++ b/inc/lib/Twig/Node/Expression/Test/Odd.php diff --git a/inc/lib/Twig/Node/Expression/Test/Sameas.php b/inc/lib/Twig/Node/Expression/Test/Sameas.php index b48905ee..b48905ee 100644..100755 --- a/inc/lib/Twig/Node/Expression/Test/Sameas.php +++ b/inc/lib/Twig/Node/Expression/Test/Sameas.php diff --git a/inc/lib/Twig/Node/Expression/Unary.php b/inc/lib/Twig/Node/Expression/Unary.php index c514388e..c514388e 100644..100755 --- a/inc/lib/Twig/Node/Expression/Unary.php +++ b/inc/lib/Twig/Node/Expression/Unary.php diff --git a/inc/lib/Twig/Node/Expression/Unary/Neg.php b/inc/lib/Twig/Node/Expression/Unary/Neg.php index 2a3937ec..2a3937ec 100644..100755 --- a/inc/lib/Twig/Node/Expression/Unary/Neg.php +++ b/inc/lib/Twig/Node/Expression/Unary/Neg.php diff --git a/inc/lib/Twig/Node/Expression/Unary/Not.php b/inc/lib/Twig/Node/Expression/Unary/Not.php index f94073cf..f94073cf 100644..100755 --- a/inc/lib/Twig/Node/Expression/Unary/Not.php +++ b/inc/lib/Twig/Node/Expression/Unary/Not.php diff --git a/inc/lib/Twig/Node/Expression/Unary/Pos.php b/inc/lib/Twig/Node/Expression/Unary/Pos.php index 04edb52a..04edb52a 100644..100755 --- a/inc/lib/Twig/Node/Expression/Unary/Pos.php +++ b/inc/lib/Twig/Node/Expression/Unary/Pos.php diff --git a/inc/lib/Twig/Node/Flush.php b/inc/lib/Twig/Node/Flush.php index 0467ddce..0467ddce 100644..100755 --- a/inc/lib/Twig/Node/Flush.php +++ b/inc/lib/Twig/Node/Flush.php diff --git a/inc/lib/Twig/Node/For.php b/inc/lib/Twig/Node/For.php index d1ff371d..d1ff371d 100644..100755 --- a/inc/lib/Twig/Node/For.php +++ b/inc/lib/Twig/Node/For.php diff --git a/inc/lib/Twig/Node/ForLoop.php b/inc/lib/Twig/Node/ForLoop.php index b8841583..b8841583 100644..100755 --- a/inc/lib/Twig/Node/ForLoop.php +++ b/inc/lib/Twig/Node/ForLoop.php diff --git a/inc/lib/Twig/Node/If.php b/inc/lib/Twig/Node/If.php index 4296a8d6..4296a8d6 100644..100755 --- a/inc/lib/Twig/Node/If.php +++ b/inc/lib/Twig/Node/If.php diff --git a/inc/lib/Twig/Node/Import.php b/inc/lib/Twig/Node/Import.php index 99efc091..99efc091 100644..100755 --- a/inc/lib/Twig/Node/Import.php +++ b/inc/lib/Twig/Node/Import.php diff --git a/inc/lib/Twig/Node/Include.php b/inc/lib/Twig/Node/Include.php index ed4a3751..ed4a3751 100644..100755 --- a/inc/lib/Twig/Node/Include.php +++ b/inc/lib/Twig/Node/Include.php diff --git a/inc/lib/Twig/Node/Macro.php b/inc/lib/Twig/Node/Macro.php index 89910618..43c75e5c 100644..100755 --- a/inc/lib/Twig/Node/Macro.php +++ b/inc/lib/Twig/Node/Macro.php @@ -18,7 +18,7 @@ class Twig_Node_Macro extends Twig_Node { public function __construct($name, Twig_NodeInterface $body, Twig_NodeInterface $arguments, $lineno, $tag = null) { - parent::__construct(array('body' => $body, 'arguments' => $arguments), array('name' => $name), $lineno, $tag); + parent::__construct(array('body' => $body, 'arguments' => $arguments), array('name' => $name, 'method' => 'get'.ucfirst($name)), $lineno, $tag); } /** @@ -30,7 +30,7 @@ class Twig_Node_Macro extends Twig_Node { $compiler ->addDebugInfo($this) - ->write(sprintf("public function get%s(", $this->getAttribute('name'))) + ->write(sprintf("public function %s(", $this->getAttribute('method'))) ; $count = count($this->getNode('arguments')); diff --git a/inc/lib/Twig/Node/Module.php b/inc/lib/Twig/Node/Module.php index 585048b8..224410a2 100644..100755 --- a/inc/lib/Twig/Node/Module.php +++ b/inc/lib/Twig/Node/Module.php @@ -235,9 +235,41 @@ class Twig_Node_Module extends Twig_Node $compiler ->outdent() + ->write(");\n\n") + ; + + // macro information + $compiler + ->write("\$this->macros = array(\n") + ->indent() + ; + + foreach ($this->getNode('macros') as $name => $node) { + $compiler + ->addIndentation()->repr($name)->raw(" => array(\n") + ->indent() + ->write("'method' => ")->repr($node->getAttribute('method'))->raw(",\n") + ->write("'arguments' => array(\n") + ->indent() + ; + foreach ($node->getNode('arguments') as $argument => $value) { + $compiler->addIndentation()->repr($argument)->raw (' => ')->subcompile($value)->raw(",\n"); + } + $compiler + ->outdent() + ->write("),\n") + ->outdent() + ->write("),\n") + ; + } + $compiler + ->outdent() ->write(");\n") + ; + + $compiler ->outdent() - ->write("}\n\n"); + ->write("}\n\n") ; } diff --git a/inc/lib/Twig/Node/Print.php b/inc/lib/Twig/Node/Print.php index b0c41d1d..b0c41d1d 100644..100755 --- a/inc/lib/Twig/Node/Print.php +++ b/inc/lib/Twig/Node/Print.php diff --git a/inc/lib/Twig/Node/Sandbox.php b/inc/lib/Twig/Node/Sandbox.php index 8cf3ed44..8cf3ed44 100644..100755 --- a/inc/lib/Twig/Node/Sandbox.php +++ b/inc/lib/Twig/Node/Sandbox.php diff --git a/inc/lib/Twig/Node/SandboxedModule.php b/inc/lib/Twig/Node/SandboxedModule.php index be1f5daa..be1f5daa 100644..100755 --- a/inc/lib/Twig/Node/SandboxedModule.php +++ b/inc/lib/Twig/Node/SandboxedModule.php diff --git a/inc/lib/Twig/Node/SandboxedPrint.php b/inc/lib/Twig/Node/SandboxedPrint.php index 73dfaa96..73dfaa96 100644..100755 --- a/inc/lib/Twig/Node/SandboxedPrint.php +++ b/inc/lib/Twig/Node/SandboxedPrint.php diff --git a/inc/lib/Twig/Node/Set.php b/inc/lib/Twig/Node/Set.php index 4c9c16ce..4c9c16ce 100644..100755 --- a/inc/lib/Twig/Node/Set.php +++ b/inc/lib/Twig/Node/Set.php diff --git a/inc/lib/Twig/Node/SetTemp.php b/inc/lib/Twig/Node/SetTemp.php index 3bdd1cb7..3bdd1cb7 100644..100755 --- a/inc/lib/Twig/Node/SetTemp.php +++ b/inc/lib/Twig/Node/SetTemp.php diff --git a/inc/lib/Twig/Node/Spaceless.php b/inc/lib/Twig/Node/Spaceless.php index 7555fa0f..7555fa0f 100644..100755 --- a/inc/lib/Twig/Node/Spaceless.php +++ b/inc/lib/Twig/Node/Spaceless.php diff --git a/inc/lib/Twig/Node/Text.php b/inc/lib/Twig/Node/Text.php index 21bdcea1..21bdcea1 100644..100755 --- a/inc/lib/Twig/Node/Text.php +++ b/inc/lib/Twig/Node/Text.php |
