Yaffs site version 1.1
[yaffs-website] / vendor / ezyang / htmlpurifier / library / HTMLPurifier / Token.php
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