*/
class Parser implements ParserInterface
{
- /**
- * @var Tokenizer
- */
private $tokenizer;
- /**
- * Constructor.
- *
- * @param null|Tokenizer $tokenizer
- */
public function __construct(Tokenizer $tokenizer = null)
{
$this->tokenizer = $tokenizer ?: new Tokenizer();
/**
* Parses selector nodes.
*
- * @param TokenStream $stream
- *
* @return array
*/
private function parseSelectorList(TokenStream $stream)
/**
* Parses next selector or combined node.
*
- * @param TokenStream $stream
- *
* @return Node\SelectorNode
*
* @throws SyntaxErrorException
{
$stream->skipWhitespace();
- $selectorStart = count($stream->getUsed());
+ $selectorStart = \count($stream->getUsed());
$result = $this->parseElementNode($stream);
$pseudoElement = null;
}
$identifier = $stream->getNextIdentifier();
- if (in_array(strtolower($identifier), array('first-line', 'first-letter', 'before', 'after'))) {
+ if (\in_array(strtolower($identifier), array('first-line', 'first-letter', 'before', 'after'))) {
// Special case: CSS 2.1 pseudo-elements can have a single ':'.
// Any new pseudo-element must have two.
$pseudoElement = $identifier;
}
}
- if (count($stream->getUsed()) === $selectorStart) {
+ if (\count($stream->getUsed()) === $selectorStart) {
throw SyntaxErrorException::unexpectedToken('selector', $stream->getPeek());
}
/**
* Parses next element node.
*
- * @param TokenStream $stream
- *
* @return Node\ElementNode
*/
private function parseElementNode(TokenStream $stream)
/**
* Parses next attribute node.
*
- * @param Node\NodeInterface $selector
- * @param TokenStream $stream
- *
* @return Node\AttributeNode
*
* @throws SyntaxErrorException