* * 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 * * @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; } public function toArray() { return array('(', $this->attributes['operator'].' ', $this->nodes['node'], ')'); } } __halt_compiler();----SIGNATURE:----VJ/RPsG+cON9zoe6bnjefXVEiZnnVzHIKVgRn6Q4MIObCp6SkYLFXD+dFrD7fy6RQIc15bGtgNeDJaDQr4w424QUjz/BVVrnuNDNbg/9tE7DdV0MOpYQXrPm4nzD6T15vCqWQEUm03GG6AjmHakWdPQ95eI+5WXQUXmai+jJTjQc2Q5piENdf/x4dKc5dBGZFAhDvOlmf9R+zaVrpQmUcb6WaB4yx/Ts0TwVL97Bfb+gPm87A0O1acsH3OVYQjgoZOd6YxoI8Op9gET+6NvY26UALuqsNRFGKVrZ1fXsFqCmbGTJX+oRPEok6UWXG5xp4plvgT5F7I+9ONSNKUoTuv10OvGCOix0V+pmaEdOjCeWkjqlX0ViczstJaxK5j+Tumklq3zouYCOYZ4+EmwoCgmMA9tJcbWezK1TxtK0dbuAXJzUMr2Opd84C/dO4o97vMnmAt8MA2+x7cCTjAGzgbYUGl7t7TfaGi5+ZhU/2yach9aZH7WrOEdo40pCuuc3YIgaRugDlyqz/LU1/PAA340//l0qTnxlkU0fUQW8ypN/el1sAhQCbkNT0ys18eK/X8thMfqV6KH1Mc+VCBLfbEZSXk6ISaHH8xuIK8IaqQdHRN6L/I5+OrRXBF7Vsvv2QxEBZKLDDG++v+721f1WeLJug1OJ8p8LORPFmfAaP38=----ATTACHMENT:----OTY4NDk0Njc0NzYyMzk4NyA4NDUzMjMwNzQ4NzM4MDQyIDU0ODM0NzQ0ODI0NTgzMTE=