summaryrefslogtreecommitdiff
path: root/inc/lib/Twig/Node/Expression/Binary
diff options
context:
space:
mode:
authorBenjamin Southall <applemansigloo@gmail.com>2019-02-26 10:11:12 +1000
committerBenjamin Southall <applemansigloo@gmail.com>2019-02-26 10:11:12 +1000
commitf79395851b044689567e0e6c9504acbcaa742782 (patch)
treeee539aee9ffa90e8accd6f130b30a8ebed7a232e /inc/lib/Twig/Node/Expression/Binary
parent28f32baf0125ca5085266e73dc5071e5814d8e3b (diff)
Twig update to latest Twig 1.x legacy as per vichan
Diffstat (limited to 'inc/lib/Twig/Node/Expression/Binary')
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Add.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/And.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Concat.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Div.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/EndsWith.php32
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Equal.php4
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/FloorDiv.php13
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Greater.php4
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php4
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/In.php9
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Less.php4
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/LessEqual.php4
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Matches.php30
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Mod.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Mul.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/NotEqual.php4
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/NotIn.php9
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Or.php6
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Power.php13
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Range.php9
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/StartsWith.php32
-rw-r--r--inc/lib/Twig/Node/Expression/Binary/Sub.php6
25 files changed, 177 insertions, 60 deletions
diff --git a/inc/lib/Twig/Node/Expression/Binary/Add.php b/inc/lib/Twig/Node/Expression/Binary/Add.php
index 0ef8e117..5a09d836 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Add.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Add.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Add extends Twig_Node_Expression_Binary
return $compiler->raw('+');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Add', 'Twig\Node\Expression\Binary\AddBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/And.php b/inc/lib/Twig/Node/Expression/Binary/And.php
index d5752ebb..9ffddce6 100644
--- a/inc/lib/Twig/Node/Expression/Binary/And.php
+++ b/inc/lib/Twig/Node/Expression/Binary/And.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_And extends Twig_Node_Expression_Binary
return $compiler->raw('&&');
}
}
+
+class_alias('Twig_Node_Expression_Binary_And', 'Twig\Node\Expression\Binary\AndBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php b/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
index 9a46d845..e46e9ebf 100644
--- a/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
+++ b/inc/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_BitwiseAnd extends Twig_Node_Expression_Binary
return $compiler->raw('&');
}
}
+
+class_alias('Twig_Node_Expression_Binary_BitwiseAnd', 'Twig\Node\Expression\Binary\BitwiseAndBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php b/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php
index 058a20bf..5d7f1b7c 100644
--- a/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php
+++ b/inc/lib/Twig/Node/Expression/Binary/BitwiseOr.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_BitwiseOr extends Twig_Node_Expression_Binary
return $compiler->raw('|');
}
}
+
+class_alias('Twig_Node_Expression_Binary_BitwiseOr', 'Twig\Node\Expression\Binary\BitwiseOrBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php b/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php
index f4da73d4..82edf516 100644
--- a/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php
+++ b/inc/lib/Twig/Node/Expression/Binary/BitwiseXor.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_BitwiseXor extends Twig_Node_Expression_Binary
return $compiler->raw('^');
}
}
+
+class_alias('Twig_Node_Expression_Binary_BitwiseXor', 'Twig\Node\Expression\Binary\BitwiseXorBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Concat.php b/inc/lib/Twig/Node/Expression/Binary/Concat.php
index f9a64627..91abca60 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Concat.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Concat.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Concat extends Twig_Node_Expression_Binary
return $compiler->raw('.');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Concat', 'Twig\Node\Expression\Binary\ConcatBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Div.php b/inc/lib/Twig/Node/Expression/Binary/Div.php
index e0797a61..38ffa30c 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Div.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Div.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Div extends Twig_Node_Expression_Binary
return $compiler->raw('/');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Div', 'Twig\Node\Expression\Binary\DivBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/EndsWith.php b/inc/lib/Twig/Node/Expression/Binary/EndsWith.php
new file mode 100644
index 00000000..85c52937
--- /dev/null
+++ b/inc/lib/Twig/Node/Expression/Binary/EndsWith.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+class Twig_Node_Expression_Binary_EndsWith extends Twig_Node_Expression_Binary
+{
+ public function compile(Twig_Compiler $compiler)
+ {
+ $left = $compiler->getVarName();
+ $right = $compiler->getVarName();
+ $compiler
+ ->raw(sprintf('(is_string($%s = ', $left))
+ ->subcompile($this->getNode('left'))
+ ->raw(sprintf(') && is_string($%s = ', $right))
+ ->subcompile($this->getNode('right'))
+ ->raw(sprintf(') && (\'\' === $%2$s || $%2$s === substr($%1$s, -strlen($%2$s))))', $left, $right))
+ ;
+ }
+
+ public function operator(Twig_Compiler $compiler)
+ {
+ return $compiler->raw('');
+ }
+}
+
+class_alias('Twig_Node_Expression_Binary_EndsWith', 'Twig\Node\Expression\Binary\EndsWithBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Equal.php b/inc/lib/Twig/Node/Expression/Binary/Equal.php
index 7b1236d0..a6a6946b 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Equal.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Equal.php
@@ -3,7 +3,7 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -15,3 +15,5 @@ class Twig_Node_Expression_Binary_Equal extends Twig_Node_Expression_Binary
return $compiler->raw('==');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Equal', 'Twig\Node\Expression\Binary\EqualBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php b/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php
index 7fbd0556..7393bcb8 100644
--- a/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php
+++ b/inc/lib/Twig/Node/Expression/Binary/FloorDiv.php
@@ -3,23 +3,18 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Twig_Node_Expression_Binary_FloorDiv extends Twig_Node_Expression_Binary
{
- /**
- * Compiles the node to PHP.
- *
- * @param Twig_Compiler A Twig_Compiler instance
- */
public function compile(Twig_Compiler $compiler)
{
- $compiler->raw('intval(floor(');
+ $compiler->raw('(int) floor(');
parent::compile($compiler);
- $compiler->raw('))');
+ $compiler->raw(')');
}
public function operator(Twig_Compiler $compiler)
@@ -27,3 +22,5 @@ class Twig_Node_Expression_Binary_FloorDiv extends Twig_Node_Expression_Binary
return $compiler->raw('/');
}
}
+
+class_alias('Twig_Node_Expression_Binary_FloorDiv', 'Twig\Node\Expression\Binary\FloorDivBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Greater.php b/inc/lib/Twig/Node/Expression/Binary/Greater.php
index a110bd92..832f9797 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Greater.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Greater.php
@@ -3,7 +3,7 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -15,3 +15,5 @@ class Twig_Node_Expression_Binary_Greater extends Twig_Node_Expression_Binary
return $compiler->raw('>');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Greater', 'Twig\Node\Expression\Binary\GreaterBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php b/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php
index 3754fed2..c5f76245 100644
--- a/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php
+++ b/inc/lib/Twig/Node/Expression/Binary/GreaterEqual.php
@@ -3,7 +3,7 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -15,3 +15,5 @@ class Twig_Node_Expression_Binary_GreaterEqual extends Twig_Node_Expression_Bina
return $compiler->raw('>=');
}
}
+
+class_alias('Twig_Node_Expression_Binary_GreaterEqual', 'Twig\Node\Expression\Binary\GreaterEqualBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/In.php b/inc/lib/Twig/Node/Expression/Binary/In.php
index 788f9377..af112448 100644
--- a/inc/lib/Twig/Node/Expression/Binary/In.php
+++ b/inc/lib/Twig/Node/Expression/Binary/In.php
@@ -3,18 +3,13 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Twig_Node_Expression_Binary_In extends Twig_Node_Expression_Binary
{
- /**
- * Compiles the node to PHP.
- *
- * @param Twig_Compiler A Twig_Compiler instance
- */
public function compile(Twig_Compiler $compiler)
{
$compiler
@@ -31,3 +26,5 @@ class Twig_Node_Expression_Binary_In extends Twig_Node_Expression_Binary
return $compiler->raw('in');
}
}
+
+class_alias('Twig_Node_Expression_Binary_In', 'Twig\Node\Expression\Binary\InBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Less.php b/inc/lib/Twig/Node/Expression/Binary/Less.php
index 45fd3004..ab8fc1f9 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Less.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Less.php
@@ -3,7 +3,7 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -15,3 +15,5 @@ class Twig_Node_Expression_Binary_Less extends Twig_Node_Expression_Binary
return $compiler->raw('<');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Less', 'Twig\Node\Expression\Binary\LessBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/LessEqual.php b/inc/lib/Twig/Node/Expression/Binary/LessEqual.php
index e38e257c..71a279e9 100644
--- a/inc/lib/Twig/Node/Expression/Binary/LessEqual.php
+++ b/inc/lib/Twig/Node/Expression/Binary/LessEqual.php
@@ -3,7 +3,7 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -15,3 +15,5 @@ class Twig_Node_Expression_Binary_LessEqual extends Twig_Node_Expression_Binary
return $compiler->raw('<=');
}
}
+
+class_alias('Twig_Node_Expression_Binary_LessEqual', 'Twig\Node\Expression\Binary\LessEqualBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Matches.php b/inc/lib/Twig/Node/Expression/Binary/Matches.php
new file mode 100644
index 00000000..5cb85584
--- /dev/null
+++ b/inc/lib/Twig/Node/Expression/Binary/Matches.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+class Twig_Node_Expression_Binary_Matches extends Twig_Node_Expression_Binary
+{
+ public function compile(Twig_Compiler $compiler)
+ {
+ $compiler
+ ->raw('preg_match(')
+ ->subcompile($this->getNode('right'))
+ ->raw(', ')
+ ->subcompile($this->getNode('left'))
+ ->raw(')')
+ ;
+ }
+
+ public function operator(Twig_Compiler $compiler)
+ {
+ return $compiler->raw('');
+ }
+}
+
+class_alias('Twig_Node_Expression_Binary_Matches', 'Twig\Node\Expression\Binary\MatchesBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Mod.php b/inc/lib/Twig/Node/Expression/Binary/Mod.php
index 9924114f..28109633 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Mod.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Mod.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Mod extends Twig_Node_Expression_Binary
return $compiler->raw('%');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Mod', 'Twig\Node\Expression\Binary\ModBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Mul.php b/inc/lib/Twig/Node/Expression/Binary/Mul.php
index c91529ca..790c6a22 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Mul.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Mul.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Mul extends Twig_Node_Expression_Binary
return $compiler->raw('*');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Mul', 'Twig\Node\Expression\Binary\MulBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/NotEqual.php b/inc/lib/Twig/Node/Expression/Binary/NotEqual.php
index 26867ba2..bb45c9ed 100644
--- a/inc/lib/Twig/Node/Expression/Binary/NotEqual.php
+++ b/inc/lib/Twig/Node/Expression/Binary/NotEqual.php
@@ -3,7 +3,7 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -15,3 +15,5 @@ class Twig_Node_Expression_Binary_NotEqual extends Twig_Node_Expression_Binary
return $compiler->raw('!=');
}
}
+
+class_alias('Twig_Node_Expression_Binary_NotEqual', 'Twig\Node\Expression\Binary\NotEqualBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/NotIn.php b/inc/lib/Twig/Node/Expression/Binary/NotIn.php
index f347b7b6..9dedf92f 100644
--- a/inc/lib/Twig/Node/Expression/Binary/NotIn.php
+++ b/inc/lib/Twig/Node/Expression/Binary/NotIn.php
@@ -3,18 +3,13 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Twig_Node_Expression_Binary_NotIn extends Twig_Node_Expression_Binary
{
- /**
- * Compiles the node to PHP.
- *
- * @param Twig_Compiler A Twig_Compiler instance
- */
public function compile(Twig_Compiler $compiler)
{
$compiler
@@ -31,3 +26,5 @@ class Twig_Node_Expression_Binary_NotIn extends Twig_Node_Expression_Binary
return $compiler->raw('not in');
}
}
+
+class_alias('Twig_Node_Expression_Binary_NotIn', 'Twig\Node\Expression\Binary\NotInBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Or.php b/inc/lib/Twig/Node/Expression/Binary/Or.php
index adba49c6..dc9eece1 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Or.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Or.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Or extends Twig_Node_Expression_Binary
return $compiler->raw('||');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Or', 'Twig\Node\Expression\Binary\OrBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Power.php b/inc/lib/Twig/Node/Expression/Binary/Power.php
index b2c59040..d24777bd 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Power.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Power.php
@@ -3,20 +3,19 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Twig_Node_Expression_Binary_Power extends Twig_Node_Expression_Binary
{
- /**
- * Compiles the node to PHP.
- *
- * @param Twig_Compiler A Twig_Compiler instance
- */
public function compile(Twig_Compiler $compiler)
{
+ if (PHP_VERSION_ID >= 50600) {
+ return parent::compile($compiler);
+ }
+
$compiler
->raw('pow(')
->subcompile($this->getNode('left'))
@@ -31,3 +30,5 @@ class Twig_Node_Expression_Binary_Power extends Twig_Node_Expression_Binary
return $compiler->raw('**');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Power', 'Twig\Node\Expression\Binary\PowerBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Range.php b/inc/lib/Twig/Node/Expression/Binary/Range.php
index bea4f2a6..187f6765 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Range.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Range.php
@@ -3,18 +3,13 @@
/*
* This file is part of Twig.
*
- * (c) 2010 Fabien Potencier
+ * (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Twig_Node_Expression_Binary_Range extends Twig_Node_Expression_Binary
{
- /**
- * Compiles the node to PHP.
- *
- * @param Twig_Compiler A Twig_Compiler instance
- */
public function compile(Twig_Compiler $compiler)
{
$compiler
@@ -31,3 +26,5 @@ class Twig_Node_Expression_Binary_Range extends Twig_Node_Expression_Binary
return $compiler->raw('..');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Range', 'Twig\Node\Expression\Binary\RangeBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/StartsWith.php b/inc/lib/Twig/Node/Expression/Binary/StartsWith.php
new file mode 100644
index 00000000..7e43b8de
--- /dev/null
+++ b/inc/lib/Twig/Node/Expression/Binary/StartsWith.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+class Twig_Node_Expression_Binary_StartsWith extends Twig_Node_Expression_Binary
+{
+ public function compile(Twig_Compiler $compiler)
+ {
+ $left = $compiler->getVarName();
+ $right = $compiler->getVarName();
+ $compiler
+ ->raw(sprintf('(is_string($%s = ', $left))
+ ->subcompile($this->getNode('left'))
+ ->raw(sprintf(') && is_string($%s = ', $right))
+ ->subcompile($this->getNode('right'))
+ ->raw(sprintf(') && (\'\' === $%2$s || 0 === strpos($%1$s, $%2$s)))', $left, $right))
+ ;
+ }
+
+ public function operator(Twig_Compiler $compiler)
+ {
+ return $compiler->raw('');
+ }
+}
+
+class_alias('Twig_Node_Expression_Binary_StartsWith', 'Twig\Node\Expression\Binary\StartsWithBinary', false);
diff --git a/inc/lib/Twig/Node/Expression/Binary/Sub.php b/inc/lib/Twig/Node/Expression/Binary/Sub.php
index d4463991..cff8ed07 100644
--- a/inc/lib/Twig/Node/Expression/Binary/Sub.php
+++ b/inc/lib/Twig/Node/Expression/Binary/Sub.php
@@ -3,8 +3,8 @@
/*
* This file is part of Twig.
*
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
+ * (c) Fabien Potencier
+ * (c) Armin Ronacher
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -16,3 +16,5 @@ class Twig_Node_Expression_Binary_Sub extends Twig_Node_Expression_Binary
return $compiler->raw('-');
}
}
+
+class_alias('Twig_Node_Expression_Binary_Sub', 'Twig\Node\Expression\Binary\SubBinary', false);