function Parser::parseSelector
Parses a selector
Parameters
bool $filter True if the selector must be used for a filter:
Return value
Node\Selector
Throws
2 calls to Parser::parseSelector()
- Parser::parse in vendor/
mck89/ peast/ lib/ Peast/ Selector/ Parser.php - Starts the parsing and returns the parsed selector
- Parser::parseSelectorPartPseudo in vendor/
mck89/ peast/ lib/ Peast/ Selector/ Parser.php - Parses a pseudo selector part
File
-
vendor/
mck89/ peast/ lib/ Peast/ Selector/ Parser.php, line 127
Class
- Parser
- Selector parser class
Namespace
Peast\SelectorCode
public function parseSelector($filter = false) {
$selector = new Node\Selector();
do {
$first = true;
$group = new Node\Group();
while (true) {
$combinator = $this->consumeCombinator();
if (!$first && !$combinator) {
break;
}
$parts = $this->parseSelectorParts();
if (!count($parts)) {
throw new Exception("Missing selector after combinator");
}
$first = false;
$selCombinator = new Node\Combinator();
$selCombinator->setOperator($combinator ?: ($filter ? null : " "));
foreach ($parts as $part) {
$selCombinator->addPart($part);
}
$group->addCombinator($selCombinator);
}
$selector->addGroup($group);
$this->consumeWhitespaces();
} while ($this->consume(","));
return $selector;
}