diff options
Diffstat (limited to 'srcs/phpmyadmin/vendor/symfony/expression-language')
26 files changed, 0 insertions, 2184 deletions
diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md deleted file mode 100644 index 6c50b2e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -CHANGELOG -========= - -4.0.0 ------ - - * the first argument of the `ExpressionLanguage` constructor must be an instance - of `CacheItemPoolInterface` - * removed the `ArrayParserCache` and `ParserCacheAdapter` classes - * removed the `ParserCacheInterface` - -2.6.0 ------ - - * Added ExpressionFunction and ExpressionFunctionProviderInterface - -2.4.0 ------ - - * added the component diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php deleted file mode 100644 index 604f04c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php +++ /dev/null @@ -1,148 +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; - -use Symfony\Contracts\Service\ResetInterface; - -/** - * Compiles a node to PHP code. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class Compiler implements ResetInterface -{ - private $source; - private $functions; - - public function __construct(array $functions) - { - $this->functions = $functions; - } - - public function getFunction($name) - { - return $this->functions[$name]; - } - - /** - * Gets the current PHP code after compilation. - * - * @return string The PHP code - */ - public function getSource() - { - return $this->source; - } - - public function reset() - { - $this->source = ''; - - return $this; - } - - /** - * Compiles a node. - * - * @return $this - */ - public function compile(Node\Node $node) - { - $node->compile($this); - - return $this; - } - - public function subcompile(Node\Node $node) - { - $current = $this->source; - $this->source = ''; - - $node->compile($this); - - $source = $this->source; - $this->source = $current; - - return $source; - } - - /** - * Adds a raw string to the compiled code. - * - * @param string $string The string - * - * @return $this - */ - public function raw($string) - { - $this->source .= $string; - - return $this; - } - - /** - * Adds a quoted string to the compiled code. - * - * @param string $value The string - * - * @return $this - */ - public function string($value) - { - $this->source .= sprintf('"%s"', addcslashes($value, "\0\t\"\$\\")); - - return $this; - } - - /** - * Returns a PHP representation of a given value. - * - * @param mixed $value The value to convert - * - * @return $this - */ - public function repr($value) - { - if (\is_int($value) || \is_float($value)) { - if (false !== $locale = setlocale(LC_NUMERIC, 0)) { - setlocale(LC_NUMERIC, 'C'); - } - - $this->raw($value); - - if (false !== $locale) { - setlocale(LC_NUMERIC, $locale); - } - } elseif (null === $value) { - $this->raw('null'); - } elseif (\is_bool($value)) { - $this->raw($value ? 'true' : 'false'); - } elseif (\is_array($value)) { - $this->raw('['); - $first = true; - foreach ($value as $key => $value) { - if (!$first) { - $this->raw(', '); - } - $first = false; - $this->repr($key); - $this->raw(' => '); - $this->repr($value); - } - $this->raw(']'); - } else { - $this->string($value); - } - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php deleted file mode 100644 index 59d0e2a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php +++ /dev/null @@ -1,37 +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; - -/** - * Represents an expression. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class Expression -{ - protected $expression; - - public function __construct(string $expression) - { - $this->expression = $expression; - } - - /** - * Gets the expression. - * - * @return string The expression - */ - public function __toString() - { - return $this->expression; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php deleted file mode 100644 index 2bc91e8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php +++ /dev/null @@ -1,98 +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; - -/** - * Represents a function that can be used in an expression. - * - * A function is defined by two PHP callables. The callables are used - * by the language to compile and/or evaluate the function. - * - * The "compiler" function is used at compilation time and must return a - * PHP representation of the function call (it receives the function - * arguments as arguments). - * - * The "evaluator" function is used for expression evaluation and must return - * the value of the function call based on the values defined for the - * expression (it receives the values as a first argument and the function - * arguments as remaining arguments). - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class ExpressionFunction -{ - private $name; - private $compiler; - private $evaluator; - - /** - * @param string $name The function name - * @param callable $compiler A callable able to compile the function - * @param callable $evaluator A callable able to evaluate the function - */ - public function __construct(string $name, callable $compiler, callable $evaluator) - { - $this->name = $name; - $this->compiler = $compiler; - $this->evaluator = $evaluator; - } - - public function getName() - { - return $this->name; - } - - public function getCompiler() - { - return $this->compiler; - } - - public function getEvaluator() - { - return $this->evaluator; - } - - /** - * Creates an ExpressionFunction from a PHP function name. - * - * @param string $phpFunctionName The PHP function name - * @param string|null $expressionFunctionName The expression function name (default: same than the PHP function name) - * - * @return self - * - * @throws \InvalidArgumentException if given PHP function name does not exist - * @throws \InvalidArgumentException if given PHP function name is in namespace - * and expression function name is not defined - */ - public static function fromPhp($phpFunctionName, $expressionFunctionName = null) - { - $phpFunctionName = ltrim($phpFunctionName, '\\'); - if (!\function_exists($phpFunctionName)) { - throw new \InvalidArgumentException(sprintf('PHP function "%s" does not exist.', $phpFunctionName)); - } - - $parts = explode('\\', $phpFunctionName); - if (!$expressionFunctionName && \count($parts) > 1) { - throw new \InvalidArgumentException(sprintf('An expression function name must be defined when PHP function "%s" is namespaced.', $phpFunctionName)); - } - - $compiler = function () use ($phpFunctionName) { - return sprintf('\%s(%s)', $phpFunctionName, implode(', ', \func_get_args())); - }; - - $evaluator = function () use ($phpFunctionName) { - return $phpFunctionName(...\array_slice(\func_get_args(), 1)); - }; - - return new self($expressionFunctionName ?: end($parts), $compiler, $evaluator); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php deleted file mode 100644 index 414b013..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php +++ /dev/null @@ -1,23 +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; - -/** - * @author Fabien Potencier <fabien@symfony.com> - */ -interface ExpressionFunctionProviderInterface -{ - /** - * @return ExpressionFunction[] An array of Function instances - */ - public function getFunctions(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php deleted file mode 100644 index a257ec7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php +++ /dev/null @@ -1,166 +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; - -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\Adapter\ArrayAdapter; - -/** - * Allows to compile and evaluate expressions written in your own DSL. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class ExpressionLanguage -{ - private $cache; - private $lexer; - private $parser; - private $compiler; - - protected $functions = []; - - /** - * @param ExpressionFunctionProviderInterface[] $providers - */ - public function __construct(CacheItemPoolInterface $cache = null, array $providers = []) - { - $this->cache = $cache ?: new ArrayAdapter(); - $this->registerFunctions(); - foreach ($providers as $provider) { - $this->registerProvider($provider); - } - } - - /** - * Compiles an expression source code. - * - * @param Expression|string $expression The expression to compile - * @param array $names An array of valid names - * - * @return string The compiled PHP source code - */ - public function compile($expression, $names = []) - { - return $this->getCompiler()->compile($this->parse($expression, $names)->getNodes())->getSource(); - } - - /** - * Evaluate an expression. - * - * @param Expression|string $expression The expression to compile - * @param array $values An array of values - * - * @return mixed The result of the evaluation of the expression - */ - public function evaluate($expression, $values = []) - { - return $this->parse($expression, array_keys($values))->getNodes()->evaluate($this->functions, $values); - } - - /** - * Parses an expression. - * - * @param Expression|string $expression The expression to parse - * @param array $names An array of valid names - * - * @return ParsedExpression A ParsedExpression instance - */ - public function parse($expression, $names) - { - if ($expression instanceof ParsedExpression) { - return $expression; - } - - asort($names); - $cacheKeyItems = []; - - foreach ($names as $nameKey => $name) { - $cacheKeyItems[] = \is_int($nameKey) ? $name : $nameKey.':'.$name; - } - - $cacheItem = $this->cache->getItem(rawurlencode($expression.'//'.implode('|', $cacheKeyItems))); - - if (null === $parsedExpression = $cacheItem->get()) { - $nodes = $this->getParser()->parse($this->getLexer()->tokenize((string) $expression), $names); - $parsedExpression = new ParsedExpression((string) $expression, $nodes); - - $cacheItem->set($parsedExpression); - $this->cache->save($cacheItem); - } - - return $parsedExpression; - } - - /** - * Registers a function. - * - * @param string $name The function name - * @param callable $compiler A callable able to compile the function - * @param callable $evaluator A callable able to evaluate the function - * - * @throws \LogicException when registering a function after calling evaluate(), compile() or parse() - * - * @see ExpressionFunction - */ - public function register($name, callable $compiler, callable $evaluator) - { - if (null !== $this->parser) { - throw new \LogicException('Registering functions after calling evaluate(), compile() or parse() is not supported.'); - } - - $this->functions[$name] = ['compiler' => $compiler, 'evaluator' => $evaluator]; - } - - public function addFunction(ExpressionFunction $function) - { - $this->register($function->getName(), $function->getCompiler(), $function->getEvaluator()); - } - - public function registerProvider(ExpressionFunctionProviderInterface $provider) - { - foreach ($provider->getFunctions() as $function) { - $this->addFunction($function); - } - } - - protected function registerFunctions() - { - $this->addFunction(ExpressionFunction::fromPhp('constant')); - } - - private function getLexer(): Lexer - { - if (null === $this->lexer) { - $this->lexer = new Lexer(); - } - - return $this->lexer; - } - - private function getParser(): Parser - { - if (null === $this->parser) { - $this->parser = new Parser($this->functions); - } - - return $this->parser; - } - - private function getCompiler(): Compiler - { - if (null === $this->compiler) { - $this->compiler = new Compiler($this->functions); - } - - return $this->compiler->reset(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE b/srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE deleted file mode 100644 index a677f43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-2019 Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php deleted file mode 100644 index 95b9070..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php +++ /dev/null @@ -1,103 +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; - -/** - * Lexes an expression. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class Lexer -{ - /** - * Tokenizes an expression. - * - * @param string $expression The expression to tokenize - * - * @return TokenStream A token stream instance - * - * @throws SyntaxError - */ - public function tokenize($expression) - { - $expression = str_replace(["\r", "\n", "\t", "\v", "\f"], ' ', $expression); - $cursor = 0; - $tokens = []; - $brackets = []; - $end = \strlen($expression); - - while ($cursor < $end) { - if (' ' == $expression[$cursor]) { - ++$cursor; - - continue; - } - - if (preg_match('/[0-9]+(?:\.[0-9]+)?([Ee][\+\-][0-9]+)?/A', $expression, $match, 0, $cursor)) { - // numbers - $number = (float) $match[0]; // floats - if (preg_match('/^[0-9]+$/', $match[0]) && $number <= PHP_INT_MAX) { - $number = (int) $match[0]; // integers lower than the maximum - } - $tokens[] = new Token(Token::NUMBER_TYPE, $number, $cursor + 1); - $cursor += \strlen($match[0]); - } elseif (false !== strpos('([{', $expression[$cursor])) { - // opening bracket - $brackets[] = [$expression[$cursor], $cursor]; - - $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1); - ++$cursor; - } elseif (false !== strpos(')]}', $expression[$cursor])) { - // closing bracket - if (empty($brackets)) { - throw new SyntaxError(sprintf('Unexpected "%s"', $expression[$cursor]), $cursor, $expression); - } - - list($expect, $cur) = array_pop($brackets); - if ($expression[$cursor] != strtr($expect, '([{', ')]}')) { - throw new SyntaxError(sprintf('Unclosed "%s"', $expect), $cur, $expression); - } - - $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1); - ++$cursor; - } elseif (preg_match('/"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'/As', $expression, $match, 0, $cursor)) { - // strings - $tokens[] = new Token(Token::STRING_TYPE, stripcslashes(substr($match[0], 1, -1)), $cursor + 1); - $cursor += \strlen($match[0]); - } elseif (preg_match('/not in(?=[\s(])|\!\=\=|not(?=[\s(])|and(?=[\s(])|\=\=\=|\>\=|or(?=[\s(])|\<\=|\*\*|\.\.|in(?=[\s(])|&&|\|\||matches|\=\=|\!\=|\*|~|%|\/|\>|\||\!|\^|&|\+|\<|\-/A', $expression, $match, 0, $cursor)) { - // operators - $tokens[] = new Token(Token::OPERATOR_TYPE, $match[0], $cursor + 1); - $cursor += \strlen($match[0]); - } elseif (false !== strpos('.,?:', $expression[$cursor])) { - // punctuation - $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1); - ++$cursor; - } elseif (preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A', $expression, $match, 0, $cursor)) { - // names - $tokens[] = new Token(Token::NAME_TYPE, $match[0], $cursor + 1); - $cursor += \strlen($match[0]); - } else { - // unlexable - throw new SyntaxError(sprintf('Unexpected character "%s"', $expression[$cursor]), $cursor, $expression); - } - } - - $tokens[] = new Token(Token::EOF_TYPE, null, $cursor + 1); - - if (!empty($brackets)) { - list($expect, $cur) = array_pop($brackets); - throw new SyntaxError(sprintf('Unclosed "%s"', $expect), $cur, $expression); - } - - return new TokenStream($tokens, $expression); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php deleted file mode 100644 index e9849a4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php +++ /dev/null @@ -1,40 +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 ArgumentsNode extends ArrayNode -{ - public function compile(Compiler $compiler) - { - $this->compileArguments($compiler, false); - } - - public function toArray() - { - $array = []; - - foreach ($this->getKeyValuePairs() as $pair) { - $array[] = $pair['value']; - $array[] = ', '; - } - array_pop($array); - - return $array; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php deleted file mode 100644 index 921319a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php +++ /dev/null @@ -1,118 +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 ArrayNode extends Node -{ - protected $index; - - public function __construct() - { - $this->index = -1; - } - - public function addElement(Node $value, Node $key = null) - { - if (null === $key) { - $key = new ConstantNode(++$this->index); - } - - array_push($this->nodes, $key, $value); - } - - /** - * Compiles the node to PHP. - */ - public function compile(Compiler $compiler) - { - $compiler->raw('['); - $this->compileArguments($compiler); - $compiler->raw(']'); - } - - public function evaluate($functions, $values) - { - $result = []; - foreach ($this->getKeyValuePairs() as $pair) { - $result[$pair['key']->evaluate($functions, $values)] = $pair['value']->evaluate($functions, $values); - } - - return $result; - } - - public function toArray() - { - $value = []; - foreach ($this->getKeyValuePairs() as $pair) { - $value[$pair['key']->attributes['value']] = $pair['value']; - } - - $array = []; - - if ($this->isHash($value)) { - foreach ($value as $k => $v) { - $array[] = ', '; - $array[] = new ConstantNode($k); - $array[] = ': '; - $array[] = $v; - } - $array[0] = '{'; - $array[] = '}'; - } else { - foreach ($value as $v) { - $array[] = ', '; - $array[] = $v; - } - $array[0] = '['; - $array[] = ']'; - } - - return $array; - } - - protected function getKeyValuePairs() - { - $pairs = []; - foreach (array_chunk($this->nodes, 2) as $pair) { - $pairs[] = ['key' => $pair[0], 'value' => $pair[1]]; - } - - return $pairs; - } - - protected function compileArguments(Compiler $compiler, $withKeys = true) - { - $first = true; - foreach ($this->getKeyValuePairs() as $pair) { - if (!$first) { - $compiler->raw(', '); - } - $first = false; - - if ($withKeys) { - $compiler - ->compile($pair['key']) - ->raw(' => ') - ; - } - - $compiler->compile($pair['value']); - } - } -} 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'], ')']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php deleted file mode 100644 index ca1b484..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php +++ /dev/null @@ -1,56 +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 ConditionalNode extends Node -{ - public function __construct(Node $expr1, Node $expr2, Node $expr3) - { - parent::__construct( - ['expr1' => $expr1, 'expr2' => $expr2, 'expr3' => $expr3] - ); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('((') - ->compile($this->nodes['expr1']) - ->raw(') ? (') - ->compile($this->nodes['expr2']) - ->raw(') : (') - ->compile($this->nodes['expr3']) - ->raw('))') - ; - } - - public function evaluate($functions, $values) - { - if ($this->nodes['expr1']->evaluate($functions, $values)) { - return $this->nodes['expr2']->evaluate($functions, $values); - } - - return $this->nodes['expr3']->evaluate($functions, $values); - } - - public function toArray() - { - return ['(', $this->nodes['expr1'], ' ? ', $this->nodes['expr2'], ' : ', $this->nodes['expr3'], ')']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php deleted file mode 100644 index 0353f78..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php +++ /dev/null @@ -1,81 +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 ConstantNode extends Node -{ - private $isIdentifier; - - public function __construct($value, bool $isIdentifier = false) - { - $this->isIdentifier = $isIdentifier; - parent::__construct( - [], - ['value' => $value] - ); - } - - public function compile(Compiler $compiler) - { - $compiler->repr($this->attributes['value']); - } - - public function evaluate($functions, $values) - { - return $this->attributes['value']; - } - - public function toArray() - { - $array = []; - $value = $this->attributes['value']; - - if ($this->isIdentifier) { - $array[] = $value; - } elseif (true === $value) { - $array[] = 'true'; - } elseif (false === $value) { - $array[] = 'false'; - } elseif (null === $value) { - $array[] = 'null'; - } elseif (is_numeric($value)) { - $array[] = $value; - } elseif (!\is_array($value)) { - $array[] = $this->dumpString($value); - } elseif ($this->isHash($value)) { - foreach ($value as $k => $v) { - $array[] = ', '; - $array[] = new self($k); - $array[] = ': '; - $array[] = new self($v); - } - $array[0] = '{'; - $array[] = '}'; - } else { - foreach ($value as $v) { - $array[] = ', '; - $array[] = new self($v); - } - $array[0] = '['; - $array[] = ']'; - } - - return $array; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php deleted file mode 100644 index 2a46191..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php +++ /dev/null @@ -1,67 +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 FunctionNode extends Node -{ - public function __construct(string $name, Node $arguments) - { - parent::__construct( - ['arguments' => $arguments], - ['name' => $name] - ); - } - - public function compile(Compiler $compiler) - { - $arguments = []; - foreach ($this->nodes['arguments']->nodes as $node) { - $arguments[] = $compiler->subcompile($node); - } - - $function = $compiler->getFunction($this->attributes['name']); - - $compiler->raw($function['compiler'](...$arguments)); - } - - public function evaluate($functions, $values) - { - $arguments = [$values]; - foreach ($this->nodes['arguments']->nodes as $node) { - $arguments[] = $node->evaluate($functions, $values); - } - - return $functions[$this->attributes['name']]['evaluator'](...$arguments); - } - - public function toArray() - { - $array = []; - $array[] = $this->attributes['name']; - - foreach ($this->nodes['arguments']->nodes as $node) { - $array[] = ', '; - $array[] = $node; - } - $array[1] = '('; - $array[] = ')'; - - return $array; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php deleted file mode 100644 index a28b596..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php +++ /dev/null @@ -1,114 +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 GetAttrNode extends Node -{ - const PROPERTY_CALL = 1; - const METHOD_CALL = 2; - const ARRAY_CALL = 3; - - public function __construct(Node $node, Node $attribute, ArrayNode $arguments, int $type) - { - parent::__construct( - ['node' => $node, 'attribute' => $attribute, 'arguments' => $arguments], - ['type' => $type] - ); - } - - public function compile(Compiler $compiler) - { - switch ($this->attributes['type']) { - case self::PROPERTY_CALL: - $compiler - ->compile($this->nodes['node']) - ->raw('->') - ->raw($this->nodes['attribute']->attributes['value']) - ; - break; - - case self::METHOD_CALL: - $compiler - ->compile($this->nodes['node']) - ->raw('->') - ->raw($this->nodes['attribute']->attributes['value']) - ->raw('(') - ->compile($this->nodes['arguments']) - ->raw(')') - ; - break; - - case self::ARRAY_CALL: - $compiler - ->compile($this->nodes['node']) - ->raw('[') - ->compile($this->nodes['attribute'])->raw(']') - ; - break; - } - } - - public function evaluate($functions, $values) - { - switch ($this->attributes['type']) { - case self::PROPERTY_CALL: - $obj = $this->nodes['node']->evaluate($functions, $values); - if (!\is_object($obj)) { - throw new \RuntimeException('Unable to get a property on a non-object.'); - } - - $property = $this->nodes['attribute']->attributes['value']; - - return $obj->$property; - - case self::METHOD_CALL: - $obj = $this->nodes['node']->evaluate($functions, $values); - if (!\is_object($obj)) { - throw new \RuntimeException('Unable to get a property on a non-object.'); - } - if (!\is_callable($toCall = [$obj, $this->nodes['attribute']->attributes['value']])) { - throw new \RuntimeException(sprintf('Unable to call method "%s" of object "%s".', $this->nodes['attribute']->attributes['value'], \get_class($obj))); - } - - return $toCall(...array_values($this->nodes['arguments']->evaluate($functions, $values))); - - case self::ARRAY_CALL: - $array = $this->nodes['node']->evaluate($functions, $values); - if (!\is_array($array) && !$array instanceof \ArrayAccess) { - throw new \RuntimeException('Unable to get an item on a non-array.'); - } - - return $array[$this->nodes['attribute']->evaluate($functions, $values)]; - } - } - - public function toArray() - { - switch ($this->attributes['type']) { - case self::PROPERTY_CALL: - return [$this->nodes['node'], '.', $this->nodes['attribute']]; - - case self::METHOD_CALL: - return [$this->nodes['node'], '.', $this->nodes['attribute'], '(', $this->nodes['arguments'], ')']; - - case self::ARRAY_CALL: - return [$this->nodes['node'], '[', $this->nodes['attribute'], ']']; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php deleted file mode 100644 index 1a3d994..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php +++ /dev/null @@ -1,45 +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 NameNode extends Node -{ - public function __construct(string $name) - { - parent::__construct( - [], - ['name' => $name] - ); - } - - public function compile(Compiler $compiler) - { - $compiler->raw('$'.$this->attributes['name']); - } - - public function evaluate($functions, $values) - { - return $values[$this->attributes['name']]; - } - - public function toArray() - { - return [$this->attributes['name']]; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php deleted file mode 100644 index 61bbd0c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php +++ /dev/null @@ -1,113 +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; - -/** - * Represents a node in the AST. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class Node -{ - public $nodes = []; - public $attributes = []; - - /** - * @param array $nodes An array of nodes - * @param array $attributes An array of attributes - */ - public function __construct(array $nodes = [], array $attributes = []) - { - $this->nodes = $nodes; - $this->attributes = $attributes; - } - - /** - * @return string - */ - public function __toString() - { - $attributes = []; - foreach ($this->attributes as $name => $value) { - $attributes[] = sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true))); - } - - $repr = [str_replace('Symfony\Component\ExpressionLanguage\Node\\', '', \get_class($this)).'('.implode(', ', $attributes)]; - - if (\count($this->nodes)) { - foreach ($this->nodes as $node) { - foreach (explode("\n", (string) $node) as $line) { - $repr[] = ' '.$line; - } - } - - $repr[] = ')'; - } else { - $repr[0] .= ')'; - } - - return implode("\n", $repr); - } - - public function compile(Compiler $compiler) - { - foreach ($this->nodes as $node) { - $node->compile($compiler); - } - } - - public function evaluate($functions, $values) - { - $results = []; - foreach ($this->nodes as $node) { - $results[] = $node->evaluate($functions, $values); - } - - return $results; - } - - public function toArray() - { - throw new \BadMethodCallException(sprintf('Dumping a "%s" instance is not supported yet.', \get_class($this))); - } - - public function dump() - { - $dump = ''; - - foreach ($this->toArray() as $v) { - $dump .= is_scalar($v) ? $v : $v->dump(); - } - - return $dump; - } - - protected function dumpString($value) - { - return sprintf('"%s"', addcslashes($value, "\0\t\"\\")); - } - - protected function isHash(array $value) - { - $expectedKey = 0; - - foreach ($value as $key => $val) { - if ($key !== $expectedKey++) { - return true; - } - } - - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php deleted file mode 100644 index abf2cc6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php +++ /dev/null @@ -1,66 +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 UnaryNode extends Node -{ - private static $operators = [ - '!' => '!', - 'not' => '!', - '+' => '+', - '-' => '-', - ]; - - public function __construct(string $operator, Node $node) - { - parent::__construct( - ['node' => $node], - ['operator' => $operator] - ); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->raw(self::$operators[$this->attributes['operator']]) - ->compile($this->nodes['node']) - ->raw(')') - ; - } - - public function evaluate($functions, $values) - { - $value = $this->nodes['node']->evaluate($functions, $values); - switch ($this->attributes['operator']) { - case 'not': - case '!': - return !$value; - case '-': - return -$value; - } - - return $value; - } - - public function toArray(): array - { - return ['(', $this->attributes['operator'].' ', $this->nodes['node'], ')']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php deleted file mode 100644 index 1416db1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php +++ /dev/null @@ -1,36 +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; - -use Symfony\Component\ExpressionLanguage\Node\Node; - -/** - * Represents an already parsed expression. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class ParsedExpression extends Expression -{ - private $nodes; - - public function __construct(string $expression, Node $nodes) - { - parent::__construct($expression); - - $this->nodes = $nodes; - } - - public function getNodes() - { - return $this->nodes; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php deleted file mode 100644 index 59c4d67..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php +++ /dev/null @@ -1,379 +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; - -/** - * Parsers a token stream. - * - * This parser implements a "Precedence climbing" algorithm. - * - * @see http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm - * @see http://en.wikipedia.org/wiki/Operator-precedence_parser - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class Parser -{ - const OPERATOR_LEFT = 1; - const OPERATOR_RIGHT = 2; - - private $stream; - private $unaryOperators; - private $binaryOperators; - private $functions; - private $names; - - public function __construct(array $functions) - { - $this->functions = $functions; - - $this->unaryOperators = [ - 'not' => ['precedence' => 50], - '!' => ['precedence' => 50], - '-' => ['precedence' => 500], - '+' => ['precedence' => 500], - ]; - $this->binaryOperators = [ - 'or' => ['precedence' => 10, 'associativity' => self::OPERATOR_LEFT], - '||' => ['precedence' => 10, 'associativity' => self::OPERATOR_LEFT], - 'and' => ['precedence' => 15, 'associativity' => self::OPERATOR_LEFT], - '&&' => ['precedence' => 15, 'associativity' => self::OPERATOR_LEFT], - '|' => ['precedence' => 16, 'associativity' => self::OPERATOR_LEFT], - '^' => ['precedence' => 17, 'associativity' => self::OPERATOR_LEFT], - '&' => ['precedence' => 18, 'associativity' => self::OPERATOR_LEFT], - '==' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '===' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '!=' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '!==' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '<' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '>' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '>=' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '<=' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - 'not in' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - 'in' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - 'matches' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '..' => ['precedence' => 25, 'associativity' => self::OPERATOR_LEFT], - '+' => ['precedence' => 30, 'associativity' => self::OPERATOR_LEFT], - '-' => ['precedence' => 30, 'associativity' => self::OPERATOR_LEFT], - '~' => ['precedence' => 40, 'associativity' => self::OPERATOR_LEFT], - '*' => ['precedence' => 60, 'associativity' => self::OPERATOR_LEFT], - '/' => ['precedence' => 60, 'associativity' => self::OPERATOR_LEFT], - '%' => ['precedence' => 60, 'associativity' => self::OPERATOR_LEFT], - '**' => ['precedence' => 200, 'associativity' => self::OPERATOR_RIGHT], - ]; - } - - /** - * Converts a token stream to a node tree. - * - * The valid names is an array where the values - * are the names that the user can use in an expression. - * - * If the variable name in the compiled PHP code must be - * different, define it as the key. - * - * For instance, ['this' => 'container'] means that the - * variable 'container' can be used in the expression - * but the compiled code will use 'this'. - * - * @param array $names An array of valid names - * - * @return Node\Node A node tree - * - * @throws SyntaxError - */ - public function parse(TokenStream $stream, $names = []) - { - $this->stream = $stream; - $this->names = $names; - - $node = $this->parseExpression(); - if (!$stream->isEOF()) { - throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s"', $stream->current->type, $stream->current->value), $stream->current->cursor, $stream->getExpression()); - } - - return $node; - } - - public function parseExpression($precedence = 0) - { - $expr = $this->getPrimary(); - $token = $this->stream->current; - while ($token->test(Token::OPERATOR_TYPE) && isset($this->binaryOperators[$token->value]) && $this->binaryOperators[$token->value]['precedence'] >= $precedence) { - $op = $this->binaryOperators[$token->value]; - $this->stream->next(); - - $expr1 = $this->parseExpression(self::OPERATOR_LEFT === $op['associativity'] ? $op['precedence'] + 1 : $op['precedence']); - $expr = new Node\BinaryNode($token->value, $expr, $expr1); - - $token = $this->stream->current; - } - - if (0 === $precedence) { - return $this->parseConditionalExpression($expr); - } - - return $expr; - } - - protected function getPrimary() - { - $token = $this->stream->current; - - if ($token->test(Token::OPERATOR_TYPE) && isset($this->unaryOperators[$token->value])) { - $operator = $this->unaryOperators[$token->value]; - $this->stream->next(); - $expr = $this->parseExpression($operator['precedence']); - - return $this->parsePostfixExpression(new Node\UnaryNode($token->value, $expr)); - } - - if ($token->test(Token::PUNCTUATION_TYPE, '(')) { - $this->stream->next(); - $expr = $this->parseExpression(); - $this->stream->expect(Token::PUNCTUATION_TYPE, ')', 'An opened parenthesis is not properly closed'); - - return $this->parsePostfixExpression($expr); - } - - return $this->parsePrimaryExpression(); - } - - protected function parseConditionalExpression($expr) - { - while ($this->stream->current->test(Token::PUNCTUATION_TYPE, '?')) { - $this->stream->next(); - if (!$this->stream->current->test(Token::PUNCTUATION_TYPE, ':')) { - $expr2 = $this->parseExpression(); - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, ':')) { - $this->stream->next(); - $expr3 = $this->parseExpression(); - } else { - $expr3 = new Node\ConstantNode(null); - } - } else { - $this->stream->next(); - $expr2 = $expr; - $expr3 = $this->parseExpression(); - } - - $expr = new Node\ConditionalNode($expr, $expr2, $expr3); - } - - return $expr; - } - - public function parsePrimaryExpression() - { - $token = $this->stream->current; - switch ($token->type) { - case Token::NAME_TYPE: - $this->stream->next(); - switch ($token->value) { - case 'true': - case 'TRUE': - return new Node\ConstantNode(true); - - case 'false': - case 'FALSE': - return new Node\ConstantNode(false); - - case 'null': - case 'NULL': - return new Node\ConstantNode(null); - - default: - if ('(' === $this->stream->current->value) { - if (false === isset($this->functions[$token->value])) { - throw new SyntaxError(sprintf('The function "%s" does not exist', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, array_keys($this->functions)); - } - - $node = new Node\FunctionNode($token->value, $this->parseArguments()); - } else { - if (!\in_array($token->value, $this->names, true)) { - throw new SyntaxError(sprintf('Variable "%s" is not valid', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, $this->names); - } - - // is the name used in the compiled code different - // from the name used in the expression? - if (\is_int($name = array_search($token->value, $this->names))) { - $name = $token->value; - } - - $node = new Node\NameNode($name); - } - } - break; - - case Token::NUMBER_TYPE: - case Token::STRING_TYPE: - $this->stream->next(); - - return new Node\ConstantNode($token->value); - - default: - if ($token->test(Token::PUNCTUATION_TYPE, '[')) { - $node = $this->parseArrayExpression(); - } elseif ($token->test(Token::PUNCTUATION_TYPE, '{')) { - $node = $this->parseHashExpression(); - } else { - throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s"', $token->type, $token->value), $token->cursor, $this->stream->getExpression()); - } - } - - return $this->parsePostfixExpression($node); - } - - public function parseArrayExpression() - { - $this->stream->expect(Token::PUNCTUATION_TYPE, '[', 'An array element was expected'); - - $node = new Node\ArrayNode(); - $first = true; - while (!$this->stream->current->test(Token::PUNCTUATION_TYPE, ']')) { - if (!$first) { - $this->stream->expect(Token::PUNCTUATION_TYPE, ',', 'An array element must be followed by a comma'); - - // trailing ,? - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, ']')) { - break; - } - } - $first = false; - - $node->addElement($this->parseExpression()); - } - $this->stream->expect(Token::PUNCTUATION_TYPE, ']', 'An opened array is not properly closed'); - - return $node; - } - - public function parseHashExpression() - { - $this->stream->expect(Token::PUNCTUATION_TYPE, '{', 'A hash element was expected'); - - $node = new Node\ArrayNode(); - $first = true; - while (!$this->stream->current->test(Token::PUNCTUATION_TYPE, '}')) { - if (!$first) { - $this->stream->expect(Token::PUNCTUATION_TYPE, ',', 'A hash value must be followed by a comma'); - - // trailing ,? - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, '}')) { - break; - } - } - $first = false; - - // a hash key can be: - // - // * a number -- 12 - // * a string -- 'a' - // * a name, which is equivalent to a string -- a - // * an expression, which must be enclosed in parentheses -- (1 + 2) - if ($this->stream->current->test(Token::STRING_TYPE) || $this->stream->current->test(Token::NAME_TYPE) || $this->stream->current->test(Token::NUMBER_TYPE)) { - $key = new Node\ConstantNode($this->stream->current->value); - $this->stream->next(); - } elseif ($this->stream->current->test(Token::PUNCTUATION_TYPE, '(')) { - $key = $this->parseExpression(); - } else { - $current = $this->stream->current; - - throw new SyntaxError(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s"', $current->type, $current->value), $current->cursor, $this->stream->getExpression()); - } - - $this->stream->expect(Token::PUNCTUATION_TYPE, ':', 'A hash key must be followed by a colon (:)'); - $value = $this->parseExpression(); - - $node->addElement($value, $key); - } - $this->stream->expect(Token::PUNCTUATION_TYPE, '}', 'An opened hash is not properly closed'); - - return $node; - } - - public function parsePostfixExpression($node) - { - $token = $this->stream->current; - while (Token::PUNCTUATION_TYPE == $token->type) { - if ('.' === $token->value) { - $this->stream->next(); - $token = $this->stream->current; - $this->stream->next(); - - if ( - Token::NAME_TYPE !== $token->type - && - // Operators like "not" and "matches" are valid method or property names, - // - // In other words, besides NAME_TYPE, OPERATOR_TYPE could also be parsed as a property or method. - // This is because operators are processed by the lexer prior to names. So "not" in "foo.not()" or "matches" in "foo.matches" will be recognized as an operator first. - // But in fact, "not" and "matches" in such expressions shall be parsed as method or property names. - // - // And this ONLY works if the operator consists of valid characters for a property or method name. - // - // Other types, such as STRING_TYPE and NUMBER_TYPE, can't be parsed as property nor method names. - // - // As a result, if $token is NOT an operator OR $token->value is NOT a valid property or method name, an exception shall be thrown. - (Token::OPERATOR_TYPE !== $token->type || !preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A', $token->value)) - ) { - throw new SyntaxError('Expected name', $token->cursor, $this->stream->getExpression()); - } - - $arg = new Node\ConstantNode($token->value, true); - - $arguments = new Node\ArgumentsNode(); - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, '(')) { - $type = Node\GetAttrNode::METHOD_CALL; - foreach ($this->parseArguments()->nodes as $n) { - $arguments->addElement($n); - } - } else { - $type = Node\GetAttrNode::PROPERTY_CALL; - } - - $node = new Node\GetAttrNode($node, $arg, $arguments, $type); - } elseif ('[' === $token->value) { - $this->stream->next(); - $arg = $this->parseExpression(); - $this->stream->expect(Token::PUNCTUATION_TYPE, ']'); - - $node = new Node\GetAttrNode($node, $arg, new Node\ArgumentsNode(), Node\GetAttrNode::ARRAY_CALL); - } else { - break; - } - - $token = $this->stream->current; - } - - return $node; - } - - /** - * Parses arguments. - */ - public function parseArguments() - { - $args = []; - $this->stream->expect(Token::PUNCTUATION_TYPE, '(', 'A list of arguments must begin with an opening parenthesis'); - while (!$this->stream->current->test(Token::PUNCTUATION_TYPE, ')')) { - if (!empty($args)) { - $this->stream->expect(Token::PUNCTUATION_TYPE, ',', 'Arguments must be separated by a comma'); - } - - $args[] = $this->parseExpression(); - } - $this->stream->expect(Token::PUNCTUATION_TYPE, ')', 'A list of arguments must be closed by a parenthesis'); - - return new Node\Node($args); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/README.md b/srcs/phpmyadmin/vendor/symfony/expression-language/README.md deleted file mode 100644 index 08b310d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/README.md +++ /dev/null @@ -1,15 +0,0 @@ -ExpressionLanguage Component -============================ - -The ExpressionLanguage component provides an engine that can compile and -evaluate expressions. An expression is a one-liner that returns a value -(mostly, but not limited to, Booleans). - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/expression_language/introduction.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php b/srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php deleted file mode 100644 index a1f838c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php +++ /dev/null @@ -1,37 +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; - -/** - * Represents an already parsed expression. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class SerializedParsedExpression extends ParsedExpression -{ - private $nodes; - - /** - * @param string $expression An expression - * @param string $nodes The serialized nodes for the expression - */ - public function __construct(string $expression, string $nodes) - { - $this->expression = $expression; - $this->nodes = $nodes; - } - - public function getNodes() - { - return unserialize($this->nodes); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php b/srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php deleted file mode 100644 index d3313b8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php +++ /dev/null @@ -1,41 +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; - -class SyntaxError extends \LogicException -{ - public function __construct(string $message, int $cursor = 0, string $expression = '', string $subject = null, array $proposals = null) - { - $message = sprintf('%s around position %d', $message, $cursor); - if ($expression) { - $message = sprintf('%s for expression `%s`', $message, $expression); - } - $message .= '.'; - - if (null !== $subject && null !== $proposals) { - $minScore = INF; - foreach ($proposals as $proposal) { - $distance = levenshtein($subject, $proposal); - if ($distance < $minScore) { - $guess = $proposal; - $minScore = $distance; - } - } - - if (isset($guess) && $minScore < 3) { - $message .= sprintf(' Did you mean "%s"?', $guess); - } - } - - parent::__construct($message); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Token.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Token.php deleted file mode 100644 index 40bb755..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Token.php +++ /dev/null @@ -1,66 +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; - -/** - * Represents a Token. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class Token -{ - public $value; - public $type; - public $cursor; - - const EOF_TYPE = 'end of expression'; - const NAME_TYPE = 'name'; - const NUMBER_TYPE = 'number'; - const STRING_TYPE = 'string'; - const OPERATOR_TYPE = 'operator'; - const PUNCTUATION_TYPE = 'punctuation'; - - /** - * @param string $type The type of the token (self::*_TYPE) - * @param string|int|float|null $value The token value - * @param int $cursor The cursor position in the source - */ - public function __construct(string $type, $value, ?int $cursor) - { - $this->type = $type; - $this->value = $value; - $this->cursor = $cursor; - } - - /** - * Returns a string representation of the token. - * - * @return string A string representation of the token - */ - public function __toString() - { - return sprintf('%3d %-11s %s', $this->cursor, strtoupper($this->type), $this->value); - } - - /** - * Tests the current token for a type and/or a value. - * - * @param array|int $type The type to test - * @param string|null $value The token value - * - * @return bool - */ - public function test($type, $value = null) - { - return $this->type === $type && (null === $value || $this->value == $value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php b/srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php deleted file mode 100644 index 01277dc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php +++ /dev/null @@ -1,91 +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; - -/** - * Represents a token stream. - * - * @author Fabien Potencier <fabien@symfony.com> - */ -class TokenStream -{ - public $current; - - private $tokens; - private $position = 0; - private $expression; - - public function __construct(array $tokens, string $expression = '') - { - $this->tokens = $tokens; - $this->current = $tokens[0]; - $this->expression = $expression; - } - - /** - * Returns a string representation of the token stream. - * - * @return string - */ - public function __toString() - { - return implode("\n", $this->tokens); - } - - /** - * Sets the pointer to the next token and returns the old one. - */ - public function next() - { - ++$this->position; - - if (!isset($this->tokens[$this->position])) { - throw new SyntaxError('Unexpected end of expression', $this->current->cursor, $this->expression); - } - - $this->current = $this->tokens[$this->position]; - } - - /** - * Tests a token. - * - * @param array|int $type The type to test - * @param string|null $value The token value - * @param string|null $message The syntax error message - */ - public function expect($type, $value = null, $message = null) - { - $token = $this->current; - if (!$token->test($type, $value)) { - throw new SyntaxError(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s)', $message ? $message.'. ' : '', $token->type, $token->value, $type, $value ? sprintf(' with value "%s"', $value) : ''), $token->cursor, $this->expression); - } - $this->next(); - } - - /** - * Checks if end of stream was reached. - * - * @return bool - */ - public function isEOF() - { - return Token::EOF_TYPE === $this->current->type; - } - - /** - * @internal - */ - public function getExpression(): string - { - return $this->expression; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/composer.json b/srcs/phpmyadmin/vendor/symfony/expression-language/composer.json deleted file mode 100644 index 6843975..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "symfony/expression-language", - "type": "library", - "description": "Symfony ExpressionLanguage Component", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^7.1.3", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1|^2" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\ExpressionLanguage\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} |
