Menu

Diff of /trunk/php-mode-src/php-mode.el [r6] .. [r7]  Maximize  Restore

Switch to unified view

a/trunk/php-mode-src/php-mode.el b/trunk/php-mode-src/php-mode.el
1
;;; php-mode.el --- major mode for editing PHP code
1
;;; php-mode.el --- major mode for editing PHP code
2
2
3
;; Copyright (C) 1999-2003 Turadg Aleahmad
3
;; Copyright (C) 1999-2004 Turadg Aleahmad
4
4
5
;; Maintainer: Turadg Aleahmad <turadg at users.sourceforge.net>
5
;; Maintainer: Turadg Aleahmad <turadg at users.sourceforge.net>
6
;; Keywords: php languages oop
6
;; Keywords: php languages oop
7
;; Created: 1999-05-17
7
;; Created: 1999-05-17
8
;; Modified: 2003-09-28
8
;; Modified: 2004-01-24
9
;; X-URL:   http://php-mode.sourceforge.net/
9
;; X-URL:   http://php-mode.sourceforge.net/
10
10
11
(defconst php-version "1.0.5"
11
(defconst php-version "1.1.0"
12
  "PHP Mode version number.")
12
  "PHP Mode version number.")
13
13
14
;;; License
14
;;; License
15
15
16
;; This program is free software; you can redistribute it and/or
16
;; This program is free software; you can redistribute it and/or
17
;; modify it under the terms of the GNU General Public License
17
;; modify it under the terms of the GNU General Public License
18
;; as published by the Free Software Foundation; either version 2
18
;; as published by the Free Software Foundation; either version 2
19
;; of the License, or (at your option) any later version.
19
;; of the License, or (at your option) any later version.
20
20
21
;; This program is distributed in the hope that it will be useful,
21
;; This program is distributed in the hope that it will be useful,
22
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
22
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
23
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
;; GNU General Public License for more details.
24
;; GNU General Public License for more details.
25
25
26
;; You should have received a copy of the GNU General Public License
26
;; You should have received a copy of the GNU General Public License
27
;; along with this program; if not, write to the Free Software
27
;; along with this program; if not, write to the Free Software
28
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
28
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
29
29
30
;;; Usage
30
;;; Usage
31
31
32
;; Rename this file to php-mode.el if it isn't already then place it in
32
;; Rename this file to php-mode.el if it isn't already then place it in
33
;; your Emacs lisp path (eg. site-lisp) and add to your .emacs file:
33
;; your Emacs lisp path (eg. site-lisp) and add to your .emacs file:
34
;;   (require 'php-mode)
34
;;   (require 'php-mode)
35
35
36
;; If you want colorization, turn on global-font-lock or
36
;; If you want colorization, turn on global-font-lock or
37
;; add this to your .emacs:
37
;; add this to your .emacs:
38
;;   (add-hook 'php-mode-user-hook 'turn-on-font-lock)
38
;;   (add-hook 'php-mode-user-hook 'turn-on-font-lock)
39
39
40
;; To use abbrev-mode, add lines like this:
40
;; To use abbrev-mode, add lines like this:
41
;;   (add-hook 'php-mode-user-hook
41
;;   (add-hook 'php-mode-user-hook
42
;;     '(lambda () (define-abbrev php-mode-abbrev-table "ex" "extends")))
42
;;     '(lambda () (define-abbrev php-mode-abbrev-table "ex" "extends")))
43
43
44
;; To make php-mode compatible with html-mode, see http://php-mode.sf.net
44
;; To make php-mode compatible with html-mode, see http://php-mode.sf.net
45
45
46
;; Many options available under Help:Customize
46
;; Many options available under Help:Customize
47
;; Options specific to php-mode are in
47
;; Options specific to php-mode are in
48
;;  Programming/Languages/Php
48
;;  Programming/Languages/Php
49
;; Since it inherits much functionality from c-mode, look there too
49
;; Since it inherits much functionality from c-mode, look there too
50
;;  Programming/Languages/C
50
;;  Programming/Languages/C
51
51
52
;;; Commentary:
52
;;; Commentary:
53
53
54
;; PHP mode is a major mode for editing PHP 3 and 4 source code.  It's
54
;; PHP mode is a major mode for editing PHP 3 and 4 source code.  It's
55
;; an extension of C mode; thus it inherits all C mode's navigation
55
;; an extension of C mode; thus it inherits all C mode's navigation
56
;; functionality.  But it colors according to the PHP grammar and indents
56
;; functionality.  But it colors according to the PHP grammar and indents
57
;; according to the PEAR coding guidelines.  It also includes a couple
57
;; according to the PEAR coding guidelines.  It also includes a couple
58
;; handy IDE-type features such as documentation search and a source
58
;; handy IDE-type features such as documentation search and a source
59
;; and class browser.
59
;; and class browser.
60
60
61
61
62
;;; Contributors: (in chronological order)
62
;;; Contributors: (in chronological order)
63
63
64
;; Juanjo, Torsten Martinsen, Vinai Kopp, Sean Champ, Doug Marcey,
64
;; Juanjo, Torsten Martinsen, Vinai Kopp, Sean Champ, Doug Marcey,
65
;; Kevin Blake, Rex McMaster, Mathias Meyer, Boris Folgmann, Roland
65
;; Kevin Blake, Rex McMaster, Mathias Meyer, Boris Folgmann, Roland
66
;; Rosenfeld, Fred Yankowski, Craig Andrews, John Keller, Ryan
66
;; Rosenfeld, Fred Yankowski, Craig Andrews, John Keller, Ryan
67
;; Sammartino, ppercot, Valentin Funk, Stig Bakken, Gregory Stark,
67
;; Sammartino, ppercot, Valentin Funk, Stig Bakken, Gregory Stark,
68
;; Chris Morris
68
;; Chris Morris, Nils Rennebarth, Gerrit Riessen, Eric Mc Sween,
69
69
;; Ville Skytta, Giacomo Tesio
70
;;; Changelog:
70
71
71
;;; Changelog:
72
;; 1.05
72
73
;;   Incorporated speedbar defs by Gerrit Riessen
73
;; 1.1
74
;;   Add "foreach" to conditional introducing keywords (Nils Rennebarth)
74
;;   Added PHP5 support (Giacomo Tesio)
75
;;   Cleared the Changelog
75
;;     known problem: doesn't highlight after first 'implements'
76
;;   Moved contribution credits into comments above
76
;;   Better XEmacs compatibility (imenu, regexp, and comments!) (Ville Skytta)
77
77
;;   Improvement to php-conditional-key regexp (Eric Mc Sween)
78
78
79
;;; Code:
79
;; 1.05
80
80
;;   Incorporated speedbar defs by Gerrit Riessen
81
(require 'speedbar)
81
;;   Add "foreach" to conditional introducing keywords (Nils Rennebarth)
82
(require 'font-lock)
82
;;   Cleared the Changelog
83
(require 'regexp-opt)
83
;;   Moved contribution credits into comments above
84
(require 'cc-mode)
84
85
(require 'custom)
85
86
86
;;; Code:
87
;; Local variables
87
88
(defgroup php nil
88
(require 'speedbar)
89
  "Major mode for editing PHP code."
89
(require 'font-lock)
90
  :prefix "php-"
90
(require 'cc-mode)
91
  :group 'languages)
91
(require 'custom)
92
92
(eval-when-compile
93
(defcustom php-speedbar-config t
93
  (require 'regexp-opt))
94
  "*When set to true automatically configures Speedbar to observe PHP files.\
94
95
Ignores php-file patterns option; fixed to expression \"\\.\\(inc\\|php[s34]?\\)\""
95
;; Local variables
96
  :type 'boolean
96
(defgroup php nil
97
  :group 'php)
97
  "Major mode for editing PHP code."
98
98
  :prefix "php-"
99
(defcustom php-mode-speedbar-open nil
99
  :group 'languages)
100
  "Normally php-mode starts with the speedbar closed.\
100
101
Turning this on will open it whenever php-mode is loaded."
101
(defcustom php-speedbar-config t
102
  :type 'boolean
102
  "*When set to true automatically configures Speedbar to observe PHP files.\
103
  :group 'php)
103
Ignores php-file patterns option; fixed to expression \"\\.\\(inc\\|php[s34]?\\)\""
104
104
  :type 'boolean
105
(defcustom php-manual-url "http://www.php.net/manual/en/manual.php"
105
  :group 'php)
106
  "*URL at which to find PHP manual.\
106
107
You can replace \"en\" with your ISO language code."
107
(defcustom php-mode-speedbar-open nil
108
  :type 'string
108
  "Normally php-mode starts with the speedbar closed.\
109
  :group 'php)
109
Turning this on will open it whenever php-mode is loaded."
110
110
  :type 'boolean
111
(defcustom php-search-url "http://www.php.net/"
111
  :group 'php)
112
  "*URL at which to search for documentation on a word"
112
113
  :type 'string
113
(defcustom php-manual-url "http://www.php.net/manual/en/manual.php"
114
  :group 'php)
114
  "*URL at which to find PHP manual.\
115
115
You can replace \"en\" with your ISO language code."
116
;;;###autoload
116
  :type 'string
117
(defcustom php-file-patterns (list "\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'")
117
  :group 'php)
118
  "*List of file patterns for which to automatically invoke php-mode."
118
119
  :type '(repeat (regexp :tag "Pattern"))
119
(defcustom php-search-url "http://www.php.net/"
120
  :group 'php)
120
  "*URL at which to search for documentation on a word"
121
121
  :type 'string
122
(defcustom php-mode-user-hook nil
122
  :group 'php)
123
  "List of functions to be executed on entry to php-mode"
123
124
  :type 'hook
124
;;;###autoload
125
  :group 'php)
125
(defcustom php-file-patterns (list "\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'")
126
126
  "*List of file patterns for which to automatically invoke php-mode."
127
(defcustom php-mode-force-pear nil
127
  :type '(repeat (regexp :tag "Pattern"))
128
  "Normally PEAR coding rules are enforced only when the filename contains \"PEAR\"\
128
  :group 'php)
129
Turning this on will force PEAR rules on all PHP files."
129
130
  :type 'boolean
130
(defcustom php-mode-user-hook nil
131
  :group 'php)
131
  "List of functions to be executed on entry to php-mode"
132
132
  :type 'hook
133
;; Note whether we're in XEmacs
133
  :group 'php)
134
(defconst xemacsp (string-match "Lucid\\|XEmacs" emacs-version)
134
135
  "Non nil if using XEmacs.")
135
(defcustom php-mode-force-pear nil
136
136
  "Normally PEAR coding rules are enforced only when the filename contains \"PEAR\"\
137
;;;###autoload
137
Turning this on will force PEAR rules on all PHP files."
138
(define-derived-mode php-mode c-mode "PHP"
138
  :type 'boolean
139
  "Major mode for editing PHP code.\n\n\\{php-mode-map}"
139
  :group 'php)
140
  
140
141
  (setq comment-start "// "
141
;; Note whether we're in XEmacs
142
    comment-end   ""
142
(defconst xemacsp (string-match "Lucid\\|XEmacs" emacs-version)
143
    comment-start-skip "// *")
143
  "Non nil if using XEmacs.")
144
  
144
145
  (setq c-conditional-key php-conditional-key)
145
;;;###autoload
146
146
(define-derived-mode php-mode c-mode "PHP"
147
  (defvar php-mode-syntax-table php-mode-syntax-table)
147
  "Major mode for editing PHP code.\n\n\\{php-mode-map}"
148
  ;; this line makes $ into punctuation instead of a word constituent
148
  
149
  ;; it used to be active, but it killed indenting of case lines that
149
  (setq comment-start "// "
150
  ;; begin with '$' (many do).  If anyone has a solution to this
150
    comment-end   ""
151
  ;; problem, please let me know.  Of course, you're welcome to
151
    comment-start-skip "// *")
152
  ;; uncomment this line in your installation.
152
  
153
;  (modify-syntax-entry ?$ "." php-mode-syntax-table)
153
  (setq c-class-key php-class-key)
154
  
154
  (setq c-conditional-key php-conditional-key)
155
  ;; The above causes Xemacs to handle shell-style comments correctly,
155
156
  ;; but fails to work in GNU Emacs which fails to interpret \n as the
156
  (defvar php-mode-syntax-table php-mode-syntax-table)
157
  ;; end of the comment.
157
  ;; this line makes $ into punctuation instead of a word constituent
158
  (if xemacsp (progn
158
  ;; it used to be active, but it killed indenting of case lines that
159
        (modify-syntax-entry ?# "< b" php-mode-syntax-table)
159
  ;; begin with '$' (many do).  If anyone has a solution to this
160
        (modify-syntax-entry ?\n "> b" php-mode-syntax-table)
160
  ;; problem, please let me know.  Of course, you're welcome to
161
        ))
161
  ;; uncomment this line in your installation.
162
  
162
;  (modify-syntax-entry ?$ "." php-mode-syntax-table)
163
  (make-local-variable 'font-lock-defaults)
163
  
164
  (setq font-lock-defaults
164
  ;; The above causes XEmacs to handle shell-style comments correctly,
165
    '((php-font-lock-keywords-1
165
  ;; but fails to work in GNU Emacs which fails to interpret \n as the
166
       php-font-lock-keywords-2
166
  ;; end of the comment.
167
       ;; Comment-out the next line if the font-coloring is too
167
  (if xemacsp (progn
168
       ;; extreme/ugly for you.
168
        (modify-syntax-entry ?# "< b" php-mode-syntax-table)
169
       php-font-lock-keywords-3
169
        (modify-syntax-entry ?\n "> b" php-mode-syntax-table)
170
       )
170
        ))
171
      nil               ; KEYWORDS-ONLY
171
  
172
      T             ; CASE-FOLD
172
  (make-local-variable 'font-lock-defaults)
173
      nil               ; SYNTAX-ALIST
173
  (setq font-lock-defaults
174
      nil               ; SYNTAX-BEGIN
174
    '((php-font-lock-keywords-1
175
      (font-lock-syntactic-keywords . php-font-lock-syntactic-keywords)))
175
       php-font-lock-keywords-2
176
  
176
       ;; Comment-out the next line if the font-coloring is too
177
  (setq font-lock-maximum-decoration t
177
       ;; extreme/ugly for you.
178
    case-fold-search t      ; PHP vars are case-sensitive
178
       php-font-lock-keywords-3
179
    imenu-generic-expression php-imenu-generic-expression)
179
       )
180
  
180
      nil               ; KEYWORDS-ONLY
181
  ;; Do not force newline at end of file.  Such newlines can cause
181
      T             ; CASE-FOLD
182
  ;; trouble if the PHP file is included in another file before calls
182
      nil               ; SYNTAX-ALIST
183
  ;; to header() or cookie().
183
      nil               ; SYNTAX-BEGIN
184
  (set (make-local-variable 'require-final-newline) nil)
184
      (font-lock-syntactic-keywords . php-font-lock-syntactic-keywords)))
185
  (set (make-local-variable 'next-line-add-newlines) nil)
185
  
186
  
186
  (setq font-lock-maximum-decoration t
187
  ;; PEAR coding standards
187
    case-fold-search t      ; PHP vars are case-sensitive
188
  (make-local-hook 'php-mode-pear-hook)
188
    imenu-generic-expression php-imenu-generic-expression)
189
  (add-hook 'php-mode-pear-hook
189
  
190
        (lambda nil (set (make-local-variable 'tab-width) 4)) nil t)
190
  ;; Do not force newline at end of file.  Such newlines can cause
191
  (add-hook 'php-mode-pear-hook
191
  ;; trouble if the PHP file is included in another file before calls
192
        (lambda nil (set (make-local-variable 'c-basic-offset) 4)) nil t)
192
  ;; to header() or cookie().
193
  (add-hook 'php-mode-pear-hook
193
  (set (make-local-variable 'require-final-newline) nil)
194
        (lambda nil (set (make-local-variable 'c-hanging-comment-ender-p) nil)) nil t)
194
  (set (make-local-variable 'next-line-add-newlines) nil)
195
  (add-hook 'php-mode-pear-hook
195
  
196
        (lambda nil (set (make-local-variable 'indent-tabs-mode) nil)) nil t)
196
  ;; PEAR coding standards
197
  (add-hook 'php-mode-pear-hook
197
  (make-local-hook 'php-mode-pear-hook)
198
        (lambda nil (c-set-offset 'block-open' - )) nil t)
198
  (add-hook 'php-mode-pear-hook
199
  (add-hook 'php-mode-pear-hook
199
        (lambda nil (set (make-local-variable 'tab-width) 4)) nil t)
200
        (lambda nil (c-set-offset 'block-close' 0 )) nil t)
200
  (add-hook 'php-mode-pear-hook
201
201
        (lambda nil (set (make-local-variable 'c-basic-offset) 4)) nil t)
202
  (if (or php-mode-force-pear
202
  (add-hook 'php-mode-pear-hook
203
      (and (stringp buffer-file-name)
203
        (lambda nil (set (make-local-variable 'c-hanging-comment-ender-p) nil)) nil t)
204
           (string-match "PEAR\\|pear"
204
  (add-hook 'php-mode-pear-hook
205
                 (buffer-file-name))
205
        (lambda nil (set (make-local-variable 'indent-tabs-mode) nil)) nil t)
206
           (string-match "\\.php$" (buffer-file-name))))
206
  (add-hook 'php-mode-pear-hook
207
      (run-hooks 'php-mode-pear-hook))
207
        (lambda nil (c-set-offset 'block-open' - )) nil t)
208
  
208
  (add-hook 'php-mode-pear-hook
209
  (run-hooks 'php-mode-user-hook)
209
        (lambda nil (c-set-offset 'block-close' 0 )) nil t)
210
  )
210
211
211
  (if (or php-mode-force-pear
212
;; Make php-mode the default mode for PHP source code buffers.
212
      (and (stringp buffer-file-name)
213
;;;###autoload
213
           (string-match "PEAR\\|pear"
214
(let ((php-file-patterns-temp php-file-patterns))
214
                 (buffer-file-name))
215
  (while php-file-patterns-temp
215
           (string-match "\\.php$" (buffer-file-name))))
216
    (add-to-list 'auto-mode-alist
216
      (run-hooks 'php-mode-pear-hook))
217
          (cons (car php-file-patterns-temp) 'php-mode))
217
  
218
    (setq php-file-patterns-temp (cdr php-file-patterns-temp))))
218
  (run-hooks 'php-mode-user-hook)
219
219
  )
220
;; Handle Speedbar
220
221
(if php-mode-speedbar-open
221
;; Make php-mode the default mode for PHP source code buffers.
222
    (speedbar 1))
222
;;;###autoload
223
(if (and php-speedbar-config (symbolp 'speedbar))
223
(let ((php-file-patterns-temp php-file-patterns))
224
    (speedbar-add-supported-extension "\\.\\(inc\\|php[s34]?\\)"))
224
  (while php-file-patterns-temp
225
225
    (add-to-list 'auto-mode-alist
226
;; Make a menu keymap (with a prompt string)
226
          (cons (car php-file-patterns-temp) 'php-mode))
227
;; and make it the menu bar item's definition.
227
    (setq php-file-patterns-temp (cdr php-file-patterns-temp))))
228
(define-key php-mode-map [menu-bar] (make-sparse-keymap))
228
229
(define-key php-mode-map [menu-bar php]
229
;; Handle Speedbar
230
  (cons "PHP" (make-sparse-keymap "PHP")))
230
(if php-mode-speedbar-open
231
231
    (speedbar 1))
232
;; Define specific subcommands in this menu.
232
(if (and php-speedbar-config (symbolp 'speedbar))
233
(define-key php-mode-map [menu-bar php complete-function]
233
    (speedbar-add-supported-extension "\\.\\(inc\\|php[s34]?\\)"))
234
  '("Complete function name" . php-complete-function))
234
235
(define-key php-mode-map
235
;; Make a menu keymap (with a prompt string)
236
  [menu-bar php browse-manual]
236
;; and make it the menu bar item's definition.
237
  '("Browse manual" . php-browse-manual))
237
(define-key php-mode-map [menu-bar] (make-sparse-keymap))
238
(define-key php-mode-map
238
(define-key php-mode-map [menu-bar php]
239
  [menu-bar php search-documentation]
239
  (cons "PHP" (make-sparse-keymap "PHP")))
240
  '("Search documentation" . php-search-documentation))
240
241
241
;; Define specific subcommands in this menu.
242
;; Define function name completion function
242
(define-key php-mode-map [menu-bar php complete-function]
243
(defun php-complete-function ()
243
  '("Complete function name" . php-complete-function))
244
  "Complete the function name at the point from known PHP functions."
244
(define-key php-mode-map
245
  (interactive)
245
  [menu-bar php browse-manual]
246
  (message "php-complete-function not implemented yet")
246
  '("Browse manual" . php-browse-manual))
247
  ;; how to read the list of functions from a separate file?
247
(define-key php-mode-map
248
  )
248
  [menu-bar php search-documentation]
249
249
  '("Search documentation" . php-search-documentation))
250
;; Define function documentation function
250
251
(defun php-search-documentation ()
251
;; Define function name completion function
252
  "Search PHP documentation for the word at the point."
252
(defun php-complete-function ()
253
  (interactive)
253
  "Complete the function name at the point from known PHP functions."
254
  (browse-url (concat php-search-url (current-word t)))
254
  (interactive)
255
  )
255
  (message "php-complete-function not implemented yet")
256
256
  ;; how to read the list of functions from a separate file?
257
;; Define function for browsing manual
257
  )
258
(defun php-browse-manual ()
258
259
  "Bring up manual for PHP."
259
;; Define function documentation function
260
  (interactive)
260
(defun php-search-documentation ()
261
  (browse-url php-manual-url)
261
  "Search PHP documentation for the word at the point."
262
  )
262
  (interactive)
263
263
  (browse-url (concat php-search-url (current-word t)))
264
;; Define shortcut
264
  )
265
(define-key php-mode-map
265
266
  "\C-c\C-f"
266
;; Define function for browsing manual
267
  'php-search-documentation)
267
(defun php-browse-manual ()
268
268
  "Bring up manual for PHP."
269
;; Define shortcut
269
  (interactive)
270
(define-key php-mode-map
270
  (browse-url php-manual-url)
271
  "\C-c\C-m"
271
  )
272
  'php-browse-manual)
272
273
273
;; Define shortcut
274
(defconst php-constants
274
(define-key php-mode-map
275
  (eval-when-compile
275
  "\C-c\C-f"
276
    (regexp-opt
276
  'php-search-documentation)
277
     '(;; core constants
277
278
       "__LINE__" "__FILE__"
278
;; Define shortcut
279
       "PHP_OS" "PHP_VERSION" 
279
(define-key php-mode-map
280
       "TRUE" "FALSE" "NULL"
280
  "\C-c\C-m"
281
       "E_ERROR" "E_NOTICE" "E_PARSE" "E_WARNING" "E_ALL"
281
  'php-browse-manual)
282
       "E_USER_ERROR" "E_USER_WARNING" "E_USER_NOTICE"
282
283
       "DEFAULT_INCLUDE_PATH" "PEAR_INSTALL_DIR" "PEAR_EXTENSION_DIR"
283
(defconst php-constants
284
       "PHP_BINDIR" "PHP_LIBDIR" "PHP_DATADIR" "PHP_SYSCONFDIR"
284
  (eval-when-compile
285
       "PHP_LOCALSTATEDIR" "PHP_CONFIG_FILE_PATH"
285
    (regexp-opt
286
286
     '(;; core constants
287
       ;; from ext/standard:
287
       "__LINE__" "__FILE__"
288
       "EXTR_OVERWRITE" "EXTR_SKIP" "EXTR_PREFIX_SAME"
288
       "PHP_OS" "PHP_VERSION" 
289
       "EXTR_PREFIX_ALL" "EXTR_PREFIX_INVALID" "SORT_ASC" "SORT_DESC"
289
       "TRUE" "FALSE" "NULL"
290
       "SORT_REGULAR" "SORT_NUMERIC" "SORT_STRING" "ASSERT_ACTIVE"
290
       "E_ERROR" "E_NOTICE" "E_PARSE" "E_WARNING" "E_ALL"
291
       "ASSERT_CALLBACK" "ASSERT_BAIL" "ASSERT_WARNING"
291
       "E_USER_ERROR" "E_USER_WARNING" "E_USER_NOTICE"
292
       "ASSERT_QUIET_EVAL" "CONNECTION_ABORTED" "CONNECTION_NORMAL"
292
       "DEFAULT_INCLUDE_PATH" "PEAR_INSTALL_DIR" "PEAR_EXTENSION_DIR"
293
       "CONNECTION_TIMEOUT" "M_E" "M_LOG2E" "M_LOG10E" "M_LN2"
293
       "PHP_BINDIR" "PHP_LIBDIR" "PHP_DATADIR" "PHP_SYSCONFDIR"
294
       "M_LN10" "M_PI" "M_PI_2" "M_PI_4" "M_1_PI" "M_2_PI"
294
       "PHP_LOCALSTATEDIR" "PHP_CONFIG_FILE_PATH"
295
       "M_2_SQRTPI" "M_SQRT2" "M_SQRT1_2" "CRYPT_SALT_LENGTH"
295
296
       "CRYPT_STD_DES" "CRYPT_EXT_DES" "CRYPT_MD5" "CRYPT_BLOWFISH"
296
       ;; from ext/standard:
297
       "DIRECTORY_SEPARATOR" "SEEK_SET" "SEEK_CUR" "SEEK_END"
297
       "EXTR_OVERWRITE" "EXTR_SKIP" "EXTR_PREFIX_SAME"
298
       "LOCK_SH" "LOCK_EX" "LOCK_UN" "LOCK_NB" "HTML_SPECIALCHARS"
298
       "EXTR_PREFIX_ALL" "EXTR_PREFIX_INVALID" "SORT_ASC" "SORT_DESC"
299
       "HTML_ENTITIES" "ENT_COMPAT" "ENT_QUOTES" "ENT_NOQUOTES"
299
       "SORT_REGULAR" "SORT_NUMERIC" "SORT_STRING" "ASSERT_ACTIVE"
300
       "INFO_GENERAL" "INFO_CREDITS" "INFO_CONFIGURATION"
300
       "ASSERT_CALLBACK" "ASSERT_BAIL" "ASSERT_WARNING"
301
       "INFO_ENVIRONMENT" "INFO_VARIABLES" "INFO_LICENSE" "INFO_ALL"
301
       "ASSERT_QUIET_EVAL" "CONNECTION_ABORTED" "CONNECTION_NORMAL"
302
       "CREDITS_GROUP" "CREDITS_GENERAL" "CREDITS_SAPI"
302
       "CONNECTION_TIMEOUT" "M_E" "M_LOG2E" "M_LOG10E" "M_LN2"
303
       "CREDITS_MODULES" "CREDITS_DOCS" "CREDITS_FULLPAGE"
303
       "M_LN10" "M_PI" "M_PI_2" "M_PI_4" "M_1_PI" "M_2_PI"
304
       "CREDITS_QA" "CREDITS_ALL" "PHP_OUTPUT_HANDLER_START"
304
       "M_2_SQRTPI" "M_SQRT2" "M_SQRT1_2" "CRYPT_SALT_LENGTH"
305
       "PHP_OUTPUT_HANDLER_CONT" "PHP_OUTPUT_HANDLER_END"
305
       "CRYPT_STD_DES" "CRYPT_EXT_DES" "CRYPT_MD5" "CRYPT_BLOWFISH"
306
       "STR_PAD_LEFT" "STR_PAD_RIGHT" "STR_PAD_BOTH"
306
       "DIRECTORY_SEPARATOR" "SEEK_SET" "SEEK_CUR" "SEEK_END"
307
       "PATHINFO_DIRNAME" "PATHINFO_BASENAME" "PATHINFO_EXTENSION"
307
       "LOCK_SH" "LOCK_EX" "LOCK_UN" "LOCK_NB" "HTML_SPECIALCHARS"
308
       "CHAR_MAX" "LC_CTYPE" "LC_NUMERIC" "LC_TIME" "LC_COLLATE"
308
       "HTML_ENTITIES" "ENT_COMPAT" "ENT_QUOTES" "ENT_NOQUOTES"
309
       "LC_MONETARY" "LC_ALL" "LC_MESSAGES" "LOG_EMERG" "LOG_ALERT"
309
       "INFO_GENERAL" "INFO_CREDITS" "INFO_CONFIGURATION"
310
       "LOG_CRIT" "LOG_ERR" "LOG_WARNING" "LOG_NOTICE" "LOG_INFO"
310
       "INFO_ENVIRONMENT" "INFO_VARIABLES" "INFO_LICENSE" "INFO_ALL"
311
       "LOG_DEBUG" "LOG_KERN" "LOG_USER" "LOG_MAIL" "LOG_DAEMON"
311
       "CREDITS_GROUP" "CREDITS_GENERAL" "CREDITS_SAPI"
312
       "LOG_AUTH" "LOG_SYSLOG" "LOG_LPR" "LOG_NEWS" "LOG_UUCP"
312
       "CREDITS_MODULES" "CREDITS_DOCS" "CREDITS_FULLPAGE"
313
       "LOG_CRON" "LOG_AUTHPRIV" "LOG_LOCAL0" "LOG_LOCAL1"
313
       "CREDITS_QA" "CREDITS_ALL" "PHP_OUTPUT_HANDLER_START"
314
       "LOG_LOCAL2" "LOG_LOCAL3" "LOG_LOCAL4" "LOG_LOCAL5"
314
       "PHP_OUTPUT_HANDLER_CONT" "PHP_OUTPUT_HANDLER_END"
315
       "LOG_LOCAL6" "LOG_LOCAL7" "LOG_PID" "LOG_CONS" "LOG_ODELAY"
315
       "STR_PAD_LEFT" "STR_PAD_RIGHT" "STR_PAD_BOTH"
316
       "LOG_NDELAY" "LOG_NOWAIT" "LOG_PERROR"
316
       "PATHINFO_DIRNAME" "PATHINFO_BASENAME" "PATHINFO_EXTENSION"
317
       
317
       "CHAR_MAX" "LC_CTYPE" "LC_NUMERIC" "LC_TIME" "LC_COLLATE"
318
       ;; Disabled by default because they slow buffer loading
318
       "LC_MONETARY" "LC_ALL" "LC_MESSAGES" "LOG_EMERG" "LOG_ALERT"
319
       ;; If you have use for them, decomment the strings 
319
       "LOG_CRIT" "LOG_ERR" "LOG_WARNING" "LOG_NOTICE" "LOG_INFO"
320
       ;; that you want colored.
320
       "LOG_DEBUG" "LOG_KERN" "LOG_USER" "LOG_MAIL" "LOG_DAEMON"
321
       ;; To compile, you may have to increase 'max-specpdl-size'
321
       "LOG_AUTH" "LOG_SYSLOG" "LOG_LPR" "LOG_NEWS" "LOG_UUCP"
322
322
       "LOG_CRON" "LOG_AUTHPRIV" "LOG_LOCAL0" "LOG_LOCAL1"
323
       ;; from other bundled extensions:
323
       "LOG_LOCAL2" "LOG_LOCAL3" "LOG_LOCAL4" "LOG_LOCAL5"
324
;        "CAL_EASTER_TO_xxx" "VT_NULL" "VT_EMPTY" "VT_UI1" "VT_I2"
324
       "LOG_LOCAL6" "LOG_LOCAL7" "LOG_PID" "LOG_CONS" "LOG_ODELAY"
325
;        "VT_I4" "VT_R4" "VT_R8" "VT_BOOL" "VT_ERROR" "VT_CY" "VT_DATE"
325
       "LOG_NDELAY" "LOG_NOWAIT" "LOG_PERROR"
326
;        "VT_BSTR" "VT_DECIMAL" "VT_UNKNOWN" "VT_DISPATCH" "VT_VARIANT"
326
       
327
;        "VT_I1" "VT_UI2" "VT_UI4" "VT_INT" "VT_UINT" "VT_ARRAY"
327
       ;; Disabled by default because they slow buffer loading
328
;        "VT_BYREF" "CP_ACP" "CP_MACCP" "CP_OEMCP" "CP_SYMBOL"
328
       ;; If you have use for them, decomment the strings 
329
;        "CP_THREAD_ACP" "CP_UTF7" "CP_UTF8" "CPDF_PM_NONE"
329
       ;; that you want colored.
330
;        "CPDF_PM_OUTLINES" "CPDF_PM_THUMBS" "CPDF_PM_FULLSCREEN"
330
       ;; To compile, you may have to increase 'max-specpdl-size'
331
;        "CPDF_PL_SINGLE" "CPDF_PL_1COLUMN" "CPDF_PL_2LCOLUMN"
331
332
;        "CPDF_PL_2RCOLUMN" "CURLOPT_PORT" "CURLOPT_FILE"
332
       ;; from other bundled extensions:
333
;        "CURLOPT_INFILE" "CURLOPT_INFILESIZE" "CURLOPT_URL"
333
;        "CAL_EASTER_TO_xxx" "VT_NULL" "VT_EMPTY" "VT_UI1" "VT_I2"
334
;        "CURLOPT_PROXY" "CURLOPT_VERBOSE" "CURLOPT_HEADER"
334
;        "VT_I4" "VT_R4" "VT_R8" "VT_BOOL" "VT_ERROR" "VT_CY" "VT_DATE"
335
;        "CURLOPT_HTTPHEADER" "CURLOPT_NOPROGRESS" "CURLOPT_NOBODY"
335
;        "VT_BSTR" "VT_DECIMAL" "VT_UNKNOWN" "VT_DISPATCH" "VT_VARIANT"
336
;        "CURLOPT_FAILONERROR" "CURLOPT_UPLOAD" "CURLOPT_POST"
336
;        "VT_I1" "VT_UI2" "VT_UI4" "VT_INT" "VT_UINT" "VT_ARRAY"
337
;        "CURLOPT_FTPLISTONLY" "CURLOPT_FTPAPPEND" "CURLOPT_NETRC"
337
;        "VT_BYREF" "CP_ACP" "CP_MACCP" "CP_OEMCP" "CP_SYMBOL"
338
;        "CURLOPT_FOLLOWLOCATION" "CURLOPT_FTPASCII" "CURLOPT_PUT"
338
;        "CP_THREAD_ACP" "CP_UTF7" "CP_UTF8" "CPDF_PM_NONE"
339
;        "CURLOPT_MUTE" "CURLOPT_USERPWD" "CURLOPT_PROXYUSERPWD"
339
;        "CPDF_PM_OUTLINES" "CPDF_PM_THUMBS" "CPDF_PM_FULLSCREEN"
340
;        "CURLOPT_RANGE" "CURLOPT_TIMEOUT" "CURLOPT_POSTFIELDS"
340
;        "CPDF_PL_SINGLE" "CPDF_PL_1COLUMN" "CPDF_PL_2LCOLUMN"
341
;        "CURLOPT_REFERER" "CURLOPT_USERAGENT" "CURLOPT_FTPPORT"
341
;        "CPDF_PL_2RCOLUMN" "CURLOPT_PORT" "CURLOPT_FILE"
342
;        "CURLOPT_LOW_SPEED_LIMIT" "CURLOPT_LOW_SPEED_TIME"
342
;        "CURLOPT_INFILE" "CURLOPT_INFILESIZE" "CURLOPT_URL"
343
;        "CURLOPT_RESUME_FROM" "CURLOPT_COOKIE" "CURLOPT_SSLCERT"
343
;        "CURLOPT_PROXY" "CURLOPT_VERBOSE" "CURLOPT_HEADER"
344
;        "CURLOPT_SSLCERTPASSWD" "CURLOPT_WRITEHEADER"
344
;        "CURLOPT_HTTPHEADER" "CURLOPT_NOPROGRESS" "CURLOPT_NOBODY"
345
;        "CURLOPT_COOKIEFILE" "CURLOPT_SSLVERSION"
345
;        "CURLOPT_FAILONERROR" "CURLOPT_UPLOAD" "CURLOPT_POST"
346
;        "CURLOPT_TIMECONDITION" "CURLOPT_TIMEVALUE"
346
;        "CURLOPT_FTPLISTONLY" "CURLOPT_FTPAPPEND" "CURLOPT_NETRC"
347
;        "CURLOPT_CUSTOMREQUEST" "CURLOPT_STDERR" "CURLOPT_TRANSFERTEXT"
347
;        "CURLOPT_FOLLOWLOCATION" "CURLOPT_FTPASCII" "CURLOPT_PUT"
348
;        "CURLOPT_RETURNTRANSFER" "CURLOPT_QUOTE" "CURLOPT_POSTQUOTE"
348
;        "CURLOPT_MUTE" "CURLOPT_USERPWD" "CURLOPT_PROXYUSERPWD"
349
;        "CURLOPT_INTERFACE" "CURLOPT_KRB4LEVEL"
349
;        "CURLOPT_RANGE" "CURLOPT_TIMEOUT" "CURLOPT_POSTFIELDS"
350
;        "CURLOPT_HTTPPROXYTUNNEL" "CURLOPT_FILETIME"
350
;        "CURLOPT_REFERER" "CURLOPT_USERAGENT" "CURLOPT_FTPPORT"
351
;        "CURLOPT_WRITEFUNCTION" "CURLOPT_READFUNCTION"
351
;        "CURLOPT_LOW_SPEED_LIMIT" "CURLOPT_LOW_SPEED_TIME"
352
;        "CURLOPT_PASSWDFUNCTION" "CURLOPT_HEADERFUNCTION"
352
;        "CURLOPT_RESUME_FROM" "CURLOPT_COOKIE" "CURLOPT_SSLCERT"
353
;        "CURLOPT_MAXREDIRS" "CURLOPT_MAXCONNECTS" "CURLOPT_CLOSEPOLICY"
353
;        "CURLOPT_SSLCERTPASSWD" "CURLOPT_WRITEHEADER"
354
;        "CURLOPT_FRESH_CONNECT" "CURLOPT_FORBID_REUSE"
354
;        "CURLOPT_COOKIEFILE" "CURLOPT_SSLVERSION"
355
;        "CURLOPT_RANDOM_FILE" "CURLOPT_EGDSOCKET"
355
;        "CURLOPT_TIMECONDITION" "CURLOPT_TIMEVALUE"
356
;        "CURLOPT_CONNECTTIMEOUT" "CURLOPT_SSL_VERIFYPEER"
356
;        "CURLOPT_CUSTOMREQUEST" "CURLOPT_STDERR" "CURLOPT_TRANSFERTEXT"
357
;        "CURLOPT_CAINFO" "CURLOPT_BINARYTRANSER"
357
;        "CURLOPT_RETURNTRANSFER" "CURLOPT_QUOTE" "CURLOPT_POSTQUOTE"
358
;        "CURLCLOSEPOLICY_LEAST_RECENTLY_USED" "CURLCLOSEPOLICY_OLDEST"
358
;        "CURLOPT_INTERFACE" "CURLOPT_KRB4LEVEL"
359
;        "CURLINFO_EFFECTIVE_URL" "CURLINFO_HTTP_CODE"
359
;        "CURLOPT_HTTPPROXYTUNNEL" "CURLOPT_FILETIME"
360
;        "CURLINFO_HEADER_SIZE" "CURLINFO_REQUEST_SIZE"
360
;        "CURLOPT_WRITEFUNCTION" "CURLOPT_READFUNCTION"
361
;        "CURLINFO_TOTAL_TIME" "CURLINFO_NAMELOOKUP_TIME"
361
;        "CURLOPT_PASSWDFUNCTION" "CURLOPT_HEADERFUNCTION"
362
;        "CURLINFO_CONNECT_TIME" "CURLINFO_PRETRANSFER_TIME"
362
;        "CURLOPT_MAXREDIRS" "CURLOPT_MAXCONNECTS" "CURLOPT_CLOSEPOLICY"
363
;        "CURLINFO_SIZE_UPLOAD" "CURLINFO_SIZE_DOWNLOAD"
363
;        "CURLOPT_FRESH_CONNECT" "CURLOPT_FORBID_REUSE"
364
;        "CURLINFO_SPEED_DOWNLOAD" "CURLINFO_SPEED_UPLOAD"
364
;        "CURLOPT_RANDOM_FILE" "CURLOPT_EGDSOCKET"
365
;        "CURLINFO_FILETIME" "CURLE_OK" "CURLE_UNSUPPORTED_PROTOCOL"
365
;        "CURLOPT_CONNECTTIMEOUT" "CURLOPT_SSL_VERIFYPEER"
366
;        "CURLE_FAILED_INIT" "CURLE_URL_MALFORMAT"
366
;        "CURLOPT_CAINFO" "CURLOPT_BINARYTRANSER"
367
;        "CURLE_URL_MALFORMAT_USER" "CURLE_COULDNT_RESOLVE_PROXY"
367
;        "CURLCLOSEPOLICY_LEAST_RECENTLY_USED" "CURLCLOSEPOLICY_OLDEST"
368
;        "CURLE_COULDNT_RESOLVE_HOST" "CURLE_COULDNT_CONNECT"
368
;        "CURLINFO_EFFECTIVE_URL" "CURLINFO_HTTP_CODE"
369
;        "CURLE_FTP_WEIRD_SERVER_REPLY" "CURLE_FTP_ACCESS_DENIED"
369
;        "CURLINFO_HEADER_SIZE" "CURLINFO_REQUEST_SIZE"
370
;        "CURLE_FTP_USER_PASSWORD_INCORRECT"
370
;        "CURLINFO_TOTAL_TIME" "CURLINFO_NAMELOOKUP_TIME"
371
;        "CURLE_FTP_WEIRD_PASS_REPLY" "CURLE_FTP_WEIRD_USER_REPLY"
371
;        "CURLINFO_CONNECT_TIME" "CURLINFO_PRETRANSFER_TIME"
372
;        "CURLE_FTP_WEIRD_PASV_REPLY" "CURLE_FTP_WEIRD_227_FORMAT"
372
;        "CURLINFO_SIZE_UPLOAD" "CURLINFO_SIZE_DOWNLOAD"
373
;        "CURLE_FTP_CANT_GET_HOST" "CURLE_FTP_CANT_RECONNECT"
373
;        "CURLINFO_SPEED_DOWNLOAD" "CURLINFO_SPEED_UPLOAD"
374
;        "CURLE_FTP_COULDNT_SET_BINARY" "CURLE_PARTIAL_FILE"
374
;        "CURLINFO_FILETIME" "CURLE_OK" "CURLE_UNSUPPORTED_PROTOCOL"
375
;        "CURLE_FTP_COULDNT_RETR_FILE" "CURLE_FTP_WRITE_ERROR"
375
;        "CURLE_FAILED_INIT" "CURLE_URL_MALFORMAT"
376
;        "CURLE_FTP_QUOTE_ERROR" "CURLE_HTTP_NOT_FOUND"
376
;        "CURLE_URL_MALFORMAT_USER" "CURLE_COULDNT_RESOLVE_PROXY"
377
;        "CURLE_WRITE_ERROR" "CURLE_MALFORMAT_USER"
377
;        "CURLE_COULDNT_RESOLVE_HOST" "CURLE_COULDNT_CONNECT"
378
;        "CURLE_FTP_COULDNT_STOR_FILE" "CURLE_READ_ERROR"
378
;        "CURLE_FTP_WEIRD_SERVER_REPLY" "CURLE_FTP_ACCESS_DENIED"
379
;        "CURLE_OUT_OF_MEMORY" "CURLE_OPERATION_TIMEOUTED"
379
;        "CURLE_FTP_USER_PASSWORD_INCORRECT"
380
;        "CURLE_FTP_COULDNT_SET_ASCII" "CURLE_FTP_PORT_FAILED"
380
;        "CURLE_FTP_WEIRD_PASS_REPLY" "CURLE_FTP_WEIRD_USER_REPLY"
381
;        "CURLE_FTP_COULDNT_USE_REST" "CURLE_FTP_COULDNT_GET_SIZE"
381
;        "CURLE_FTP_WEIRD_PASV_REPLY" "CURLE_FTP_WEIRD_227_FORMAT"
382
;        "CURLE_HTTP_RANGE_ERROR" "CURLE_HTTP_POST_ERROR"
382
;        "CURLE_FTP_CANT_GET_HOST" "CURLE_FTP_CANT_RECONNECT"
383
;        "CURLE_SSL_CONNECT_ERROR" "CURLE_FTP_BAD_DOWNLOAD_RESUME"
383
;        "CURLE_FTP_COULDNT_SET_BINARY" "CURLE_PARTIAL_FILE"
384
;        "CURLE_FILE_COULDNT_READ_FILE" "CURLE_LDAP_CANNOT_BIND"
384
;        "CURLE_FTP_COULDNT_RETR_FILE" "CURLE_FTP_WRITE_ERROR"
385
;        "CURLE_LDAP_SEARCH_FAILED" "CURLE_LIBRARY_NOT_FOUND"
385
;        "CURLE_FTP_QUOTE_ERROR" "CURLE_HTTP_NOT_FOUND"
386
;        "CURLE_FUNCTION_NOT_FOUND" "CURLE_ABORTED_BY_CALLBACK"
386
;        "CURLE_WRITE_ERROR" "CURLE_MALFORMAT_USER"
387
;        "CURLE_BAD_FUNCTION_ARGUMENT" "CURLE_BAD_CALLING_ORDER"
387
;        "CURLE_FTP_COULDNT_STOR_FILE" "CURLE_READ_ERROR"
388
;        "CURLE_HTTP_PORT_FAILED" "CURLE_BAD_PASSWORD_ENTERED"
388
;        "CURLE_OUT_OF_MEMORY" "CURLE_OPERATION_TIMEOUTED"
389
;        "CURLE_TOO_MANY_REDIRECTS" "CURLE_UNKOWN_TELNET_OPTION"
389
;        "CURLE_FTP_COULDNT_SET_ASCII" "CURLE_FTP_PORT_FAILED"
390
;        "CURLE_TELNET_OPTION_SYNTAX" "CURLE_ALREADY_COMPLETE"
390
;        "CURLE_FTP_COULDNT_USE_REST" "CURLE_FTP_COULDNT_GET_SIZE"
391
;        "DBX_MYSQL" "DBX_ODBC" "DBX_PGSQL" "DBX_MSSQL" "DBX_PERSISTENT"
391
;        "CURLE_HTTP_RANGE_ERROR" "CURLE_HTTP_POST_ERROR"
392
;        "DBX_RESULT_INFO" "DBX_RESULT_INDEX" "DBX_RESULT_ASSOC"
392
;        "CURLE_SSL_CONNECT_ERROR" "CURLE_FTP_BAD_DOWNLOAD_RESUME"
393
;        "DBX_CMP_TEXT" "DBX_CMP_NUMBER" "XML_ELEMENT_NODE"
393
;        "CURLE_FILE_COULDNT_READ_FILE" "CURLE_LDAP_CANNOT_BIND"
394
;        "XML_ATTRIBUTE_NODE" "XML_TEXT_NODE" "XML_CDATA_SECTION_NODE"
394
;        "CURLE_LDAP_SEARCH_FAILED" "CURLE_LIBRARY_NOT_FOUND"
395
;        "XML_ENTITY_REF_NODE" "XML_ENTITY_NODE" "XML_PI_NODE"
395
;        "CURLE_FUNCTION_NOT_FOUND" "CURLE_ABORTED_BY_CALLBACK"
396
;        "XML_COMMENT_NODE" "XML_DOCUMENT_NODE" "XML_DOCUMENT_TYPE_NODE"
396
;        "CURLE_BAD_FUNCTION_ARGUMENT" "CURLE_BAD_CALLING_ORDER"
397
;        "XML_DOCUMENT_FRAG_NODE" "XML_NOTATION_NODE"
397
;        "CURLE_HTTP_PORT_FAILED" "CURLE_BAD_PASSWORD_ENTERED"
398
;        "XML_HTML_DOCUMENT_NODE" "XML_DTD_NODE" "XML_ELEMENT_DECL_NODE"
398
;        "CURLE_TOO_MANY_REDIRECTS" "CURLE_UNKOWN_TELNET_OPTION"
399
;        "XML_ATTRIBUTE_DECL_NODE" "XML_ENTITY_DECL_NODE"
399
;        "CURLE_TELNET_OPTION_SYNTAX" "CURLE_ALREADY_COMPLETE"
400
;        "XML_NAMESPACE_DECL_NODE" "XML_GLOBAL_NAMESPACE"
400
;        "DBX_MYSQL" "DBX_ODBC" "DBX_PGSQL" "DBX_MSSQL" "DBX_PERSISTENT"
401
;        "XML_LOCAL_NAMESPACE" "XML_ATTRIBUTE_CDATA" "XML_ATTRIBUTE_ID"
401
;        "DBX_RESULT_INFO" "DBX_RESULT_INDEX" "DBX_RESULT_ASSOC"
402
;        "XML_ATTRIBUTE_IDREF" "XML_ATTRIBUTE_IDREFS"
402
;        "DBX_CMP_TEXT" "DBX_CMP_NUMBER" "XML_ELEMENT_NODE"
403
;        "XML_ATTRIBUTE_ENTITY" "XML_ATTRIBUTE_NMTOKEN"
403
;        "XML_ATTRIBUTE_NODE" "XML_TEXT_NODE" "XML_CDATA_SECTION_NODE"
404
;        "XML_ATTRIBUTE_NMTOKENS" "XML_ATTRIBUTE_ENUMERATION"
404
;        "XML_ENTITY_REF_NODE" "XML_ENTITY_NODE" "XML_PI_NODE"
405
;        "XML_ATTRIBUTE_NOTATION" "XPATH_UNDEFINED" "XPATH_NODESET"
405
;        "XML_COMMENT_NODE" "XML_DOCUMENT_NODE" "XML_DOCUMENT_TYPE_NODE"
406
;        "XPATH_BOOLEAN" "XPATH_NUMBER" "XPATH_STRING" "XPATH_POINT"
406
;        "XML_DOCUMENT_FRAG_NODE" "XML_NOTATION_NODE"
407
;        "XPATH_RANGE" "XPATH_LOCATIONSET" "XPATH_USERS" "FBSQL_ASSOC"
407
;        "XML_HTML_DOCUMENT_NODE" "XML_DTD_NODE" "XML_ELEMENT_DECL_NODE"
408
;        "FBSQL_NUM" "FBSQL_BOTH" "FDFValue" "FDFStatus" "FDFFile"
408
;        "XML_ATTRIBUTE_DECL_NODE" "XML_ENTITY_DECL_NODE"
409
;        "FDFID" "FDFFf" "FDFSetFf" "FDFClearFf" "FDFFlags" "FDFSetF"
409
;        "XML_NAMESPACE_DECL_NODE" "XML_GLOBAL_NAMESPACE"
410
;        "FDFClrF" "FDFAP" "FDFAS" "FDFAction" "FDFAA" "FDFAPRef"
410
;        "XML_LOCAL_NAMESPACE" "XML_ATTRIBUTE_CDATA" "XML_ATTRIBUTE_ID"
411
;        "FDFIF" "FDFEnter" "FDFExit" "FDFDown" "FDFUp" "FDFFormat"
411
;        "XML_ATTRIBUTE_IDREF" "XML_ATTRIBUTE_IDREFS"
412
;        "FDFValidate" "FDFKeystroke" "FDFCalculate"
412
;        "XML_ATTRIBUTE_ENTITY" "XML_ATTRIBUTE_NMTOKEN"
413
;        "FRIBIDI_CHARSET_UTF8" "FRIBIDI_CHARSET_8859_6"
413
;        "XML_ATTRIBUTE_NMTOKENS" "XML_ATTRIBUTE_ENUMERATION"
414
;        "FRIBIDI_CHARSET_8859_8" "FRIBIDI_CHARSET_CP1255"
414
;        "XML_ATTRIBUTE_NOTATION" "XPATH_UNDEFINED" "XPATH_NODESET"
415
;        "FRIBIDI_CHARSET_CP1256" "FRIBIDI_CHARSET_ISIRI_3342"
415
;        "XPATH_BOOLEAN" "XPATH_NUMBER" "XPATH_STRING" "XPATH_POINT"
416
;        "FTP_ASCII" "FTP_BINARY" "FTP_IMAGE" "FTP_TEXT" "IMG_GIF"
416
;        "XPATH_RANGE" "XPATH_LOCATIONSET" "XPATH_USERS" "FBSQL_ASSOC"
417
;        "IMG_JPG" "IMG_JPEG" "IMG_PNG" "IMG_WBMP" "IMG_COLOR_TILED"
417
;        "FBSQL_NUM" "FBSQL_BOTH" "FDFValue" "FDFStatus" "FDFFile"
418
;        "IMG_COLOR_STYLED" "IMG_COLOR_BRUSHED"
418
;        "FDFID" "FDFFf" "FDFSetFf" "FDFClearFf" "FDFFlags" "FDFSetF"
419
;        "IMG_COLOR_STYLEDBRUSHED" "IMG_COLOR_TRANSPARENT"
419
;        "FDFClrF" "FDFAP" "FDFAS" "FDFAction" "FDFAA" "FDFAPRef"
420
;        "IMG_ARC_ROUNDED" "IMG_ARC_PIE" "IMG_ARC_CHORD"
420
;        "FDFIF" "FDFEnter" "FDFExit" "FDFDown" "FDFUp" "FDFFormat"
421
;        "IMG_ARC_NOFILL" "IMG_ARC_EDGED" "GMP_ROUND_ZERO"
421
;        "FDFValidate" "FDFKeystroke" "FDFCalculate"
422
;        "GMP_ROUND_PLUSINF" "GMP_ROUND_MINUSINF" "HW_ATTR_LANG"
422
;        "FRIBIDI_CHARSET_UTF8" "FRIBIDI_CHARSET_8859_6"
423
;        "HW_ATTR_NR" "HW_ATTR_NONE" "IIS_READ" "IIS_WRITE"
423
;        "FRIBIDI_CHARSET_8859_8" "FRIBIDI_CHARSET_CP1255"
424
;        "IIS_EXECUTE" "IIS_SCRIPT" "IIS_ANONYMOUS" "IIS_BASIC"
424
;        "FRIBIDI_CHARSET_CP1256" "FRIBIDI_CHARSET_ISIRI_3342"
425
;        "IIS_NTLM" "NIL" "OP_DEBUG" "OP_READONLY" "OP_ANONYMOUS"
425
;        "FTP_ASCII" "FTP_BINARY" "FTP_IMAGE" "FTP_TEXT" "IMG_GIF"
426
;        "OP_SHORTCACHE" "OP_SILENT" "OP_PROTOTYPE" "OP_HALFOPEN"
426
;        "IMG_JPG" "IMG_JPEG" "IMG_PNG" "IMG_WBMP" "IMG_COLOR_TILED"
427
;        "OP_EXPUNGE" "OP_SECURE" "CL_EXPUNGE" "FT_UID" "FT_PEEK"
427
;        "IMG_COLOR_STYLED" "IMG_COLOR_BRUSHED"
428
;        "FT_NOT" "FT_INTERNAL" "FT_PREFETCHTEXT" "ST_UID" "ST_SILENT"
428
;        "IMG_COLOR_STYLEDBRUSHED" "IMG_COLOR_TRANSPARENT"
429
;        "ST_SET" "CP_UID" "CP_MOVE" "SE_UID" "SE_FREE" "SE_NOPREFETCH"
429
;        "IMG_ARC_ROUNDED" "IMG_ARC_PIE" "IMG_ARC_CHORD"
430
;        "SO_FREE" "SO_NOSERVER" "SA_MESSAGES" "SA_RECENT" "SA_UNSEEN"
430
;        "IMG_ARC_NOFILL" "IMG_ARC_EDGED" "GMP_ROUND_ZERO"
431
;        "SA_UIDNEXT" "SA_UIDVALIDITY" "SA_ALL" "LATT_NOINFERIORS"
431
;        "GMP_ROUND_PLUSINF" "GMP_ROUND_MINUSINF" "HW_ATTR_LANG"
432
;        "LATT_NOSELECT" "LATT_MARKED" "LATT_UNMARKED" "SORTDATE"
432
;        "HW_ATTR_NR" "HW_ATTR_NONE" "IIS_READ" "IIS_WRITE"
433
;        "SORTARRIVAL" "SORTFROM" "SORTSUBJECT" "SORTTO" "SORTCC"
433
;        "IIS_EXECUTE" "IIS_SCRIPT" "IIS_ANONYMOUS" "IIS_BASIC"
434
;        "SORTSIZE" "TYPETEXT" "TYPEMULTIPART" "TYPEMESSAGE"
434
;        "IIS_NTLM" "NIL" "OP_DEBUG" "OP_READONLY" "OP_ANONYMOUS"
435
;        "TYPEAPPLICATION" "TYPEAUDIO" "TYPEIMAGE" "TYPEVIDEO"
435
;        "OP_SHORTCACHE" "OP_SILENT" "OP_PROTOTYPE" "OP_HALFOPEN"
436
;        "TYPEOTHER" "ENC7BIT" "ENC8BIT" "ENCBINARY" "ENCBASE64"
436
;        "OP_EXPUNGE" "OP_SECURE" "CL_EXPUNGE" "FT_UID" "FT_PEEK"
437
;        "ENCQUOTEDPRINTABLE" "ENCOTHER" "INGRES_ASSOC" "INGRES_NUM"
437
;        "FT_NOT" "FT_INTERNAL" "FT_PREFETCHTEXT" "ST_UID" "ST_SILENT"
438
;        "INGRES_BOTH" "IBASE_DEFAULT" "IBASE_TEXT" "IBASE_UNIXTIME"
438
;        "ST_SET" "CP_UID" "CP_MOVE" "SE_UID" "SE_FREE" "SE_NOPREFETCH"
439
;        "IBASE_READ" "IBASE_COMMITTED" "IBASE_CONSISTENCY"
439
;        "SO_FREE" "SO_NOSERVER" "SA_MESSAGES" "SA_RECENT" "SA_UNSEEN"
440
;        "IBASE_NOWAIT" "IBASE_TIMESTAMP" "IBASE_DATE" "IBASE_TIME"
440
;        "SA_UIDNEXT" "SA_UIDVALIDITY" "SA_ALL" "LATT_NOINFERIORS"
441
;        "LDAP_DEREF_NEVER" "LDAP_DEREF_SEARCHING" "LDAP_DEREF_FINDING"
441
;        "LATT_NOSELECT" "LATT_MARKED" "LATT_UNMARKED" "SORTDATE"
442
;        "LDAP_DEREF_ALWAYS" "LDAP_OPT_DEREF" "LDAP_OPT_SIZELIMIT"
442
;        "SORTARRIVAL" "SORTFROM" "SORTSUBJECT" "SORTTO" "SORTCC"
443
;        "LDAP_OPT_TIMELIMIT" "LDAP_OPT_PROTOCOL_VERSION"
443
;        "SORTSIZE" "TYPETEXT" "TYPEMULTIPART" "TYPEMESSAGE"
444
;        "LDAP_OPT_ERROR_NUMBER" "LDAP_OPT_REFERRALS" "LDAP_OPT_RESTART"
444
;        "TYPEAPPLICATION" "TYPEAUDIO" "TYPEIMAGE" "TYPEVIDEO"
445
;        "LDAP_OPT_HOST_NAME" "LDAP_OPT_ERROR_STRING"
445
;        "TYPEOTHER" "ENC7BIT" "ENC8BIT" "ENCBINARY" "ENCBASE64"
446
;        "LDAP_OPT_MATCHED_DN" "LDAP_OPT_SERVER_CONTROLS"
446
;        "ENCQUOTEDPRINTABLE" "ENCOTHER" "INGRES_ASSOC" "INGRES_NUM"
447
;        "LDAP_OPT_CLIENT_CONTROLS" "GSLC_SSL_NO_AUTH"
447
;        "INGRES_BOTH" "IBASE_DEFAULT" "IBASE_TEXT" "IBASE_UNIXTIME"
448
;        "GSLC_SSL_ONEWAY_AUTH" "GSLC_SSL_TWOWAY_AUTH" "MCAL_SUNDAY"
448
;        "IBASE_READ" "IBASE_COMMITTED" "IBASE_CONSISTENCY"
449
;        "MCAL_MONDAY" "MCAL_TUESDAY" "MCAL_WEDNESDAY" "MCAL_THURSDAY"
449
;        "IBASE_NOWAIT" "IBASE_TIMESTAMP" "IBASE_DATE" "IBASE_TIME"
450
;        "MCAL_FRIDAY" "MCAL_SATURDAY" "MCAL_JANUARY" "MCAL_FEBRUARY"
450
;        "LDAP_DEREF_NEVER" "LDAP_DEREF_SEARCHING" "LDAP_DEREF_FINDING"
451
;        "MCAL_MARCH" "MCAL_APRIL" "MCAL_MAY" "MCAL_JUNE" "MCAL_JULY"
451
;        "LDAP_DEREF_ALWAYS" "LDAP_OPT_DEREF" "LDAP_OPT_SIZELIMIT"
452
;        "MCAL_AUGUST" "MCAL_SEPTEMBER" "MCAL_OCTOBER" "MCAL_NOVEMBER"
452
;        "LDAP_OPT_TIMELIMIT" "LDAP_OPT_PROTOCOL_VERSION"
453
;        "MCAL_RECUR_NONE" "MCAL_RECUR_DAILY" "MCAL_RECUR_WEEKLY"
453
;        "LDAP_OPT_ERROR_NUMBER" "LDAP_OPT_REFERRALS" "LDAP_OPT_RESTART"
454
;        "MCAL_RECUR_MONTHLY_MDAY" "MCAL_RECUR_MONTHLY_WDAY"
454
;        "LDAP_OPT_HOST_NAME" "LDAP_OPT_ERROR_STRING"
455
;        "MCAL_RECUR_YEARLY" "MCAL_M_SUNDAY" "MCAL_M_MONDAY"
455
;        "LDAP_OPT_MATCHED_DN" "LDAP_OPT_SERVER_CONTROLS"
456
;        "MCAL_M_TUESDAY" "MCAL_M_WEDNESDAY" "MCAL_M_THURSDAY"
456
;        "LDAP_OPT_CLIENT_CONTROLS" "GSLC_SSL_NO_AUTH"
457
;        "MCAL_M_FRIDAY" "MCAL_M_SATURDAY" "MCAL_M_WEEKDAYS"
457
;        "GSLC_SSL_ONEWAY_AUTH" "GSLC_SSL_TWOWAY_AUTH" "MCAL_SUNDAY"
458
;        "MCAL_M_WEEKEND" "MCAL_M_ALLDAYS" "MCRYPT_" "MCRYPT_"
458
;        "MCAL_MONDAY" "MCAL_TUESDAY" "MCAL_WEDNESDAY" "MCAL_THURSDAY"
459
;        "MCRYPT_ENCRYPT" "MCRYPT_DECRYPT" "MCRYPT_DEV_RANDOM"
459
;        "MCAL_FRIDAY" "MCAL_SATURDAY" "MCAL_JANUARY" "MCAL_FEBRUARY"
460
;        "MCRYPT_DEV_URANDOM" "MCRYPT_RAND" "SWFBUTTON_HIT"
460
;        "MCAL_MARCH" "MCAL_APRIL" "MCAL_MAY" "MCAL_JUNE" "MCAL_JULY"
461
;        "SWFBUTTON_DOWN" "SWFBUTTON_OVER" "SWFBUTTON_UP"
461
;        "MCAL_AUGUST" "MCAL_SEPTEMBER" "MCAL_OCTOBER" "MCAL_NOVEMBER"
462
;        "SWFBUTTON_MOUSEUPOUTSIDE" "SWFBUTTON_DRAGOVER"
462
;        "MCAL_RECUR_NONE" "MCAL_RECUR_DAILY" "MCAL_RECUR_WEEKLY"
463
;        "SWFBUTTON_DRAGOUT" "SWFBUTTON_MOUSEUP" "SWFBUTTON_MOUSEDOWN"
463
;        "MCAL_RECUR_MONTHLY_MDAY" "MCAL_RECUR_MONTHLY_WDAY"
464
;        "SWFBUTTON_MOUSEOUT" "SWFBUTTON_MOUSEOVER"
464
;        "MCAL_RECUR_YEARLY" "MCAL_M_SUNDAY" "MCAL_M_MONDAY"
465
;        "SWFFILL_RADIAL_GRADIENT" "SWFFILL_LINEAR_GRADIENT"
465
;        "MCAL_M_TUESDAY" "MCAL_M_WEDNESDAY" "MCAL_M_THURSDAY"
466
;        "SWFFILL_TILED_BITMAP" "SWFFILL_CLIPPED_BITMAP"
466
;        "MCAL_M_FRIDAY" "MCAL_M_SATURDAY" "MCAL_M_WEEKDAYS"
467
;        "SWFTEXTFIELD_HASLENGTH" "SWFTEXTFIELD_NOEDIT"
467
;        "MCAL_M_WEEKEND" "MCAL_M_ALLDAYS" "MCRYPT_" "MCRYPT_"
468
;        "SWFTEXTFIELD_PASSWORD" "SWFTEXTFIELD_MULTILINE"
468
;        "MCRYPT_ENCRYPT" "MCRYPT_DECRYPT" "MCRYPT_DEV_RANDOM"
469
;        "SWFTEXTFIELD_WORDWRAP" "SWFTEXTFIELD_DRAWBOX"
469
;        "MCRYPT_DEV_URANDOM" "MCRYPT_RAND" "SWFBUTTON_HIT"
470
;        "SWFTEXTFIELD_NOSELECT" "SWFTEXTFIELD_HTML"
470
;        "SWFBUTTON_DOWN" "SWFBUTTON_OVER" "SWFBUTTON_UP"
471
;        "SWFTEXTFIELD_ALIGN_LEFT" "SWFTEXTFIELD_ALIGN_RIGHT"
471
;        "SWFBUTTON_MOUSEUPOUTSIDE" "SWFBUTTON_DRAGOVER"
472
;        "SWFTEXTFIELD_ALIGN_CENTER" "SWFTEXTFIELD_ALIGN_JUSTIFY"
472
;        "SWFBUTTON_DRAGOUT" "SWFBUTTON_MOUSEUP" "SWFBUTTON_MOUSEDOWN"
473
;        "UDM_FIELD_URLID" "UDM_FIELD_URL" "UDM_FIELD_CONTENT"
473
;        "SWFBUTTON_MOUSEOUT" "SWFBUTTON_MOUSEOVER"
474
;        "UDM_FIELD_TITLE" "UDM_FIELD_KEYWORDS" "UDM_FIELD_DESC"
474
;        "SWFFILL_RADIAL_GRADIENT" "SWFFILL_LINEAR_GRADIENT"
475
;        "UDM_FIELD_DESCRIPTION" "UDM_FIELD_TEXT" "UDM_FIELD_SIZE"
475
;        "SWFFILL_TILED_BITMAP" "SWFFILL_CLIPPED_BITMAP"
476
;        "UDM_FIELD_RATING" "UDM_FIELD_SCORE" "UDM_FIELD_MODIFIED"
476
;        "SWFTEXTFIELD_HASLENGTH" "SWFTEXTFIELD_NOEDIT"
477
;        "UDM_FIELD_ORDER" "UDM_FIELD_CRC" "UDM_FIELD_CATEGORY"
477
;        "SWFTEXTFIELD_PASSWORD" "SWFTEXTFIELD_MULTILINE"
478
;        "UDM_PARAM_PAGE_SIZE" "UDM_PARAM_PAGE_NUM"
478
;        "SWFTEXTFIELD_WORDWRAP" "SWFTEXTFIELD_DRAWBOX"
479
;        "UDM_PARAM_SEARCH_MODE" "UDM_PARAM_CACHE_MODE"
479
;        "SWFTEXTFIELD_NOSELECT" "SWFTEXTFIELD_HTML"
480
;        "UDM_PARAM_TRACK_MODE" "UDM_PARAM_PHRASE_MODE"
480
;        "SWFTEXTFIELD_ALIGN_LEFT" "SWFTEXTFIELD_ALIGN_RIGHT"
481
;        "UDM_PARAM_CHARSET" "UDM_PARAM_STOPTABLE"
481
;        "SWFTEXTFIELD_ALIGN_CENTER" "SWFTEXTFIELD_ALIGN_JUSTIFY"
482
;        "UDM_PARAM_STOP_TABLE" "UDM_PARAM_STOPFILE"
482
;        "UDM_FIELD_URLID" "UDM_FIELD_URL" "UDM_FIELD_CONTENT"
483
;        "UDM_PARAM_STOP_FILE" "UDM_PARAM_WEIGHT_FACTOR"
483
;        "UDM_FIELD_TITLE" "UDM_FIELD_KEYWORDS" "UDM_FIELD_DESC"
484
;        "UDM_PARAM_WORD_MATCH" "UDM_PARAM_MAX_WORD_LEN"
484
;        "UDM_FIELD_DESCRIPTION" "UDM_FIELD_TEXT" "UDM_FIELD_SIZE"
485
;        "UDM_PARAM_MAX_WORDLEN" "UDM_PARAM_MIN_WORD_LEN"
485
;        "UDM_FIELD_RATING" "UDM_FIELD_SCORE" "UDM_FIELD_MODIFIED"
486
;        "UDM_PARAM_MIN_WORDLEN" "UDM_PARAM_ISPELL_PREFIXES"
486
;        "UDM_FIELD_ORDER" "UDM_FIELD_CRC" "UDM_FIELD_CATEGORY"
487
;        "UDM_PARAM_ISPELL_PREFIX" "UDM_PARAM_PREFIXES"
487
;        "UDM_PARAM_PAGE_SIZE" "UDM_PARAM_PAGE_NUM"
488
;        "UDM_PARAM_PREFIX" "UDM_PARAM_CROSS_WORDS"
488
;        "UDM_PARAM_SEARCH_MODE" "UDM_PARAM_CACHE_MODE"
489
;        "UDM_PARAM_CROSSWORDS" "UDM_LIMIT_CAT" "UDM_LIMIT_URL"
489
;        "UDM_PARAM_TRACK_MODE" "UDM_PARAM_PHRASE_MODE"
490
;        "UDM_LIMIT_TAG" "UDM_LIMIT_LANG" "UDM_LIMIT_DATE"
490
;        "UDM_PARAM_CHARSET" "UDM_PARAM_STOPTABLE"
491
;        "UDM_PARAM_FOUND" "UDM_PARAM_NUM_ROWS" "UDM_PARAM_WORDINFO"
491
;        "UDM_PARAM_STOP_TABLE" "UDM_PARAM_STOPFILE"
492
;        "UDM_PARAM_WORD_INFO" "UDM_PARAM_SEARCHTIME"
492
;        "UDM_PARAM_STOP_FILE" "UDM_PARAM_WEIGHT_FACTOR"
493
;        "UDM_PARAM_SEARCH_TIME" "UDM_PARAM_FIRST_DOC"
493
;        "UDM_PARAM_WORD_MATCH" "UDM_PARAM_MAX_WORD_LEN"
494
;        "UDM_PARAM_LAST_DOC" "UDM_MODE_ALL" "UDM_MODE_ANY"
494
;        "UDM_PARAM_MAX_WORDLEN" "UDM_PARAM_MIN_WORD_LEN"
495
;        "UDM_MODE_BOOL" "UDM_MODE_PHRASE" "UDM_CACHE_ENABLED"
495
;        "UDM_PARAM_MIN_WORDLEN" "UDM_PARAM_ISPELL_PREFIXES"
496
;        "UDM_CACHE_DISABLED" "UDM_TRACK_ENABLED" "UDM_TRACK_DISABLED"
496
;        "UDM_PARAM_ISPELL_PREFIX" "UDM_PARAM_PREFIXES"
497
;        "UDM_PHRASE_ENABLED" "UDM_PHRASE_DISABLED"
497
;        "UDM_PARAM_PREFIX" "UDM_PARAM_CROSS_WORDS"
498
;        "UDM_CROSS_WORDS_ENABLED" "UDM_CROSSWORDS_ENABLED"
498
;        "UDM_PARAM_CROSSWORDS" "UDM_LIMIT_CAT" "UDM_LIMIT_URL"
499
;        "UDM_CROSS_WORDS_DISABLED" "UDM_CROSSWORDS_DISABLED"
499
;        "UDM_LIMIT_TAG" "UDM_LIMIT_LANG" "UDM_LIMIT_DATE"
500
;        "UDM_PREFIXES_ENABLED" "UDM_PREFIX_ENABLED"
500
;        "UDM_PARAM_FOUND" "UDM_PARAM_NUM_ROWS" "UDM_PARAM_WORDINFO"
501
;        "UDM_ISPELL_PREFIXES_ENABLED" "UDM_ISPELL_PREFIX_ENABLED"
501
;        "UDM_PARAM_WORD_INFO" "UDM_PARAM_SEARCHTIME"
502
;        "UDM_PREFIXES_DISABLED" "UDM_PREFIX_DISABLED"
502
;        "UDM_PARAM_SEARCH_TIME" "UDM_PARAM_FIRST_DOC"
503
;        "UDM_ISPELL_PREFIXES_DISABLED" "UDM_ISPELL_PREFIX_DISABLED"
503
;        "UDM_PARAM_LAST_DOC" "UDM_MODE_ALL" "UDM_MODE_ANY"
504
;        "UDM_ISPELL_TYPE_AFFIX" "UDM_ISPELL_TYPE_SPELL"
504
;        "UDM_MODE_BOOL" "UDM_MODE_PHRASE" "UDM_CACHE_ENABLED"
505
;        "UDM_ISPELL_TYPE_DB" "UDM_ISPELL_TYPE_SERVER" "UDM_MATCH_WORD"
505
;        "UDM_CACHE_DISABLED" "UDM_TRACK_ENABLED" "UDM_TRACK_DISABLED"
506
;        "UDM_MATCH_BEGIN" "UDM_MATCH_SUBSTR" "UDM_MATCH_END"
506
;        "UDM_PHRASE_ENABLED" "UDM_PHRASE_DISABLED"
507
;        "MSQL_ASSOC" "MSQL_NUM" "MSQL_BOTH" "MYSQL_ASSOC" "MYSQL_NUM"
507
;        "UDM_CROSS_WORDS_ENABLED" "UDM_CROSSWORDS_ENABLED"
508
;        "MYSQL_BOTH" "MYSQL_USE_RESULT" "MYSQL_STORE_RESULT"
508
;        "UDM_CROSS_WORDS_DISABLED" "UDM_CROSSWORDS_DISABLED"
509
;        "OCI_DEFAULT" "OCI_DESCRIBE_ONLY" "OCI_COMMIT_ON_SUCCESS"
509
;        "UDM_PREFIXES_ENABLED" "UDM_PREFIX_ENABLED"
510
;        "OCI_EXACT_FETCH" "SQLT_BFILEE" "SQLT_CFILEE" "SQLT_CLOB"
510
;        "UDM_ISPELL_PREFIXES_ENABLED" "UDM_ISPELL_PREFIX_ENABLED"
511
;        "SQLT_BLOB" "SQLT_RDD" "OCI_B_SQLT_NTY" "OCI_SYSDATE"
511
;        "UDM_PREFIXES_DISABLED" "UDM_PREFIX_DISABLED"
512
;        "OCI_B_BFILE" "OCI_B_CFILEE" "OCI_B_CLOB" "OCI_B_BLOB"
512
;        "UDM_ISPELL_PREFIXES_DISABLED" "UDM_ISPELL_PREFIX_DISABLED"
513
;        "OCI_B_ROWID" "OCI_B_CURSOR" "OCI_B_BIN" "OCI_ASSOC" "OCI_NUM"
513
;        "UDM_ISPELL_TYPE_AFFIX" "UDM_ISPELL_TYPE_SPELL"
514
;        "OCI_BOTH" "OCI_RETURN_NULLS" "OCI_RETURN_LOBS"
514
;        "UDM_ISPELL_TYPE_DB" "UDM_ISPELL_TYPE_SERVER" "UDM_MATCH_WORD"
515
;        "OCI_DTYPE_FILE" "OCI_DTYPE_LOB" "OCI_DTYPE_ROWID" "OCI_D_FILE"
515
;        "UDM_MATCH_BEGIN" "UDM_MATCH_SUBSTR" "UDM_MATCH_END"
516
;        "OCI_D_LOB" "OCI_D_ROWID" "ODBC_TYPE" "ODBC_BINMODE_PASSTHRU"
516
;        "MSQL_ASSOC" "MSQL_NUM" "MSQL_BOTH" "MYSQL_ASSOC" "MYSQL_NUM"
517
;        "ODBC_BINMODE_RETURN" "ODBC_BINMODE_CONVERT" "SQL_ODBC_CURSORS"
517
;        "MYSQL_BOTH" "MYSQL_USE_RESULT" "MYSQL_STORE_RESULT"
518
;        "SQL_CUR_USE_DRIVER" "SQL_CUR_USE_IF_NEEDED" "SQL_CUR_USE_ODBC"
518
;        "OCI_DEFAULT" "OCI_DESCRIBE_ONLY" "OCI_COMMIT_ON_SUCCESS"
519
;        "SQL_CONCURRENCY" "SQL_CONCUR_READ_ONLY" "SQL_CONCUR_LOCK"
519
;        "OCI_EXACT_FETCH" "SQLT_BFILEE" "SQLT_CFILEE" "SQLT_CLOB"
520
;        "SQL_CONCUR_ROWVER" "SQL_CONCUR_VALUES" "SQL_CURSOR_TYPE"
520
;        "SQLT_BLOB" "SQLT_RDD" "OCI_B_SQLT_NTY" "OCI_SYSDATE"
521
;        "SQL_CURSOR_FORWARD_ONLY" "SQL_CURSOR_KEYSET_DRIVEN"
521
;        "OCI_B_BFILE" "OCI_B_CFILEE" "OCI_B_CLOB" "OCI_B_BLOB"
522
;        "SQL_CURSOR_DYNAMIC" "SQL_CURSOR_STATIC" "SQL_KEYSET_SIZE"
522
;        "OCI_B_ROWID" "OCI_B_CURSOR" "OCI_B_BIN" "OCI_ASSOC" "OCI_NUM"
523
;        "SQL_CHAR" "SQL_VARCHAR" "SQL_LONGVARCHAR" "SQL_DECIMAL"
523
;        "OCI_BOTH" "OCI_RETURN_NULLS" "OCI_RETURN_LOBS"
524
;        "SQL_NUMERIC" "SQL_BIT" "SQL_TINYINT" "SQL_SMALLINT"
524
;        "OCI_DTYPE_FILE" "OCI_DTYPE_LOB" "OCI_DTYPE_ROWID" "OCI_D_FILE"
525
;        "SQL_INTEGER" "SQL_BIGINT" "SQL_REAL" "SQL_FLOAT" "SQL_DOUBLE"
525
;        "OCI_D_LOB" "OCI_D_ROWID" "ODBC_TYPE" "ODBC_BINMODE_PASSTHRU"
526
;        "SQL_BINARY" "SQL_VARBINARY" "SQL_LONGVARBINARY" "SQL_DATE"
526
;        "ODBC_BINMODE_RETURN" "ODBC_BINMODE_CONVERT" "SQL_ODBC_CURSORS"
527
;        "SQL_TIME" "SQL_TIMESTAMP" "SQL_TYPE_DATE" "SQL_TYPE_TIME"
527
;        "SQL_CUR_USE_DRIVER" "SQL_CUR_USE_IF_NEEDED" "SQL_CUR_USE_ODBC"
528
;        "SQL_TYPE_TIMESTAMP" "SQL_BEST_ROWID" "SQL_ROWVER"
528
;        "SQL_CONCURRENCY" "SQL_CONCUR_READ_ONLY" "SQL_CONCUR_LOCK"
529
;        "SQL_SCOPE_CURROW" "SQL_SCOPE_TRANSACTION" "SQL_SCOPE_SESSION"
529
;        "SQL_CONCUR_ROWVER" "SQL_CONCUR_VALUES" "SQL_CURSOR_TYPE"
530
;        "SQL_NO_NULLS" "SQL_NULLABLE" "SQL_INDEX_UNIQUE"
530
;        "SQL_CURSOR_FORWARD_ONLY" "SQL_CURSOR_KEYSET_DRIVEN"
531
;        "SQL_INDEX_ALL" "SQL_ENSURE" "SQL_QUICK"
531
;        "SQL_CURSOR_DYNAMIC" "SQL_CURSOR_STATIC" "SQL_KEYSET_SIZE"
532
;        "X509_PURPOSE_SSL_CLIENT" "X509_PURPOSE_SSL_SERVER"
532
;        "SQL_CHAR" "SQL_VARCHAR" "SQL_LONGVARCHAR" "SQL_DECIMAL"
533
;        "X509_PURPOSE_NS_SSL_SERVER" "X509_PURPOSE_SMIME_SIGN"
533
;        "SQL_NUMERIC" "SQL_BIT" "SQL_TINYINT" "SQL_SMALLINT"
534
;        "X509_PURPOSE_SMIME_ENCRYPT" "X509_PURPOSE_CRL_SIGN"
534
;        "SQL_INTEGER" "SQL_BIGINT" "SQL_REAL" "SQL_FLOAT" "SQL_DOUBLE"
535
;        "X509_PURPOSE_ANY" "PKCS7_DETACHED" "PKCS7_TEXT"
535
;        "SQL_BINARY" "SQL_VARBINARY" "SQL_LONGVARBINARY" "SQL_DATE"
536
;        "PKCS7_NOINTERN" "PKCS7_NOVERIFY" "PKCS7_NOCHAIN"
536
;        "SQL_TIME" "SQL_TIMESTAMP" "SQL_TYPE_DATE" "SQL_TYPE_TIME"
537
;        "PKCS7_NOCERTS" "PKCS7_NOATTR" "PKCS7_BINARY" "PKCS7_NOSIGS"
537
;        "SQL_TYPE_TIMESTAMP" "SQL_BEST_ROWID" "SQL_ROWVER"
538
;        "OPENSSL_PKCS1_PADDING" "OPENSSL_SSLV23_PADDING"
538
;        "SQL_SCOPE_CURROW" "SQL_SCOPE_TRANSACTION" "SQL_SCOPE_SESSION"
539
;        "OPENSSL_NO_PADDING" "OPENSSL_PKCS1_OAEP_PADDING"
539
;        "SQL_NO_NULLS" "SQL_NULLABLE" "SQL_INDEX_UNIQUE"
540
;        "ORA_BIND_INOUT" "ORA_BIND_IN" "ORA_BIND_OUT"
540
;        "SQL_INDEX_ALL" "SQL_ENSURE" "SQL_QUICK"
541
;        "ORA_FETCHINTO_ASSOC" "ORA_FETCHINTO_NULLS"
541
;        "X509_PURPOSE_SSL_CLIENT" "X509_PURPOSE_SSL_SERVER"
542
;        "PREG_PATTERN_ORDER" "PREG_SET_ORDER" "PREG_SPLIT_NO_EMPTY"
542
;        "X509_PURPOSE_NS_SSL_SERVER" "X509_PURPOSE_SMIME_SIGN"
543
;        "PREG_SPLIT_DELIM_CAPTURE" "PGSQL_ASSOC" "PGSQL_NUM"
543
;        "X509_PURPOSE_SMIME_ENCRYPT" "X509_PURPOSE_CRL_SIGN"
544
;        "PGSQL_BOTH" "PRINTER_COPIES" "PRINTER_MODE" "PRINTER_TITLE"
544
;        "X509_PURPOSE_ANY" "PKCS7_DETACHED" "PKCS7_TEXT"
545
;        "PRINTER_DEVICENAME" "PRINTER_DRIVERVERSION"
545
;        "PKCS7_NOINTERN" "PKCS7_NOVERIFY" "PKCS7_NOCHAIN"
546
;        "PRINTER_RESOLUTION_Y" "PRINTER_RESOLUTION_X" "PRINTER_SCALE"
546
;        "PKCS7_NOCERTS" "PKCS7_NOATTR" "PKCS7_BINARY" "PKCS7_NOSIGS"
547
;        "PRINTER_BACKGROUND_COLOR" "PRINTER_PAPER_LENGTH"
547
;        "OPENSSL_PKCS1_PADDING" "OPENSSL_SSLV23_PADDING"
548
;        "PRINTER_PAPER_WIDTH" "PRINTER_PAPER_FORMAT"
548
;        "OPENSSL_NO_PADDING" "OPENSSL_PKCS1_OAEP_PADDING"
549
;        "PRINTER_FORMAT_CUSTOM" "PRINTER_FORMAT_LETTER"
549
;        "ORA_BIND_INOUT" "ORA_BIND_IN" "ORA_BIND_OUT"
550
;        "PRINTER_FORMAT_LEGAL" "PRINTER_FORMAT_A3" "PRINTER_FORMAT_A4"
550
;        "ORA_FETCHINTO_ASSOC" "ORA_FETCHINTO_NULLS"
551
;        "PRINTER_FORMAT_A5" "PRINTER_FORMAT_B4" "PRINTER_FORMAT_B5"
551
;        "PREG_PATTERN_ORDER" "PREG_SET_ORDER" "PREG_SPLIT_NO_EMPTY"
552
;        "PRINTER_FORMAT_FOLIO" "PRINTER_ORIENTATION"
552
;        "PREG_SPLIT_DELIM_CAPTURE" "PGSQL_ASSOC" "PGSQL_NUM"
553
;        "PRINTER_ORIENTATION_PORTRAIT" "PRINTER_ORIENTATION_LANDSCAPE"
553
;        "PGSQL_BOTH" "PRINTER_COPIES" "PRINTER_MODE" "PRINTER_TITLE"
554
;        "PRINTER_TEXT_COLOR" "PRINTER_TEXT_ALIGN" "PRINTER_TA_BASELINE"
554
;        "PRINTER_DEVICENAME" "PRINTER_DRIVERVERSION"
555
;        "PRINTER_TA_BOTTOM" "PRINTER_TA_TOP" "PRINTER_TA_CENTER"
555
;        "PRINTER_RESOLUTION_Y" "PRINTER_RESOLUTION_X" "PRINTER_SCALE"
556
;        "PRINTER_TA_LEFT" "PRINTER_TA_RIGHT" "PRINTER_PEN_SOLID"
556
;        "PRINTER_BACKGROUND_COLOR" "PRINTER_PAPER_LENGTH"
557
;        "PRINTER_PEN_DASH" "PRINTER_PEN_DOT" "PRINTER_PEN_DASHDOT"
557
;        "PRINTER_PAPER_WIDTH" "PRINTER_PAPER_FORMAT"
558
;        "PRINTER_PEN_DASHDOTDOT" "PRINTER_PEN_INVISIBLE"
558
;        "PRINTER_FORMAT_CUSTOM" "PRINTER_FORMAT_LETTER"
559
;        "PRINTER_BRUSH_SOLID" "PRINTER_BRUSH_CUSTOM"
559
;        "PRINTER_FORMAT_LEGAL" "PRINTER_FORMAT_A3" "PRINTER_FORMAT_A4"
560
;        "PRINTER_BRUSH_DIAGONAL" "PRINTER_BRUSH_CROSS"
560
;        "PRINTER_FORMAT_A5" "PRINTER_FORMAT_B4" "PRINTER_FORMAT_B5"
561
;        "PRINTER_BRUSH_DIAGCROSS" "PRINTER_BRUSH_FDIAGONAL"
561
;        "PRINTER_FORMAT_FOLIO" "PRINTER_ORIENTATION"
562
;        "PRINTER_BRUSH_HORIZONTAL" "PRINTER_BRUSH_VERTICAL"
562
;        "PRINTER_ORIENTATION_PORTRAIT" "PRINTER_ORIENTATION_LANDSCAPE"
563
;        "PRINTER_FW_THIN" "PRINTER_FW_ULTRALIGHT" "PRINTER_FW_LIGHT"
563
;        "PRINTER_TEXT_COLOR" "PRINTER_TEXT_ALIGN" "PRINTER_TA_BASELINE"
564
;        "PRINTER_FW_NORMAL" "PRINTER_FW_MEDIUM" "PRINTER_FW_BOLD"
564
;        "PRINTER_TA_BOTTOM" "PRINTER_TA_TOP" "PRINTER_TA_CENTER"
565
;        "PRINTER_FW_ULTRABOLD" "PRINTER_FW_HEAVY" "PRINTER_ENUM_LOCAL"
565
;        "PRINTER_TA_LEFT" "PRINTER_TA_RIGHT" "PRINTER_PEN_SOLID"
566
;        "PRINTER_ENUM_NAME" "PRINTER_ENUM_SHARED"
566
;        "PRINTER_PEN_DASH" "PRINTER_PEN_DOT" "PRINTER_PEN_DASHDOT"
567
;        "PRINTER_ENUM_DEFAULT" "PRINTER_ENUM_CONNECTIONS"
567
;        "PRINTER_PEN_DASHDOTDOT" "PRINTER_PEN_INVISIBLE"
568
;        "PRINTER_ENUM_NETWORK" "PRINTER_ENUM_REMOTE" "PSPELL_FAST"
568
;        "PRINTER_BRUSH_SOLID" "PRINTER_BRUSH_CUSTOM"
569
;        "PSPELL_NORMAL" "PSPELL_BAD_SPELLERS" "PSPELL_RUN_TOGETHER"
569
;        "PRINTER_BRUSH_DIAGONAL" "PRINTER_BRUSH_CROSS"
570
;        "SID" "SID" "AF_UNIX" "AF_INET" "SOCK_STREAM" "SOCK_DGRAM"
570
;        "PRINTER_BRUSH_DIAGCROSS" "PRINTER_BRUSH_FDIAGONAL"
571
;        "SOCK_RAW" "SOCK_SEQPACKET" "SOCK_RDM" "MSG_OOB" "MSG_WAITALL"
571
;        "PRINTER_BRUSH_HORIZONTAL" "PRINTER_BRUSH_VERTICAL"
572
;        "MSG_PEEK" "MSG_DONTROUTE" "SO_DEBUG" "SO_REUSEADDR"
572
;        "PRINTER_FW_THIN" "PRINTER_FW_ULTRALIGHT" "PRINTER_FW_LIGHT"
573
;        "SO_KEEPALIVE" "SO_DONTROUTE" "SO_LINGER" "SO_BROADCAST"
573
;        "PRINTER_FW_NORMAL" "PRINTER_FW_MEDIUM" "PRINTER_FW_BOLD"
574
;        "SO_OOBINLINE" "SO_SNDBUF" "SO_RCVBUF" "SO_SNDLOWAT"
574
;        "PRINTER_FW_ULTRABOLD" "PRINTER_FW_HEAVY" "PRINTER_ENUM_LOCAL"
575
;        "SO_RCVLOWAT" "SO_SNDTIMEO" "SO_RCVTIMEO" "SO_TYPE" "SO_ERROR"
575
;        "PRINTER_ENUM_NAME" "PRINTER_ENUM_SHARED"
576
;        "SOL_SOCKET" "PHP_NORMAL_READ" "PHP_BINARY_READ"
576
;        "PRINTER_ENUM_DEFAULT" "PRINTER_ENUM_CONNECTIONS"
577
;        "PHP_SYSTEM_READ" "SOL_TCP" "SOL_UDP" "MOD_COLOR" "MOD_MATRIX"
577
;        "PRINTER_ENUM_NETWORK" "PRINTER_ENUM_REMOTE" "PSPELL_FAST"
578
;        "TYPE_PUSHBUTTON" "TYPE_MENUBUTTON" "BSHitTest" "BSDown"
578
;        "PSPELL_NORMAL" "PSPELL_BAD_SPELLERS" "PSPELL_RUN_TOGETHER"
579
;        "BSOver" "BSUp" "OverDowntoIdle" "IdletoOverDown"
579
;        "SID" "SID" "AF_UNIX" "AF_INET" "SOCK_STREAM" "SOCK_DGRAM"
580
;        "OutDowntoIdle" "OutDowntoOverDown" "OverDowntoOutDown"
580
;        "SOCK_RAW" "SOCK_SEQPACKET" "SOCK_RDM" "MSG_OOB" "MSG_WAITALL"
581
;        "OverUptoOverDown" "OverUptoIdle" "IdletoOverUp" "ButtonEnter"
581
;        "MSG_PEEK" "MSG_DONTROUTE" "SO_DEBUG" "SO_REUSEADDR"
582
;        "ButtonExit" "MenuEnter" "MenuExit" "XML_ERROR_NONE"
582
;        "SO_KEEPALIVE" "SO_DONTROUTE" "SO_LINGER" "SO_BROADCAST"
583
;        "XML_ERROR_NO_MEMORY" "XML_ERROR_SYNTAX"
583
;        "SO_OOBINLINE" "SO_SNDBUF" "SO_RCVBUF" "SO_SNDLOWAT"
584
;        "XML_ERROR_NO_ELEMENTS" "XML_ERROR_INVALID_TOKEN"
584
;        "SO_RCVLOWAT" "SO_SNDTIMEO" "SO_RCVTIMEO" "SO_TYPE" "SO_ERROR"
585
;        "XML_ERROR_UNCLOSED_TOKEN" "XML_ERROR_PARTIAL_CHAR"
585
;        "SOL_SOCKET" "PHP_NORMAL_READ" "PHP_BINARY_READ"
586
;        "XML_ERROR_TAG_MISMATCH" "XML_ERROR_DUPLICATE_ATTRIBUTE"
586
;        "PHP_SYSTEM_READ" "SOL_TCP" "SOL_UDP" "MOD_COLOR" "MOD_MATRIX"
587
;        "XML_ERROR_JUNK_AFTER_DOC_ELEMENT" "XML_ERROR_PARAM_ENTITY_REF"
587
;        "TYPE_PUSHBUTTON" "TYPE_MENUBUTTON" "BSHitTest" "BSDown"
588
;        "XML_ERROR_UNDEFINED_ENTITY" "XML_ERROR_RECURSIVE_ENTITY_REF"
588
;        "BSOver" "BSUp" "OverDowntoIdle" "IdletoOverDown"
589
;        "XML_ERROR_ASYNC_ENTITY" "XML_ERROR_BAD_CHAR_REF"
589
;        "OutDowntoIdle" "OutDowntoOverDown" "OverDowntoOutDown"
590
;        "XML_ERROR_BINARY_ENTITY_REF"
590
;        "OverUptoOverDown" "OverUptoIdle" "IdletoOverUp" "ButtonEnter"
591
;        "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF"
591
;        "ButtonExit" "MenuEnter" "MenuExit" "XML_ERROR_NONE"
592
;        "XML_ERROR_MISPLACED_XML_PI" "XML_ERROR_UNKNOWN_ENCODING"
592
;        "XML_ERROR_NO_MEMORY" "XML_ERROR_SYNTAX"
593
;        "XML_ERROR_INCORRECT_ENCODING"
593
;        "XML_ERROR_NO_ELEMENTS" "XML_ERROR_INVALID_TOKEN"
594
;        "XML_ERROR_UNCLOSED_CDATA_SECTION"
594
;        "XML_ERROR_UNCLOSED_TOKEN" "XML_ERROR_PARTIAL_CHAR"
595
;        "XML_ERROR_EXTERNAL_ENTITY_HANDLING" "XML_OPTION_CASE_FOLDING"
595
;        "XML_ERROR_TAG_MISMATCH" "XML_ERROR_DUPLICATE_ATTRIBUTE"
596
;        "XML_OPTION_TARGET_ENCODING" "XML_OPTION_SKIP_TAGSTART"
596
;        "XML_ERROR_JUNK_AFTER_DOC_ELEMENT" "XML_ERROR_PARAM_ENTITY_REF"
597
;        "XML_OPTION_SKIP_WHITE" "YPERR_BADARGS" "YPERR_BADDB"
597
;        "XML_ERROR_UNDEFINED_ENTITY" "XML_ERROR_RECURSIVE_ENTITY_REF"
598
;        "YPERR_BUSY" "YPERR_DOMAIN" "YPERR_KEY" "YPERR_MAP"
598
;        "XML_ERROR_ASYNC_ENTITY" "XML_ERROR_BAD_CHAR_REF"
599
;        "YPERR_NODOM" "YPERR_NOMORE" "YPERR_PMAP" "YPERR_RESRC"
599
;        "XML_ERROR_BINARY_ENTITY_REF"
600
;        "YPERR_RPC" "YPERR_YPBIND" "YPERR_YPERR" "YPERR_YPSERV"
600
;        "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF"
601
;        "YPERR_VERS" "FORCE_GZIP" "FORCE_DEFLATE"
601
;        "XML_ERROR_MISPLACED_XML_PI" "XML_ERROR_UNKNOWN_ENCODING"
602
602
;        "XML_ERROR_INCORRECT_ENCODING"
603
       ;; PEAR constants
603
;        "XML_ERROR_UNCLOSED_CDATA_SECTION"
604
;        "PEAR_ERROR_RETURN" "PEAR_ERROR_PRINT" "PEAR_ERROR_TRIGGER"
604
;        "XML_ERROR_EXTERNAL_ENTITY_HANDLING" "XML_OPTION_CASE_FOLDING"
605
;        "PEAR_ERROR_DIE" "PEAR_ERROR_CALLBACK" "OS_WINDOWS" "OS_UNIX"
605
;        "XML_OPTION_TARGET_ENCODING" "XML_OPTION_SKIP_TAGSTART"
606
;        "PEAR_OS" "DB_OK" "DB_ERROR" "DB_ERROR_SYNTAX"
606
;        "XML_OPTION_SKIP_WHITE" "YPERR_BADARGS" "YPERR_BADDB"
607
;        "DB_ERROR_CONSTRAINT" "DB_ERROR_NOT_FOUND"
607
;        "YPERR_BUSY" "YPERR_DOMAIN" "YPERR_KEY" "YPERR_MAP"
608
;        "DB_ERROR_ALREADY_EXISTS" "DB_ERROR_UNSUPPORTED"
608
;        "YPERR_NODOM" "YPERR_NOMORE" "YPERR_PMAP" "YPERR_RESRC"
609
;        "DB_ERROR_MISMATCH" "DB_ERROR_INVALID" "DB_ERROR_NOT_CAPABLE"
609
;        "YPERR_RPC" "YPERR_YPBIND" "YPERR_YPERR" "YPERR_YPSERV"
610
;        "DB_ERROR_TRUNCATED" "DB_ERROR_INVALID_NUMBER"
610
;        "YPERR_VERS" "FORCE_GZIP" "FORCE_DEFLATE"
611
;        "DB_ERROR_INVALID_DATE" "DB_ERROR_DIVZERO"
611
612
;        "DB_ERROR_NODBSELECTED" "DB_ERROR_CANNOT_CREATE"
612
       ;; PEAR constants
613
;        "DB_ERROR_CANNOT_DELETE" "DB_ERROR_CANNOT_DROP"
613
;        "PEAR_ERROR_RETURN" "PEAR_ERROR_PRINT" "PEAR_ERROR_TRIGGER"
614
;        "DB_ERROR_NOSUCHTABLE" "DB_ERROR_NOSUCHFIELD"
614
;        "PEAR_ERROR_DIE" "PEAR_ERROR_CALLBACK" "OS_WINDOWS" "OS_UNIX"
615
;        "DB_ERROR_NEED_MORE_DATA" "DB_ERROR_NOT_LOCKED"
615
;        "PEAR_OS" "DB_OK" "DB_ERROR" "DB_ERROR_SYNTAX"
616
;        "DB_ERROR_VALUE_COUNT_ON_ROW" "DB_ERROR_INVALID_DSN"
616
;        "DB_ERROR_CONSTRAINT" "DB_ERROR_NOT_FOUND"
617
;        "DB_ERROR_CONNECT_FAILED" "DB_WARNING" "DB_WARNING_READ_ONLY"
617
;        "DB_ERROR_ALREADY_EXISTS" "DB_ERROR_UNSUPPORTED"
618
;        "DB_PARAM_SCALAR" "DB_PARAM_OPAQUE" "DB_BINMODE_PASSTHRU"
618
;        "DB_ERROR_MISMATCH" "DB_ERROR_INVALID" "DB_ERROR_NOT_CAPABLE"
619
;        "DB_BINMODE_RETURN" "DB_BINMODE_CONVERT" "DB_FETCHMODE_DEFAULT"
619
;        "DB_ERROR_TRUNCATED" "DB_ERROR_INVALID_NUMBER"
620
;        "DB_FETCHMODE_ORDERED" "DB_FETCHMODE_ASSOC"
620
;        "DB_ERROR_INVALID_DATE" "DB_ERROR_DIVZERO"
621
;        "DB_FETCHMODE_FLIPPED" "DB_GETMODE_ORDERED" "DB_GETMODE_ASSOC"
621
;        "DB_ERROR_NODBSELECTED" "DB_ERROR_CANNOT_CREATE"
622
;        "DB_GETMODE_FLIPPED" "DB_TABLEINFO_ORDER"
622
;        "DB_ERROR_CANNOT_DELETE" "DB_ERROR_CANNOT_DROP"
623
;        "DB_TABLEINFO_ORDERTABLE" "DB_TABLEINFO_FULL"
623
;        "DB_ERROR_NOSUCHTABLE" "DB_ERROR_NOSUCHFIELD"
624
       
624
;        "DB_ERROR_NEED_MORE_DATA" "DB_ERROR_NOT_LOCKED"
625
       ) t))
625
;        "DB_ERROR_VALUE_COUNT_ON_ROW" "DB_ERROR_INVALID_DSN"
626
  "PHP constants.")
626
;        "DB_ERROR_CONNECT_FAILED" "DB_WARNING" "DB_WARNING_READ_ONLY"
627
627
;        "DB_PARAM_SCALAR" "DB_PARAM_OPAQUE" "DB_BINMODE_PASSTHRU"
628
(defconst php-keywords
628
;        "DB_BINMODE_RETURN" "DB_BINMODE_CONVERT" "DB_FETCHMODE_DEFAULT"
629
  (eval-when-compile
629
;        "DB_FETCHMODE_ORDERED" "DB_FETCHMODE_ASSOC"
630
    (regexp-opt
630
;        "DB_FETCHMODE_FLIPPED" "DB_GETMODE_ORDERED" "DB_GETMODE_ASSOC"
631
     ;; "class", "new" and "extends" get special treatment
631
;        "DB_GETMODE_FLIPPED" "DB_TABLEINFO_ORDER"
632
     ;; "case" and  "default" get special treatment elsewhere
632
;        "DB_TABLEINFO_ORDERTABLE" "DB_TABLEINFO_FULL"
633
     '("and" "as" "break" "continue" "declare" "do" "echo" "else" "elseif"
633
       
634
       "endfor" "endforeach" "endif" "endswitch" "endwhile" "exit"
634
       )))
635
       "extends" "for" "foreach" "global" "if" "include" "include_once"
635
  "PHP constants.")
636
       "next" "or" "require" "require_once" "return" "static" "switch"
636
637
       "then" "var" "while" "xor" "private" "throw" "catch" "try") t))
637
(defconst php-keywords
638
  "PHP keywords.")
638
  (eval-when-compile
639
639
    (regexp-opt
640
(defconst php-identifier
640
     ;; "class", "new" and "extends" get special treatment
641
  (eval-when-compile
641
     ;; "case" and  "default" get special treatment elsewhere
642
    '"[a-zA-Z\_\x7f-\xff][a-zA-Z0-9\_\x7f-\xff]*")
642
     '("and" "as" "break" "continue" "declare" "do" "echo" "else" "elseif"
643
  "Characters in a PHP identifier.")
643
       "endfor" "endforeach" "endif" "endswitch" "endwhile" "exit"
644
644
       "extends" "for" "foreach" "global" "if" "include" "include_once"
645
(defconst php-types
645
       "next" "or" "require" "require_once" "return" "static" "switch"
646
  (eval-when-compile
646
       "then" "var" "while" "xor" "private" "throw" "catch" "try" 
647
    (regexp-opt '("array" "bool" "boolean" "char" "const" "double" "float"
647
       "instanceof" "catch all" "finally")))
648
          "int" "integer" "long" "mixed" "object" "real" 
648
  "PHP keywords.")
649
          "string") t))
649
650
  "PHP types.")
650
(defconst php-identifier
651
651
  (eval-when-compile
652
(defconst php-superglobals
652
    '"[a-zA-Z\_\x7f-\xff][a-zA-Z0-9\_\x7f-\xff]*")
653
  (eval-when-compile
653
  "Characters in a PHP identifier.")
654
    (regexp-opt '("_GET" "_POST" "_COOKIE" "_SESSION" "_ENV"
654
655
          "_SERVER" "_FILES") t))
655
(defconst php-types
656
  "PHP superglobal variables.")
656
  (eval-when-compile
657
657
    (regexp-opt '("array" "bool" "boolean" "char" "const" "double" "float"
658
;; Set up font locking
658
          "int" "integer" "long" "mixed" "object" "real" 
659
(defconst php-font-lock-keywords-1
659
          "string")))
660
  (list
660
  "PHP types.")
661
   ;; Fontify constants
661
662
   (cons
662
(defconst php-superglobals
663
    (concat "\\<\\(" php-constants "\\)\\>")
663
  (eval-when-compile
664
    'font-lock-constant-face)
664
    (regexp-opt '("_GET" "_POST" "_COOKIE" "_SESSION" "_ENV" "GLOBALS"
665
   
665
          "_SERVER" "_FILES" "_REQUEST")))
666
   ;; Fontify keywords
666
  "PHP superglobal variables.")
667
   (cons
667
668
    (concat "\\<\\(" php-keywords "\\)\\>")
668
;; Set up font locking
669
    'font-lock-keyword-face)
669
(defconst php-font-lock-keywords-1
670
   
670
  (list
671
   ;; Fontify keywords and targets, and case default tags.
671
   ;; Fontify constants
672
   (list "\\<\\(break\\|case\\|continue\\)\\>[ \t]*\\(-?\\(?:\\sw\\|\\s_\\)+\\)?"
672
   (cons
673
     '(1 font-lock-keyword-face) '(2 font-lock-constant-face t t))
673
    (concat "\\<\\(" php-constants "\\)\\>")
674
   ;; This must come after the one for keywords and targets.
674
    'font-lock-constant-face)
675
   '(":" ("^[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:[ \t]*$"
675
   
676
      (beginning-of-line) (end-of-line)
676
   ;; Fontify keywords
677
      (1 font-lock-constant-face)))
677
   (cons
678
   
678
    (concat "\\<\\(" php-keywords "\\)\\>")
679
   ;; treat 'print' as keyword only when not used like a function name
679
    'font-lock-keyword-face)
680
   '("\\<print\\s-*(" . default)
680
   
681
   '("\\<print\\>" . font-lock-keyword-face)
681
   ;; Fontify keywords and targets, and case default tags.
682
   
682
   (list "\\<\\(break\\|case\\|continue\\)\\>[ \t]*\\(-?\\(?:\\sw\\|\\s_\\)+\\)?"
683
   ;; Fontify PHP tag
683
     '(1 font-lock-keyword-face) '(2 font-lock-constant-face t t))
684
   '("<\\?\\(php\\)?" . font-lock-constant-face)
684
   ;; This must come after the one for keywords and targets.
685
   '("\\?>" . font-lock-constant-face)
685
   '(":" ("^[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)[ \t]*:[ \t]*$"
686
   
686
      (beginning-of-line) (end-of-line)
687
   ;; Fontify ASP-style tag
687
      (1 font-lock-constant-face)))
688
   '("<\\%\\(=\\)?" . font-lock-constant-face)
688
   
689
   '("\\%>" . font-lock-constant-face)
689
   ;; treat 'print' as keyword only when not used like a function name
690
690
   '("\\<print\\s-*(" . default)
691
   )
691
   '("\\<print\\>" . font-lock-keyword-face)
692
  "Subdued level highlighting for PHP mode.")
692
   
693
693
   ;; Fontify PHP tag
694
(defconst php-font-lock-keywords-2
694
   '("<\\?\\(php\\)?" . font-lock-constant-face)
695
  (append
695
   '("\\?>" . font-lock-constant-face)
696
   php-font-lock-keywords-1
696
   
697
   (list
697
   ;; Fontify ASP-style tag
698
    
698
   '("<\\%\\(=\\)?" . font-lock-constant-face)
699
    ;; Fontify class declaration
699
   '("\\%>" . font-lock-constant-face)
700
    '("^[ \t]*\\(class\\)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
700
701
      (1 font-lock-keyword-face) (2 font-lock-type-face nil t))
701
   )
702
    
702
  "Subdued level highlighting for PHP mode.")
703
    ;; Fontify function declaration
703
704
    '("^[ \t]*\\(function\\)\\s-+&?\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*("
704
(defconst php-font-lock-keywords-2
705
      (1 font-lock-keyword-face)
705
  (append
706
      (2 font-lock-function-name-face nil t))
706
   php-font-lock-keywords-1
707
    
707
   (list
708
    ;; handle several words specially, to include following word,
708
    
709
    ;; thereby excluding it from unknown-symbol checks later
709
    ;; class declaration
710
    '("\\<\\(new\\|extends\\)\\s-+\\$?\\(\\(?:\\sw\\|\\s_\\)+\\)"
710
    '("\\<\\(class\\|interface\\)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
711
      (1 font-lock-keyword-face) (2 font-lock-type-face))
711
      (1 font-lock-keyword-face) (2 font-lock-type-face nil t))
712
    ))
712
    ;; handle several words specially, to include following word,
713
  "Medium level highlighting for PHP mode.")
713
    ;; thereby excluding it from unknown-symbol checks later
714
714
    ;; FIX to handle implementing multiple
715
(defconst php-font-lock-keywords-3
715
    ;; currently breaks on "class Foo implements Bar, Baz"
716
  (append
716
    '("\\<\\(new\\|extends\\|implements\\)\\s-+\\$?\\(\\(?:\\sw\\|\\s_\\)+\\)"
717
   php-font-lock-keywords-2
717
      (1 font-lock-keyword-face) (2 font-lock-type-face))
718
   (list
718
719
    
719
    ;; function declaration
720
    ;; <word> or </word> for HTML
720
    '("\\<\\(function\\)\\s-+&?\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*("
721
    '("</?\\sw+[^>]*>" . font-lock-constant-face)
721
      (1 font-lock-keyword-face)
722
722
      (2 font-lock-function-name-face nil t))
723
    ;; HTML entities
723
    
724
    '("&\\w+;" . font-lock-variable-name-face)
724
    ;; class hierarchy
725
725
    '("\\(self\\|parent\\)\\W" (1 font-lock-constant-face nil nil))
726
    ;; warn about '$' immediately after ->
726
727
    '("\\$\\(?:\\sw\\|\\s_\\)+->\\s-*\\(\\$\\)\\(\\(?:\\sw\\|\\s_\\)+\\)"
727
    ;; method and variable features
728
      (1 font-lock-warning-face) (2 default))
728
    '("\\<\\(private\\|protected\\|public\\)\\s-+\\$?\\(?:\\sw\\|\\s_\\)+"
729
    
729
      (1 font-lock-keyword-face))
730
    ;; warn about $word.word -- it could be a valid concatenation,
730
731
    ;; but without any spaces we'll assume $word->word was meant.
731
    ;; method features
732
    '("\\$\\(?:\\sw\\|\\s_\\)+\\(\\.\\)\\sw"
732
    '("^[ \t]*\\(abstract\\|static\\|final\\)\\s-+\\$?\\(?:\\sw\\|\\s_\\)+"
733
      1 font-lock-warning-face)
733
      (1 font-lock-keyword-face))
734
    
734
735
    ;; Warn about ==> instead of =>
735
    ;; variable features
736
    '("==+>" . font-lock-warning-face)
736
    '("^[ \t]*\\(static\\|const\\)\\s-+\\$?\\(?:\\sw\\|\\s_\\)+"
737
    
737
      (1 font-lock-keyword-face))
738
    ;; exclude casts from bare-word treatment
738
    ))
739
    `(,(concat "(\\(" php-types "\\))")
739
  "Medium level highlighting for PHP mode.")
740
      1 font-lock-type-face)
740
741
    
741
(defconst php-font-lock-keywords-3
742
    ;; Fontify variables and function calls
742
  (append
743
    '("\\$\\(this\\)\\W" (1 font-lock-constant-face nil nil)) ; "this" as constant
743
   php-font-lock-keywords-2
744
    `(,(concat "\\$" php-superglobals "\\W")
744
   (list
745
      (1 font-lock-constant-face nil nil)) ; $_GET & co
745
    
746
    '("\\$\\(\\(?:\\sw\\|\\s_\\)+\\)" (1 font-lock-variable-name-face)) ; $variable
746
    ;; <word> or </word> for HTML
747
    '("->\\(\\(?:\\sw\\|\\s_\\)+\\)" (1 font-lock-variable-name-face t t)) ; ->variable
747
    '("</?\\sw+[^>]*>" . font-lock-constant-face)
748
    '("->\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" . (1 default t t)) ; ->function_call
748
749
    '("\\(?:\\sw\\|\\s_\\)+::\\(?:\\sw\\|\\s_\\)+\\s-*(" . default) ; class::method call
749
    ;; HTML entities
750
    '("\\<\\(?:\\sw\\|\\s_\\)+\\s-*[[(]" . default) ; word( or word[
750
    '("&\\w+;" . font-lock-variable-name-face)
751
    '("\\<[0-9]+" . default)        ; number (also matches word)
751
752
752
    ;; warn about '$' immediately after ->
753
    ;; Warn on any words not already fontified
753
    '("\\$\\(?:\\sw\\|\\s_\\)+->\\s-*\\(\\$\\)\\(\\(?:\\sw\\|\\s_\\)+\\)"
754
    '("\\<\\(?:\\sw\\|\\s_\\)+\\>" . font-lock-warning-face)
754
      (1 font-lock-warning-face) (2 default))
755
    ))
755
    
756
  "Gauchy level highlighting for PHP mode.")
756
    ;; warn about $word.word -- it could be a valid concatenation,
757
757
    ;; but without any spaces we'll assume $word->word was meant.
758
(defconst php-font-lock-syntactic-keywords
758
    '("\\$\\(?:\\sw\\|\\s_\\)+\\(\\.\\)\\sw"
759
  (if xemacsp nil
759
      1 font-lock-warning-face)
760
    ;; Mark shell-style comments.  font-lock handles this in a
760
    
761
    ;; separate pass from normal syntactic scanning (somehow), so we
761
    ;; Warn about ==> instead of =>
762
    ;; get a chance to mark these in addition to C and C++ style
762
    '("==+>" . font-lock-warning-face)
763
    ;; comments.  This only works in GNU Emacs, not Xemacs 21 which
763
    
764
    ;; seems to ignore this same code if we try to use it.
764
    ;; exclude casts from bare-word treatment (may contain spaces)
765
    (list
765
    `(,(concat "(\\s-*\\(" php-types "\\)\\s-*)")
766
     ;; Mark _all_ # chars as being comment-start.  That will be
766
      1 font-lock-type-face)
767
     ;; ignored when inside a quoted string.
767
    
768
     '("\\(\#\\)"
768
    ;; PHP5: function declarations may contain classes as parameters type
769
       (1 (11 . nil)))
769
    `(,(concat "[(,]\\s-*\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-+\\$\\(?:\\sw\\|\\s_\\)+\\>")
770
     ;; Mark all newlines ending a line with # as being comment-end.
770
      1 font-lock-type-face)
771
     ;; This causes a problem, premature end-of-comment, when '#'
771
    
772
     ;; appears inside a multiline C-style comment.  Oh well.
772
    ;; Fontify variables and function calls
773
     '("#.*\\([\n]\\)"
773
    '("\\$\\(this\\|that\\)\\W" (1 font-lock-constant-face nil nil))
774
       (1 (12 . nil)))
774
    `(,(concat "\\$\\(" php-superglobals "\\)\\W")
775
     )))
775
      (1 font-lock-constant-face nil nil)) ; $_GET & co
776
776
    '("\\$\\(\\(?:\\sw\\|\\s_\\)+\\)" (1 font-lock-variable-name-face)) ; $variable
777
;; Define the imenu-generic-expression for PHP mode.
777
    '("->\\(\\(?:\\sw\\|\\s_\\)+\\)" (1 font-lock-variable-name-face t t)) ; ->variable
778
;; To use, execute M-x imenu, then click on Functions or Classes,
778
    '("->\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" . (1 default t t)) ; ->function_call
779
;; then select given function/class name to go to its definition.
779
    '("\\(?:\\sw\\|\\s_\\)+::\\(?:\\sw\\|\\s_\\)+\\s-*(" . default) ; class::method call
780
;; [Contributed by Gerrit Riessen]
780
    '("\\<\\(?:\\sw\\|\\s_\\)+\\s-*[[(]" . default) ; word( or word[
781
(defvar php-imenu-generic-expression
781
    '("\\<[0-9]+" . default)        ; number (also matches word)
782
 '(
782
783
   ("Functions"
783
    ;; Warn on any words not already fontified
784
    "\\(^\\|\\s-\\)function\\s-+\\(\\sw+\\)\\s-*(" 2)
784
    '("\\<\\(?:\\sw\\|\\s_\\)+\\>" . font-lock-warning-face)
785
   ("Classes"
785
    ))
786
    "\\(^\\|\\s-\\)class\\s-+\\(\\sw+\\)\\s-*" 2)
786
  "Gauchy level highlighting for PHP mode.")
787
   )
787
788
 "Imenu generic expression for PHP Mode. See `imenu-generic-expression'."
788
(defconst php-font-lock-syntactic-keywords
789
 )
789
  (if xemacsp nil
790
790
    ;; Mark shell-style comments.  font-lock handles this in a
791
;; Add "foreach" to conditional introducing keywords
791
    ;; separate pass from normal syntactic scanning (somehow), so we
792
(defconst php-conditional-key nil)
792
    ;; get a chance to mark these in addition to C and C++ style
793
(let ((all-kws "for\\|if\\|do\\|else\\|while\\|switch")
793
    ;; comments.  This only works in GNU Emacs, not XEmacs 21 which
794
      (front   "\\<\\(")
794
    ;; seems to ignore this same code if we try to use it.
795
      (back    "\\)\\>[^_]"))
795
    (list
796
  (setq php-conditional-key (concat front all-kws "\\|foreach" back)))
796
     ;; Mark _all_ # chars as being comment-start.  That will be
797
797
     ;; ignored when inside a quoted string.
798
;; Create "default" symbol for GNU Emacs so that both Xemacs and GNU
798
     '("\\(\#\\)"
799
;; emacs can refer to the default face by a variable named "default".
799
       (1 (11 . nil)))
800
(unless (boundp 'default)
800
     ;; Mark all newlines ending a line with # as being comment-end.
801
  (defvar default 'default))
801
     ;; This causes a problem, premature end-of-comment, when '#'
802
802
     ;; appears inside a multiline C-style comment.  Oh well.
803
;; Create faces for XEmacs
803
     '("#.*\\([\n]\\)"
804
(unless (boundp 'font-lock-keyword-face)
804
       (1 (12 . nil)))
805
  (copy-face 'bold 'font-lock-keyword-face))
805
     )))
806
(unless (boundp 'font-lock-constant-face)
806
807
  (copy-face 'font-lock-keyword-face 'font-lock-constant-face))
807
;; Define the imenu-generic-expression for PHP mode.
808
808
;; To use, execute M-x imenu, then click on Functions or Classes,
809
(provide 'php-mode)
809
;; then select given function/class name to go to its definition.
810
810
;; [Contributed by Gerrit Riessen]
811
;;; php-mode.el ends here
811
(defvar php-imenu-generic-expression
812
 '(
813
   ("Functions"
814
    "^\\s-*function\\s-+\\([a-zA-Z0-9_]+\\)\\s-*(" 1)
815
   ("Classes"
816
    "^\\s-*class\\s-+\\([a-zA-Z0-9_]+\\)\\s-*" 1)
817
   )
818
 "Imenu generic expression for PHP Mode. See `imenu-generic-expression'."
819
 )
820
821
;; Add "foreach" to conditional introducing keywords
822
(defconst php-conditional-key nil)
823
(let ((all-kws "for\\|if\\|do\\|else\\|while\\|switch\\|foreach\\|elseif\\|try\\|finally\\|try\\|catch all")
824
      (front   "\\<\\(")
825
      (back    "\\)\\>[^_]"))
826
  (setq php-conditional-key (concat front all-kws back)))
827
828
(defconst php-class-kwds "class\\|interface")
829
830
(defconst php-class-key
831
  (concat
832
   "\\(" php-class-kwds "\\)\\s +"
833
   c-symbol-key                   ;name of the class
834
   "\\(\\s *extends\\s *" c-symbol-key "\\)?" ;maybe followed by superclass
835
   "\\(\\s *implements *[^{]+{\\)?"       ;maybe the adopted protocols list
836
   ))
837
838
;; Create "default" symbol for GNU Emacs so that both XEmacs and GNU
839
;; emacs can refer to the default face by a variable named "default".
840
(unless (boundp 'default)
841
  (defvar default 'default))
842
843
;; Create faces for XEmacs
844
(unless (boundp 'font-lock-keyword-face)
845
  (copy-face 'bold 'font-lock-keyword-face))
846
(unless (boundp 'font-lock-constant-face)
847
  (copy-face 'font-lock-keyword-face 'font-lock-constant-face))
848
849
(provide 'php-mode)
850
851
;;; php-mode.el ends here