35 lines
697 B
PHP
35 lines
697 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Kirby\Query\AST;
|
||
|
|
|
||
|
|
use Kirby\Query\Visitors\Visitor;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Represents a comparison operation between two values in the AST
|
||
|
|
*
|
||
|
|
* @package Kirby Query
|
||
|
|
* @author Nico Hoffmann <nico@getkirby.com>
|
||
|
|
* @link https://getkirby.com
|
||
|
|
* @license https://opensource.org/licenses/MIT
|
||
|
|
* @since 5.1.0
|
||
|
|
* @unstable
|
||
|
|
*/
|
||
|
|
class ComparisonNode extends Node
|
||
|
|
{
|
||
|
|
public function __construct(
|
||
|
|
public Node $left,
|
||
|
|
public string $operator,
|
||
|
|
public Node $right
|
||
|
|
) {
|
||
|
|
}
|
||
|
|
|
||
|
|
public function resolve(Visitor $visitor): bool|string
|
||
|
|
{
|
||
|
|
return $visitor->comparison(
|
||
|
|
left: $this->left->resolve($visitor),
|
||
|
|
operator: $this->operator,
|
||
|
|
right: $this->right->resolve($visitor)
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|