Leafo\ScssPhp\Compiler::opColorColor PHP Method

opColorColor() protected method

Compare colors
protected opColorColor ( string $op, array $left, array $right ) : array
$op string
$left array
$right array
return array
    protected function opColorColor($op, $left, $right)
    {
        $out = [Type::T_COLOR];
        foreach ([1, 2, 3] as $i) {
            $lval = isset($left[$i]) ? $left[$i] : 0;
            $rval = isset($right[$i]) ? $right[$i] : 0;
            switch ($op) {
                case '+':
                    $out[] = $lval + $rval;
                    break;
                case '-':
                    $out[] = $lval - $rval;
                    break;
                case '*':
                    $out[] = $lval * $rval;
                    break;
                case '%':
                    $out[] = $lval % $rval;
                    break;
                case '/':
                    if ($rval == 0) {
                        $this->throwError("color: Can't divide by zero");
                        break 2;
                    }
                    $out[] = (int) ($lval / $rval);
                    break;
                case '==':
                    return $this->opEq($left, $right);
                case '!=':
                    return $this->opNeq($left, $right);
                default:
                    $this->throwError("color: unknown op {$op}");
                    break 2;
            }
        }
        if (isset($left[4])) {
            $out[4] = $left[4];
        } elseif (isset($right[4])) {
            $out[4] = $right[4];
        }
        return $this->fixColor($out);
    }
Compiler