You are here

class Reader in Zircon Profile 8.0

Same name in this branch
  1. 8.0 vendor/symfony/css-selector/Parser/Reader.php \Symfony\Component\CssSelector\Parser\Reader
  2. 8.0 vendor/zendframework/zend-feed/src/Reader/Reader.php \Zend\Feed\Reader\Reader
Same name and namespace in other branches
  1. 8 vendor/symfony/css-selector/Parser/Reader.php \Symfony\Component\CssSelector\Parser\Reader

CSS selector reader.

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

  • class \Symfony\Component\CssSelector\Parser\Reader

Expanded class hierarchy of Reader

See also

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

11 files declare their use of Reader
AbstractHandlerTest.php in vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php
CommentHandler.php in vendor/symfony/css-selector/Parser/Handler/CommentHandler.php
CommentHandlerTest.php in vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php
HandlerInterface.php in vendor/symfony/css-selector/Parser/Handler/HandlerInterface.php
HashHandler.php in vendor/symfony/css-selector/Parser/Handler/HashHandler.php

... See full list

File

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

Namespace

Symfony\Component\CssSelector\Parser
View source
class Reader {

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

  /**
   * @var int
   */
  private $length;

  /**
   * @var int
   */
  private $position = 0;

  /**
   * @param string $source
   */
  public function __construct($source) {
    $this->source = $source;
    $this->length = strlen($source);
  }

  /**
   * @return bool
   */
  public function isEOF() {
    return $this->position >= $this->length;
  }

  /**
   * @return int
   */
  public function getPosition() {
    return $this->position;
  }

  /**
   * @return int
   */
  public function getRemainingLength() {
    return $this->length - $this->position;
  }

  /**
   * @param int $length
   * @param int $offset
   *
   * @return string
   */
  public function getSubstring($length, $offset = 0) {
    return substr($this->source, $this->position + $offset, $length);
  }

  /**
   * @param string $string
   *
   * @return int
   */
  public function getOffset($string) {
    $position = strpos($this->source, $string, $this->position);
    return false === $position ? false : $position - $this->position;
  }

  /**
   * @param string $pattern
   *
   * @return bool
   */
  public function findPattern($pattern) {
    $source = substr($this->source, $this->position);
    if (preg_match($pattern, $source, $matches)) {
      return $matches;
    }
    return false;
  }

  /**
   * @param int $length
   */
  public function moveForward($length) {
    $this->position += $length;
  }

  /**
   */
  public function moveToEnd() {
    $this->position = $this->length;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Reader::$length private property
Reader::$position private property
Reader::$source private property
Reader::findPattern public function
Reader::getOffset public function
Reader::getPosition public function
Reader::getRemainingLength public function
Reader::getSubstring public function
Reader::isEOF public function
Reader::moveForward public function
Reader::moveToEnd public function
Reader::__construct public function