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.
   1  <?php
   2  
   3  /**
   4   * Abstract base token class that all others inherit from.
   5   */
   6  abstract class HTMLPurifier_Token
   7  {
   8      /**
   9       * Line number node was on in source document. Null if unknown.
  10       * @type int
  11       */
  12      public $line;
  13  
  14      /**
  15       * Column of line node was on in source document. Null if unknown.
  16       * @type int
  17       */
  18      public $col;
  19  
  20      /**
  21       * Lookup array of processing that this token is exempt from.
  22       * Currently, valid values are "ValidateAttributes" and
  23       * "MakeWellFormed_TagClosedError"
  24       * @type array
  25       */
  26      public $armor = array();
  27  
  28      /**
  29       * Used during MakeWellFormed.  See Note [Injector skips]
  30       * @type
  31       */
  32      public $skip;
  33  
  34      /**
  35       * @type
  36       */
  37      public $rewind;
  38  
  39      /**
  40       * @type
  41       */
  42      public $carryover;
  43  
  44      /**
  45       * @param string $n
  46       * @return null|string
  47       */
  48      public function __get($n)
  49      {
  50          if ($n === 'type') {
  51              trigger_error('Deprecated type property called; use instanceof', E_USER_NOTICE);
  52              switch (get_class($this)) {
  53                  case 'HTMLPurifier_Token_Start':
  54                      return 'start';
  55                  case 'HTMLPurifier_Token_Empty':
  56                      return 'empty';
  57                  case 'HTMLPurifier_Token_End':
  58                      return 'end';
  59                  case 'HTMLPurifier_Token_Text':
  60                      return 'text';
  61                  case 'HTMLPurifier_Token_Comment':
  62                      return 'comment';
  63                  default:
  64                      return null;
  65              }
  66          }
  67      }
  68  
  69      /**
  70       * Sets the position of the token in the source document.
  71       * @param int $l
  72       * @param int $c
  73       */
  74      public function position($l = null, $c = null)
  75      {
  76          $this->line = $l;
  77          $this->col = $c;
  78      }
  79  
  80      /**
  81       * Convenience function for DirectLex settings line/col position.
  82       * @param int $l
  83       * @param int $c
  84       */
  85      public function rawPosition($l, $c)
  86      {
  87          if ($c === -1) {
  88              $l++;
  89          }
  90          $this->line = $l;
  91          $this->col = $c;
  92      }
  93  
  94      /**
  95       * Converts a token into its corresponding node.
  96       */
  97      abstract public function toNode();
  98  }
  99  
 100  // vim: et sw=4 sts=4