function compile($env) { Less_Parser::$has_extends = true; $this->selector = $this->selector->compile($env); return $this; //return new Less_Tree_Extend( $this->selector->compile($env), $this->option, $this->index); }
/** * Get the current css buffer * * @return string */ public function getCss() { $precision = ini_get('precision'); @ini_set('precision', 16); $locale = setlocale(LC_NUMERIC, 0); setlocale(LC_NUMERIC, "C"); $root = new Less_Tree_Ruleset(array(), $this->rules); $root->root = true; $root->firstRoot = true; $this->PreVisitors($root); self::$has_extends = false; $evaldRoot = $root->compile($this->env); $this->PostVisitors($evaldRoot); if (Less_Parser::$options['sourceMap']) { $generator = new Less_SourceMap_Generator($evaldRoot, Less_Parser::$contentsMap, Less_Parser::$options); // will also save file // FIXME: should happen somewhere else? $css = $generator->generateCSS(); } else { $css = $evaldRoot->toCSS(); } if (Less_Parser::$options['compress']) { $css = preg_replace('/(^(\\s)+)|((\\s)+$)/', '', $css); } //reset php settings @ini_set('precision', $precision); setlocale(LC_NUMERIC, $locale); return $css; }
public function compile($env) { Less_Parser::$has_extends = true; $this->selector = $this->selector->compile($env); return $this; }
/** * Get the current css buffer * * @return string */ public function getCss() { $precision = ini_get('precision'); @ini_set('precision', 16); $locale = setlocale(LC_NUMERIC, 0); setlocale(LC_NUMERIC, "C"); try { $root = new Less_Tree_Ruleset(array(), $this->rules); $root->root = true; $root->firstRoot = true; $this->PreVisitors($root); self::$has_extends = false; $evaldRoot = $root->compile($this->env); $this->PostVisitors($evaldRoot); if (Less_Parser::$options['sourceMap']) { $generator = new Less_SourceMap_Generator($evaldRoot, Less_Parser::$contentsMap, Less_Parser::$options); // will also save file // FIXME: should happen somewhere else? $css = $generator->generateCSS(); } else { $css = $evaldRoot->toCSS(); } if (Less_Parser::$options['compress']) { $css = preg_replace('/(^(\\s)+)|((\\s)+$)/', '', $css); } } catch (Exception $exc) { // Intentional fall-through so we can reset environment } //reset php settings @ini_set('precision', $precision); setlocale(LC_NUMERIC, $locale); // If you previously defined $this->mb_internal_encoding // is required to return the encoding as it was before if ($this->mb_internal_encoding != '') { @ini_set("mbstring.internal_encoding", $this->mb_internal_encoding); $this->mb_internal_encoding = ''; } // Rethrow exception after we handled resetting the environment if (!empty($exc)) { throw $exc; } return $css; }