/** * Returns the parse tree for a file. * @param string $filename filename to parse * @param SassParser $parser Sass parser * @return SassRootNode */ public static function get_tree($filename, &$parser) { $contents = self::get_file_contents($filename); $options = array_merge($parser->getOptions(), 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; }