101 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * Abstract base token class that all others inherit from. | ||
|  |  */ | ||
|  | abstract class HTMLPurifier_Token | ||
|  | { | ||
|  |     /** | ||
|  |      * Line number node was on in source document. Null if unknown. | ||
|  |      * @type int | ||
|  |      */ | ||
|  |     public $line; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Column of line node was on in source document. Null if unknown. | ||
|  |      * @type int | ||
|  |      */ | ||
|  |     public $col; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Lookup array of processing that this token is exempt from. | ||
|  |      * Currently, valid values are "ValidateAttributes" and | ||
|  |      * "MakeWellFormed_TagClosedError" | ||
|  |      * @type array | ||
|  |      */ | ||
|  |     public $armor = array(); | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Used during MakeWellFormed.  See Note [Injector skips] | ||
|  |      * @type | ||
|  |      */ | ||
|  |     public $skip; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @type | ||
|  |      */ | ||
|  |     public $rewind; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @type | ||
|  |      */ | ||
|  |     public $carryover; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @param string $n | ||
|  |      * @return null|string | ||
|  |      */ | ||
|  |     public function __get($n) | ||
|  |     { | ||
|  |         if ($n === 'type') { | ||
|  |             trigger_error('Deprecated type property called; use instanceof', E_USER_NOTICE); | ||
|  |             switch (get_class($this)) { | ||
|  |                 case 'HTMLPurifier_Token_Start': | ||
|  |                     return 'start'; | ||
|  |                 case 'HTMLPurifier_Token_Empty': | ||
|  |                     return 'empty'; | ||
|  |                 case 'HTMLPurifier_Token_End': | ||
|  |                     return 'end'; | ||
|  |                 case 'HTMLPurifier_Token_Text': | ||
|  |                     return 'text'; | ||
|  |                 case 'HTMLPurifier_Token_Comment': | ||
|  |                     return 'comment'; | ||
|  |                 default: | ||
|  |                     return null; | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Sets the position of the token in the source document. | ||
|  |      * @param int $l | ||
|  |      * @param int $c | ||
|  |      */ | ||
|  |     public function position($l = null, $c = null) | ||
|  |     { | ||
|  |         $this->line = $l; | ||
|  |         $this->col = $c; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Convenience function for DirectLex settings line/col position. | ||
|  |      * @param int $l | ||
|  |      * @param int $c | ||
|  |      */ | ||
|  |     public function rawPosition($l, $c) | ||
|  |     { | ||
|  |         if ($c === -1) { | ||
|  |             $l++; | ||
|  |         } | ||
|  |         $this->line = $l; | ||
|  |         $this->col = $c; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Converts a token into its corresponding node. | ||
|  |      */ | ||
|  |     abstract public function toNode(); | ||
|  | } | ||
|  | 
 | ||
|  | // vim: et sw=4 sts=4
 |