/** * Parse a sass file or Sass source code and * returns the document tree that can then be rendered. * The file will be searched for in the directories specified by the * load_paths option. * If caching is enabled a cached version will be used if possible or the * compiled version cached if not. * @param string name of source file or Sass source * @return SassRootNode Root node of document tree */ public function parse($source, $isFile = true) { if ($isFile) { $this->filename = SassFile::getFile($source, $this); if ($isFile) { $this->syntax = substr($this->filename, -4); } elseif ($this->syntax !== SassFile::SASS && $this->syntax !== SassFile::SCSS) { throw new SassException('Invalid {what}', array('{what}' => 'syntax option')); } if ($this->cache) { $cached = SassFile::getCachedFile($this->filename, $this->cache_location); if ($cached !== false) { return $cached; } } $tree = $this->toTree(file_get_contents($this->filename)); if ($this->cache) { SassFile::setCachedFile($tree, $this->filename, $this->cache_location); } return $tree; } else { return $this->toTree($source); } }
/** * Parse a sass file or Sass source code and * returns the document tree that can then be rendered. * The file will be searched for in the directories specified by the * load_paths option. * If caching is enabled a cached version will be used if possible or the * compiled version cached if not. * @param string name of source file or Sass source * @return SassRootNode Root node of document tree */ public function parse($source, $isFile = true) { if ($isFile) { $filename = SassFile::getFile($source, $this->options); $this->options['file']['dirname'] = dirname($filename); $this->options['file']['basename'] = basename($filename); if ($this->options['cache']) { $cached = SassFile::getCachedFile($filename, $this->options); if ($cached !== false) { return $cached; } } $tree = $this->toTree(file($filename, FILE_IGNORE_NEW_LINES)); if ($this->options['cache']) { SassFile::setCachedFile($tree, $filename, $this->options); } return $tree; } else { return $this->toTree(explode("\n", $source)); } }