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
							 |