Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401]

   1  <?php
   2  
   3  namespace Sabberworm\CSS\Parsing;
   4  
   5  /**
   6   * Thrown if the CSS parser encounters a token it did not expect.
   7   */
   8  class UnexpectedTokenException extends SourceException
   9  {
  10      /**
  11       * @var string
  12       */
  13      private $sExpected;
  14  
  15      /**
  16       * @var string
  17       */
  18      private $sFound;
  19  
  20      /**
  21       * Possible values: literal, identifier, count, expression, search
  22       *
  23       * @var string
  24       */
  25      private $sMatchType;
  26  
  27      /**
  28       * @param string $sExpected
  29       * @param string $sFound
  30       * @param string $sMatchType
  31       * @param int $iLineNo
  32       */
  33      public function __construct($sExpected, $sFound, $sMatchType = 'literal', $iLineNo = 0)
  34      {
  35          $this->sExpected = $sExpected;
  36          $this->sFound = $sFound;
  37          $this->sMatchType = $sMatchType;
  38          $sMessage = "Token “{$sExpected}” ({$sMatchType}) not found. Got “{$sFound}”.";
  39          if ($this->sMatchType === 'search') {
  40              $sMessage = "Search for “{$sExpected}” returned no results. Context: “{$sFound}”.";
  41          } elseif ($this->sMatchType === 'count') {
  42              $sMessage = "Next token was expected to have {$sExpected} chars. Context: “{$sFound}”.";
  43          } elseif ($this->sMatchType === 'identifier') {
  44              $sMessage = "Identifier expected. Got “{$sFound}”";
  45          } elseif ($this->sMatchType === 'custom') {
  46              $sMessage = trim("$sExpected $sFound");
  47          }
  48  
  49          parent::__construct($sMessage, $iLineNo);
  50      }
  51  }