aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-07-27 10:05:23 +0200
commit5bf66662a9bdd62c5bccab15e607cd95cfb8fcab (patch)
tree39a1a4629749056191c05dfd899f931701b7acf3 /srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php
parent5afd237bbd22028b85532b8c0b3fcead49a00764 (diff)
downloadft_server-master.tar.gz
ft_server-master.tar.bz2
ft_server-master.zip
Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my famillyHEADmaster
Diffstat (limited to 'srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php')
-rw-r--r--srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php170
1 files changed, 0 insertions, 170 deletions
diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php
deleted file mode 100644
index 11245f9..0000000
--- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ExpressionLanguage\Node;
-
-use Symfony\Component\ExpressionLanguage\Compiler;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @internal
- */
-class BinaryNode extends Node
-{
- private static $operators = [
- '~' => '.',
- 'and' => '&&',
- 'or' => '||',
- ];
-
- private static $functions = [
- '**' => 'pow',
- '..' => 'range',
- 'in' => 'in_array',
- 'not in' => '!in_array',
- ];
-
- public function __construct(string $operator, Node $left, Node $right)
- {
- parent::__construct(
- ['left' => $left, 'right' => $right],
- ['operator' => $operator]
- );
- }
-
- public function compile(Compiler $compiler)
- {
- $operator = $this->attributes['operator'];
-
- if ('matches' == $operator) {
- $compiler
- ->raw('preg_match(')
- ->compile($this->nodes['right'])
- ->raw(', ')
- ->compile($this->nodes['left'])
- ->raw(')')
- ;
-
- return;
- }
-
- if (isset(self::$functions[$operator])) {
- $compiler
- ->raw(sprintf('%s(', self::$functions[$operator]))
- ->compile($this->nodes['left'])
- ->raw(', ')
- ->compile($this->nodes['right'])
- ->raw(')')
- ;
-
- return;
- }
-
- if (isset(self::$operators[$operator])) {
- $operator = self::$operators[$operator];
- }
-
- $compiler
- ->raw('(')
- ->compile($this->nodes['left'])
- ->raw(' ')
- ->raw($operator)
- ->raw(' ')
- ->compile($this->nodes['right'])
- ->raw(')')
- ;
- }
-
- public function evaluate($functions, $values)
- {
- $operator = $this->attributes['operator'];
- $left = $this->nodes['left']->evaluate($functions, $values);
-
- if (isset(self::$functions[$operator])) {
- $right = $this->nodes['right']->evaluate($functions, $values);
-
- if ('not in' === $operator) {
- return !\in_array($left, $right);
- }
- $f = self::$functions[$operator];
-
- return $f($left, $right);
- }
-
- switch ($operator) {
- case 'or':
- case '||':
- return $left || $this->nodes['right']->evaluate($functions, $values);
- case 'and':
- case '&&':
- return $left && $this->nodes['right']->evaluate($functions, $values);
- }
-
- $right = $this->nodes['right']->evaluate($functions, $values);
-
- switch ($operator) {
- case '|':
- return $left | $right;
- case '^':
- return $left ^ $right;
- case '&':
- return $left & $right;
- case '==':
- return $left == $right;
- case '===':
- return $left === $right;
- case '!=':
- return $left != $right;
- case '!==':
- return $left !== $right;
- case '<':
- return $left < $right;
- case '>':
- return $left > $right;
- case '>=':
- return $left >= $right;
- case '<=':
- return $left <= $right;
- case 'not in':
- return !\in_array($left, $right);
- case 'in':
- return \in_array($left, $right);
- case '+':
- return $left + $right;
- case '-':
- return $left - $right;
- case '~':
- return $left.$right;
- case '*':
- return $left * $right;
- case '/':
- if (0 == $right) {
- throw new \DivisionByZeroError('Division by zero');
- }
-
- return $left / $right;
- case '%':
- if (0 == $right) {
- throw new \DivisionByZeroError('Modulo by zero');
- }
-
- return $left % $right;
- case 'matches':
- return preg_match($right, $left);
- }
- }
-
- public function toArray()
- {
- return ['(', $this->nodes['left'], ' '.$this->attributes['operator'].' ', $this->nodes['right'], ')'];
- }
-}