You are here

function lessc::reduce in Less CSS Preprocessor 6.3

3 calls to lessc::reduce()
lessc::compileValue in lessphp/lessc.inc.php
lessc::evaluate in lessphp/lessc.inc.php
lessc::funcToColor in lessphp/lessc.inc.php

File

lessphp/lessc.inc.php, line 875

Class

lessc

Code

function reduce($var, $defaultValue = array(
  'number',
  0,
)) {
  $pushed = 0;

  // number of variable names pushed
  while (in_array($var[0], self::$dtypes)) {
    if ($var[0] == 'expression') {
      $var = $this
        ->evaluate($var[1], $var[2], $var[3]);
    }
    else {
      if ($var[0] == 'variable') {
        $var = $this
          ->getVal($var[1], $this
          ->pushName($var[1]), $defaultValue);
        $pushed++;
      }
      else {
        if ($var[0] == 'function') {
          $color = $this
            ->funcToColor($var);
          if ($color) {
            $var = $color;
          }
          break;

          // no where to go after a function
        }
        else {
          if ($var[0] == 'negative') {
            $value = $this
              ->reduce($var[1]);
            if (is_numeric($value[1])) {
              $value[1] = -1 * $value[1];
            }
            $var = $value;
          }
        }
      }
    }
  }
  while ($pushed != 0) {
    $this
      ->popName();
    $pushed--;
  }
  return $var;
}