summaryrefslogtreecommitdiff
path: root/inc/lib/Twig/Node
diff options
context:
space:
mode:
authorMichael Foster <savetheinternet@tinyboard.org>2013-09-19 16:08:25 +1000
committerMichael Foster <savetheinternet@tinyboard.org>2013-09-19 16:08:25 +1000
commit9c48084f3b5064d580a5c88a6fe9170599cf8879 (patch)
treecfee62fb06abbd182568efa0395be2077a021fca /inc/lib/Twig/Node
parent01857d176a2a9a2e3816b9cbf32da0c58f6aac3d (diff)
upgrade twig library
Diffstat (limited to 'inc/lib/Twig/Node')
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/AutoEscape.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Block.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/BlockReference.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Body.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Do.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Embed.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Array.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/AssignName.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Add.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/And.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Concat.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Div.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Equal.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/FloorDiv.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Greater.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/In.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Less.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/LessEqual.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Mod.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Mul.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/NotEqual.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/NotIn.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Or.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Power.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Range.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Binary/Sub.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/BlockReference.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Call.php6
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Conditional.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Constant.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/ExtensionReference.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Filter.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Filter/Default.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Function.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/GetAttr.php4
-rwxr-xr-xinc/lib/Twig/Node/Expression/MacroCall.php60
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/MethodCall.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Name.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Parent.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/TempName.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Constant.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Defined.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Divisibleby.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Even.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Null.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Odd.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Test/Sameas.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Unary.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Unary/Neg.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Unary/Not.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Expression/Unary/Pos.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Flush.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/For.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/ForLoop.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/If.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Import.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Include.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Macro.php4
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Module.php34
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Print.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Sandbox.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/SandboxedModule.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/SandboxedPrint.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Set.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/SetTemp.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Spaceless.php0
-rwxr-xr-x[-rw-r--r--]inc/lib/Twig/Node/Text.php0
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