CssSelector::tokenize PHP Метод

tokenize() защищенный Метод

protected tokenize ( $selector )
    protected function tokenize($selector)
    {
        // split tokens by space except if space is in an attribute selector
        $tokens = array();
        $combinators = array(' ', '>', '+');
        $quoted = false;
        $token = array('combinator' => ' ', 'name' => '');
        for ($i = 0, $max = strlen($selector); $i < $max; $i++) {
            if (in_array($selector[$i], $combinators) && !$quoted) {
                // remove all whitespaces around the combinator
                $combinator = $selector[$i];
                while (in_array($selector[$i + 1], $combinators)) {
                    if (' ' != $selector[++$i]) {
                        $combinator = $selector[$i];
                    }
                }
                $tokens[] = $token;
                $token = array('combinator' => $combinator, 'name' => '');
            } elseif ('"' == $selector[$i]) {
                $token['name'] .= $selector[$i];
                $quoted = $quoted ? false : true;
            } else {
                $token['name'] .= $selector[$i];
            }
        }
        if ($token['name']) {
            $tokens[] = $token;
        }
        return $tokens;
    }