%PDF- %PDF-
| Direktori : /home/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Value/ |
| Current File : /home/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Value/CalculationOperation.php |
<?php
/**
* SCSSPHP
*
* @copyright 2012-2020 Leaf Corcoran
*
* @license http://opensource.org/licenses/MIT MIT
*
* @link http://scssphp.github.io/scssphp
*/
namespace ScssPhp\ScssPhp\Value;
use ScssPhp\ScssPhp\Util\Equatable;
/**
* A binary operation that can appear in a {@see SassCalculation}.
*/
final class CalculationOperation implements Equatable
{
/**
* @phpstan-var CalculationOperator::*
* @readonly
*/
private $operator;
/**
* The left-hand operand.
*
* This is either a {@see SassNumber}, a {@see SassCalculation}, an unquoted
* {@see SassString}, a {@see CalculationOperation}, or a {@see CalculationInterpolation}.
*
* @var object
* @readonly
*/
private $left;
/**
* The right-hand operand.
*
* This is either a {@see SassNumber}, a {@see SassCalculation}, an unquoted
* {@see SassString}, a {@see CalculationOperation}, or a {@see CalculationInterpolation}.
*
* @var object
* @readonly
*/
private $right;
/**
* @param string $operator
* @param object $left
* @param object $right
*
* @phpstan-param CalculationOperator::* $operator
*/
public function __construct(string $operator, object $left, object $right)
{
$this->operator = $operator;
$this->left = $left;
$this->right = $right;
}
/**
* @phpstan-return CalculationOperator::*
*/
public function getOperator(): string
{
return $this->operator;
}
public function getLeft(): object
{
return $this->left;
}
public function getRight(): object
{
return $this->right;
}
public function equals(object $other): bool
{
assert($this->left instanceof Equatable);
assert($this->right instanceof Equatable);
return $other instanceof CalculationOperation && $this->operator === $other->operator && $this->left->equals($other->left) && $this->right->equals($other->right);
}
}