You are here

class TokenizerPatterns in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php \Symfony\Component\CssSelector\Parser\Tokenizer\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>

Hierarchy

Expanded class hierarchy of TokenizerPatterns

See also

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

8 files declare their use of TokenizerPatterns
HashHandler.php in vendor/symfony/css-selector/Parser/Handler/HashHandler.php
HashHandlerTest.php in vendor/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php
IdentifierHandler.php in vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
IdentifierHandlerTest.php in vendor/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php
NumberHandler.php in vendor/symfony/css-selector/Parser/Handler/NumberHandler.php

... See full list

File

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

Namespace

Symfony\Component\CssSelector\Parser\Tokenizer
View source
class TokenizerPatterns {

  /**
   * @var string
   */
  private $unicodeEscapePattern;

  /**
   * @var string
   */
  private $simpleEscapePattern;

  /**
   * @var string
   */
  private $newLineEscapePattern;

  /**
   * @var string
   */
  private $escapePattern;

  /**
   * @var string
   */
  private $stringEscapePattern;

  /**
   * @var string
   */
  private $nonAsciiPattern;

  /**
   * @var string
   */
  private $nmCharPattern;

  /**
   * @var string
   */
  private $nmStartPattern;

  /**
   * @var string
   */
  private $identifierPattern;

  /**
   * @var string
   */
  private $hashPattern;

  /**
   * @var string
   */
  private $numberPattern;

  /**
   * @var string
   */
  private $quotedStringPattern;

  /**
   * Constructor.
   */
  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 . ')*';
  }

  /**
   * @return string
   */
  public function getNewLineEscapePattern() {
    return '~^' . $this->newLineEscapePattern . '~';
  }

  /**
   * @return string
   */
  public function getSimpleEscapePattern() {
    return '~^' . $this->simpleEscapePattern . '~';
  }

  /**
   * @return string
   */
  public function getUnicodeEscapePattern() {
    return '~^' . $this->unicodeEscapePattern . '~i';
  }

  /**
   * @return string
   */
  public function getIdentifierPattern() {
    return '~^' . $this->identifierPattern . '~i';
  }

  /**
   * @return string
   */
  public function getHashPattern() {
    return '~^' . $this->hashPattern . '~i';
  }

  /**
   * @return string
   */
  public function getNumberPattern() {
    return '~^' . $this->numberPattern . '~';
  }

  /**
   * @param string $quote
   *
   * @return string
   */
  public function getQuotedStringPattern($quote) {
    return '~^' . sprintf($this->quotedStringPattern, $quote) . '~i';
  }

}

Members