init web ems all
This commit is contained in:
27
phpMyAdmin/vendor/symfony/expression-language/Node/ArgumentsNode.php
vendored
Executable file
27
phpMyAdmin/vendor/symfony/expression-language/Node/ArgumentsNode.php
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
88
phpMyAdmin/vendor/symfony/expression-language/Node/ArrayNode.php
vendored
Executable file
88
phpMyAdmin/vendor/symfony/expression-language/Node/ArrayNode.php
vendored
Executable file
@@ -0,0 +1,88 @@
|
||||
<?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('array(');
|
||||
$this->compileArguments($compiler);
|
||||
$compiler->raw(')');
|
||||
}
|
||||
|
||||
public function evaluate($functions, $values)
|
||||
{
|
||||
$result = array();
|
||||
foreach ($this->getKeyValuePairs() as $pair) {
|
||||
$result[$pair['key']->evaluate($functions, $values)] = $pair['value']->evaluate($functions, $values);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function getKeyValuePairs()
|
||||
{
|
||||
$pairs = array();
|
||||
foreach (array_chunk($this->nodes, 2) as $pair) {
|
||||
$pairs[] = array('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']);
|
||||
}
|
||||
}
|
||||
}
|
||||
157
phpMyAdmin/vendor/symfony/expression-language/Node/BinaryNode.php
vendored
Executable file
157
phpMyAdmin/vendor/symfony/expression-language/Node/BinaryNode.php
vendored
Executable file
@@ -0,0 +1,157 @@
|
||||
<?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 = array(
|
||||
'~' => '.',
|
||||
'and' => '&&',
|
||||
'or' => '||',
|
||||
);
|
||||
|
||||
private static $functions = array(
|
||||
'**' => 'pow',
|
||||
'..' => 'range',
|
||||
'in' => 'in_array',
|
||||
'not in' => '!in_array',
|
||||
);
|
||||
|
||||
public function __construct($operator, Node $left, Node $right)
|
||||
{
|
||||
parent::__construct(
|
||||
array('left' => $left, 'right' => $right),
|
||||
array('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 '/':
|
||||
return $left / $right;
|
||||
case '%':
|
||||
return $left % $right;
|
||||
case 'matches':
|
||||
return preg_match($right, $left);
|
||||
}
|
||||
}
|
||||
}
|
||||
51
phpMyAdmin/vendor/symfony/expression-language/Node/ConditionalNode.php
vendored
Executable file
51
phpMyAdmin/vendor/symfony/expression-language/Node/ConditionalNode.php
vendored
Executable file
@@ -0,0 +1,51 @@
|
||||
<?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(
|
||||
array('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);
|
||||
}
|
||||
}
|
||||
40
phpMyAdmin/vendor/symfony/expression-language/Node/ConstantNode.php
vendored
Executable file
40
phpMyAdmin/vendor/symfony/expression-language/Node/ConstantNode.php
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
<?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
|
||||
{
|
||||
public function __construct($value)
|
||||
{
|
||||
parent::__construct(
|
||||
array(),
|
||||
array('value' => $value)
|
||||
);
|
||||
}
|
||||
|
||||
public function compile(Compiler $compiler)
|
||||
{
|
||||
$compiler->repr($this->attributes['value']);
|
||||
}
|
||||
|
||||
public function evaluate($functions, $values)
|
||||
{
|
||||
return $this->attributes['value'];
|
||||
}
|
||||
}
|
||||
52
phpMyAdmin/vendor/symfony/expression-language/Node/FunctionNode.php
vendored
Executable file
52
phpMyAdmin/vendor/symfony/expression-language/Node/FunctionNode.php
vendored
Executable file
@@ -0,0 +1,52 @@
|
||||
<?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($name, Node $arguments)
|
||||
{
|
||||
parent::__construct(
|
||||
array('arguments' => $arguments),
|
||||
array('name' => $name)
|
||||
);
|
||||
}
|
||||
|
||||
public function compile(Compiler $compiler)
|
||||
{
|
||||
$arguments = array();
|
||||
foreach ($this->nodes['arguments']->nodes as $node) {
|
||||
$arguments[] = $compiler->subcompile($node);
|
||||
}
|
||||
|
||||
$function = $compiler->getFunction($this->attributes['name']);
|
||||
|
||||
$compiler->raw(\call_user_func_array($function['compiler'], $arguments));
|
||||
}
|
||||
|
||||
public function evaluate($functions, $values)
|
||||
{
|
||||
$arguments = array($values);
|
||||
foreach ($this->nodes['arguments']->nodes as $node) {
|
||||
$arguments[] = $node->evaluate($functions, $values);
|
||||
}
|
||||
|
||||
return \call_user_func_array($functions[$this->attributes['name']]['evaluator'], $arguments);
|
||||
}
|
||||
}
|
||||
100
phpMyAdmin/vendor/symfony/expression-language/Node/GetAttrNode.php
vendored
Executable file
100
phpMyAdmin/vendor/symfony/expression-language/Node/GetAttrNode.php
vendored
Executable file
@@ -0,0 +1,100 @@
|
||||
<?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, $type)
|
||||
{
|
||||
parent::__construct(
|
||||
array('node' => $node, 'attribute' => $attribute, 'arguments' => $arguments),
|
||||
array('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 = array($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 \call_user_func_array($toCall, $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)];
|
||||
}
|
||||
}
|
||||
}
|
||||
40
phpMyAdmin/vendor/symfony/expression-language/Node/NameNode.php
vendored
Executable file
40
phpMyAdmin/vendor/symfony/expression-language/Node/NameNode.php
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
<?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($name)
|
||||
{
|
||||
parent::__construct(
|
||||
array(),
|
||||
array('name' => $name)
|
||||
);
|
||||
}
|
||||
|
||||
public function compile(Compiler $compiler)
|
||||
{
|
||||
$compiler->raw('$'.$this->attributes['name']);
|
||||
}
|
||||
|
||||
public function evaluate($functions, $values)
|
||||
{
|
||||
return $values[$this->attributes['name']];
|
||||
}
|
||||
}
|
||||
76
phpMyAdmin/vendor/symfony/expression-language/Node/Node.php
vendored
Executable file
76
phpMyAdmin/vendor/symfony/expression-language/Node/Node.php
vendored
Executable file
@@ -0,0 +1,76 @@
|
||||
<?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 = array();
|
||||
public $attributes = array();
|
||||
|
||||
/**
|
||||
* @param array $nodes An array of nodes
|
||||
* @param array $attributes An array of attributes
|
||||
*/
|
||||
public function __construct(array $nodes = array(), array $attributes = array())
|
||||
{
|
||||
$this->nodes = $nodes;
|
||||
$this->attributes = $attributes;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
$attributes = array();
|
||||
foreach ($this->attributes as $name => $value) {
|
||||
$attributes[] = sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true)));
|
||||
}
|
||||
|
||||
$repr = array(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 = array();
|
||||
foreach ($this->nodes as $node) {
|
||||
$results[] = $node->evaluate($functions, $values);
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
61
phpMyAdmin/vendor/symfony/expression-language/Node/UnaryNode.php
vendored
Executable file
61
phpMyAdmin/vendor/symfony/expression-language/Node/UnaryNode.php
vendored
Executable file
@@ -0,0 +1,61 @@
|
||||
<?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 = array(
|
||||
'!' => '!',
|
||||
'not' => '!',
|
||||
'+' => '+',
|
||||
'-' => '-',
|
||||
);
|
||||
|
||||
public function __construct($operator, Node $node)
|
||||
{
|
||||
parent::__construct(
|
||||
array('node' => $node),
|
||||
array('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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user