Lines Matching full:token
25 * Parse the token stream for a simple selector sequence,
33 $token = $this->lookahead(
35 Scanner\Token::IDENTIFIER,
36 Scanner\Token::ID_SELECTOR,
37 Scanner\Token::CLASS_SELECTOR,
38 Scanner\Token::PSEUDO_CLASS,
39 Scanner\Token::PSEUDO_ELEMENT,
40 Scanner\Token::ATTRIBUTE_SELECTOR_START,
41 Scanner\Token::COMBINATOR,
44 while (isset($token)) {
45 if ($selector = $this->createSelector($token)) {
46 $this->read($token->type);
49 switch ($token->type) {
50 case Scanner\Token::SEPARATOR :
51 $this->read(Scanner\Token::SEPARATOR);
53 case Scanner\Token::PSEUDO_CLASS :
56 case Scanner\Token::PSEUDO_ELEMENT :
57 $sequence->simples[] = $this->createPseudoElement($token);
58 $this->read($token->type);
60 case Scanner\Token::ATTRIBUTE_SELECTOR_START :
61 $this->read($token->type);
64 case Scanner\Token::COMBINATOR :
65 case Scanner\Token::WHITESPACE :
66 $this->read($token->type);
72 $token, $subSequence
77 $token = NULL;
80 $token = $this->lookahead(
82 Scanner\Token::ID_SELECTOR,
83 Scanner\Token::CLASS_SELECTOR,
84 Scanner\Token::PSEUDO_CLASS,
85 Scanner\Token::PSEUDO_ELEMENT,
86 Scanner\Token::ATTRIBUTE_SELECTOR_START,
87 Scanner\Token::COMBINATOR,
88 Scanner\Token::WHITESPACE,
89 Scanner\Token::SEPARATOR,
96 private function createSelector(Scanner\Token $token) { argument
97 switch ($token->type) {
98 case Scanner\Token::IDENTIFIER :
99 if (FALSE !== strpos($token->content, '|')) {
100 [$prefix, $name] = explode('|', $token->content);
103 $name = $token->content;
109 case Scanner\Token::ID_SELECTOR :
110 return new Ast\Selector\Simple\Id(substr($token->content, 1));
111 case Scanner\Token::CLASS_SELECTOR :
112 return new Ast\Selector\Simple\ClassName(substr($token->content, 1));
118 Scanner\Token $token,
121 switch (trim($token->content)) {
136 private function createPseudoElement($token): Ast\Selector\Simple\PseudoElement { argument
137 $name = substr($token->content, 2);
145 throw new PhpCss\Exception\UnknownPseudoElementException($token);