コード例 #1
0
ファイル: exceptions.php プロジェクト: ju1ius/css-parser
/* Discards the rule til end of stylesheet, since no matching bracket can be found */
/*p{ foo:bar; foo{;bar("baz)};"; baz:boo }
h1{}*/
EOS;
$timer = new Benchmark_Timer();
//$nb_iterations = 1;
$timer->start();
$source = new Source\String($css);
$timer->setMarker(sprintf("Source init: %s", $source->getEncoding()));
$lexer = new Css\Lexer();
$lexer->setSource($source);
$timer->setMarker("Lexer init");
//$token = $lexer->nextToken();
//while ($token->type !== Css\Lexer::T_EOF) {
//echo $lexer->getLiteral($token) . PHP_EOL;
//$token = $lexer->nextToken();
//}
//echo $lexer->getLiteral($token) . PHP_EOL;
//$timer->setMarker("Tokenization end");
$parser = new Css\Parser($lexer);
$parser->setStrict(false);
$stylesheet = $parser->parseStyleSheet();
$timer->setMarker("Parsing end");
foreach ($parser->errors as $error) {
    echo "Start: " . $lexer->getLiteral($error['start']) . "\n";
    echo "End: " . $lexer->getLiteral($error['end']) . "\n";
}
var_dump($stylesheet->getCssText());
//printf("Memory: %s\n", memory_get_usage(true));
//printf("Memory peak: %s\n", memory_get_peak_usage(true));
//echo $timer->getOutput();
コード例 #2
0
ファイル: selectors.php プロジェクト: ju1ius/css-parser
</root>
EOS;
$css = <<<EOS
h1:not(.foo)
EOS;
$timer = new Benchmark_Timer();
//$nb_iterations = 1;
$timer->start();
$source = new Source\String($css);
$timer->setMarker("Source init");
$lexer = new Css\Lexer();
$lexer->setSource($source);
$timer->setMarker("Lexer init");
$token = $lexer->nextToken();
while ($token->type !== Css\Lexer::T_EOF) {
    echo $lexer->getLiteral($token) . PHP_EOL;
    $token = $lexer->nextToken();
}
echo $lexer->getLiteral($token) . PHP_EOL;
$timer->setMarker("Tokenization end");
$parser = new Css\Parser($lexer);
$selector = $parser->parseSelector();
$timer->setMarker("Parsing end");
//var_dump($selector);
//echo $selector->toXpath() . PHP_EOL;
$dom = \DOMDocument::loadXML($xml);
$xpath = new \DOMXPath($dom);
$query = $selector->toXpath();
$elements = $xpath->query($query);
var_dump((string) $query);
foreach ($elements as $element) {