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 |
101: |