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
 |