public function parse()
{
$token = $this->read(Scanner\Token::IDENTIFIER);
$attribute = new Ast\Selector\Simple\Attribute($token->content);
$token = $this->read(array(Scanner\Token::ATTRIBUTE_OPERATOR, Scanner\Token::ATTRIBUTE_SELECTOR_END));
if ($token->type == Scanner\Token::ATTRIBUTE_OPERATOR) {
$attribute->match = $this->_operators[$token->content];
$token = $this->read(array(Scanner\Token::NUMBER, Scanner\Token::IDENTIFIER, Scanner\Token::SINGLEQUOTE_STRING_START, Scanner\Token::DOUBLEQUOTE_STRING_START));
switch ($token->type) {
case Scanner\Token::NUMBER:
case Scanner\Token::IDENTIFIER:
$attribute->literal = $token->content;
break;
case Scanner\Token::SINGLEQUOTE_STRING_START:
case Scanner\Token::DOUBLEQUOTE_STRING_START:
$attribute->literal = $this->delegate(Text::CLASS);
break;
}
$this->read(Scanner\Token::ATTRIBUTE_SELECTOR_END);
}
return $attribute;
}