Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. StringHandler.php

function StringHandler::handle

Overrides HandlerInterface::handle

File

vendor/symfony/css-selector/Parser/Handler/StringHandler.php, line 40

Class

StringHandler
CSS selector comment handler.

Namespace

Symfony\Component\CssSelector\Parser\Handler

Code

public function handle(Reader $reader, TokenStream $stream) : bool {
    $quote = $reader->getSubstring(1);
    if (!\in_array($quote, [
        "'",
        '"',
    ])) {
        return false;
    }
    $reader->moveForward(1);
    $match = $reader->findPattern($this->patterns
        ->getQuotedStringPattern($quote));
    if (!$match) {
        throw new InternalErrorException(\sprintf('Should have found at least an empty match at %d.', $reader->getPosition()));
    }
    // check unclosed strings
    if (\strlen($match[0]) === $reader->getRemainingLength()) {
        throw SyntaxErrorException::unclosedString($reader->getPosition() - 1);
    }
    // check quotes pairs validity
    if ($quote !== $reader->getSubstring(1, \strlen($match[0]))) {
        throw SyntaxErrorException::unclosedString($reader->getPosition() - 1);
    }
    $string = $this->escaping
        ->escapeUnicodeAndNewLine($match[0]);
    $stream->push(new Token(Token::TYPE_STRING, $string, $reader->getPosition()));
    $reader->moveForward(\strlen($match[0]) + 1);
    return true;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal