1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\ExpressionLanguage\Node;
13
14use Symfony\Component\ExpressionLanguage\Compiler;
15
16/**
17 * @author Fabien Potencier <fabien@symfony.com>
18 *
19 * @internal
20 */
21class NameNode extends Node
22{
23    public function __construct(string $name)
24    {
25        parent::__construct(
26            [],
27            ['name' => $name]
28        );
29    }
30
31    public function compile(Compiler $compiler)
32    {
33        $compiler->raw('$'.$this->attributes['name']);
34    }
35
36    public function evaluate($functions, $values)
37    {
38        return $values[$this->attributes['name']];
39    }
40
41    public function toArray()
42    {
43        return [$this->attributes['name']];
44    }
45}
46