parse() public method

The file will be searched for in the directories specified by the load_paths option.
public parse ( string $source, boolean $isFile = true ) : SassRootNode
$source string name of source file or Sass source
$isFile boolean
return SassRootNode Root node of document tree
コード例 #1
0
ファイル: SassFile.php プロジェクト: joebeeson/sassy
 /**
  * Returns the parse tree for a file.
  * If caching is enabled a cached version will be used if possible; if not the
  * parsed file will be cached.
  * @param string filename to parse
  * @param array parse options
  * @return SassRootNode
  */
 public static function getTree($filename, $options)
 {
     if ($options['cache']) {
         $cached = self::getCachedFile($filename, $options);
         if ($cached !== false) {
             return $cached;
         }
     }
     $parser = new SassParser($options);
     $tree = $parser->parse($filename);
     if ($options['cache']) {
         self::setCachedFile($tree, $filename, $options);
     }
     return $tree;
 }
コード例 #2
0
ファイル: SassFile.php プロジェクト: randomblast/phamlp
 /**
  * Returns the parse tree for a file.
  * If caching is enabled a cached version will be used if possible; if not the
  * parsed file will be cached.
  * @param string filename to parse
  * @param SassParser Sass parser
  * @return SassRootNode
  */
 public static function getTree($filename, $parser)
 {
     if ($parser->cache) {
         $cached = self::getCachedFile($filename, $parser->cache_location);
         if ($cached !== false) {
             return $cached;
         }
     }
     $sassParser = new SassParser(array_merge($parser->options, array('line' => 1)));
     $tree = $sassParser->parse($filename);
     if ($parser->cache) {
         self::setCachedFile($tree, $filename, $parser->cache_location);
     }
     return $tree;
 }
コード例 #3
0
ファイル: SassFile.php プロジェクト: mdb-webdev/Fourstatic
 /**
  * Returns the parse tree for a file.
  * @param string filename to parse
  * @param SassParser Sass parser
  * @return SassRootNode
  */
 public static function get_tree($filename, &$parser)
 {
     $contents = self::get_file_contents($filename, $parser);
     $options = array_merge($parser->options, array('line' => 1));
     # attempt at cross-syntax imports.
     $ext = substr($filename, strrpos($filename, '.') + 1);
     if ($ext == self::SASS || $ext == self::SCSS) {
         $options['syntax'] = $ext;
     }
     $dirname = dirname($filename);
     $options['load_paths'][] = $dirname;
     if (!in_array($dirname, $parser->load_paths)) {
         $parser->load_paths[] = dirname($filename);
     }
     $sassParser = new SassParser($options);
     $tree = $sassParser->parse($contents, FALSE);
     return $tree;
 }
コード例 #4
0
ファイル: SassService.php プロジェクト: schwarer2006/wikia
 protected function compileInternal($parameters)
 {
     global $wgAutoloadClasses, $IP;
     $wgAutoloadClasses['SassParser'] = $IP . '/lib/phpsass/SassParser.php';
     // make sure SassParser-related classes are loaded
     require_once $wgAutoloadClasses['SassParser'];
     // process source sass file
     $options = array('style' => SassRenderer::STYLE_COMPACT, 'syntax' => SassFile::SCSS, 'filename' => $this->fileName, 'load_paths' => array($IP), 'functions' => array('get_command_line_param' => function ($name, $default) use($parameters) {
         return array_key_exists($name, $parameters) && $parameters[$name] !== '' ? $parameters[$name] : $default;
     }));
     $context = new SassContext();
     $parser = new SassParser($options);
     $startTime = microtime(true);
     $tree = $parser->parse($this->fileName, true);
     $midTime = microtime(true);
     $contents = $tree->render($context);
     $endTime = microtime(true);
     $contents = sprintf("/* phpsass: parse/render: %.5f / %.5f */\n\n", $midTime - $startTime, $endTime - $midTime) . $contents;
     return $contents;
 }