WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

Symfony\Component\CssSelector\Parser

Parser::parseAttributeNode() private WC 1.0

Parses next attribute node.

{} Это метод класса: Parser{}

Хуков нет.

Возвращает

Node\AttributeNode.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->parseAttributeNode( $selector, $stream );
$selector(Node\NodeInterface) (обязательный)
-
$stream(TokenStream) (обязательный)
-

Код Parser::parseAttributeNode() WC 5.4.1

<?php
private function parseAttributeNode(Node\NodeInterface $selector, TokenStream $stream)
{
    $stream->skipWhitespace();
    $attribute = $stream->getNextIdentifierOrStar();

    if (null === $attribute && !$stream->getPeek()->isDelimiter(array('|'))) {
        throw SyntaxErrorException::unexpectedToken('"|"', $stream->getPeek());
    }

    if ($stream->getPeek()->isDelimiter(array('|'))) {
        $stream->getNext();

        if ($stream->getPeek()->isDelimiter(array('='))) {
            $namespace = null;
            $stream->getNext();
            $operator = '|=';
        } else {
            $namespace = $attribute;
            $attribute = $stream->getNextIdentifier();
            $operator = null;
        }
    } else {
        $namespace = $operator = null;
    }

    if (null === $operator) {
        $stream->skipWhitespace();
        $next = $stream->getNext();

        if ($next->isDelimiter(array(']'))) {
            return new Node\AttributeNode($selector, $namespace, $attribute, 'exists', null);
        } elseif ($next->isDelimiter(array('='))) {
            $operator = '=';
        } elseif ($next->isDelimiter(array('^', '$', '*', '~', '|', '!'))
            && $stream->getPeek()->isDelimiter(array('='))
        ) {
            $operator = $next->getValue().'=';
            $stream->getNext();
        } else {
            throw SyntaxErrorException::unexpectedToken('operator', $next);
        }
    }

    $stream->skipWhitespace();
    $value = $stream->getNext();

    if ($value->isNumber()) {
        // if the value is a number, it's casted into a string
        $value = new Token(Token::TYPE_STRING, (string) $value->getValue(), $value->getPosition());
    }

    if (!($value->isIdentifier() || $value->isString())) {
        throw SyntaxErrorException::unexpectedToken('string or identifier', $value);
    }

    $stream->skipWhitespace();
    $next = $stream->getNext();

    if (!$next->isDelimiter(array(']'))) {
        throw SyntaxErrorException::unexpectedToken('"]"', $next);
    }

    return new Node\AttributeNode($selector, $namespace, $attribute, $operator, $value->getValue());
}