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