You are here

private function lessc::compileValue in Less CSS Preprocessor 6

Same name and namespace in other branches
  1. 6.3 lessphp/lessc.inc.php \lessc::compileValue()
1 call to lessc::compileValue()
lessc::compileProperty in ./lessc.inc.php

File

./lessc.inc.php, line 792

Class

lessc

Code

private function compileValue($value) {
  switch ($value[0]) {
    case 'list':
      return implode($value[1], array_map(array(
        $this,
        'compileValue',
      ), $value[2]));
    case 'expression':
      return $this
        ->compileValue($this
        ->evaluate($value[1], $value[2], $value[3]));
    case 'variable':
      $tmp = $this
        ->compileValue($this
        ->getVal($value[1], $this
        ->pushName($value[1])));
      $this
        ->popName();
      return $tmp;
    case 'string':

      // search for values inside the string
      $replace = array();
      if (preg_match_all('/{(@[\\w-_][0-9\\w-_]*)}/', $value[1], $m)) {
        foreach ($m[1] as $name) {
          if (!isset($replace[$name])) {
            $replace[$name] = $this
              ->compileValue(array(
              'variable',
              $name,
            ));
          }
        }
      }
      foreach ($replace as $var => $val) {
        $value[1] = str_replace('{' . $var . '}', $val, $value[1]);
      }
      return $value[1];
    case 'color':
      return $this
        ->compileColor($value);
    case 'keyword':
      return $value[1];
    case 'number':
      return $value[1];
    default:

      // assumed to be a unit
      return $value[1] . $value[0];
  }
}