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

Breadcrumb

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

class TokenizerPatterns

CSS selector tokenizer patterns builder.

This component is a port of the Python cssselect library, which is copyright Ian Bicking, @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>

@internal

Hierarchy

  • class \Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns

Expanded class hierarchy of TokenizerPatterns

See also

https://github.com/SimonSapin/cssselect.

4 files declare their use of TokenizerPatterns
HashHandler.php in vendor/symfony/css-selector/Parser/Handler/HashHandler.php
IdentifierHandler.php in vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
NumberHandler.php in vendor/symfony/css-selector/Parser/Handler/NumberHandler.php
StringHandler.php in vendor/symfony/css-selector/Parser/Handler/StringHandler.php

File

vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php, line 24

Namespace

Symfony\Component\CssSelector\Parser\Tokenizer
View source
class TokenizerPatterns {
    private string $unicodeEscapePattern;
    private string $simpleEscapePattern;
    private string $newLineEscapePattern;
    private string $escapePattern;
    private string $stringEscapePattern;
    private string $nonAsciiPattern;
    private string $nmCharPattern;
    private string $nmStartPattern;
    private string $identifierPattern;
    private string $hashPattern;
    private string $numberPattern;
    private string $quotedStringPattern;
    public function __construct() {
        $this->unicodeEscapePattern = '\\\\([0-9a-f]{1,6})(?:\\r\\n|[ \\n\\r\\t\\f])?';
        $this->simpleEscapePattern = '\\\\(.)';
        $this->newLineEscapePattern = '\\\\(?:\\n|\\r\\n|\\r|\\f)';
        $this->escapePattern = $this->unicodeEscapePattern . '|\\\\[^\\n\\r\\f0-9a-f]';
        $this->stringEscapePattern = $this->newLineEscapePattern . '|' . $this->escapePattern;
        $this->nonAsciiPattern = '[^\\x00-\\x7F]';
        $this->nmCharPattern = '[_a-z0-9-]|' . $this->escapePattern . '|' . $this->nonAsciiPattern;
        $this->nmStartPattern = '[_a-z]|' . $this->escapePattern . '|' . $this->nonAsciiPattern;
        $this->identifierPattern = '-?(?:' . $this->nmStartPattern . ')(?:' . $this->nmCharPattern . ')*';
        $this->hashPattern = '#((?:' . $this->nmCharPattern . ')+)';
        $this->numberPattern = '[+-]?(?:[0-9]*\\.[0-9]+|[0-9]+)';
        $this->quotedStringPattern = '([^\\n\\r\\f\\\\%s]|' . $this->stringEscapePattern . ')*';
    }
    public function getNewLineEscapePattern() : string {
        return '~' . $this->newLineEscapePattern . '~';
    }
    public function getSimpleEscapePattern() : string {
        return '~' . $this->simpleEscapePattern . '~';
    }
    public function getUnicodeEscapePattern() : string {
        return '~' . $this->unicodeEscapePattern . '~i';
    }
    public function getIdentifierPattern() : string {
        return '~^' . $this->identifierPattern . '~i';
    }
    public function getHashPattern() : string {
        return '~^' . $this->hashPattern . '~i';
    }
    public function getNumberPattern() : string {
        return '~^' . $this->numberPattern . '~';
    }
    public function getQuotedStringPattern(string $quote) : string {
        return '~^' . \sprintf($this->quotedStringPattern, $quote) . '~i';
    }

}

Members

Title Sort descending Modifiers Object type Summary
TokenizerPatterns::$escapePattern private property
TokenizerPatterns::$hashPattern private property
TokenizerPatterns::$identifierPattern private property
TokenizerPatterns::$newLineEscapePattern private property
TokenizerPatterns::$nmCharPattern private property
TokenizerPatterns::$nmStartPattern private property
TokenizerPatterns::$nonAsciiPattern private property
TokenizerPatterns::$numberPattern private property
TokenizerPatterns::$quotedStringPattern private property
TokenizerPatterns::$simpleEscapePattern private property
TokenizerPatterns::$stringEscapePattern private property
TokenizerPatterns::$unicodeEscapePattern private property
TokenizerPatterns::getHashPattern public function
TokenizerPatterns::getIdentifierPattern public function
TokenizerPatterns::getNewLineEscapePattern public function
TokenizerPatterns::getNumberPattern public function
TokenizerPatterns::getQuotedStringPattern public function
TokenizerPatterns::getSimpleEscapePattern public function
TokenizerPatterns::getUnicodeEscapePattern public function
TokenizerPatterns::__construct public function

API Navigation

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