86361
|
1 ;;; xsd-regexp.el --- translate W3C XML Schema regexps to Emacs regexps
|
|
2
|
|
3 ;; Copyright (C) 2003 Free Software Foundation, Inc.
|
|
4
|
|
5 ;; Author: James Clark
|
|
6 ;; Keywords: XML, regexp
|
|
7
|
|
8 ;; This program is free software; you can redistribute it and/or
|
|
9 ;; modify it under the terms of the GNU General Public License as
|
|
10 ;; published by the Free Software Foundation; either version 2 of
|
|
11 ;; the License, or (at your option) any later version.
|
|
12
|
|
13 ;; This program is distributed in the hope that it will be
|
|
14 ;; useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
15 ;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
16 ;; PURPOSE. See the GNU General Public License for more details.
|
|
17
|
|
18 ;; You should have received a copy of the GNU General Public
|
|
19 ;; License along with this program; if not, write to the Free
|
|
20 ;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
21 ;; MA 02111-1307 USA
|
|
22
|
|
23 ;;; Commentary:
|
|
24
|
|
25 ;; This handles the regular expressions in the syntax defined by:
|
|
26 ;; W3C XML Schema Part 2: Datatypes
|
|
27 ;; <http://www.w3.org/TR/xmlschema-2/#regexs>
|
|
28 ;;
|
|
29 ;; The main entry point is `xsdre-translate'.
|
|
30 ;;
|
|
31 ;; The features of XSD regexps that make this non-trivial are:
|
|
32 ;;
|
|
33 ;; - \p{PROP} escape for matching characters that have various
|
|
34 ;; Unicode-defined properties
|
|
35 ;; - character class subtraction:, e.g. [\p{L}-[abc]] matches
|
|
36 ;; any character in the L category other than a, b and c.
|
|
37 ;;
|
|
38 ;; We compute the set of Unicode characters denoted by each XSD
|
|
39 ;; char-class as a list of ranges. The regexp generated for a
|
|
40 ;; single escape can be large (several thousand characters).
|
|
41 ;;
|
|
42 ;; XSD has non-traditional rules about when characters must be
|
|
43 ;; and can be quoted with \. These are quite different from
|
|
44 ;; the Emacs rules.
|
|
45 ;;
|
|
46 ;; The semantics of XSD regexps are defined in terms of Unicode.
|
|
47 ;; Non-Unicode characters are not allowed in regular expressions and
|
|
48 ;; will not match against the generated regular expressions. A
|
|
49 ;; Unicode character means a character in one of the Mule charsets
|
|
50 ;; ascii, latin-iso8859-1, mule-unicode-0100-24ff,
|
|
51 ;; mule-unicode-2500-33ff, mule-unicode-e000-ffff, eight-bit-control
|
|
52 ;; or a character translateable to such a character (i.e a character
|
|
53 ;; for which `encode-char' will return non-nil).
|
|
54 ;;
|
|
55 ;; Using unify-8859-on-decoding-mode is probably a good idea here
|
|
56 ;; (and generally with XML and other Unicode-oriented formats).
|
|
57 ;;
|
|
58 ;; Unfortunately, this means that this package is currently useless
|
|
59 ;; for CJK characters, since there's no mule-unicode charset for the
|
|
60 ;; CJK ranges of Unicode. We should devise a workaround for this
|
|
61 ;; until the fabled Unicode version of Emacs makes an appearance.
|
|
62
|
|
63 ;;; Code:
|
|
64
|
|
65 (defun xsdre-translate (regexp)
|
|
66 "Translate a W3C XML Schema Datatypes regexp to an Emacs regexp.
|
|
67 Returns a string. REGEXP is a string. If REGEXP is not a valid XSD
|
|
68 regexp, signal an `xsdre-invalid-regexp' condition."
|
|
69 (xsdre-from-symbolic
|
|
70 (xsdre-to-symbolic regexp)))
|
|
71
|
|
72 (defvar xsdre-test-history nil)
|
|
73
|
|
74 (defun xsdre-test-regexp ()
|
|
75 (interactive)
|
|
76 (while
|
|
77 (let* ((str (read-from-minibuffer "Regexp: "
|
|
78 nil
|
|
79 nil
|
|
80 nil
|
|
81 'xsdre-test-history))
|
|
82 (symbolic
|
|
83 (xsdre-to-symbolic str)))
|
|
84 (with-output-to-temp-buffer "*XSD Regexp Test*"
|
|
85 (princ "XSD regexp: ")
|
|
86 (princ str)
|
|
87 (princ "\n")
|
|
88 (princ "Symbolic: ")
|
|
89 (princ "\n")
|
|
90 (pp symbolic)
|
|
91 (princ "\n")
|
|
92 (princ "Emacs regexp: ")
|
|
93 (princ (xsdre-from-symbolic symbolic)))
|
|
94 t)))
|
|
95
|
|
96 ;;; Range lists
|
|
97
|
|
98 (defsubst xsdre-make-range (first last)
|
|
99 "Return a representation of a range of integers.
|
|
100 If the range contains a single integer, it is represented by that integer.
|
|
101 Otherwise, it is represented by a (FIRST . LAST) pair."
|
|
102 (if (= first last)
|
|
103 first
|
|
104 (cons first last)))
|
|
105
|
|
106 (defsubst xsdre-range-first (r)
|
|
107 "Return the first integer in a range."
|
|
108 (if (consp r) (car r) r))
|
|
109
|
|
110 (defsubst xsdre-range-last (r)
|
|
111 "Return the last integer in a range."
|
|
112 (if (consp r) (cdr r) r))
|
|
113
|
|
114 (defun xsdre-make-range-list (list)
|
|
115 "Make a range-list from a list of ranges.
|
|
116 A range-list represents a set of integers by a list of ranges in a
|
|
117 canonical form, in which ranges are in increasing order, and adjacent
|
|
118 ranges are merged wherever possible."
|
|
119 (when list
|
|
120 (setq list
|
|
121 (sort list 'xsdre-range-less-than))
|
|
122 (let* ((next (cdr list))
|
|
123 (tail list)
|
|
124 (head (car list))
|
|
125 (first (xsdre-range-first head))
|
|
126 (last (xsdre-range-last head)))
|
|
127 (while next
|
|
128 (setq head (car next))
|
|
129 (when (> (xsdre-range-last head) last)
|
|
130 (if (<= (xsdre-range-first head) (1+ last))
|
|
131 (setq last (xsdre-range-last head))
|
|
132 (setcar tail (xsdre-make-range first last))
|
|
133 (setcdr tail next)
|
|
134 (setq tail next)
|
|
135 (setq first (xsdre-range-first head))
|
|
136 (setq last (xsdre-range-last head))))
|
|
137 (setq next (cdr next)))
|
|
138 (setcar tail (xsdre-make-range first last))
|
|
139 (setcdr tail nil)
|
|
140 list)))
|
|
141
|
|
142
|
|
143 (defun xsdre-range-list-union (range-lists)
|
|
144 "Return a range-list the union of a list of range-lists."
|
|
145 (xsdre-make-range-list (apply 'append range-lists)))
|
|
146
|
|
147 (defun xsdre-range-list-difference (orig subtract)
|
|
148 "Return a range-list for the difference of two range-lists."
|
|
149 (when orig
|
|
150 (let (new head next first last)
|
|
151 (while orig
|
|
152 (setq head (car orig))
|
|
153 (setq first (xsdre-range-first head))
|
|
154 (setq last (xsdre-range-last head))
|
|
155 (while (and subtract
|
|
156 (< (xsdre-range-last (car subtract)) first))
|
|
157 (setq subtract (cdr subtract)))
|
|
158 (while (and subtract
|
|
159 (<= first last)
|
|
160 (<= (xsdre-range-first (car subtract)) last))
|
|
161 (when (< first (xsdre-range-first (car subtract)))
|
|
162 (setq new
|
|
163 (cons (xsdre-make-range
|
|
164 first
|
|
165 (1- (xsdre-range-first (car subtract))))
|
|
166 new)))
|
|
167 (if (< (xsdre-range-last (car subtract)) last)
|
|
168 (progn
|
|
169 (setq first (1+ (xsdre-range-last (car subtract))))
|
|
170 (setq subtract (cdr subtract)))
|
|
171 (setq first (1+ last))))
|
|
172 (when (<= first last)
|
|
173 (setq new (cons (xsdre-make-range first last) new)))
|
|
174 (setq orig (cdr orig)))
|
|
175 (nreverse new))))
|
|
176
|
|
177 (defun xsdre-range-less-than (r1 r2)
|
|
178 "Return non-nil if range R1 is less than range R2."
|
|
179 (or (< (xsdre-range-first r1) (xsdre-range-first r2))
|
|
180 (and (= (xsdre-range-first r1) (xsdre-range-first r2))
|
|
181 (< (xsdre-range-last r1) (xsdre-range-last r2)))))
|
|
182
|
|
183 (defun xsdre-check-range-list (range-list)
|
|
184 "Check that range-list is a range-list.
|
|
185 Signal an error if it is not."
|
|
186 (let ((last nil))
|
|
187 (while range-list
|
|
188 (unless (consp range-list)
|
|
189 (error "Range list not a list"))
|
|
190 (let ((head (car range-list)))
|
|
191 (unless (or (integerp head)
|
|
192 (and (consp head)
|
|
193 (integerp (car head))
|
|
194 (integerp (cdr head))))
|
|
195 (error "Bad range %s" head))
|
|
196 (when (and last
|
|
197 (not (< (1+ last) (xsdre-range-first head))))
|
|
198 (error "Ranges not strictly increasing"))
|
|
199 (setq last (xsdre-range-last head)))
|
|
200 (setq range-list (cdr range-list))))
|
|
201 t)
|
|
202
|
|
203 ;;; Compiling symbolic regexps to Emacs regexps
|
|
204
|
|
205 (defun xsdre-from-symbolic (re)
|
|
206 "Return an Emacs regexp for the symbolic regexp RE."
|
|
207 (apply 'concat
|
|
208 (nreverse (xsdre-compile-regexp re nil))))
|
|
209
|
|
210 (defun xsdre-compile-regexp (re accum)
|
|
211 "Return a Emacs regular expression for the symbolic regexp RE.
|
|
212 Returns a list of strings whose head is the regexp for RE
|
|
213 and whose tail is ACCUM."
|
|
214 (cond ((not (consp re))
|
|
215 (xsdre-compile-char-class re accum))
|
|
216 ((eq (car re) 'choice)
|
|
217 (setq accum (cons "\\(?:" accum))
|
|
218 (let ((choices (cdr re)))
|
|
219 (while choices
|
|
220 (setq accum
|
|
221 (xsdre-compile-regexp (car choices)
|
|
222 accum))
|
|
223 (setq choices (cdr choices))
|
|
224 (when choices
|
|
225 (setq accum
|
|
226 (cons "\\|" accum)))))
|
|
227 (cons "\\)" accum))
|
|
228 ((eq (car re) 'sequence)
|
|
229 (let ((members (cdr re)))
|
|
230 (while members
|
|
231 (setq accum (xsdre-compile-regexp (car members)
|
|
232 accum))
|
|
233 (setq members (cdr members))))
|
|
234 accum)
|
|
235 ((eq (car re) 'repeat)
|
|
236 (let* ((sub (nth 1 re))
|
|
237 (lower (nth 2 re))
|
|
238 (upper (nth 3 re))
|
|
239 (need-paren (and (consp sub)
|
|
240 (eq (car sub) 'sequence))))
|
|
241 (when need-paren
|
|
242 (setq accum (cons "\\(?:" accum)))
|
|
243 (setq accum
|
|
244 (xsdre-compile-regexp sub accum))
|
|
245 (when need-paren
|
|
246 (setq accum (cons "\\)" accum)))
|
|
247 (cond ((not upper)
|
|
248 (cond ((eq lower 0)
|
|
249 (cons "*" accum))
|
|
250 ((eq lower 1)
|
|
251 (cons "+" accum))
|
|
252 (t
|
|
253 (cons (concat "\\{"
|
|
254 (number-to-string lower)
|
|
255 ",\\}")
|
|
256 accum))))
|
|
257 ((eq lower upper)
|
|
258 (cons (concat "\\{"
|
|
259 (number-to-string lower)
|
|
260 "\\}")
|
|
261 accum))
|
|
262 ((and (eq lower 0) (eq upper 1))
|
|
263 (cons "?" accum))
|
|
264 (t
|
|
265 (cons (concat "\\{"
|
|
266 (number-to-string lower)
|
|
267 ","
|
|
268 (number-to-string upper)
|
|
269 "\\}")
|
|
270 accum)))))
|
|
271 (t (xsdre-compile-char-class re accum))))
|
|
272
|
|
273 (defun xsdre-compile-char-class (cc accum)
|
|
274 "Return a Emacs regular expression for the symbolic character class CC.
|
|
275 Returns a list of strings whose head is the regexp for CC
|
|
276 and whose tail is ACCUM."
|
|
277 (cons (if (integerp cc)
|
|
278 (xsdre-compile-single-char cc)
|
|
279 (let ((ranges (xsdre-range-list-mule-intersection
|
|
280 (xsdre-char-class-to-range-list cc))))
|
|
281 (cond ((null ranges) "\001-\000")
|
|
282 ((and (null (cdr ranges))
|
|
283 (= (xsdre-range-first (car ranges))
|
|
284 (xsdre-range-last (car ranges))))
|
|
285 (xsdre-compile-single-char
|
|
286 (xsdre-range-first (car ranges))))
|
|
287 (t (xsdre-range-list-to-char-alternative ranges)))))
|
|
288 accum))
|
|
289
|
|
290 (defun xsdre-compile-single-char (ch)
|
|
291 (if (memq ch '(?. ?* ?+ ?? ?\[ ?\] ?^ ?$ ?\\))
|
|
292 (string ?\\ ch)
|
|
293 (string (decode-char 'ucs ch))))
|
|
294
|
|
295 (defun xsdre-char-class-to-range-list (cc)
|
|
296 "Return a range-list for a symbolic char-class."
|
|
297 (cond ((integerp cc) (list cc))
|
|
298 ((symbolp cc)
|
|
299 (or (get cc 'xsdre-ranges)
|
|
300 (xsdre-char-class-to-range-list (get cc 'xsdre-char-class))))
|
|
301 ((integerp (car cc))
|
|
302 (if (= (car cc) (cdr cc))
|
|
303 (car cc)
|
|
304 cc))
|
|
305 ((eq (car cc) 'union)
|
|
306 (xsdre-range-list-union (mapcar 'xsdre-char-class-to-range-list
|
|
307 (cdr cc))))
|
|
308 ((eq (car cc) 'difference)
|
|
309 (xsdre-range-list-difference
|
|
310 (xsdre-char-class-to-range-list (nth 1 cc))
|
|
311 (xsdre-char-class-to-range-list (nth 2 cc))))
|
|
312 ((eq (car cc) 'range)
|
|
313 (list (xsdre-make-range (nth 1 cc) (nth 2 cc))))
|
|
314 (t (error "Internal error in XSD regexp compilation: \
|
|
315 unknown char-class %s" cc))))
|
|
316
|
|
317 (defconst xsdre-mule-char-set-ranges
|
|
318 '((0 . 127)
|
|
319 (128 . 159)
|
|
320 (160 . 255)
|
|
321 (#x0100 . #x24ff)
|
|
322 (#x2500 . #x33ff)
|
|
323 (#xe000 . #xffff))
|
|
324 "List of ranges for the Mule character sets containing Unicode characters.")
|
|
325
|
|
326 (defun xsdre-range-list-mule-intersection (range-list)
|
|
327 "Return the intersection of RANGE-LIST with the mule-supported ranges.
|
|
328 Also split ranges so that no range spans more that one mule charset."
|
|
329 (when range-list
|
|
330 (let* ((char-set-ranges (cdr xsdre-mule-char-set-ranges))
|
|
331 (mule-ranges nil)
|
|
332 (char-set-first (caar xsdre-mule-char-set-ranges))
|
|
333 (char-set-last (cdar xsdre-mule-char-set-ranges))
|
|
334 (range (car range-list))
|
|
335 (first (xsdre-range-first range))
|
|
336 (last (xsdre-range-last range)))
|
|
337 (setq range-list (cdr range-list))
|
|
338 (while (progn
|
|
339 (cond ((> first last)
|
|
340 (if (null range-list)
|
|
341 nil
|
|
342 (setq range (car range-list))
|
|
343 (setq first (xsdre-range-first range))
|
|
344 (setq last (xsdre-range-last range))
|
|
345 (setq range-list (cdr range-list))
|
|
346 t))
|
|
347 ((< char-set-last first)
|
|
348 (if (null char-set-ranges)
|
|
349 nil
|
|
350 (setq char-set-first (caar char-set-ranges))
|
|
351 (setq char-set-last (cdar char-set-ranges))
|
|
352 (setq char-set-ranges (cdr char-set-ranges))
|
|
353 t))
|
|
354 ((< first char-set-first)
|
|
355 (setq first char-set-first))
|
|
356 ;; Now we know that
|
|
357 ;; first <= last
|
|
358 ;; first <= char-set-last
|
|
359 ;; first >= char-set-first
|
|
360 ((<= last char-set-last)
|
|
361 (setq mule-ranges
|
|
362 (cons (xsdre-make-range first last)
|
|
363 mule-ranges))
|
|
364 (setq first (1+ last))
|
|
365 t)
|
|
366 (t
|
|
367 (setq mule-ranges
|
|
368 (cons (xsdre-make-range first char-set-last)
|
|
369 mule-ranges))
|
|
370 (setq first (1+ char-set-last))
|
|
371 t))))
|
|
372 (nreverse mule-ranges))))
|
|
373
|
|
374 (defun xsdre-range-list-to-char-alternative (range-list)
|
|
375 "Return a char alternative for a range-list.
|
|
376 RANGE-LIST must contain more than integer.
|
|
377 The char alternative is a string containing an Emacs regexp
|
|
378 consisting of a single char alternative delimited with []."
|
|
379 (let (range caret close-bracket hyphen chars first last)
|
|
380 (while range-list
|
|
381 (setq range (car range-list))
|
|
382 (setq first (xsdre-range-first range))
|
|
383 (setq last (xsdre-range-last range))
|
|
384 (while (and (cond ((eq first ?^)
|
|
385 (setq caret t)
|
|
386 (setq first (1+ first)))
|
|
387 ((eq first ?-)
|
|
388 (setq hyphen t)
|
|
389 (setq first (1+ first)))
|
|
390 ((eq first ?\])
|
|
391 (setq close-bracket t)
|
|
392 (setq first (1+ first))))
|
|
393 (<= first last)))
|
|
394 (when (<= first last)
|
|
395 (setq chars
|
|
396 (cons first chars))
|
|
397 (when (< first last)
|
|
398 (setq chars
|
|
399 (if (and (eq last (1+ first))
|
|
400 (not (eq last ?-)))
|
|
401 (cons last chars)
|
|
402 (cons last (cons ?- chars))))))
|
|
403 (setq range-list (cdr range-list)))
|
|
404 (setq chars
|
|
405 (mapcar (lambda (c)
|
|
406 (decode-char 'ucs c))
|
|
407 chars))
|
|
408 (when caret
|
|
409 (setq chars (cons ?^ chars)))
|
|
410 (when hyphen
|
|
411 (setq chars (cons ?- chars)))
|
|
412 (setq chars (cons ?\] chars))
|
|
413 (setq chars (nreverse chars))
|
|
414 (when close-bracket
|
|
415 (setq chars (cons ?\] chars)))
|
|
416 (when (equal chars '(?^ ?- ?\]))
|
|
417 (setq chars '(?- ?^ ?\])))
|
|
418 (setq chars (cons ?\[ chars))
|
|
419 (apply 'string chars)))
|
|
420
|
|
421 ;;; Parsing
|
|
422
|
|
423 (defvar xsdre-current-regexp nil
|
|
424 "List of characters remaining to be parsed. Dynamically bound.")
|
|
425
|
|
426 (defun xsdre-to-symbolic (str)
|
|
427 "Convert a W3C XML Schema datatypes regexp to a symbolic form.
|
|
428
|
|
429 The symbolic form has the following structure:
|
|
430
|
|
431 REGEXP ::=
|
|
432 (sequence REGEXP ...)
|
|
433 | (choice REGEXP ...)
|
|
434 | (repeat REGEXP MIN MAX)
|
|
435 | CHAR-CLASS
|
|
436
|
|
437 CHAR-CLASS ::=
|
|
438 CHAR
|
|
439 | SYMBOLIC-CHAR-CLASS
|
|
440 | RANGE
|
|
441 | (union CHAR-CLASS ...)
|
|
442 | (difference CHAR-CLASS CHAR-CLASS)
|
|
443
|
|
444 RANGE ::= (range LOWER UPPER)
|
|
445
|
|
446 MIN ::= INTEGER
|
|
447 MAX ::= INTEGER | nil
|
|
448 CHAR ::= UNICODE
|
|
449 LOWER ::= UNICODE
|
|
450 UPPER ::= UNICODE
|
|
451 SYMBOLIC-CHAR-CLASS ::= SYMBOL
|
|
452
|
|
453 where UNICODE is a integer specifying a Unicode code-point and
|
|
454 SYMBOLIC-CHAR-CLASS is a symbol which has either a `xsdre-char-class'
|
|
455 property whose value is a CHAR-CLASS, or a `xsdre-ranges' property
|
|
456 whose value is a range-list."
|
|
457 (let ((xsdre-current-regexp (string-to-list str)))
|
|
458 (condition-case err
|
|
459 (let ((symbolic (xsdre-parse-regexp)))
|
|
460 (if xsdre-current-regexp
|
|
461 (xsdre-parse-error "Unexpected %c" (car xsdre-current-regexp))
|
|
462 symbolic))
|
|
463 (xsdre-parse-error
|
|
464 (signal 'xsdre-invalid-regexp
|
|
465 (list (apply 'format (cdr err))
|
|
466 (- (length str)
|
|
467 (length xsdre-current-regexp))))))))
|
|
468
|
|
469 (put 'xsdre-invalid-regexp
|
|
470 'error-conditions
|
|
471 '(error xsdre-invalid-regexp))
|
|
472
|
|
473 (put 'xsdre-invalid-regexp
|
|
474 'error-message
|
|
475 "Invalid W3C XML Schema Datatypes regular expression")
|
|
476
|
|
477 (defun xsdre-parse-regexp ()
|
|
478 (let ((branches nil))
|
|
479 (while (progn
|
|
480 (setq branches (cons (xsdre-parse-branch) branches))
|
|
481 (when (eq (car xsdre-current-regexp) ?|)
|
|
482 (xsdre-advance)
|
|
483 t)))
|
|
484 (if (null (cdr branches))
|
|
485 (car branches)
|
|
486 (cons 'choice (nreverse branches)))))
|
|
487
|
|
488 (defun xsdre-parse-branch ()
|
|
489 (let (items)
|
|
490 (while (let ((item (xsdre-try-parse-atom)))
|
|
491 (when item
|
|
492 (let ((quantifier (xsdre-try-parse-quantifier)))
|
|
493 (when quantifier
|
|
494 (setq item
|
|
495 (list 'repeat
|
|
496 item
|
|
497 (car quantifier)
|
|
498 (cdr quantifier)))))
|
|
499 (setq items (cons item items)))))
|
|
500 (cond ((null items) '(sequence))
|
|
501 ((null (cdr items)) (car items))
|
|
502 (t (cons 'sequence (nreverse items))))))
|
|
503
|
|
504 (defun xsdre-try-parse-quantifier ()
|
|
505 (let ((ch (car xsdre-current-regexp)))
|
|
506 (cond ((eq ch ?*) (xsdre-advance) '(0 . nil))
|
|
507 ((eq ch ?+) (xsdre-advance) '(1 . nil))
|
|
508 ((eq ch ??) (xsdre-advance) '(0 . 1))
|
|
509 ((eq ch ?{)
|
|
510 (xsdre-advance)
|
|
511 (let ((lower (xsdre-parse-bound)))
|
|
512 (setq ch (car xsdre-current-regexp))
|
|
513 (cond ((eq ch ?})
|
|
514 (xsdre-advance)
|
|
515 (cons lower lower))
|
|
516 ((eq ch ?,)
|
|
517 (xsdre-advance)
|
|
518 (cond ((eq (car xsdre-current-regexp) ?})
|
|
519 (xsdre-advance)
|
|
520 (cons lower nil))
|
|
521 (t
|
|
522 (let ((upper (xsdre-parse-bound)))
|
|
523 (xsdre-expect ?})
|
|
524 (cons lower upper)))))
|
|
525 (t (xsdre-parse-error "Expected , or }")))))
|
|
526 (t nil))))
|
|
527
|
|
528 (defun xsdre-parse-bound ()
|
|
529 (let ((n 0))
|
|
530 (while (progn
|
|
531 (let* ((ch (car xsdre-current-regexp))
|
|
532 (digit (memq ch '(?9 ?8 ?7 ?6 ?5 ?4 ?3 ?2 ?1 ?0))))
|
|
533 (unless digit
|
|
534 (xsdre-parse-error "Expected a digit"))
|
|
535 (setq n (+ (* n 10)
|
|
536 (length (cdr digit)))))
|
|
537 (xsdre-advance)
|
|
538 (not (memq (car xsdre-current-regexp) '(?} ?,)))))
|
|
539 n))
|
|
540
|
|
541
|
|
542 (defun xsdre-try-parse-atom ()
|
|
543 (let ((ch (car xsdre-current-regexp)))
|
|
544 (cond ((memq ch '(nil ?? ?* ?+ ?\) ?\{ ?\} ?| ?\])) nil)
|
|
545 ((eq ch ?\\)
|
|
546 (xsdre-advance)
|
|
547 (xsdre-parse-escape))
|
|
548 ((eq ch ?\()
|
|
549 (xsdre-advance)
|
|
550 (let ((ret (xsdre-parse-regexp)))
|
|
551 (xsdre-expect ?\))
|
|
552 ret))
|
|
553 ((eq ch ?\[)
|
|
554 (xsdre-parse-char-class))
|
|
555 ((eq ch ?.)
|
|
556 (xsdre-advance)
|
|
557 'dot)
|
|
558 (t
|
|
559 (let ((uc (encode-char ch 'ucs)))
|
|
560 (unless uc
|
|
561 (xsdre-parse-error "%c is not a Unicode character" ch))
|
|
562 (xsdre-advance) uc)))))
|
|
563
|
|
564 (defun xsdre-parse-char-class ()
|
|
565 (xsdre-advance)
|
|
566 (let (compl members ret)
|
|
567 (when (eq (car xsdre-current-regexp) ?^)
|
|
568 (setq compl t)
|
|
569 (xsdre-advance))
|
|
570 (while (let ((member (xsdre-parse-char-class-member))
|
|
571 uc1 uc2)
|
|
572 (cond ((eq (car xsdre-current-regexp) ?\-)
|
|
573 (xsdre-advance)
|
|
574 (cond ((eq (car xsdre-current-regexp) ?\[)
|
|
575 (setq members (cons member members))
|
|
576 nil)
|
|
577 ((not (integerp member))
|
|
578 (xsdre-parse-error "Lower bound is not a single character"))
|
|
579 ((not (setq uc1
|
|
580 (encode-char member 'ucs)))
|
|
581 (xsdre-parse-error "Lower bound %c is not a Unicode character"
|
|
582 member))
|
|
583 (t
|
|
584 (let ((upper (xsdre-parse-char-class-member)))
|
|
585 (unless (integerp upper)
|
|
586 (xsdre-parse-error "Upper bound is not a single character"))
|
|
587 (unless (setq uc2
|
|
588 (encode-char upper 'ucs))
|
|
589 (xsdre-parse-error "Upper bound %c is not a Unicode character" upper))
|
|
590 (setq members
|
|
591 (cons (list 'range uc1 uc2)
|
|
592 members)))
|
|
593 (not (eq (car xsdre-current-regexp) ?\])))))
|
|
594 (t (setq members (cons member members))
|
|
595 (not (eq (car xsdre-current-regexp) ?\]))))))
|
|
596 (setq members (nreverse members))
|
|
597 (if (null (cdr members))
|
|
598 (setq ret (car members))
|
|
599 (setq ret (cons 'union members)))
|
|
600 (when compl
|
|
601 (setq ret (list 'difference 'any ret)))
|
|
602 (when (eq (car xsdre-current-regexp) ?\[)
|
|
603 (setq ret
|
|
604 (list 'difference ret (xsdre-parse-char-class))))
|
|
605 (xsdre-expect ?\])
|
|
606 ret))
|
|
607
|
|
608 (defun xsdre-parse-char-class-member ()
|
|
609 (let ((ch (car xsdre-current-regexp)))
|
|
610 (cond ((null ch)
|
|
611 (xsdre-parse-error "Expected ]"))
|
|
612 ((eq ch ?\\)
|
|
613 (xsdre-advance)
|
|
614 (xsdre-parse-escape))
|
|
615 ((memq ch '(?\[ ?\] ?-))
|
|
616 (xsdre-parse-error "%c must be quoted in a character class" ch))
|
|
617 (t (xsdre-advance) ch))))
|
|
618
|
|
619 (defconst xsdre-single-escape
|
|
620 '((?s . space)
|
|
621 (?i . name-initial)
|
|
622 (?c . name-continue)
|
|
623 (?d . digit)
|
|
624 (?w . word)))
|
|
625
|
|
626 (defun xsdre-parse-escape ()
|
|
627 (let ((ch (car xsdre-current-regexp)))
|
|
628 (xsdre-advance)
|
|
629 (cond ((memq ch '(?\\ ?| ?. ?- ?^ ?* ?+ ?( ?) ?{ ?} ?[ ?])) ch)
|
|
630 ((eq ch ?r) ?\r)
|
|
631 ((eq ch ?n) ?\n)
|
|
632 ((eq ch ?t) ?\t)
|
|
633 ((cdr (assq ch xsdre-single-escape)))
|
|
634 ((let ((positive
|
|
635 (cdr (assq (downcase ch) xsdre-single-escape))))
|
|
636 (and positive
|
|
637 (list 'difference 'any positive))))
|
|
638 ((eq ch ?p) (xsdre-parse-prop))
|
|
639 ((eq ch ?P) (list 'difference 'any (xsdre-parse-prop)))
|
|
640 (t (if ch
|
|
641 (xsdre-parse-error "Missing char after \\")
|
|
642 (xsdre-parse-error "Bad escape %c" ch))))))
|
|
643
|
|
644 (defun xsdre-parse-prop ()
|
|
645 (xsdre-expect ?{)
|
|
646 (let ((name nil))
|
|
647 (while (not (eq (car xsdre-current-regexp) ?\}))
|
|
648 (unless xsdre-current-regexp
|
|
649 (xsdre-parse-error "Expected ?"))
|
|
650 (setq name (cons (car xsdre-current-regexp)
|
|
651 name))
|
|
652 (xsdre-advance))
|
|
653 (xsdre-advance)
|
|
654 (setq name (nreverse name))
|
|
655 (cond ((null name) (xsdre-parse-error "Empty property name"))
|
|
656 ((null (cdr name))
|
|
657 (let ((category (intern (string (car name)))))
|
|
658 (unless (get category 'xsdre-unicode-category)
|
|
659 (xsdre-parse-error "%s is not a category" category))
|
|
660 category))
|
|
661 ((null (cddr name))
|
|
662 (let ((category (intern (string (car name) (cadr name)))))
|
|
663 (unless (get category 'xsdre-unicode-category)
|
|
664 (xsdre-parse-error "%s is not a category" category))
|
|
665 category))
|
|
666 ((not (and (eq (car name) ?I)
|
|
667 (eq (cadr name) ?s)))
|
|
668 (xsdre-parse-error "Block name does not start with Is"))
|
|
669 (t
|
|
670 (let ((block (intern (apply 'string (cddr name)))))
|
|
671 (unless (get block 'xsdre-unicode-block)
|
|
672 (xsdre-parse-error "%s is not a block name" block))
|
|
673 block)))))
|
|
674
|
|
675 (defun xsdre-expect (ch)
|
|
676 (if (eq (car xsdre-current-regexp) ch)
|
|
677 (xsdre-advance)
|
|
678 (xsdre-parse-error "Expected %c" ch)))
|
|
679
|
|
680 (defun xsdre-advance ()
|
|
681 (setq xsdre-current-regexp
|
|
682 (cdr xsdre-current-regexp)))
|
|
683
|
|
684 (defun xsdre-parse-error (&rest args)
|
|
685 (signal 'xsdre-parse-error args))
|
|
686
|
|
687 ;; This error condition is used only internally.
|
|
688
|
|
689 (put 'xsdre-parse-error
|
|
690 'error-conditions
|
|
691 '(error xsdre-parse-error))
|
|
692
|
|
693 (put 'xsdre-parse-error
|
|
694 'error-message
|
|
695 "Internal error in parsing XSD regexp")
|
|
696
|
|
697 ;;; Character class data
|
|
698
|
|
699 (put 'dot 'xsdre-char-class '(difference any (union #xA #xD)))
|
|
700 (put 'digit 'xsdre-char-class 'Nd)
|
|
701 (put 'word 'xsdre-char-class '(difference any (union P Z C)))
|
|
702 (put 'space 'xsdre-char-class '(union #x9 #xA #xD #x20))
|
|
703 (put 'any 'xsdre-ranges '((#x0 . #x10FFFF)))
|
|
704
|
|
705 (defconst xsdre-gen-categories
|
|
706 '(Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd
|
|
707 Ps Pe Pi Pf Po Zs Zl Zp Sm Sc Sk So Cc Cf Co))
|
|
708
|
|
709 (defun xsdre-gen-categories (file)
|
|
710 "Use a UnicodeData file to generate code to initialize Unicode categories.
|
|
711 Code is inserted into the current buffer."
|
|
712 (interactive "fUnicodeData file: ")
|
|
713 (save-excursion
|
|
714 (set-buffer (find-file-noselect file))
|
|
715 (goto-char (point-min))
|
|
716 (mapcar (lambda (x) (put x 'xsdre-ranges nil)) xsdre-gen-categories)
|
|
717 (while (re-search-forward "^\\([0-9A-Fa-f]*\\);[^;]*;\\([A-Z][a-z]\\);"
|
|
718 nil
|
|
719 t)
|
|
720 (let* ((sym (intern (match-string-no-properties 2)))
|
|
721 (code (string-to-number (match-string-no-properties 1)
|
|
722 16))
|
|
723 (ranges (get sym 'xsdre-ranges))
|
|
724 (last-range (car ranges))
|
|
725 (forced-range (string= (buffer-substring-no-properties
|
|
726 (- (match-beginning 2) 6)
|
|
727 (1- (match-beginning 2)))
|
|
728 "Last>")))
|
|
729 (cond ((and (integerp last-range)
|
|
730 (or forced-range
|
|
731 (eq code (1+ last-range))))
|
|
732 (put sym
|
|
733 'xsdre-ranges
|
|
734 (cons (cons last-range code)
|
|
735 (cdr ranges))))
|
|
736 ((and (consp last-range)
|
|
737 (or forced-range
|
|
738 (eq code (1+ (cdr last-range)))))
|
|
739 (put sym
|
|
740 'xsdre-ranges
|
|
741 (cons (cons (car last-range) code)
|
|
742 (cdr ranges))))
|
|
743 (t
|
|
744 (put sym 'xsdre-ranges (cons code ranges))))))
|
|
745 (mapcar (lambda (x)
|
|
746 (put x
|
|
747 'xsdre-ranges
|
|
748 (nreverse (get x 'xsdre-ranges)))
|
|
749 nil)
|
|
750 xsdre-gen-categories))
|
|
751 (mapcar (lambda (x)
|
|
752 (let ((start (point)))
|
|
753 (pp (list 'xsdre-def-primitive-category
|
|
754 (list 'quote x)
|
|
755 (list 'quote (get x 'xsdre-ranges)))
|
|
756 (current-buffer))
|
|
757 (save-excursion
|
|
758 (goto-char start)
|
|
759 (down-list 2)
|
|
760 (while (condition-case err
|
|
761 (progn
|
|
762 (forward-sexp)
|
|
763 t)
|
|
764 (error nil))
|
|
765 (when (and (< 70 (current-column))
|
|
766 (not (looking-at ")")))
|
|
767 (insert "\n")
|
|
768 (lisp-indent-line))))))
|
|
769 xsdre-gen-categories))
|
|
770
|
|
771 (defun xsdre-def-primitive-category (sym ranges)
|
|
772 (put sym 'xsdre-ranges ranges)
|
|
773 (put sym 'xsdre-unicode-category t))
|
|
774
|
|
775 ;;; Blocks
|
|
776
|
|
777 (defun xsdre-def-block (sym ranges)
|
|
778 (put sym 'xsdre-ranges ranges)
|
|
779 (put sym 'xsdre-unicode-block t))
|
|
780
|
|
781 (xsdre-def-block 'BasicLatin '((#x0000 . #x007F)))
|
|
782 (xsdre-def-block 'Latin-1Supplement '((#x0080 . #x00FF)))
|
|
783 (xsdre-def-block 'LatinExtended-A '((#x0100 . #x017F)))
|
|
784 (xsdre-def-block 'LatinExtended-B '((#x0180 . #x024F)))
|
|
785 (xsdre-def-block 'IPAExtensions '((#x0250 . #x02AF)))
|
|
786 (xsdre-def-block 'SpacingModifierLetters '((#x02B0 . #x02FF)))
|
|
787 (xsdre-def-block 'CombiningDiacriticalMarks '((#x0300 . #x036F)))
|
|
788 (xsdre-def-block 'Greek '((#x0370 . #x03FF)))
|
|
789 (xsdre-def-block 'Cyrillic '((#x0400 . #x04FF)))
|
|
790 (xsdre-def-block 'Armenian '((#x0530 . #x058F)))
|
|
791 (xsdre-def-block 'Hebrew '((#x0590 . #x05FF)))
|
|
792 (xsdre-def-block 'Arabic '((#x0600 . #x06FF)))
|
|
793 (xsdre-def-block 'Syriac '((#x0700 . #x074F)))
|
|
794 (xsdre-def-block 'Thaana '((#x0780 . #x07BF)))
|
|
795 (xsdre-def-block 'Devanagari '((#x0900 . #x097F)))
|
|
796 (xsdre-def-block 'Bengali '((#x0980 . #x09FF)))
|
|
797 (xsdre-def-block 'Gurmukhi '((#x0A00 . #x0A7F)))
|
|
798 (xsdre-def-block 'Gujarati '((#x0A80 . #x0AFF)))
|
|
799 (xsdre-def-block 'Oriya '((#x0B00 . #x0B7F)))
|
|
800 (xsdre-def-block 'Tamil '((#x0B80 . #x0BFF)))
|
|
801 (xsdre-def-block 'Telugu '((#x0C00 . #x0C7F)))
|
|
802 (xsdre-def-block 'Kannada '((#x0C80 . #x0CFF)))
|
|
803 (xsdre-def-block 'Malayalam '((#x0D00 . #x0D7F)))
|
|
804 (xsdre-def-block 'Sinhala '((#x0D80 . #x0DFF)))
|
|
805 (xsdre-def-block 'Thai '((#x0E00 . #x0E7F)))
|
|
806 (xsdre-def-block 'Lao '((#x0E80 . #x0EFF)))
|
|
807 (xsdre-def-block 'Tibetan '((#x0F00 . #x0FFF)))
|
|
808 (xsdre-def-block 'Myanmar '((#x1000 . #x109F)))
|
|
809 (xsdre-def-block 'Georgian '((#x10A0 . #x10FF)))
|
|
810 (xsdre-def-block 'HangulJamo '((#x1100 . #x11FF)))
|
|
811 (xsdre-def-block 'Ethiopic '((#x1200 . #x137F)))
|
|
812 (xsdre-def-block 'Cherokee '((#x13A0 . #x13FF)))
|
|
813 (xsdre-def-block 'UnifiedCanadianAboriginalSyllabics '((#x1400 . #x167F)))
|
|
814 (xsdre-def-block 'Ogham '((#x1680 . #x169F)))
|
|
815 (xsdre-def-block 'Runic '((#x16A0 . #x16FF)))
|
|
816 (xsdre-def-block 'Khmer '((#x1780 . #x17FF)))
|
|
817 (xsdre-def-block 'Mongolian '((#x1800 . #x18AF)))
|
|
818 (xsdre-def-block 'LatinExtendedAdditional '((#x1E00 . #x1EFF)))
|
|
819 (xsdre-def-block 'GreekExtended '((#x1F00 . #x1FFF)))
|
|
820 (xsdre-def-block 'GeneralPunctuation '((#x2000 . #x206F)))
|
|
821 (xsdre-def-block 'SuperscriptsandSubscripts '((#x2070 . #x209F)))
|
|
822 (xsdre-def-block 'CurrencySymbols '((#x20A0 . #x20CF)))
|
|
823 (xsdre-def-block 'CombiningMarksforSymbols '((#x20D0 . #x20FF)))
|
|
824 (xsdre-def-block 'LetterlikeSymbols '((#x2100 . #x214F)))
|
|
825 (xsdre-def-block 'NumberForms '((#x2150 . #x218F)))
|
|
826 (xsdre-def-block 'Arrows '((#x2190 . #x21FF)))
|
|
827 (xsdre-def-block 'MathematicalOperators '((#x2200 . #x22FF)))
|
|
828 (xsdre-def-block 'MiscellaneousTechnical '((#x2300 . #x23FF)))
|
|
829 (xsdre-def-block 'ControlPictures '((#x2400 . #x243F)))
|
|
830 (xsdre-def-block 'OpticalCharacterRecognition '((#x2440 . #x245F)))
|
|
831 (xsdre-def-block 'EnclosedAlphanumerics '((#x2460 . #x24FF)))
|
|
832 (xsdre-def-block 'BoxDrawing '((#x2500 . #x257F)))
|
|
833 (xsdre-def-block 'BlockElements '((#x2580 . #x259F)))
|
|
834 (xsdre-def-block 'GeometricShapes '((#x25A0 . #x25FF)))
|
|
835 (xsdre-def-block 'MiscellaneousSymbols '((#x2600 . #x26FF)))
|
|
836 (xsdre-def-block 'Dingbats '((#x2700 . #x27BF)))
|
|
837 (xsdre-def-block 'BraillePatterns '((#x2800 . #x28FF)))
|
|
838 (xsdre-def-block 'CJKRadicalsSupplement '((#x2E80 . #x2EFF)))
|
|
839 (xsdre-def-block 'KangxiRadicals '((#x2F00 . #x2FDF)))
|
|
840 (xsdre-def-block 'IdeographicDescriptionCharacters '((#x2FF0 . #x2FFF)))
|
|
841 (xsdre-def-block 'CJKSymbolsandPunctuation '((#x3000 . #x303F)))
|
|
842 (xsdre-def-block 'Hiragana '((#x3040 . #x309F)))
|
|
843 (xsdre-def-block 'Katakana '((#x30A0 . #x30FF)))
|
|
844 (xsdre-def-block 'Bopomofo '((#x3100 . #x312F)))
|
|
845 (xsdre-def-block 'HangulCompatibilityJamo '((#x3130 . #x318F)))
|
|
846 (xsdre-def-block 'Kanbun '((#x3190 . #x319F)))
|
|
847 (xsdre-def-block 'BopomofoExtended '((#x31A0 . #x31BF)))
|
|
848 (xsdre-def-block 'EnclosedCJKLettersandMonths '((#x3200 . #x32FF)))
|
|
849 (xsdre-def-block 'CJKCompatibility '((#x3300 . #x33FF)))
|
|
850 (xsdre-def-block 'CJKUnifiedIdeographsExtensionA '((#x3400 . #x4DB5)))
|
|
851 (xsdre-def-block 'CJKUnifiedIdeographs '((#x4E00 . #x9FFF)))
|
|
852 (xsdre-def-block 'YiSyllables '((#xA000 . #xA48F)))
|
|
853 (xsdre-def-block 'YiRadicals '((#xA490 . #xA4CF)))
|
|
854 (xsdre-def-block 'HangulSyllables '((#xAC00 . #xD7A3)))
|
|
855 ;;(xsdre-def-block 'HighSurrogates '((#xD800 . #xDB7F)))
|
|
856 ;;(xsdre-def-block 'HighPrivateUseSurrogates '((#xDB80 . #xDBFF)))
|
|
857 ;;(xsdre-def-block 'LowSurrogates '((#xDC00 . #xDFFF)))
|
|
858 (xsdre-def-block 'CJKCompatibilityIdeographs '((#xF900 . #xFAFF)))
|
|
859 (xsdre-def-block 'AlphabeticPresentationForms '((#xFB00 . #xFB4F)))
|
|
860 (xsdre-def-block 'ArabicPresentationForms-A '((#xFB50 . #xFDFF)))
|
|
861 (xsdre-def-block 'CombiningHalfMarks '((#xFE20 . #xFE2F)))
|
|
862 (xsdre-def-block 'CJKCompatibilityForms '((#xFE30 . #xFE4F)))
|
|
863 (xsdre-def-block 'SmallFormVariants '((#xFE50 . #xFE6F)))
|
|
864 (xsdre-def-block 'ArabicPresentationForms-B '((#xFE70 . #xFEFE)))
|
|
865 (xsdre-def-block 'Specials '((#xFEFF . #xFEFF)))
|
|
866 (xsdre-def-block 'HalfwidthandFullwidthForms '((#xFF00 . #xFFEF)))
|
|
867 (xsdre-def-block 'Specials '((#xFFF0 . #xFFFD)))
|
|
868 (xsdre-def-block 'OldItalic '((#x10300 . #x1032F)))
|
|
869 (xsdre-def-block 'Gothic '((#x10330 . #x1034F)))
|
|
870 (xsdre-def-block 'Deseret '((#x10400 . #x1044F)))
|
|
871 (xsdre-def-block 'ByzantineMusicalSymbols '((#x1D000 . #x1D0FF)))
|
|
872 (xsdre-def-block 'MusicalSymbols '((#x1D100 . #x1D1FF)))
|
|
873 (xsdre-def-block 'MathematicalAlphanumericSymbols '((#x1D400 . #x1D7FF)))
|
|
874 (xsdre-def-block 'CJKUnifiedIdeographsExtensionB '((#x20000 . #x2A6D6)))
|
|
875 (xsdre-def-block 'CJKCompatibilityIdeographsSupplement '((#x2F800 . #x2FA1F)))
|
|
876 (xsdre-def-block 'Tags '((#xE0000 . #xE007F)))
|
|
877 (xsdre-def-block 'PrivateUse '((#xE000 . #xF8FF)
|
|
878 (#xF0000 . #xFFFFD)
|
|
879 (#x100000 . #x10FFFD)))
|
|
880
|
|
881 ;;; Categories
|
|
882
|
|
883 ;;; Derived categories
|
|
884
|
|
885 (defun xsdre-def-derived-category (sym char-class)
|
|
886 (put sym 'xsdre-char-class char-class)
|
|
887 (put sym 'xsdre-unicode-category t))
|
|
888
|
|
889 (xsdre-def-derived-category 'L '(union Lu Ll Lt Lm Lo))
|
|
890 (xsdre-def-derived-category 'M '(union Mn Mc Me))
|
|
891 (xsdre-def-derived-category 'N '(union Nd Nl No))
|
|
892 (xsdre-def-derived-category 'P '(union Pc Pd Ps Pe Pi Pf Po))
|
|
893 (xsdre-def-derived-category 'Z '(union Zs Zl Zp))
|
|
894 (xsdre-def-derived-category 'S '(union Sm Sc Sk So))
|
|
895 (xsdre-def-derived-category 'C '(union Cc Cf Co Cn))
|
|
896 (xsdre-def-derived-category 'Cn '(difference any
|
|
897 (union L M N P Z S Cc Cf Co)))
|
|
898
|
|
899 (xsdre-def-primitive-category
|
|
900 'name-initial
|
|
901 '(#x003a
|
|
902 (#x0041 . #x005a)
|
|
903 #x005f
|
|
904 (#x0061 . #x007a)
|
|
905 (#x00c0 . #x00d6)
|
|
906 (#x00d8 . #x00f6)
|
|
907 (#x00f8 . #x0131)
|
|
908 (#x0134 . #x013e)
|
|
909 (#x0141 . #x0148)
|
|
910 (#x014a . #x017e)
|
|
911 (#x0180 . #x01c3)
|
|
912 (#x01cd . #x01f0)
|
|
913 (#x01f4 . #x01f5)
|
|
914 (#x01fa . #x0217)
|
|
915 (#x0250 . #x02a8)
|
|
916 (#x02bb . #x02c1)
|
|
917 #x0386
|
|
918 (#x0388 . #x038a)
|
|
919 #x038c
|
|
920 (#x038e . #x03a1)
|
|
921 (#x03a3 . #x03ce)
|
|
922 (#x03d0 . #x03d6)
|
|
923 #x03da
|
|
924 #x03dc
|
|
925 #x03de
|
|
926 #x03e0
|
|
927 (#x03e2 . #x03f3)
|
|
928 (#x0401 . #x040c)
|
|
929 (#x040e . #x044f)
|
|
930 (#x0451 . #x045c)
|
|
931 (#x045e . #x0481)
|
|
932 (#x0490 . #x04c4)
|
|
933 (#x04c7 . #x04c8)
|
|
934 (#x04cb . #x04cc)
|
|
935 (#x04d0 . #x04eb)
|
|
936 (#x04ee . #x04f5)
|
|
937 (#x04f8 . #x04f9)
|
|
938 (#x0531 . #x0556)
|
|
939 #x0559
|
|
940 (#x0561 . #x0586)
|
|
941 (#x05d0 . #x05ea)
|
|
942 (#x05f0 . #x05f2)
|
|
943 (#x0621 . #x063a)
|
|
944 (#x0641 . #x064a)
|
|
945 (#x0671 . #x06b7)
|
|
946 (#x06ba . #x06be)
|
|
947 (#x06c0 . #x06ce)
|
|
948 (#x06d0 . #x06d3)
|
|
949 #x06d5
|
|
950 (#x06e5 . #x06e6)
|
|
951 (#x0905 . #x0939)
|
|
952 #x093d
|
|
953 (#x0958 . #x0961)
|
|
954 (#x0985 . #x098c)
|
|
955 (#x098f . #x0990)
|
|
956 (#x0993 . #x09a8)
|
|
957 (#x09aa . #x09b0)
|
|
958 #x09b2
|
|
959 (#x09b6 . #x09b9)
|
|
960 (#x09dc . #x09dd)
|
|
961 (#x09df . #x09e1)
|
|
962 (#x09f0 . #x09f1)
|
|
963 (#x0a05 . #x0a0a)
|
|
964 (#x0a0f . #x0a10)
|
|
965 (#x0a13 . #x0a28)
|
|
966 (#x0a2a . #x0a30)
|
|
967 (#x0a32 . #x0a33)
|
|
968 (#x0a35 . #x0a36)
|
|
969 (#x0a38 . #x0a39)
|
|
970 (#x0a59 . #x0a5c)
|
|
971 #x0a5e
|
|
972 (#x0a72 . #x0a74)
|
|
973 (#x0a85 . #x0a8b)
|
|
974 #x0a8d
|
|
975 (#x0a8f . #x0a91)
|
|
976 (#x0a93 . #x0aa8)
|
|
977 (#x0aaa . #x0ab0)
|
|
978 (#x0ab2 . #x0ab3)
|
|
979 (#x0ab5 . #x0ab9)
|
|
980 #x0abd
|
|
981 #x0ae0
|
|
982 (#x0b05 . #x0b0c)
|
|
983 (#x0b0f . #x0b10)
|
|
984 (#x0b13 . #x0b28)
|
|
985 (#x0b2a . #x0b30)
|
|
986 (#x0b32 . #x0b33)
|
|
987 (#x0b36 . #x0b39)
|
|
988 #x0b3d
|
|
989 (#x0b5c . #x0b5d)
|
|
990 (#x0b5f . #x0b61)
|
|
991 (#x0b85 . #x0b8a)
|
|
992 (#x0b8e . #x0b90)
|
|
993 (#x0b92 . #x0b95)
|
|
994 (#x0b99 . #x0b9a)
|
|
995 #x0b9c
|
|
996 (#x0b9e . #x0b9f)
|
|
997 (#x0ba3 . #x0ba4)
|
|
998 (#x0ba8 . #x0baa)
|
|
999 (#x0bae . #x0bb5)
|
|
1000 (#x0bb7 . #x0bb9)
|
|
1001 (#x0c05 . #x0c0c)
|
|
1002 (#x0c0e . #x0c10)
|
|
1003 (#x0c12 . #x0c28)
|
|
1004 (#x0c2a . #x0c33)
|
|
1005 (#x0c35 . #x0c39)
|
|
1006 (#x0c60 . #x0c61)
|
|
1007 (#x0c85 . #x0c8c)
|
|
1008 (#x0c8e . #x0c90)
|
|
1009 (#x0c92 . #x0ca8)
|
|
1010 (#x0caa . #x0cb3)
|
|
1011 (#x0cb5 . #x0cb9)
|
|
1012 #x0cde
|
|
1013 (#x0ce0 . #x0ce1)
|
|
1014 (#x0d05 . #x0d0c)
|
|
1015 (#x0d0e . #x0d10)
|
|
1016 (#x0d12 . #x0d28)
|
|
1017 (#x0d2a . #x0d39)
|
|
1018 (#x0d60 . #x0d61)
|
|
1019 (#x0e01 . #x0e2e)
|
|
1020 #x0e30
|
|
1021 (#x0e32 . #x0e33)
|
|
1022 (#x0e40 . #x0e45)
|
|
1023 (#x0e81 . #x0e82)
|
|
1024 #x0e84
|
|
1025 (#x0e87 . #x0e88)
|
|
1026 #x0e8a
|
|
1027 #x0e8d
|
|
1028 (#x0e94 . #x0e97)
|
|
1029 (#x0e99 . #x0e9f)
|
|
1030 (#x0ea1 . #x0ea3)
|
|
1031 #x0ea5
|
|
1032 #x0ea7
|
|
1033 (#x0eaa . #x0eab)
|
|
1034 (#x0ead . #x0eae)
|
|
1035 #x0eb0
|
|
1036 (#x0eb2 . #x0eb3)
|
|
1037 #x0ebd
|
|
1038 (#x0ec0 . #x0ec4)
|
|
1039 (#x0f40 . #x0f47)
|
|
1040 (#x0f49 . #x0f69)
|
|
1041 (#x10a0 . #x10c5)
|
|
1042 (#x10d0 . #x10f6)
|
|
1043 #x1100
|
|
1044 (#x1102 . #x1103)
|
|
1045 (#x1105 . #x1107)
|
|
1046 #x1109
|
|
1047 (#x110b . #x110c)
|
|
1048 (#x110e . #x1112)
|
|
1049 #x113c
|
|
1050 #x113e
|
|
1051 #x1140
|
|
1052 #x114c
|
|
1053 #x114e
|
|
1054 #x1150
|
|
1055 (#x1154 . #x1155)
|
|
1056 #x1159
|
|
1057 (#x115f . #x1161)
|
|
1058 #x1163
|
|
1059 #x1165
|
|
1060 #x1167
|
|
1061 #x1169
|
|
1062 (#x116d . #x116e)
|
|
1063 (#x1172 . #x1173)
|
|
1064 #x1175
|
|
1065 #x119e
|
|
1066 #x11a8
|
|
1067 #x11ab
|
|
1068 (#x11ae . #x11af)
|
|
1069 (#x11b7 . #x11b8)
|
|
1070 #x11ba
|
|
1071 (#x11bc . #x11c2)
|
|
1072 #x11eb
|
|
1073 #x11f0
|
|
1074 #x11f9
|
|
1075 (#x1e00 . #x1e9b)
|
|
1076 (#x1ea0 . #x1ef9)
|
|
1077 (#x1f00 . #x1f15)
|
|
1078 (#x1f18 . #x1f1d)
|
|
1079 (#x1f20 . #x1f45)
|
|
1080 (#x1f48 . #x1f4d)
|
|
1081 (#x1f50 . #x1f57)
|
|
1082 #x1f59
|
|
1083 #x1f5b
|
|
1084 #x1f5d
|
|
1085 (#x1f5f . #x1f7d)
|
|
1086 (#x1f80 . #x1fb4)
|
|
1087 (#x1fb6 . #x1fbc)
|
|
1088 #x1fbe
|
|
1089 (#x1fc2 . #x1fc4)
|
|
1090 (#x1fc6 . #x1fcc)
|
|
1091 (#x1fd0 . #x1fd3)
|
|
1092 (#x1fd6 . #x1fdb)
|
|
1093 (#x1fe0 . #x1fec)
|
|
1094 (#x1ff2 . #x1ff4)
|
|
1095 (#x1ff6 . #x1ffc)
|
|
1096 #x2126
|
|
1097 (#x212a . #x212b)
|
|
1098 #x212e
|
|
1099 (#x2180 . #x2182)
|
|
1100 #x3007
|
|
1101 (#x3021 . #x3029)
|
|
1102 (#x3041 . #x3094)
|
|
1103 (#x30a1 . #x30fa)
|
|
1104 (#x3105 . #x312c)
|
|
1105 (#x4e00 . #x9fa5)
|
|
1106 (#xac00 . #xd7a3)))
|
|
1107
|
|
1108 (xsdre-def-derived-category 'name-continue '(union name-initial
|
|
1109 name-continue-not-initial))
|
|
1110
|
|
1111 (xsdre-def-primitive-category
|
|
1112 'name-continue-not-initial
|
|
1113 '((#x002d . #x002e)
|
|
1114 (#x0030 . #x0039)
|
|
1115 #x00b7
|
|
1116 (#x02d0 . #x02d1)
|
|
1117 (#x0300 . #x0345)
|
|
1118 (#x0360 . #x0361)
|
|
1119 #x0387
|
|
1120 (#x0483 . #x0486)
|
|
1121 (#x0591 . #x05a1)
|
|
1122 (#x05a3 . #x05b9)
|
|
1123 (#x05bb . #x05bd)
|
|
1124 #x05bf
|
|
1125 (#x05c1 . #x05c2)
|
|
1126 #x05c4
|
|
1127 #x0640
|
|
1128 (#x064b . #x0652)
|
|
1129 (#x0660 . #x0669)
|
|
1130 #x0670
|
|
1131 (#x06d6 . #x06dc)
|
|
1132 (#x06dd . #x06df)
|
|
1133 (#x06e0 . #x06e4)
|
|
1134 (#x06e7 . #x06e8)
|
|
1135 (#x06ea . #x06ed)
|
|
1136 (#x06f0 . #x06f9)
|
|
1137 (#x0901 . #x0903)
|
|
1138 #x093c
|
|
1139 (#x093e . #x094c)
|
|
1140 #x094d
|
|
1141 (#x0951 . #x0954)
|
|
1142 (#x0962 . #x0963)
|
|
1143 (#x0966 . #x096f)
|
|
1144 (#x0981 . #x0983)
|
|
1145 #x09bc
|
|
1146 (#x09be . #x09bf)
|
|
1147 (#x09c0 . #x09c4)
|
|
1148 (#x09c7 . #x09c8)
|
|
1149 (#x09cb . #x09cd)
|
|
1150 #x09d7
|
|
1151 (#x09e2 . #x09e3)
|
|
1152 (#x09e6 . #x09ef)
|
|
1153 #x0a02
|
|
1154 #x0a3c
|
|
1155 (#x0a3e . #x0a42)
|
|
1156 (#x0a47 . #x0a48)
|
|
1157 (#x0a4b . #x0a4d)
|
|
1158 (#x0a66 . #x0a6f)
|
|
1159 (#x0a70 . #x0a71)
|
|
1160 (#x0a81 . #x0a83)
|
|
1161 #x0abc
|
|
1162 (#x0abe . #x0ac5)
|
|
1163 (#x0ac7 . #x0ac9)
|
|
1164 (#x0acb . #x0acd)
|
|
1165 (#x0ae6 . #x0aef)
|
|
1166 (#x0b01 . #x0b03)
|
|
1167 #x0b3c
|
|
1168 (#x0b3e . #x0b43)
|
|
1169 (#x0b47 . #x0b48)
|
|
1170 (#x0b4b . #x0b4d)
|
|
1171 (#x0b56 . #x0b57)
|
|
1172 (#x0b66 . #x0b6f)
|
|
1173 (#x0b82 . #x0b83)
|
|
1174 (#x0bbe . #x0bc2)
|
|
1175 (#x0bc6 . #x0bc8)
|
|
1176 (#x0bca . #x0bcd)
|
|
1177 #x0bd7
|
|
1178 (#x0be7 . #x0bef)
|
|
1179 (#x0c01 . #x0c03)
|
|
1180 (#x0c3e . #x0c44)
|
|
1181 (#x0c46 . #x0c48)
|
|
1182 (#x0c4a . #x0c4d)
|
|
1183 (#x0c55 . #x0c56)
|
|
1184 (#x0c66 . #x0c6f)
|
|
1185 (#x0c82 . #x0c83)
|
|
1186 (#x0cbe . #x0cc4)
|
|
1187 (#x0cc6 . #x0cc8)
|
|
1188 (#x0cca . #x0ccd)
|
|
1189 (#x0cd5 . #x0cd6)
|
|
1190 (#x0ce6 . #x0cef)
|
|
1191 (#x0d02 . #x0d03)
|
|
1192 (#x0d3e . #x0d43)
|
|
1193 (#x0d46 . #x0d48)
|
|
1194 (#x0d4a . #x0d4d)
|
|
1195 #x0d57
|
|
1196 (#x0d66 . #x0d6f)
|
|
1197 #x0e31
|
|
1198 (#x0e34 . #x0e3a)
|
|
1199 (#x0e46 . #x0e4e)
|
|
1200 (#x0e50 . #x0e59)
|
|
1201 #x0eb1
|
|
1202 (#x0eb4 . #x0eb9)
|
|
1203 (#x0ebb . #x0ebc)
|
|
1204 #x0ec6
|
|
1205 (#x0ec8 . #x0ecd)
|
|
1206 (#x0ed0 . #x0ed9)
|
|
1207 (#x0f18 . #x0f19)
|
|
1208 (#x0f20 . #x0f29)
|
|
1209 #x0f35
|
|
1210 #x0f37
|
|
1211 #x0f39
|
|
1212 (#x0f3e . #x0f3f)
|
|
1213 (#x0f71 . #x0f84)
|
|
1214 (#x0f86 . #x0f8b)
|
|
1215 (#x0f90 . #x0f95)
|
|
1216 #x0f97
|
|
1217 (#x0f99 . #x0fad)
|
|
1218 (#x0fb1 . #x0fb7)
|
|
1219 #x0fb9
|
|
1220 (#x20d0 . #x20dc)
|
|
1221 #x20e1
|
|
1222 #x3005
|
|
1223 (#x302a . #x302f)
|
|
1224 (#x3031 . #x3035)
|
|
1225 #x3099
|
|
1226 #x309a
|
|
1227 (#x309d . #x309e)
|
|
1228 (#x30fc . #x30fe)))
|
|
1229
|
|
1230 ;;; Auto-generated section.
|
|
1231
|
|
1232 ;; The rest of the file was auto-generated by doing M-x xsdre-gen-categories
|
|
1233 ;; on UnicodeData-3.1.0.txt available from
|
|
1234 ;; http://www.unicode.org/Public/3.1-Update/UnicodeData-3.1.0.txt
|
|
1235
|
|
1236 (xsdre-def-primitive-category 'Lu
|
|
1237 '((65 . 90)
|
|
1238 (192 . 214)
|
|
1239 (216 . 222)
|
|
1240 256 258 260 262 264 266 268 270 272 274 276
|
|
1241 278 280 282 284 286 288 290 292 294 296 298
|
|
1242 300 302 304 306 308 310 313 315 317 319 321
|
|
1243 323 325 327 330 332 334 336 338 340 342 344
|
|
1244 346 348 350 352 354 356 358 360 362 364 366
|
|
1245 368 370 372 374
|
|
1246 (376 . 377)
|
|
1247 379 381
|
|
1248 (385 . 386)
|
|
1249 388
|
|
1250 (390 . 391)
|
|
1251 (393 . 395)
|
|
1252 (398 . 401)
|
|
1253 (403 . 404)
|
|
1254 (406 . 408)
|
|
1255 (412 . 413)
|
|
1256 (415 . 416)
|
|
1257 418 420
|
|
1258 (422 . 423)
|
|
1259 425 428
|
|
1260 (430 . 431)
|
|
1261 (433 . 435)
|
|
1262 437
|
|
1263 (439 . 440)
|
|
1264 444 452 455 458 461 463 465 467 469 471 473
|
|
1265 475 478 480 482 484 486 488 490 492 494 497
|
|
1266 500
|
|
1267 (502 . 504)
|
|
1268 506 508 510 512 514 516 518 520 522 524 526
|
|
1269 528 530 532 534 536 538 540 542 546 548 550
|
|
1270 552 554 556 558 560 562 902
|
|
1271 (904 . 906)
|
|
1272 908
|
|
1273 (910 . 911)
|
|
1274 (913 . 929)
|
|
1275 (931 . 939)
|
|
1276 (978 . 980)
|
|
1277 986 988 990 992 994 996 998 1000 1002 1004
|
|
1278 1006 1012
|
|
1279 (1024 . 1071)
|
|
1280 1120 1122 1124 1126 1128 1130 1132 1134 1136
|
|
1281 1138 1140 1142 1144 1146 1148 1150 1152 1164
|
|
1282 1166 1168 1170 1172 1174 1176 1178 1180 1182
|
|
1283 1184 1186 1188 1190 1192 1194 1196 1198 1200
|
|
1284 1202 1204 1206 1208 1210 1212 1214
|
|
1285 (1216 . 1217)
|
|
1286 1219 1223 1227 1232 1234 1236 1238 1240 1242
|
|
1287 1244 1246 1248 1250 1252 1254 1256 1258 1260
|
|
1288 1262 1264 1266 1268 1272
|
|
1289 (1329 . 1366)
|
|
1290 (4256 . 4293)
|
|
1291 7680 7682 7684 7686 7688 7690 7692 7694 7696
|
|
1292 7698 7700 7702 7704 7706 7708 7710 7712 7714
|
|
1293 7716 7718 7720 7722 7724 7726 7728 7730 7732
|
|
1294 7734 7736 7738 7740 7742 7744 7746 7748 7750
|
|
1295 7752 7754 7756 7758 7760 7762 7764 7766 7768
|
|
1296 7770 7772 7774 7776 7778 7780 7782 7784 7786
|
|
1297 7788 7790 7792 7794 7796 7798 7800 7802 7804
|
|
1298 7806 7808 7810 7812 7814 7816 7818 7820 7822
|
|
1299 7824 7826 7828 7840 7842 7844 7846 7848 7850
|
|
1300 7852 7854 7856 7858 7860 7862 7864 7866 7868
|
|
1301 7870 7872 7874 7876 7878 7880 7882 7884 7886
|
|
1302 7888 7890 7892 7894 7896 7898 7900 7902 7904
|
|
1303 7906 7908 7910 7912 7914 7916 7918 7920 7922
|
|
1304 7924 7926 7928
|
|
1305 (7944 . 7951)
|
|
1306 (7960 . 7965)
|
|
1307 (7976 . 7983)
|
|
1308 (7992 . 7999)
|
|
1309 (8008 . 8013)
|
|
1310 8025 8027 8029 8031
|
|
1311 (8040 . 8047)
|
|
1312 (8120 . 8123)
|
|
1313 (8136 . 8139)
|
|
1314 (8152 . 8155)
|
|
1315 (8168 . 8172)
|
|
1316 (8184 . 8187)
|
|
1317 8450 8455
|
|
1318 (8459 . 8461)
|
|
1319 (8464 . 8466)
|
|
1320 8469
|
|
1321 (8473 . 8477)
|
|
1322 8484 8486 8488
|
|
1323 (8490 . 8493)
|
|
1324 (8496 . 8497)
|
|
1325 8499
|
|
1326 (65313 . 65338)
|
|
1327 (66560 . 66597)
|
|
1328 (119808 . 119833)
|
|
1329 (119860 . 119885)
|
|
1330 (119912 . 119937)
|
|
1331 119964
|
|
1332 (119966 . 119967)
|
|
1333 119970
|
|
1334 (119973 . 119974)
|
|
1335 (119977 . 119980)
|
|
1336 (119982 . 119989)
|
|
1337 (120016 . 120041)
|
|
1338 (120068 . 120069)
|
|
1339 (120071 . 120074)
|
|
1340 (120077 . 120084)
|
|
1341 (120086 . 120092)
|
|
1342 (120120 . 120121)
|
|
1343 (120123 . 120126)
|
|
1344 (120128 . 120132)
|
|
1345 120134
|
|
1346 (120138 . 120144)
|
|
1347 (120172 . 120197)
|
|
1348 (120224 . 120249)
|
|
1349 (120276 . 120301)
|
|
1350 (120328 . 120353)
|
|
1351 (120380 . 120405)
|
|
1352 (120432 . 120457)
|
|
1353 (120488 . 120512)
|
|
1354 (120546 . 120570)
|
|
1355 (120604 . 120628)
|
|
1356 (120662 . 120686)
|
|
1357 (120720 . 120744)))
|
|
1358 (xsdre-def-primitive-category 'Ll
|
|
1359 '((97 . 122)
|
|
1360 170 181 186
|
|
1361 (223 . 246)
|
|
1362 (248 . 255)
|
|
1363 257 259 261 263 265 267 269 271 273 275 277
|
|
1364 279 281 283 285 287 289 291 293 295 297 299
|
|
1365 301 303 305 307 309
|
|
1366 (311 . 312)
|
|
1367 314 316 318 320 322 324 326
|
|
1368 (328 . 329)
|
|
1369 331 333 335 337 339 341 343 345 347 349 351
|
|
1370 353 355 357 359 361 363 365 367 369 371 373
|
|
1371 375 378 380
|
|
1372 (382 . 384)
|
|
1373 387 389 392
|
|
1374 (396 . 397)
|
|
1375 402 405
|
|
1376 (409 . 411)
|
|
1377 414 417 419 421 424
|
|
1378 (426 . 427)
|
|
1379 429 432 436 438
|
|
1380 (441 . 442)
|
|
1381 (445 . 447)
|
|
1382 454 457 460 462 464 466 468 470 472 474
|
|
1383 (476 . 477)
|
|
1384 479 481 483 485 487 489 491 493
|
|
1385 (495 . 496)
|
|
1386 499 501 505 507 509 511 513 515 517 519 521
|
|
1387 523 525 527 529 531 533 535 537 539 541 543
|
|
1388 547 549 551 553 555 557 559 561 563
|
|
1389 (592 . 685)
|
|
1390 912
|
|
1391 (940 . 974)
|
|
1392 (976 . 977)
|
|
1393 (981 . 983)
|
|
1394 987 989 991 993 995 997 999 1001 1003 1005
|
|
1395
|
|
1396 (1007 . 1011)
|
|
1397 1013
|
|
1398 (1072 . 1119)
|
|
1399 1121 1123 1125 1127 1129 1131 1133 1135 1137
|
|
1400 1139 1141 1143 1145 1147 1149 1151 1153 1165
|
|
1401 1167 1169 1171 1173 1175 1177 1179 1181 1183
|
|
1402 1185 1187 1189 1191 1193 1195 1197 1199 1201
|
|
1403 1203 1205 1207 1209 1211 1213 1215 1218 1220
|
|
1404 1224 1228 1233 1235 1237 1239 1241 1243 1245
|
|
1405 1247 1249 1251 1253 1255 1257 1259 1261 1263
|
|
1406 1265 1267 1269 1273
|
|
1407 (1377 . 1415)
|
|
1408 7681 7683 7685 7687 7689 7691 7693 7695 7697
|
|
1409 7699 7701 7703 7705 7707 7709 7711 7713 7715
|
|
1410 7717 7719 7721 7723 7725 7727 7729 7731 7733
|
|
1411 7735 7737 7739 7741 7743 7745 7747 7749 7751
|
|
1412 7753 7755 7757 7759 7761 7763 7765 7767 7769
|
|
1413 7771 7773 7775 7777 7779 7781 7783 7785 7787
|
|
1414 7789 7791 7793 7795 7797 7799 7801 7803 7805
|
|
1415 7807 7809 7811 7813 7815 7817 7819 7821 7823
|
|
1416 7825 7827
|
|
1417 (7829 . 7835)
|
|
1418 7841 7843 7845 7847 7849 7851 7853 7855 7857
|
|
1419 7859 7861 7863 7865 7867 7869 7871 7873 7875
|
|
1420 7877 7879 7881 7883 7885 7887 7889 7891 7893
|
|
1421 7895 7897 7899 7901 7903 7905 7907 7909 7911
|
|
1422 7913 7915 7917 7919 7921 7923 7925 7927 7929
|
|
1423
|
|
1424 (7936 . 7943)
|
|
1425 (7952 . 7957)
|
|
1426 (7968 . 7975)
|
|
1427 (7984 . 7991)
|
|
1428 (8000 . 8005)
|
|
1429 (8016 . 8023)
|
|
1430 (8032 . 8039)
|
|
1431 (8048 . 8061)
|
|
1432 (8064 . 8071)
|
|
1433 (8080 . 8087)
|
|
1434 (8096 . 8103)
|
|
1435 (8112 . 8116)
|
|
1436 (8118 . 8119)
|
|
1437 8126
|
|
1438 (8130 . 8132)
|
|
1439 (8134 . 8135)
|
|
1440 (8144 . 8147)
|
|
1441 (8150 . 8151)
|
|
1442 (8160 . 8167)
|
|
1443 (8178 . 8180)
|
|
1444 (8182 . 8183)
|
|
1445 8319 8458
|
|
1446 (8462 . 8463)
|
|
1447 8467 8495 8500 8505
|
|
1448 (64256 . 64262)
|
|
1449 (64275 . 64279)
|
|
1450 (65345 . 65370)
|
|
1451 (66600 . 66637)
|
|
1452 (119834 . 119859)
|
|
1453 (119886 . 119892)
|
|
1454 (119894 . 119911)
|
|
1455 (119938 . 119963)
|
|
1456 (119990 . 119993)
|
|
1457 119995
|
|
1458 (119997 . 120000)
|
|
1459 (120002 . 120003)
|
|
1460 (120005 . 120015)
|
|
1461 (120042 . 120067)
|
|
1462 (120094 . 120119)
|
|
1463 (120146 . 120171)
|
|
1464 (120198 . 120223)
|
|
1465 (120250 . 120275)
|
|
1466 (120302 . 120327)
|
|
1467 (120354 . 120379)
|
|
1468 (120406 . 120431)
|
|
1469 (120458 . 120483)
|
|
1470 (120514 . 120538)
|
|
1471 (120540 . 120545)
|
|
1472 (120572 . 120596)
|
|
1473 (120598 . 120603)
|
|
1474 (120630 . 120654)
|
|
1475 (120656 . 120661)
|
|
1476 (120688 . 120712)
|
|
1477 (120714 . 120719)
|
|
1478 (120746 . 120770)
|
|
1479 (120772 . 120777)))
|
|
1480 (xsdre-def-primitive-category 'Lt
|
|
1481 '(453 456 459 498
|
|
1482 (8072 . 8079)
|
|
1483 (8088 . 8095)
|
|
1484 (8104 . 8111)
|
|
1485 8124 8140 8188))
|
|
1486 (xsdre-def-primitive-category 'Lm
|
|
1487 '((688 . 696)
|
|
1488 (699 . 705)
|
|
1489 (720 . 721)
|
|
1490 (736 . 740)
|
|
1491 750 890 1369 1600
|
|
1492 (1765 . 1766)
|
|
1493 3654 3782 6211 12293
|
|
1494 (12337 . 12341)
|
|
1495 (12445 . 12446)
|
|
1496 (12540 . 12542)
|
|
1497 65392
|
|
1498 (65438 . 65439)))
|
|
1499 (xsdre-def-primitive-category 'Lo
|
|
1500 '(443
|
|
1501 (448 . 451)
|
|
1502 (1488 . 1514)
|
|
1503 (1520 . 1522)
|
|
1504 (1569 . 1594)
|
|
1505 (1601 . 1610)
|
|
1506 (1649 . 1747)
|
|
1507 1749
|
|
1508 (1786 . 1788)
|
|
1509 1808
|
|
1510 (1810 . 1836)
|
|
1511 (1920 . 1957)
|
|
1512 (2309 . 2361)
|
|
1513 2365 2384
|
|
1514 (2392 . 2401)
|
|
1515 (2437 . 2444)
|
|
1516 (2447 . 2448)
|
|
1517 (2451 . 2472)
|
|
1518 (2474 . 2480)
|
|
1519 2482
|
|
1520 (2486 . 2489)
|
|
1521 (2524 . 2525)
|
|
1522 (2527 . 2529)
|
|
1523 (2544 . 2545)
|
|
1524 (2565 . 2570)
|
|
1525 (2575 . 2576)
|
|
1526 (2579 . 2600)
|
|
1527 (2602 . 2608)
|
|
1528 (2610 . 2611)
|
|
1529 (2613 . 2614)
|
|
1530 (2616 . 2617)
|
|
1531 (2649 . 2652)
|
|
1532 2654
|
|
1533 (2674 . 2676)
|
|
1534 (2693 . 2699)
|
|
1535 2701
|
|
1536 (2703 . 2705)
|
|
1537 (2707 . 2728)
|
|
1538 (2730 . 2736)
|
|
1539 (2738 . 2739)
|
|
1540 (2741 . 2745)
|
|
1541 2749 2768 2784
|
|
1542 (2821 . 2828)
|
|
1543 (2831 . 2832)
|
|
1544 (2835 . 2856)
|
|
1545 (2858 . 2864)
|
|
1546 (2866 . 2867)
|
|
1547 (2870 . 2873)
|
|
1548 2877
|
|
1549 (2908 . 2909)
|
|
1550 (2911 . 2913)
|
|
1551 (2949 . 2954)
|
|
1552 (2958 . 2960)
|
|
1553 (2962 . 2965)
|
|
1554 (2969 . 2970)
|
|
1555 2972
|
|
1556 (2974 . 2975)
|
|
1557 (2979 . 2980)
|
|
1558 (2984 . 2986)
|
|
1559 (2990 . 2997)
|
|
1560 (2999 . 3001)
|
|
1561 (3077 . 3084)
|
|
1562 (3086 . 3088)
|
|
1563 (3090 . 3112)
|
|
1564 (3114 . 3123)
|
|
1565 (3125 . 3129)
|
|
1566 (3168 . 3169)
|
|
1567 (3205 . 3212)
|
|
1568 (3214 . 3216)
|
|
1569 (3218 . 3240)
|
|
1570 (3242 . 3251)
|
|
1571 (3253 . 3257)
|
|
1572 3294
|
|
1573 (3296 . 3297)
|
|
1574 (3333 . 3340)
|
|
1575 (3342 . 3344)
|
|
1576 (3346 . 3368)
|
|
1577 (3370 . 3385)
|
|
1578 (3424 . 3425)
|
|
1579 (3461 . 3478)
|
|
1580 (3482 . 3505)
|
|
1581 (3507 . 3515)
|
|
1582 3517
|
|
1583 (3520 . 3526)
|
|
1584 (3585 . 3632)
|
|
1585 (3634 . 3635)
|
|
1586 (3648 . 3653)
|
|
1587 (3713 . 3714)
|
|
1588 3716
|
|
1589 (3719 . 3720)
|
|
1590 3722 3725
|
|
1591 (3732 . 3735)
|
|
1592 (3737 . 3743)
|
|
1593 (3745 . 3747)
|
|
1594 3749 3751
|
|
1595 (3754 . 3755)
|
|
1596 (3757 . 3760)
|
|
1597 (3762 . 3763)
|
|
1598 3773
|
|
1599 (3776 . 3780)
|
|
1600 (3804 . 3805)
|
|
1601 3840
|
|
1602 (3904 . 3911)
|
|
1603 (3913 . 3946)
|
|
1604 (3976 . 3979)
|
|
1605 (4096 . 4129)
|
|
1606 (4131 . 4135)
|
|
1607 (4137 . 4138)
|
|
1608 (4176 . 4181)
|
|
1609 (4304 . 4342)
|
|
1610 (4352 . 4441)
|
|
1611 (4447 . 4514)
|
|
1612 (4520 . 4601)
|
|
1613 (4608 . 4614)
|
|
1614 (4616 . 4678)
|
|
1615 4680
|
|
1616 (4682 . 4685)
|
|
1617 (4688 . 4694)
|
|
1618 4696
|
|
1619 (4698 . 4701)
|
|
1620 (4704 . 4742)
|
|
1621 4744
|
|
1622 (4746 . 4749)
|
|
1623 (4752 . 4782)
|
|
1624 4784
|
|
1625 (4786 . 4789)
|
|
1626 (4792 . 4798)
|
|
1627 4800
|
|
1628 (4802 . 4805)
|
|
1629 (4808 . 4814)
|
|
1630 (4816 . 4822)
|
|
1631 (4824 . 4846)
|
|
1632 (4848 . 4878)
|
|
1633 4880
|
|
1634 (4882 . 4885)
|
|
1635 (4888 . 4894)
|
|
1636 (4896 . 4934)
|
|
1637 (4936 . 4954)
|
|
1638 (5024 . 5108)
|
|
1639 (5121 . 5740)
|
|
1640 (5743 . 5750)
|
|
1641 (5761 . 5786)
|
|
1642 (5792 . 5866)
|
|
1643 (6016 . 6067)
|
|
1644 (6176 . 6210)
|
|
1645 (6212 . 6263)
|
|
1646 (6272 . 6312)
|
|
1647 (8501 . 8504)
|
|
1648 12294
|
|
1649 (12353 . 12436)
|
|
1650 (12449 . 12538)
|
|
1651 (12549 . 12588)
|
|
1652 (12593 . 12686)
|
|
1653 (12704 . 12727)
|
|
1654 (13312 . 19893)
|
|
1655 (19968 . 40869)
|
|
1656 (40960 . 42124)
|
|
1657 (44032 . 55203)
|
|
1658 (63744 . 64045)
|
|
1659 64285
|
|
1660 (64287 . 64296)
|
|
1661 (64298 . 64310)
|
|
1662 (64312 . 64316)
|
|
1663 64318
|
|
1664 (64320 . 64321)
|
|
1665 (64323 . 64324)
|
|
1666 (64326 . 64433)
|
|
1667 (64467 . 64829)
|
|
1668 (64848 . 64911)
|
|
1669 (64914 . 64967)
|
|
1670 (65008 . 65019)
|
|
1671 (65136 . 65138)
|
|
1672 65140
|
|
1673 (65142 . 65276)
|
|
1674 (65382 . 65391)
|
|
1675 (65393 . 65437)
|
|
1676 (65440 . 65470)
|
|
1677 (65474 . 65479)
|
|
1678 (65482 . 65487)
|
|
1679 (65490 . 65495)
|
|
1680 (65498 . 65500)
|
|
1681 (66304 . 66334)
|
|
1682 (66352 . 66377)
|
|
1683 (131072 . 173782)
|
|
1684 (194560 . 195101)))
|
|
1685 (xsdre-def-primitive-category 'Mn
|
|
1686 '((768 . 846)
|
|
1687 (864 . 866)
|
|
1688 (1155 . 1158)
|
|
1689 (1425 . 1441)
|
|
1690 (1443 . 1465)
|
|
1691 (1467 . 1469)
|
|
1692 1471
|
|
1693 (1473 . 1474)
|
|
1694 1476
|
|
1695 (1611 . 1621)
|
|
1696 1648
|
|
1697 (1750 . 1756)
|
|
1698 (1759 . 1764)
|
|
1699 (1767 . 1768)
|
|
1700 (1770 . 1773)
|
|
1701 1809
|
|
1702 (1840 . 1866)
|
|
1703 (1958 . 1968)
|
|
1704 (2305 . 2306)
|
|
1705 2364
|
|
1706 (2369 . 2376)
|
|
1707 2381
|
|
1708 (2385 . 2388)
|
|
1709 (2402 . 2403)
|
|
1710 2433 2492
|
|
1711 (2497 . 2500)
|
|
1712 2509
|
|
1713 (2530 . 2531)
|
|
1714 2562 2620
|
|
1715 (2625 . 2626)
|
|
1716 (2631 . 2632)
|
|
1717 (2635 . 2637)
|
|
1718 (2672 . 2673)
|
|
1719 (2689 . 2690)
|
|
1720 2748
|
|
1721 (2753 . 2757)
|
|
1722 (2759 . 2760)
|
|
1723 2765 2817 2876 2879
|
|
1724 (2881 . 2883)
|
|
1725 2893 2902 2946 3008 3021
|
|
1726 (3134 . 3136)
|
|
1727 (3142 . 3144)
|
|
1728 (3146 . 3149)
|
|
1729 (3157 . 3158)
|
|
1730 3263 3270
|
|
1731 (3276 . 3277)
|
|
1732 (3393 . 3395)
|
|
1733 3405 3530
|
|
1734 (3538 . 3540)
|
|
1735 3542 3633
|
|
1736 (3636 . 3642)
|
|
1737 (3655 . 3662)
|
|
1738 3761
|
|
1739 (3764 . 3769)
|
|
1740 (3771 . 3772)
|
|
1741 (3784 . 3789)
|
|
1742 (3864 . 3865)
|
|
1743 3893 3895 3897
|
|
1744 (3953 . 3966)
|
|
1745 (3968 . 3972)
|
|
1746 (3974 . 3975)
|
|
1747 (3984 . 3991)
|
|
1748 (3993 . 4028)
|
|
1749 4038
|
|
1750 (4141 . 4144)
|
|
1751 4146
|
|
1752 (4150 . 4151)
|
|
1753 4153
|
|
1754 (4184 . 4185)
|
|
1755 (6071 . 6077)
|
|
1756 6086
|
|
1757 (6089 . 6099)
|
|
1758 6313
|
|
1759 (8400 . 8412)
|
|
1760 8417
|
|
1761 (12330 . 12335)
|
|
1762 (12441 . 12442)
|
|
1763 64286
|
|
1764 (65056 . 65059)
|
|
1765 (119143 . 119145)
|
|
1766 (119163 . 119170)
|
|
1767 (119173 . 119179)
|
|
1768 (119210 . 119213)))
|
|
1769 (xsdre-def-primitive-category 'Mc
|
|
1770 '(2307
|
|
1771 (2366 . 2368)
|
|
1772 (2377 . 2380)
|
|
1773 (2434 . 2435)
|
|
1774 (2494 . 2496)
|
|
1775 (2503 . 2504)
|
|
1776 (2507 . 2508)
|
|
1777 2519
|
|
1778 (2622 . 2624)
|
|
1779 2691
|
|
1780 (2750 . 2752)
|
|
1781 2761
|
|
1782 (2763 . 2764)
|
|
1783 (2818 . 2819)
|
|
1784 2878 2880
|
|
1785 (2887 . 2888)
|
|
1786 (2891 . 2892)
|
|
1787 2903 2947
|
|
1788 (3006 . 3007)
|
|
1789 (3009 . 3010)
|
|
1790 (3014 . 3016)
|
|
1791 (3018 . 3020)
|
|
1792 3031
|
|
1793 (3073 . 3075)
|
|
1794 (3137 . 3140)
|
|
1795 (3202 . 3203)
|
|
1796 3262
|
|
1797 (3264 . 3268)
|
|
1798 (3271 . 3272)
|
|
1799 (3274 . 3275)
|
|
1800 (3285 . 3286)
|
|
1801 (3330 . 3331)
|
|
1802 (3390 . 3392)
|
|
1803 (3398 . 3400)
|
|
1804 (3402 . 3404)
|
|
1805 3415
|
|
1806 (3458 . 3459)
|
|
1807 (3535 . 3537)
|
|
1808 (3544 . 3551)
|
|
1809 (3570 . 3571)
|
|
1810 (3902 . 3903)
|
|
1811 3967 4140 4145 4152
|
|
1812 (4182 . 4183)
|
|
1813 (6068 . 6070)
|
|
1814 (6078 . 6085)
|
|
1815 (6087 . 6088)
|
|
1816 (119141 . 119142)
|
|
1817 (119149 . 119154)))
|
|
1818 (xsdre-def-primitive-category 'Me
|
|
1819 '((1160 . 1161)
|
|
1820 (1757 . 1758)
|
|
1821 (8413 . 8416)
|
|
1822 (8418 . 8419)))
|
|
1823 (xsdre-def-primitive-category 'Nd
|
|
1824 '((48 . 57)
|
|
1825 (1632 . 1641)
|
|
1826 (1776 . 1785)
|
|
1827 (2406 . 2415)
|
|
1828 (2534 . 2543)
|
|
1829 (2662 . 2671)
|
|
1830 (2790 . 2799)
|
|
1831 (2918 . 2927)
|
|
1832 (3047 . 3055)
|
|
1833 (3174 . 3183)
|
|
1834 (3302 . 3311)
|
|
1835 (3430 . 3439)
|
|
1836 (3664 . 3673)
|
|
1837 (3792 . 3801)
|
|
1838 (3872 . 3881)
|
|
1839 (4160 . 4169)
|
|
1840 (4969 . 4977)
|
|
1841 (6112 . 6121)
|
|
1842 (6160 . 6169)
|
|
1843 (65296 . 65305)
|
|
1844 (120782 . 120831)))
|
|
1845 (xsdre-def-primitive-category 'Nl
|
|
1846 '((5870 . 5872)
|
|
1847 (8544 . 8579)
|
|
1848 12295
|
|
1849 (12321 . 12329)
|
|
1850 (12344 . 12346)
|
|
1851 66378))
|
|
1852 (xsdre-def-primitive-category 'No
|
|
1853 '((178 . 179)
|
|
1854 185
|
|
1855 (188 . 190)
|
|
1856 (2548 . 2553)
|
|
1857 (3056 . 3058)
|
|
1858 (3882 . 3891)
|
|
1859 (4978 . 4988)
|
|
1860 8304
|
|
1861 (8308 . 8313)
|
|
1862 (8320 . 8329)
|
|
1863 (8531 . 8543)
|
|
1864 (9312 . 9371)
|
|
1865 9450
|
|
1866 (10102 . 10131)
|
|
1867 (12690 . 12693)
|
|
1868 (12832 . 12841)
|
|
1869 (12928 . 12937)
|
|
1870 (66336 . 66339)))
|
|
1871 (xsdre-def-primitive-category 'Pc
|
|
1872 '(95
|
|
1873 (8255 . 8256)
|
|
1874 12539
|
|
1875 (65075 . 65076)
|
|
1876 (65101 . 65103)
|
|
1877 65343 65381))
|
|
1878 (xsdre-def-primitive-category 'Pd
|
|
1879 '(45 173 1418 6150
|
|
1880 (8208 . 8213)
|
|
1881 12316 12336
|
|
1882 (65073 . 65074)
|
|
1883 65112 65123 65293))
|
|
1884 (xsdre-def-primitive-category 'Ps
|
|
1885 '(40 91 123 3898 3900 5787 8218 8222 8261 8317
|
|
1886 8333 9001 12296 12298 12300 12302 12304
|
|
1887 12308 12310 12312 12314 12317 64830 65077
|
|
1888 65079 65081 65083 65085 65087 65089 65091
|
|
1889 65113 65115 65117 65288 65339 65371 65378))
|
|
1890 (xsdre-def-primitive-category 'Pe
|
|
1891 '(41 93 125 3899 3901 5788 8262 8318 8334 9002
|
|
1892 12297 12299 12301 12303 12305 12309 12311
|
|
1893 12313 12315
|
|
1894 (12318 . 12319)
|
|
1895 64831 65078 65080 65082 65084 65086 65088
|
|
1896 65090 65092 65114 65116 65118 65289 65341
|
|
1897 65373 65379))
|
|
1898 (xsdre-def-primitive-category 'Pi
|
|
1899 '(171 8216
|
|
1900 (8219 . 8220)
|
|
1901 8223 8249))
|
|
1902 (xsdre-def-primitive-category 'Pf
|
|
1903 '(187 8217 8221 8250))
|
|
1904 (xsdre-def-primitive-category 'Po
|
|
1905 '((33 . 35)
|
|
1906 (37 . 39)
|
|
1907 42 44
|
|
1908 (46 . 47)
|
|
1909 (58 . 59)
|
|
1910 (63 . 64)
|
|
1911 92 161 183 191 894 903
|
|
1912 (1370 . 1375)
|
|
1913 1417 1470 1472 1475
|
|
1914 (1523 . 1524)
|
|
1915 1548 1563 1567
|
|
1916 (1642 . 1645)
|
|
1917 1748
|
|
1918 (1792 . 1805)
|
|
1919 (2404 . 2405)
|
|
1920 2416 3572 3663
|
|
1921 (3674 . 3675)
|
|
1922 (3844 . 3858)
|
|
1923 3973
|
|
1924 (4170 . 4175)
|
|
1925 4347
|
|
1926 (4961 . 4968)
|
|
1927 (5741 . 5742)
|
|
1928 (5867 . 5869)
|
|
1929 (6100 . 6106)
|
|
1930 6108
|
|
1931 (6144 . 6149)
|
|
1932 (6151 . 6154)
|
|
1933 (8214 . 8215)
|
|
1934 (8224 . 8231)
|
|
1935 (8240 . 8248)
|
|
1936 (8251 . 8254)
|
|
1937 (8257 . 8259)
|
|
1938 (8264 . 8269)
|
|
1939 (12289 . 12291)
|
|
1940 65072
|
|
1941 (65097 . 65100)
|
|
1942 (65104 . 65106)
|
|
1943 (65108 . 65111)
|
|
1944 (65119 . 65121)
|
|
1945 65128
|
|
1946 (65130 . 65131)
|
|
1947 (65281 . 65283)
|
|
1948 (65285 . 65287)
|
|
1949 65290 65292
|
|
1950 (65294 . 65295)
|
|
1951 (65306 . 65307)
|
|
1952 (65311 . 65312)
|
|
1953 65340 65377 65380))
|
|
1954 (xsdre-def-primitive-category 'Zs
|
|
1955 '(32 160 5760
|
|
1956 (8192 . 8203)
|
|
1957 8239 12288))
|
|
1958 (xsdre-def-primitive-category 'Zl
|
|
1959 '(8232))
|
|
1960 (xsdre-def-primitive-category 'Zp
|
|
1961 '(8233))
|
|
1962 (xsdre-def-primitive-category 'Sm
|
|
1963 '(43
|
|
1964 (60 . 62)
|
|
1965 124 126 172 177 215 247 8260
|
|
1966 (8314 . 8316)
|
|
1967 (8330 . 8332)
|
|
1968 (8592 . 8596)
|
|
1969 (8602 . 8603)
|
|
1970 8608 8611 8614 8622
|
|
1971 (8654 . 8655)
|
|
1972 8658 8660
|
|
1973 (8704 . 8945)
|
|
1974 (8968 . 8971)
|
|
1975 (8992 . 8993)
|
|
1976 9655 9665 9839 64297 65122
|
|
1977 (65124 . 65126)
|
|
1978 65291
|
|
1979 (65308 . 65310)
|
|
1980 65372 65374 65506
|
|
1981 (65513 . 65516)
|
|
1982 120513 120539 120571 120597 120629 120655
|
|
1983 120687 120713 120745 120771))
|
|
1984 (xsdre-def-primitive-category 'Sc
|
|
1985 '(36
|
|
1986 (162 . 165)
|
|
1987 (2546 . 2547)
|
|
1988 3647 6107
|
|
1989 (8352 . 8367)
|
|
1990 65129 65284
|
|
1991 (65504 . 65505)
|
|
1992 (65509 . 65510)))
|
|
1993 (xsdre-def-primitive-category 'Sk
|
|
1994 '(94 96 168 175 180 184
|
|
1995 (697 . 698)
|
|
1996 (706 . 719)
|
|
1997 (722 . 735)
|
|
1998 (741 . 749)
|
|
1999 (884 . 885)
|
|
2000 (900 . 901)
|
|
2001 8125
|
|
2002 (8127 . 8129)
|
|
2003 (8141 . 8143)
|
|
2004 (8157 . 8159)
|
|
2005 (8173 . 8175)
|
|
2006 (8189 . 8190)
|
|
2007 (12443 . 12444)
|
|
2008 65342 65344 65507))
|
|
2009 (xsdre-def-primitive-category 'So
|
|
2010 '((166 . 167)
|
|
2011 169 174 176 182 1154 1769
|
|
2012 (1789 . 1790)
|
|
2013 2554 2928
|
|
2014 (3841 . 3843)
|
|
2015 (3859 . 3863)
|
|
2016 (3866 . 3871)
|
|
2017 3892 3894 3896
|
|
2018 (4030 . 4037)
|
|
2019 (4039 . 4044)
|
|
2020 4047
|
|
2021 (8448 . 8449)
|
|
2022 (8451 . 8454)
|
|
2023 (8456 . 8457)
|
|
2024 8468
|
|
2025 (8470 . 8472)
|
|
2026 (8478 . 8483)
|
|
2027 8485 8487 8489 8494 8498 8506
|
|
2028 (8597 . 8601)
|
|
2029 (8604 . 8607)
|
|
2030 (8609 . 8610)
|
|
2031 (8612 . 8613)
|
|
2032 (8615 . 8621)
|
|
2033 (8623 . 8653)
|
|
2034 (8656 . 8657)
|
|
2035 8659
|
|
2036 (8661 . 8691)
|
|
2037 (8960 . 8967)
|
|
2038 (8972 . 8991)
|
|
2039 (8994 . 9000)
|
|
2040 (9003 . 9083)
|
|
2041 (9085 . 9114)
|
|
2042 (9216 . 9254)
|
|
2043 (9280 . 9290)
|
|
2044 (9372 . 9449)
|
|
2045 (9472 . 9621)
|
|
2046 (9632 . 9654)
|
|
2047 (9656 . 9664)
|
|
2048 (9666 . 9719)
|
|
2049 (9728 . 9747)
|
|
2050 (9753 . 9838)
|
|
2051 (9840 . 9841)
|
|
2052 (9985 . 9988)
|
|
2053 (9990 . 9993)
|
|
2054 (9996 . 10023)
|
|
2055 (10025 . 10059)
|
|
2056 10061
|
|
2057 (10063 . 10066)
|
|
2058 10070
|
|
2059 (10072 . 10078)
|
|
2060 (10081 . 10087)
|
|
2061 10132
|
|
2062 (10136 . 10159)
|
|
2063 (10161 . 10174)
|
|
2064 (10240 . 10495)
|
|
2065 (11904 . 11929)
|
|
2066 (11931 . 12019)
|
|
2067 (12032 . 12245)
|
|
2068 (12272 . 12283)
|
|
2069 12292
|
|
2070 (12306 . 12307)
|
|
2071 12320
|
|
2072 (12342 . 12343)
|
|
2073 (12350 . 12351)
|
|
2074 (12688 . 12689)
|
|
2075 (12694 . 12703)
|
|
2076 (12800 . 12828)
|
|
2077 (12842 . 12867)
|
|
2078 (12896 . 12923)
|
|
2079 12927
|
|
2080 (12938 . 12976)
|
|
2081 (12992 . 13003)
|
|
2082 (13008 . 13054)
|
|
2083 (13056 . 13174)
|
|
2084 (13179 . 13277)
|
|
2085 (13280 . 13310)
|
|
2086 (42128 . 42145)
|
|
2087 (42148 . 42163)
|
|
2088 (42165 . 42176)
|
|
2089 (42178 . 42180)
|
|
2090 42182 65508 65512
|
|
2091 (65517 . 65518)
|
|
2092 (65532 . 65533)
|
|
2093 (118784 . 119029)
|
|
2094 (119040 . 119078)
|
|
2095 (119082 . 119140)
|
|
2096 (119146 . 119148)
|
|
2097 (119171 . 119172)
|
|
2098 (119180 . 119209)
|
|
2099 (119214 . 119261)))
|
|
2100 (xsdre-def-primitive-category 'Cc
|
|
2101 '((0 . 31)
|
|
2102 (127 . 159)))
|
|
2103 (xsdre-def-primitive-category 'Cf
|
|
2104 '(1807
|
|
2105 (6155 . 6158)
|
|
2106 (8204 . 8207)
|
|
2107 (8234 . 8238)
|
|
2108 (8298 . 8303)
|
|
2109 65279
|
|
2110 (65529 . 65531)
|
|
2111 (119155 . 119162)
|
|
2112 917505
|
|
2113 (917536 . 917631)))
|
|
2114 (xsdre-def-primitive-category 'Co
|
|
2115 '((57344 . 63743)
|
|
2116 (983040 . 1048573)
|
|
2117 (1048576 . 1114109)))
|
|
2118
|
|
2119 (provide 'xsd-regexp)
|
|
2120
|
86379
|
2121 ;; arch-tag: bf990d61-a26c-4fd3-b578-56a5640729da
|
86361
|
2122 ;;; xsd-regexp.el ends here
|