Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.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