HOME


sh-3ll 1.0
DIR:/proc/self/root/usr/share/emacs/26.1/lisp/nxml/
Upload File :
Current File : //proc/self/root/usr/share/emacs/26.1/lisp/nxml/rng-match.elc
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\207" [require rng-pttrn rng-util rng-dt] 2)
(defvar rng-not-allowed-ipattern nil)
(defvar rng-empty-ipattern nil)
(defvar rng-text-ipattern nil)
(defvar rng-compile-table nil)
#@104 Contains a list of ref patterns currently being compiled.
Used to detect invalid recursive references.
(defvar rng-being-compiled nil (#$ . 633))
(defvar rng-ipattern-table nil)
(defvar rng-last-ipattern-index nil)
#@59 An ipattern representing the current state of validation.
(defvar rng-match-state nil (#$ . 854))
#@18 

(fn NEW-STATE)
(defalias 'rng-update-match-state #[257 "\211=\203\n	=\207\211\302\207" [rng-not-allowed-ipattern rng-match-state t] 3 (#$ . 958)])
(put 'rng-update-match-state 'byte-optimizer 'byte-compile-inline-expand)
#@75 compiler-macro for inlining `rng--ipattern-type'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-type--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-type (aref cl-x 0)) nil] 9 (#$ . 1191)])
(put 'rng--ipattern-type 'compiler-macro 'rng--ipattern-type--cmacro)
#@185 Access slot "type" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-type #[257 "\211\300H\207" [0] 3 (#$ . 1514)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-type side-effect-free t] 4)
#@76 compiler-macro for inlining `rng--ipattern-index'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-index--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-index (aref cl-x 1)) nil] 9 (#$ . 1871)])
(put 'rng--ipattern-index 'compiler-macro 'rng--ipattern-index--cmacro)
#@186 Access slot "index" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-index #[257 "\211\300H\207" [1] 3 (#$ . 2199)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-index side-effect-free t] 4)
#@81 compiler-macro for inlining `rng--ipattern-name-class'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-name-class--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-name-class (aref cl-x 2)) nil] 9 (#$ . 2559)])
(put 'rng--ipattern-name-class 'compiler-macro 'rng--ipattern-name-class--cmacro)
#@191 Access slot "name-class" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-name-class #[257 "\211\300H\207" [2] 3 (#$ . 2912)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-name-class side-effect-free t] 4)
#@76 compiler-macro for inlining `rng--ipattern-child'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-child--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-child (aref cl-x 3)) nil] 9 (#$ . 3287)])
(put 'rng--ipattern-child 'compiler-macro 'rng--ipattern-child--cmacro)
#@186 Access slot "child" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-child #[257 "\211\300H\207" [3] 3 (#$ . 3615)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-child side-effect-free t] 4)
#@79 compiler-macro for inlining `rng--ipattern-nullable'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-nullable--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-nullable (aref cl-x 4)) nil] 9 (#$ . 3975)])
(put 'rng--ipattern-nullable 'compiler-macro 'rng--ipattern-nullable--cmacro)
#@189 Access slot "nullable" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-nullable #[257 "\211\300H\207" [4] 3 (#$ . 4318)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-nullable side-effect-free t] 4)
#@86 compiler-macro for inlining `rng--ipattern-memo-text-typed'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-text-typed--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-text-typed (aref cl-x 5)) nil] 9 (#$ . 4687)])
(put 'rng--ipattern-memo-text-typed 'compiler-macro 'rng--ipattern-memo-text-typed--cmacro)
#@196 Access slot "memo-text-typed" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-text-typed #[257 "\211\300H\207" [5] 3 (#$ . 5065)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-text-typed side-effect-free t] 4)
#@100 compiler-macro for inlining `rng--ipattern-memo-map-start-tag-open-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-map-start-tag-open-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-map-start-tag-open-deriv (aref cl-x 6)) nil] 9 (#$ . 5456)])
(put 'rng--ipattern-memo-map-start-tag-open-deriv 'compiler-macro 'rng--ipattern-memo-map-start-tag-open-deriv--cmacro)
#@210 Access slot "memo-map-start-tag-open-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-map-start-tag-open-deriv #[257 "\211\300H\207" [6] 3 (#$ . 5904)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-map-start-tag-open-deriv side-effect-free t] 4)
#@101 compiler-macro for inlining `rng--ipattern-memo-map-start-attribute-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-map-start-attribute-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-map-start-attribute-deriv (aref cl-x 7)) nil] 9 (#$ . 6337)])
(put 'rng--ipattern-memo-map-start-attribute-deriv 'compiler-macro 'rng--ipattern-memo-map-start-attribute-deriv--cmacro)
#@211 Access slot "memo-map-start-attribute-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-map-start-attribute-deriv #[257 "\211\300H\207" [7] 3 (#$ . 6790)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-map-start-attribute-deriv side-effect-free t] 4)
#@97 compiler-macro for inlining `rng--ipattern-memo-start-tag-close-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-start-tag-close-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-start-tag-close-deriv (aref cl-x 8)) nil] 9 (#$ . 7225)])
(put 'rng--ipattern-memo-start-tag-close-deriv 'compiler-macro 'rng--ipattern-memo-start-tag-close-deriv--cmacro)
#@207 Access slot "memo-start-tag-close-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-start-tag-close-deriv #[257 "\211\300H\207" [8] 3 (#$ . 7658)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-start-tag-close-deriv side-effect-free t] 4)
#@91 compiler-macro for inlining `rng--ipattern-memo-text-only-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-text-only-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-text-only-deriv (aref cl-x 9)) nil] 9 (#$ . 8081)])
(put 'rng--ipattern-memo-text-only-deriv 'compiler-macro 'rng--ipattern-memo-text-only-deriv--cmacro)
#@201 Access slot "memo-text-only-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-text-only-deriv #[257 "\211\300H\207" [9] 3 (#$ . 8484)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-text-only-deriv side-effect-free t] 4)
#@92 compiler-macro for inlining `rng--ipattern-memo-mixed-text-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-mixed-text-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-mixed-text-deriv (aref cl-x 10)) nil] 9 (#$ . 8889)])
(put 'rng--ipattern-memo-mixed-text-deriv 'compiler-macro 'rng--ipattern-memo-mixed-text-deriv--cmacro)
#@202 Access slot "memo-mixed-text-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-mixed-text-deriv #[257 "\211\300H\207" [10] 3 (#$ . 9298)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-mixed-text-deriv side-effect-free t] 4)
#@90 compiler-macro for inlining `rng--ipattern-memo-map-data-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-map-data-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-map-data-deriv (aref cl-x 11)) nil] 9 (#$ . 9707)])
(put 'rng--ipattern-memo-map-data-deriv 'compiler-macro 'rng--ipattern-memo-map-data-deriv--cmacro)
#@200 Access slot "memo-map-data-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-map-data-deriv #[257 "\211\300H\207" [11] 3 (#$ . 10106)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-map-data-deriv side-effect-free t] 4)
#@89 compiler-macro for inlining `rng--ipattern-memo-end-tag-deriv'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'rng--ipattern-memo-end-tag-deriv--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block rng--ipattern-memo-end-tag-deriv (aref cl-x 12)) nil] 9 (#$ . 10510)])
(put 'rng--ipattern-memo-end-tag-deriv 'compiler-macro 'rng--ipattern-memo-end-tag-deriv--cmacro)
#@199 Access slot "memo-end-tag-deriv" of `(rng--ipattern (:constructor nil) (:type vector) (:copier nil) (:constructor rng-make-ipattern (type index name-class child nullable)))' struct CL-X.

(fn CL-X)
(defalias 'rng--ipattern-memo-end-tag-deriv #[257 "\211\300H\207" [12] 3 (#$ . 10905)])
(byte-code "\300\301\302\303#\300\207" [function-put rng--ipattern-memo-end-tag-deriv side-effect-free t] 4)
#@106 compiler-macro for inlining `rng-make-ipattern'.

(fn CL-WHOLE-ARG TYPE INDEX NAME-CLASS CHILD NULLABLE)
(defalias 'rng-make-ipattern--cmacro #[1542 "\300\301\302\303\211\211\n\n\n\n\n&\n\207" [cl--defsubst-expand (type index name-class child nullable) (cl-block rng-make-ipattern (vector type index name-class child nullable 'unknown nil nil nil nil nil nil nil)) nil] 17 (#$ . 11307)])
(put 'rng-make-ipattern 'compiler-macro 'rng-make-ipattern--cmacro)
#@93 Constructor for objects of type `rng--ipattern'.

(fn TYPE INDEX NAME-CLASS CHILD NULLABLE)
(defalias 'rng-make-ipattern #[1285 "\300\301\302\211\211\211\211\211\211&
\207" [vector unknown nil] 19 (#$ . 11774)])
(byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306&	\210\312\313\314\"\210\312\315\314\"\210\312\316\317\"\207" [function-put rng-make-ipattern side-effect-free t cl-struct-define rng--ipattern nil vector ((type) (index) (name-class) (child) (nullable) (memo-text-typed 'unknown) (memo-map-start-tag-open-deriv) (memo-map-start-attribute-deriv) (memo-start-tag-close-deriv) (memo-text-only-deriv) (memo-mixed-text-deriv) (memo-map-data-deriv) (memo-end-tag-deriv)) cl-struct-rng--ipattern-tags defalias rng--ipattern-datatype rng--ipattern-name-class rng--ipattern-after rng--ipattern-value-object rng--ipattern-child] 11)
(defconst rng-memo-map-alist-max 10)
#@67 Return the value associated with KEY in memo-map MM.

(fn KEY MM)
(defalias 'rng-memo-map-get #[514 "\300\"\211\203
\211A\202\205@\301!\205\302\"\262\207" [assoc hash-table-p gethash] 7 (#$ . 12676)])
(put 'rng-memo-map-get 'byte-optimizer 'byte-compile-inline-expand)
#@828 Associate KEY with VALUE in memo-map MM and return the new memo-map.
The new memo-map may or may not be a different object from MM.

Alists are better for small maps.  Hash tables are better for large
maps.  A memo-map therefore starts off as an alist and switches to a
hash table for large memo-maps.  A memo-map is always a list.  An empty
memo-map is represented by nil.  A large memo-map is represented by a
list containing just a hash-table.  A small memo map is represented by
a list whose cdr is an alist and whose car is the number of entries in
the alist.  The complete memo-map can be passed to `assoc' without
problems: assoc ignores any members that are not cons cells.  There is
therefore minimal overhead in successful lookups on small lists
(which is the most common case).

(fn KEY VALUE MM &optional WEAKNESS)
(defalias 'rng-memo-map-add #[1027 "\204\n\301BD\207@\302!\203\303#\210\202Y\211Y\203P\304\305\306\307\310\311_&A\262\203H@\262\303@A#\210A\262\2021\211\312B\262\202Y\211TBABB\207" [rng-memo-map-alist-max 1 hash-table-p puthash make-hash-table :test equal :weakness :size 2 nil] 13 (#$ . 12967)])
(defalias 'rng-ipattern-maybe-init #[0 "?\205
\302\303\304\"\305\211\207" [rng-ipattern-table rng-last-ipattern-index make-hash-table :test equal -1] 3])
(defalias 'rng-ipattern-clear #[0 "\203\302!\210\303\211\207" [rng-ipattern-table rng-last-ipattern-index clrhash -1] 2])
(defalias 'rng-gen-ipattern-index #[0 "T\211\207" [rng-last-ipattern-index] 2])
(put 'rng-gen-ipattern-index 'byte-optimizer 'byte-compile-inline-expand)
#@43 

(fn KEY TYPE NAME-CLASS CHILD NULLABLE)
(defalias 'rng-put-ipattern #[1285 "T\211\302\303\304\211\211\211\211\211\211&
\266\205\305	#\210\211\207" [rng-last-ipattern-index rng-ipattern-table vector unknown nil puthash] 24 (#$ . 14573)])
#@12 

(fn KEY)
(defalias 'rng-get-ipattern #[257 "\301\"\207" [rng-ipattern-table gethash] 4 (#$ . 14832)])
(byte-code "\204\303\304\305\306\211\211\307\306\211\211\211\211\211\211&
	\204*\303\310\311\306\211\312\307\306\211\211\211\211\211\211&
\n\204?\303\313\314\306\211\312\307\306\211\211\211\211\211\211&
\306\207" [rng-not-allowed-ipattern rng-empty-ipattern rng-text-ipattern vector not-allowed -3 nil unknown empty -2 t text -1] 14)
(defconst rng-const-ipatterns (list rng-not-allowed-ipattern rng-empty-ipattern rng-text-ipattern))
#@20 

(fn CHILD AFTER)
(defalias 'rng-intern-after #[514 "=\203\207\301\302H\302HE\303!\206\304\301\305%\207" [rng-not-allowed-ipattern after 1 rng-get-ipattern rng-put-ipattern nil] 9 (#$ . 15386)])
#@28 

(fn NAME-CLASS IPATTERN)
(defalias 'rng-intern-attribute #[514 "\211=\203\207\301\302HE\303!\206\304\301\305%\207" [rng-not-allowed-ipattern attribute 1 rng-get-ipattern rng-put-ipattern nil] 9 (#$ . 15602)])
#@28 

(fn DT MATCHES-ANYTHING)
(defalias 'rng-intern-data #[514 "\300D\301!\206\302\300\303%\211\211\304?I\266\211\262\207" [data rng-get-ipattern rng-put-ipattern nil 5] 9 (#$ . 15831)])
#@20 

(fn DT IPATTERN)
(defalias 'rng-intern-data-except #[514 "\300E\301!\206\302\300\303%\207" [data-except rng-get-ipattern rng-put-ipattern nil] 9 (#$ . 16032)])
#@15 

(fn DT OBJ)
(defalias 'rng-intern-value #[514 "\300E\301!\206\302\300\303%\207" [value rng-get-ipattern rng-put-ipattern nil] 9 (#$ . 16208)])
#@17 

(fn IPATTERN)
(defalias 'rng-intern-one-or-more #[257 "\300!\206\301\302HCB\303!\206\304\301\305\211\306H%\262\207" [rng-intern-one-or-more-shortcut one-or-more 1 rng-get-ipattern rng-put-ipattern nil 4] 9 (#$ . 16367)])
#@17 

(fn IPATTERN)
(defalias 'rng-intern-one-or-more-shortcut #[257 "\211=\203\207\211	=\203	\207\211\302H\303=\203\207\304\207" [rng-not-allowed-ipattern rng-empty-ipattern 0 one-or-more nil] 3 (#$ . 16606)])
#@17 

(fn IPATTERN)
(defalias 'rng-intern-list #[257 "\211=\203\207\301\302HCB\303!\206\304\301\305\305%\207" [rng-not-allowed-ipattern list 1 rng-get-ipattern rng-put-ipattern nil] 8 (#$ . 16827)])
#@80 Return an ipattern for the list of group members in IPATTERNS.

(fn IPATTERNS)
(defalias 'rng-intern-group #[257 "\300!\206*\301!\211A\300!\206(\302\303\304\"B\305!\206&\306\302\307@%\262\266\202\207" [rng-intern-group-shortcut rng-normalize-group-list group mapcar rng--ipattern-index rng-get-ipattern rng-put-ipattern nil] 10 (#$ . 17038)])
#@124 Try to shortcut interning a group list.
If successful, return the interned pattern.  Otherwise return nil.

(fn IPATTERNS)
(defalias 'rng-intern-group-shortcut #[257 "\211\203\211@=\203\211A\262\202\211\203U\211@\211	=\203\"	\202TA\262\203S\211\203S@\211	=\203?\211\262\302\262\202O\211=\203LA\262\202O\302\262\210\202&\211\207\207" [rng-empty-ipattern rng-not-allowed-ipattern nil] 5 (#$ . 17401)])
#@228 Normalize a list containing members of a group.
Expands nested groups, removes empty members, handles notAllowed.
Returns a pair whose car says whether the list is nullable and whose
cdr is the normalized list.

(fn IPATTERNS)
(defalias 'rng-normalize-group-list #[257 "\302\303\211\203J@\262A\262\203\211\304H\262\211\305H\306=\203,\307\310H!\244\262\202\211=\203<C\262\303\262\202\211	=\204\211B\262\202\237B\207" [rng-not-allowed-ipattern rng-empty-ipattern t nil 4 0 group reverse 3] 7 (#$ . 17837)])
#@18 

(fn IPATTERNS)
(defalias 'rng-intern-interleave #[257 "\300!\206*\301!\211A\300!\206(\302\303\304\"B\305!\206&\306\302\307@%\262\266\202\207" [rng-intern-group-shortcut rng-normalize-interleave-list interleave mapcar rng--ipattern-index rng-get-ipattern rng-put-ipattern nil] 10 (#$ . 18379)])
#@234 Normalize a list containing members of an interleave.
Expands nested groups, removes empty members, handles notAllowed.
Returns a pair whose car says whether the list is nullable and whose
cdr is the normalized list.

(fn IPATTERNS)
(defalias 'rng-normalize-interleave-list #[257 "\302\303\211\203I@\262A\262\203\211\304H\262\211\305H\306=\203+\307\310H\"\262\202\211=\203;C\262\303\262\202\211	=\204\211B\262\202\311\312\"B\207" [rng-not-allowed-ipattern rng-empty-ipattern t nil 4 0 interleave append 3 sort rng-compare-ipattern] 8 (#$ . 18695)])
#@101 Return a choice ipattern for the list of choices in IPATTERNS.
May alter IPATTERNS.

(fn IPATTERNS)
(defalias 'rng-intern-choice #[257 "\300!\206\301!\211A\300!\206\302@\"\266\202\207" [rng-intern-choice-shortcut rng-normalize-choice-list rng-intern-choice1] 6 (#$ . 19282)])
#@17 

(fn IPATTERN)
(defalias 'rng-intern-optional #[257 "\211\302H\203\207\211=\203	\207\303	\304H\305=\203\306H\202!CB\307\"\207" [rng-not-allowed-ipattern rng-empty-ipattern 4 rng-intern-choice1 0 choice 3 t] 5 (#$ . 19573)])
#@28 

(fn NORMALIZED NULLABLE)
(defalias 'rng-intern-choice1 #[514 "\300\301\302\"B\303!\206\304\300\305%\207" [choice mapcar rng--ipattern-index rng-get-ipattern rng-put-ipattern nil] 9 (#$ . 19815)])
#@125 Try to shortcut interning a choice list.
If successful, return the interned pattern.  Otherwise return nil.

(fn IPATTERNS)
(defalias 'rng-intern-choice-shortcut #[257 "\211\203\211@=\203\211A\262\202\211\203>\211@A\262\203<\211\203<@=\2045@=\2045\301\262A\262\202\211\207\207" [rng-not-allowed-ipattern nil] 4 (#$ . 20029)])
#@235 Normalize a list of choices.
Expands nested choices, removes not-allowed members, sorts by index
and removes duplicates.  Return a pair whose car says whether the
list is nullable and whose cdr is the normalized list.

(fn IPATTERNS)
(defalias 'rng-normalize-choice-list #[257 "\301\302\211B\211\302\303\302\203\205@\262\204\211\304H\262\211\305H\306=\203;\307\310H\"\262A\262\302\262\241\210\202\211=\203LA\262\241\210\202\203{\211\311HY\203gU\206k\302\211\262\n\202k\211\262\302\262\203{A\262\241\210\202\262A\262\202\241\266\211A\262\203\227\202\235\312\313\314\"!B\207" [rng-not-allowed-ipattern t nil -100 4 0 choice append 3 1 rng-uniquify-eq sort rng-compare-ipattern] 12 (#$ . 20388)])
#@14 

(fn P1 P2)
(defalias 'rng-compare-ipattern #[514 "\300H\300HW\207" [1] 5 (#$ . 21154)])
#@14 

(fn NC NM)
(defalias 'rng-name-class-contains #[514 ":\203	\211\232\207\300\"\207" [rng-name-class-contains1] 5 (#$ . 21252)])
(put 'rng-name-class-contains 'byte-optimizer 'byte-compile-inline-expand)
#@14 

(fn NC NM)
(defalias 'rng-name-class-contains1 #[514 "\300H\211\301\267\202\213\302\202\214\303H:\203\211\232\266\202\202$\304\"\266\202?\202\214@\303H=\202\214@\303H=\205\214\305H:\203K\211\232\266\202\202Q\304\"\266\202?\202\214\303H\306\203\206@:\203m\211\232\266\202\202s\304\"\266\202\203\306\262\302\262\202YA\262\202Y\262\202\214\306\207" [0 #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (any-name 9 any-name-except 13 ns-name 40 ns-name-except 49 choice 85)) t 1 rng-name-class-contains1 2 nil] 10 (#$ . 21467)])
#@380 Return a list of possible names that nameclass NC can match.

Each possible name should be returned as a (NAMESPACE . LOCAL-NAME)
pair, where NAMESPACE is a symbol or nil and LOCAL-NAME is a string.
NAMESPACE, if nil, matches the absent namespace.  ACCUM is a list of
names which should be appended to the returned list.  The returned
list may contain duplicates.

(fn NC ACCUM)
(defalias 'rng-name-class-possible-names #[514 ":\203	B\207\300H\301=\2037\302H\303\2035@\262\211:\203(\211B\202,\304\"\262A\262\202\266\207" [0 choice 1 nil rng-name-class-possible-names] 7 (#$ . 22085)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-to-string #[257 "\211\300H\211\301\267\202r\302\303H!\304\302\305!!Q\202u\306\307\310H!\311Q\202u\312\307\310H!\313\302\303H!\314\260\202u\315\202u\316\202u\317\202u\302\303H!\320P\202u\321\322\302\303H\323#\324Q\202u\321\322\302\303H\325#\324Q\202u\321\322\302\303H\326#\324Q\202u\327!\207" [0 #s(hash-table size 10 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (after 9 element 24 attribute 35 empty 53 text 57 not-allowed 61 one-or-more 65 choice 75 group 88 interleave 101)) rng-ipattern-to-string 3 " </> " rng--ipattern-after "element " rng-name-class-to-string 2 " {...}" "attribute " " { " " } " "empty" "text" "notAllowed" "+" "(" mapconcat " | " ")" ", " " & " symbol-name] 8 (#$ . 22698)])
#@11 

(fn NC)
(defalias 'rng-name-class-to-string #[257 "\211:\203\211A\207\211\300H\211\301\267\202\302\303\304H\305#\202 \306!\307P\207" [0 #s(hash-table size 1 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (choice 17)) mapconcat rng-name-class-to-string 1 "|" symbol-name "*"] 6 (#$ . 23485)])
(defalias 'rng-compile-maybe-init #[0 "?\205\301\302\303\"\211\207" [rng-compile-table make-hash-table :test eq] 3])
(defalias 'rng-compile-clear #[0 "\205\301!\207" [rng-compile-table clrhash] 2])
#@16 

(fn PATTERN)
(defalias 'rng-compile #[257 "\301\"\206\302@\303NA\"\304#\210\211\262\207" [rng-compile-table gethash apply rng-compile puthash] 6 (#$ . 24015)])
(byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\311#\210\300\312\302\313#\210\300\314\302\315#\210\300\316\302\317#\210\300\320\302\321#\210\300\322\302\323#\210\300\324\302\325#\210\300\326\302\327#\210\300\330\302\331#\210\300\332\302\333#\210\300\334\302\335#\210\300\336\302\337#\210\300\340\302\341#\210\300\342\302\343#\207" [put empty rng-compile rng-compile-empty text rng-compile-text not-allowed rng-compile-not-allowed element rng-compile-element attribute rng-compile-attribute choice rng-compile-choice optional rng-compile-optional group rng-compile-group interleave rng-compile-interleave ref rng-compile-ref one-or-more rng-compile-one-or-more zero-or-more rng-compile-zero-or-more mixed rng-compile-mixed data rng-compile-data data-except rng-compile-data-except value rng-compile-value list rng-compile-list] 4)
(defalias 'rng-compile-not-allowed #[0 "\207" [rng-not-allowed-ipattern] 1])
(defalias 'rng-compile-empty #[0 "\207" [rng-empty-ipattern] 1])
(defalias 'rng-compile-text #[0 "\207" [rng-text-ipattern] 1])
#@27 

(fn NAME-CLASS PATTERN)
(defalias 'rng-compile-element #[514 "T\211\301!\302\303\304\305\304\211\211\211\211\211\211&
\207" [rng-last-ipattern-index rng-compile-name-class vector element nil unknown] 19 (#$ . 25271)])
#@16 

(fn ELEMENT)
(defalias 'rng-element-get-child #[257 "\211\300H\301!\203
\211\202\211\300\302!I\262\207" [3 vectorp rng-compile] 7 (#$ . 25504)])
#@27 

(fn NAME-CLASS PATTERN)
(defalias 'rng-compile-attribute #[514 "\300\301!\302!\"\207" [rng-intern-attribute rng-compile-name-class rng-compile] 6 (#$ . 25664)])
#@21 

(fn PATTERN NAME)
(defalias 'rng-compile-ref #[514 ">\203\301\302\"\210B\303\216\304!)\207" [rng-being-compiled rng-compile-error "Reference loop on symbol %s" #[0 "A\211\207" [rng-being-compiled] 2] rng-compile] 5 (#$ . 25835)])
#@16 

(fn PATTERN)
(defalias 'rng-compile-one-or-more #[257 "\300\301!!\207" [rng-intern-one-or-more rng-compile] 4 (#$ . 26084)])
#@16 

(fn PATTERN)
(defalias 'rng-compile-zero-or-more #[257 "\300\301\302!!!\207" [rng-intern-optional rng-intern-one-or-more rng-compile] 5 (#$ . 26218)])
#@16 

(fn PATTERN)
(defalias 'rng-compile-optional #[257 "\300\301!!\207" [rng-intern-optional rng-compile] 4 (#$ . 26378)])
#@16 

(fn PATTERN)
(defalias 'rng-compile-mixed #[257 "\301\302!CB!\207" [rng-text-ipattern rng-intern-interleave rng-compile] 5 (#$ . 26506)])
#@16 

(fn PATTERN)
(defalias 'rng-compile-list #[257 "\300\301!!\207" [rng-intern-list rng-compile] 4 (#$ . 26654)])
#@23 

(fn &rest PATTERNS)
(defalias 'rng-compile-choice #[128 "\300\301\302\"!\207" [rng-intern-choice mapcar rng-compile] 5 (#$ . 26774)])
#@23 

(fn &rest PATTERNS)
(defalias 'rng-compile-group #[128 "\300\301\302\"!\207" [rng-intern-group mapcar rng-compile] 5 (#$ . 26917)])
#@23 

(fn &rest PATTERNS)
(defalias 'rng-compile-interleave #[128 "\300\301\302\"!\207" [rng-intern-interleave mapcar rng-compile] 5 (#$ . 27058)])
#@20 

(fn NAME PARAMS)
(defalias 'rng-compile-dt #[514 "\301@\211\302N\206\301\303\"\262A\")\207" [rng-dt-error-reporter rng-compile-error rng-dt-compile "Unknown datatype library %s"] 6 (#$ . 27209)])
#@20 

(fn NAME PARAMS)
(defalias 'rng-compile-data #[514 "\300\"\301A@\"\207" [rng-compile-dt rng-intern-data] 6 (#$ . 27421)])
#@28 

(fn NAME PARAMS PATTERN)
(defalias 'rng-compile-data-except #[771 "\300\301\"A\302!\"\207" [rng-intern-data-except rng-compile-dt rng-compile] 7 (#$ . 27555)])
#@25 

(fn NAME STR CONTEXT)
(defalias 'rng-compile-value #[771 "\301\302\"A\303D\211\304@AB\"\266\202\211\203 \305\"\202&\306\307#)\207" [rng-dt-namespace-context-getter rng-compile-dt nil identity apply rng-intern-value rng-compile-error "Value %s is not a valid instance of the datatype %s"] 10 (#$ . 27726)])
#@11 

(fn NC)
(defalias 'rng-compile-name-class #[257 "\211@\211\300\267\202@A@\202D\301\202D\302\303\304A@!\"\202D\302\305A@\"\202D\302\306A@\304\3078!#\202D\302\310\311\304A\"\"\202D\312\313\"\207" [#s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (name 8 any-name 14 any-name-except 18 ns-name 29 ns-name-except 38 choice 53)) [any-name] vector any-name-except rng-compile-name-class ns-name ns-name-except 2 choice mapcar error "Bad name-class type %s"] 8 (#$ . 28054)])
#@42 

(fn FUNCTION PATTERN ACCUM &rest ARGS)
(defalias 'rng-map-element-attribute #[899 "\300\301\302\"\303\211\211@\262\304>\203)\305BB\"\262\3068\262\202s\307=\203NA@\262\310\"\203C\303\262\202s\311\312#\210\202s\313>\203aAB\262\303\262\202s\314>\203pA@\262\202s\303\262\204\211\203\207\211@\262\211A\262\202\203\236@\262A\262\211@\262\211A\262\202\207" [make-hash-table :test eq nil (element attribute) apply 2 ref gethash puthash t (choice group interleave) (one-or-more zero-or-more optional mixed)] 13 (#$ . 28582)])
#@27 

(fn PATTERN ACCUM NAME)
(defalias 'rng-find-element-content-pattern #[771 "@\300=\203\301A@\"\203\302\3038!B\207\207" [element rng-search-name rng-compile 2] 6 (#$ . 29176)])
#@16 

(fn NAME NC)
(defalias 'rng-search-name #[514 "\211@\211\300\267\2025A@\232\2026A\301\2030\211\2040\302@\"\203)\303\262\202A\262\202\262\2026\301\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (name 8 choice 16)) nil rng-search-name t] 8 (#$ . 29369)])
#@17 

(fn NC ACCUM)
(defalias 'rng-find-name-class-uris #[514 "@\211\300=\203\301A@@\"\202A\211\302>\203!\301A@\"\202A\211\303=\203@A\211\203;\304@\"\262\211A\262\202)\210\202A\207" [name rng-accum-namespace-uri (ns-name ns-name-except) choice rng-find-name-class-uris] 7 (#$ . 29694)])
#@17 

(fn NS ACCUM)
(defalias 'rng-accum-namespace-uri #[514 "\203>\204B\207\207" [] 4 (#$ . 30004)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-text-typed-p #[257 "\211\300H\211\301=\203\211\300\302!I\262\202\211\207" [5 unknown rng-ipattern-compute-text-typed-p] 7 (#$ . 30117)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-compute-text-typed-p #[257 "\211\300H\211\301\267\202c\302H\303\203)\211\204)\304@!\203\"\305\262\202
A\262\202
\262\202j\302H\303\211\203U\204U@\262\304!\203H\305\262\211\306H\205PA\262\2023\266\203\202j\304\302H!\202j\211\307>\205j\305\207" [0 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (choice 9 group 46 after 91)) 3 nil rng-ipattern-text-typed-p t 4 (value list data data-except)] 7 (#$ . 30307)])
#@20 

(fn IPATTERN NM)
(defalias 'rng-start-tag-open-deriv #[514 "\211\300H\301\"\211\203\211A\202#\205#@\302!\205!\303\"\262\266\203\2060\304\305\"#\207" [6 assoc hash-table-p gethash rng-ipattern-memo-start-tag-open-deriv rng-compute-start-tag-open-deriv] 9 (#$ . 30831)])
#@26 

(fn IPATTERN NM DERIV)
(defalias 'rng-ipattern-memo-start-tag-open-deriv #[771 ">\204\211\301\302\301H#I\266\207" [rng-const-ipatterns 6 rng-memo-map-add] 11 (#$ . 31127)])
#@20 

(fn IPATTERN NM)
(defalias 'rng-compute-start-tag-open-deriv #[514 "\302H\211\303\267\202\251\304\305\306\307\310\311!\312\"\313\314%\"\202\252\315H:\203-\211\232\266\202\2023\316\"\266\202\203?\317\320!\"\202\252	\202\252\321\305\306\307\310\311!\322\"\313\314%\323#\202\252\324\305\306\307\310\311!\325\"\313\314%\326#\202\252\327!\330\305\306\331\310\311!\332\"\313\314%\333\334H\"\"\262\202\252\335!\330\305\306\307\310\311!\336\"\313\314%\333\334H\"\"\262\202\252	\207" [rng-empty-ipattern rng-not-allowed-ipattern 0 #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (choice 9 element 28 group 67 interleave 87 one-or-more 107 after 138)) rng-transform-choice make-byte-code 257 "\301\300\"\207" vconcat vector [rng-start-tag-open-deriv] 4 "\n\n(fn P)" 2 rng-name-class-contains1 rng-intern-after rng-element-get-child rng-transform-group-nullable [rng-start-tag-open-deriv] rng-cons-group-after rng-transform-interleave-single [rng-start-tag-open-deriv] rng-subst-interleave-after rng-intern-optional rng-apply-after "\301\300D!\207" [rng-intern-group] rng-start-tag-open-deriv 3 rng--ipattern-after [rng-intern-after]] 11 (#$ . 31318)])
#@20 

(fn IPATTERN NM)
(defalias 'rng-start-attribute-deriv #[514 "\211\300H\301\"\211\203\211A\202#\205#@\302!\205!\303\"\262\266\203\2060\304\305\"#\207" [7 assoc hash-table-p gethash rng-ipattern-memo-start-attribute-deriv rng-compute-start-attribute-deriv] 9 (#$ . 32552)])
#@26 

(fn IPATTERN NM DERIV)
(defalias 'rng-ipattern-memo-start-attribute-deriv #[771 ">\204\211\301\302\301H#I\266\207" [rng-const-ipatterns 7 rng-memo-map-add] 11 (#$ . 32851)])
#@20 

(fn IPATTERN NM)
(defalias 'rng-compute-start-attribute-deriv #[514 "\302H\211\303\267\202\251\304\305\306\307\310\311!\312\"\313\314%\"\202\252\315H:\203-\211\232\266\202\2023\316\"\266\202\203?\317\320H\"\202\252	\202\252\321\305\306\307\310\311!\322\"\313\314%\323#\202\252\321\305\306\307\310\311!\324\"\313\314%\325#\202\252\326!\327\305\306\330\310\311!\331\"\313\314%\332\320H\"\"\262\202\252\333!\327\305\306\307\310\311!\334\"\313\314%\332\320H\"\"\262\202\252	\207" [rng-empty-ipattern rng-not-allowed-ipattern 0 #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (choice 9 attribute 28 group 67 interleave 87 one-or-more 107 after 138)) rng-transform-choice make-byte-code 257 "\301\300\"\207" vconcat vector [rng-start-attribute-deriv] 4 "\n\n(fn P)" 2 rng-name-class-contains1 rng-intern-after 3 rng-transform-interleave-single [rng-start-attribute-deriv] rng-subst-group-after [rng-start-attribute-deriv] rng-subst-interleave-after rng-intern-optional rng-apply-after "\301\300D!\207" [rng-intern-group] rng-start-attribute-deriv rng--ipattern-after [rng-intern-after]] 11 (#$ . 33043)])
#@12 

(fn X Y)
(defalias 'rng-cons-group-after #[514 "\300\301\302\303\304\305!\306\"\307\310%\"\207" [rng-apply-after make-byte-code 257 "\301\300B!\207" vconcat vector [rng-intern-group] 4 "\n\n(fn P)"] 9 (#$ . 34234)])
#@21 

(fn NEW OLD LIST)
(defalias 'rng-subst-group-after #[771 "\300\301\302\303\304\305\"\306\"\307\310%\"\207" [rng-apply-after make-byte-code 257 "\302\303\300\301#!\207" vconcat vector [rng-intern-group rng-substq] 6 "\n\n(fn P)"] 11 (#$ . 34462)])
#@21 

(fn NEW OLD LIST)
(defalias 'rng-subst-interleave-after #[771 "\300\301\302\303\304\305\"\306\"\307\310%\"\207" [rng-apply-after make-byte-code 257 "\302\303\300\301#!\207" vconcat vector [rng-intern-interleave rng-substq] 6 "\n\n(fn P)"] 11 (#$ . 34723)])
#@19 

(fn F IPATTERN)
(defalias 'rng-apply-after #[514 "\211\301H\211\302\267\202)\303\304H\305!!\"\202*\306\307\310\311\312\313!\314\"\315\316%\"\202*\207" [rng-not-allowed-ipattern 0 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (after 9 choice 22)) rng-intern-after 3 rng--ipattern-after rng-transform-choice make-byte-code 257 "\301\300\"\207" vconcat vector [rng-apply-after] 4 "\n\n(fn X)"] 10 (#$ . 34994)])
#@17 

(fn IPATTERN)
(defalias 'rng-start-tag-close-deriv #[257 "\211\300H\206\211\211\300\301!I\262\207" [8 rng-compute-start-tag-close-deriv] 6 (#$ . 35461)])
(defconst rng-transform-map '((choice . rng-transform-choice) (group . rng-transform-group) (interleave . rng-transform-interleave) (one-or-more . rng-transform-one-or-more) (after . rng-transform-after-child)))
#@17 

(fn IPATTERN)
(defalias 'rng-compute-start-tag-close-deriv #[257 "\211\302H\211\303=\203
\202\211	\236\211\203\211A\304\"\202\262\207" [rng-not-allowed-ipattern rng-transform-map 0 attribute rng-start-tag-close-deriv] 6 (#$ . 35839)])
#@17 

(fn IPATTERN)
(defalias 'rng-ignore-attributes-deriv #[257 "\211\302H\211\303=\203
\202\211	\236\211\203\211A\304\"\202\262\207" [rng-empty-ipattern rng-transform-map 0 attribute rng-ignore-attributes-deriv] 6 (#$ . 36093)])
#@17 

(fn IPATTERN)
(defalias 'rng-text-only-deriv #[257 "\211\300H\206\211\211\300\301!I\262\207" [9 rng-compute-text-only-deriv] 6 (#$ . 36337)])
#@17 

(fn IPATTERN)
(defalias 'rng-compute-text-only-deriv #[257 "\211\301H\211\302=\203
\202\211\303\236\211\203\211A\304\"\202\262\207" [rng-not-allowed-ipattern 0 element ((choice . rng-transform-choice) (group . rng-transform-group) (interleave . rng-transform-interleave) (one-or-more . rng-transform-one-or-more) (after . rng-transform-after-child)) rng-text-only-deriv] 6 (#$ . 36491)])
#@17 

(fn IPATTERN)
(defalias 'rng-mixed-text-deriv #[257 "\211\300H\206\211\211\300\301!I\262\207" [10 rng-compute-mixed-text-deriv] 6 (#$ . 36898)])
#@17 

(fn IPATTERN)
(defalias 'rng-compute-mixed-text-deriv #[257 "\211\301H\211\302=\203
\202h\211\303=\203\304\305\"\202h\211\306=\203'\307\305\"\202h\211\310=\203;\311\305\312H!\313!D!\202h\211\314=\203I\315\305\316#\202h\211\317=\203W\320\305\321#\202h\211\322=\203g\323H\204g\202h\207" [rng-not-allowed-ipattern 0 text after rng-transform-after-child rng-mixed-text-deriv choice rng-transform-choice one-or-more rng-intern-group 3 rng-intern-optional group rng-transform-group-nullable #[514 "\300B!\207" [rng-intern-group] 5 "\n\n(fn X Y)"] interleave rng-transform-interleave-single #[771 "\300\301#!\207" [rng-intern-interleave rng-substq] 8 "\n\n(fn NEW OLD LIST)"] data 5] 6 (#$ . 37055)])
#@17 

(fn IPATTERN)
(defalias 'rng-end-tag-deriv #[257 "\211\300H\206\211\211\300\301!I\262\207" [12 rng-compute-end-tag-deriv] 6 (#$ . 37788)])
#@17 

(fn IPATTERN)
(defalias 'rng-compute-end-tag-deriv #[257 "\211\301H\211\302\267\202&\303\304\305\306H\"!\202'\306H\307H\203\"\310!\202'\202'\207" [rng-not-allowed-ipattern 0 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (choice 9 after 20)) rng-intern-choice mapcar rng-end-tag-deriv 3 4 rng--ipattern-after] 7 (#$ . 37939)])
#@23 

(fn IPATTERN VALUE)
(defalias 'rng-data-deriv #[514 "\211\301H\302\"\211\203\211A\202#\205#@\303!\205!\304\"\262\266\203\206\232\211\305 B\301H\302\"\211\203<\211A\202N\205N@\303!\205L\304\"\262\266\203\203\202\211\306@A\"B\301H\302\"\211\203k\211A\202}\205}@\303!\205{\304\"\262\266\203\206\232\307\310!\311BB\312\"\313\314H$)\266\202\207" [rng-dt-namespace-context-getter 11 assoc hash-table-p gethash rng-namespace-context-get-no-trace apply vector nil rng-namespace-context-tracer rng-compute-data-deriv rng-ipattern-memo-data-deriv 0] 9 (#$ . 38322)])
#@31 

(fn USED GETTER &rest ARGS)
(defalias 'rng-namespace-context-tracer #[642 "\300\"\301I\210\211\207" [apply 0] 7 (#$ . 38941)])
(defalias 'rng-namespace-context-get-no-trace #[0 "\211\203\211@\301=\203\211AA\262\202\302@A\"\207" [rng-dt-namespace-context-getter rng-namespace-context-tracer apply] 4])
#@56 Don't memoize data-derivs for values longer than this.
(defconst rng-memo-data-deriv-max-length 80 (#$ . 39264))
#@37 

(fn IPATTERN VALUE CONTEXT DERIV)
(defalias 'rng-ipattern-memo-data-deriv #[1028 ">\204)G	V\204)\211\302\303\203B\202	\302H\304$I\266\207" [rng-const-ipatterns rng-memo-data-deriv-max-length 11 rng-memo-map-add t] 12 (#$ . 39383)])
#@23 

(fn IPATTERN VALUE)
(defalias 'rng-compute-data-deriv #[514 "\302H\211\303\267\202\365\202\366\304\305\306\307\310\311!\312\"\313\314%\"\202\366\315\305\306\307\310\311!\316\"\313\314%\317#\202\366\320\321\322H\"\323!D!\202\366\322H\321\"\211\313H\262\204^\211\313H\203d\324!\203d\325!\202e\262\202\366\326!\327@AB\"\266\202\203	\202\366\202\366\326!\327@AB\"\266\202\203\246\321\322H\"\211\313H\262\204\246	\202\366\202\366\326!\327@AB\"\266\202\330!\232\203\303	\202\366\202\366\331!\322H\203\345\211=\204\345\321@\"\262A\262\202\315\211\313H\203\357	\202\360\266\202\202\366\207" [rng-not-allowed-ipattern rng-empty-ipattern 0 #s(hash-table size 9 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (text 9 choice 13 group 32 one-or-more 52 after 67 data 106 data-except 131 value 170 list 199)) rng-transform-choice make-byte-code 257 "\301\300\"\207" vconcat vector [rng-data-deriv] 4 "\n\n(fn P)" rng-transform-group-nullable [rng-data-deriv] #[514 "\300B!\207" [rng-intern-group] 5 "\n\n(fn X Y)"] rng-intern-group rng-data-deriv 3 rng-intern-optional rng-blank-p rng--ipattern-after rng--ipattern-datatype apply rng--ipattern-value-object split-string] 10 (#$ . 39643)])
#@28 

(fn F IPATTERN INTERNER)
(defalias 'rng-transform-multi #[771 "\300H\301\"\302\"\203\202!\207" [3 mapcar rng-members-eq] 8 (#$ . 40925)])
#@19 

(fn F IPATTERN)
(defalias 'rng-transform-choice #[514 "\300\301#\207" [rng-transform-multi rng-intern-choice] 6 (#$ . 41083)])
#@19 

(fn F IPATTERN)
(defalias 'rng-transform-group #[514 "\300\301#\207" [rng-transform-multi rng-intern-group] 6 (#$ . 41220)])
#@19 

(fn F IPATTERN)
(defalias 'rng-transform-interleave #[514 "\300\301#\207" [rng-transform-multi rng-intern-interleave] 6 (#$ . 41355)])
#@19 

(fn F IPATTERN)
(defalias 'rng-transform-one-or-more #[514 "\211\300H!=\203\202\301!\207" [3 rng-intern-one-or-more] 6 (#$ . 41500)])
#@19 

(fn F IPATTERN)
(defalias 'rng-transform-after-child #[514 "\211\300H!=\203\202\301\302!\"\207" [3 rng-intern-after rng--ipattern-after] 8 (#$ . 41652)])
#@27 

(fn F SUBSTER IPATTERN)
(defalias 'rng-transform-interleave-single #[771 "\211\301H\302\203-\211\204-@!\211=\203A\262\202(\301H#\262\266\202\211\2062\207" [rng-not-allowed-ipattern 3 nil] 12 (#$ . 41825)])
#@257 Given a group x1,...,xn,y1,...,yn where the xs are all
nullable and y1 isn't, return a choice
  (conser f(x1) x2,...,xm,y1,...,yn)
  |(conser f(x2) x3,...,xm,y1,...,yn)
  |...
  |(conser f(xm) y1,...,yn)
  |(conser f(y1) y2,...,yn)

(fn F CONSER IPATTERN)
(defalias 'rng-transform-group-nullable #[771 "\300\301\302H#!\207" [rng-intern-choice rng-transform-group-nullable-gen-choices 3] 9 (#$ . 42063)])
#@25 

(fn F CONSER MEMBERS)
(defalias 'rng-transform-group-nullable-gen-choices #[771 "\211@A\211\203!\"\300H\205\301#B\202#!C\207" [4 rng-transform-group-nullable-gen-choices] 10 (#$ . 42476)])
#@20 

(fn LIST1 LIST2)
(defalias 'rng-members-eq #[514 "\203\211\203@@=\203A\262\211A\262\202?\205\"\211?\207" [] 4 (#$ . 42691)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-after #[257 "\211\300H\211\301\267\202\302\303\"\202\304!\202\202\305\306\"\207" [0 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (choice 9 after 16 not-allowed 22)) rng-transform-choice rng-ipattern-after rng--ipattern-after error "Internal error in rng-ipattern-after: unexpected type %s"] 5 (#$ . 42840)])
#@17 

(fn IPATTERN)
(defalias 'rng-unknown-start-tag-open-deriv #[257 "\301\302!\"\207" [rng-any-content rng-intern-after rng-compile] 4 (#$ . 43246)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-optionalize-elements #[257 "\211\301H\211\236\211\203\211A\302\"\202\303=\203\304!\202\207" [rng-transform-map 0 rng-ipattern-optionalize-elements element rng-intern-optional] 6 (#$ . 43402)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-empty-before-p #[257 "\211\301H\211\302\267\2023\303H=\2024\303H\304\203.\211\203.\305@!\204'\306\262A\262\202\262\2024\306\207" [rng-empty-ipattern 0 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (after 9 choice 17)) 3 t rng-ipattern-empty-before-p nil] 6 (#$ . 43654)])
#@23 

(fn IPATTERN ACCUM)
(defalias 'rng-ipattern-possible-start-tags #[514 "\301H\211\302=\203\303\304H\"\202\204\211\305>\2032\304H\211\203-\303@\"\262\211A\262\202\210\202\204\211\306=\203Y\304H\211\203T\303@\"\262\211@\307H\205O\211A\262\202;\210\202\204\211\310=\203t\311!=\203k\202\204\312\313H\"\202\204\211\314=\203\203\303\304H\"\202\204\207" [rng-not-allowed-ipattern 0 after rng-ipattern-possible-start-tags 3 (choice interleave) group 4 element rng-element-get-child rng-name-class-possible-names 2 one-or-more] 7 (#$ . 44028)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-start-tag-possible-p #[257 "\211\301H\211\302>\203\303\304H!\202p\211\305>\2035\304H\306\2030\211\2040\303@!\262A\262\202\262\202p\211\307=\203`\304H\306\203[\211\204[\303@!\262@\310H\205VA\262\202?\262\202p\211\311=\203o\312!=?\202p\306\207" [rng-not-allowed-ipattern 0 (after one-or-more) rng-ipattern-start-tag-possible-p 3 (choice interleave) nil group 4 element rng-element-get-child] 6 (#$ . 44613)])
#@23 

(fn IPATTERN ACCUM)
(defalias 'rng-ipattern-possible-attributes #[514 "\300H\211\301=\203\302\303H\"\202Q\211\304>\2032\303H\211\203-\302@\"\262\211A\262\202\210\202Q\211\305=\203A\306\307H\"\202Q\211\310=\203P\302\303H\"\202Q\207" [0 after rng-ipattern-possible-attributes 3 (choice interleave group) attribute rng-name-class-possible-names 2 one-or-more] 7 (#$ . 45101)])
#@23 

(fn IPATTERN ACCUM)
(defalias 'rng-ipattern-possible-values #[514 "\300H\211\301\267\202@\302\303H\"\202A\303H\211\203'\302@\"\262\211A\262\202\210\202A\304!\211;\203:\211B\202;\262\202A\207" [0 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (after 9 choice 18 value 44)) rng-ipattern-possible-values 3 rng--ipattern-value-object] 7 (#$ . 45509)])
#@17 

(fn IPATTERN)
(defalias 'rng-ipattern-required-element #[257 "\211\301H\211\302>\203\303\304H!\202\307\211\305=\203>\304H\303@!\211\2039A\211\262\2039\211\303@!\232\204\306\262\202\262\202\307\211\307=\203f\304H\306\303@!\211\262\204a@\310H\203aA\211\262\204H\262\202\307\211\311=\203\255\304H\306\203\250\303@!\211\204\203A\262\202\244\204\221\211\262A\262\202\244\232\203\236A\262\202\244\306\262\306\262\210\202p\262\202\307\211\312=\205\307\313H\211:\205\305\314!=?\205\305\211\262\207" [rng-not-allowed-ipattern 0 (after one-or-more) rng-ipattern-required-element 3 choice nil group 4 interleave element 2 rng-element-get-child] 7 (#$ . 45926)])
#@23 

(fn IPATTERN ACCUM)
(defalias 'rng-ipattern-required-attributes #[514 "\300H\211\301=\203\302\303H\"\202\255\211\304>\2032\303H\211\203-\302@\"\262\211A\262\202\210\202\255\211\305=\203\203\303H\306\211\211\302@\306\"\262\203yA\211\262\203y\302@\306\"\262\306\262\203s@\235\203l@B\262A\262\202[\211\262\202E\307\"\266\204\202\255\211\310=\203\235\311H\211:\203\227\211B\202\230\262\202\255\211\312=\203\254\302\303H\"\202\255\207" [0 after rng-ipattern-required-attributes 3 (interleave group) choice nil append attribute 2 one-or-more] 10 (#$ . 46649)])
#@19 

(fn &rest ARGS)
(defalias 'rng-compile-error #[128 "\300\301\302\303\"C\"\207" [signal rng-compile-error apply format-message] 6 (#$ . 47271)])
(define-error 'rng-compile-error "Incorrect schema" 'rng-error)
(defalias 'rng-match-state #[0 "\207" [rng-match-state] 1])
(put 'rng-match-state 'byte-optimizer 'byte-compile-inline-expand)
#@14 

(fn STATE)
(defalias 'rng-set-match-state #[257 "\211\211\207" [rng-match-state] 3 (#$ . 47616)])
(put 'rng-set-match-state 'byte-optimizer 'byte-compile-inline-expand)
#@14 

(fn STATE)
(defalias 'rng-match-state-equal #[257 "\211=\207" [rng-match-state] 3 (#$ . 47794)])
(put 'rng-match-state-equal 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'rng-schema-changed #[0 "\300 \210\301 \207" [rng-ipattern-clear rng-compile-clear] 1])
(defalias 'rng-match-init-buffer #[0 "\300\301!\210\300\302!\210\300\303!\207" [make-local-variable rng-compile-table rng-ipattern-table rng-last-ipattern-index] 2])
(defalias 'rng-match-start-document #[0 "\302 \210\303 \210\304\305\306\307\310$\210\311!\211\207" [rng-current-schema rng-match-state rng-ipattern-maybe-init rng-compile-maybe-init add-hook rng-schema-change-hook rng-schema-changed nil t rng-compile] 5])
#@13 

(fn NAME)
(defalias 'rng-match-start-tag-open #[257 "\302\"\211	=\203	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-start-tag-open-deriv t] 4 (#$ . 48495)])
#@13 

(fn NAME)
(defalias 'rng-match-attribute-name #[257 "\302\"\211	=\203	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-start-attribute-deriv t] 4 (#$ . 48685)])
#@14 

(fn VALUE)
(defalias 'rng-match-attribute-value #[257 "\302\"\211	=\203	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-data-deriv t] 4 (#$ . 48876)])
#@14 

(fn VALUE)
(defalias 'rng-match-element-value #[257 "\302!\211	=\203	=\262\202\211\303\262\205,\304\"\211	=\203'	=\207\211\303\262\207" [rng-match-state rng-not-allowed-ipattern rng-text-only-deriv t rng-data-deriv] 4 (#$ . 49058)])
(defalias 'rng-match-start-tag-close #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-start-tag-close-deriv t] 3])
(defalias 'rng-match-mixed-text #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-mixed-text-deriv t] 3])
(defalias 'rng-match-end-tag #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-end-tag-deriv t] 3])
(defalias 'rng-match-after #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-ipattern-after t] 3])
#@13 

(fn NAME)
(defalias 'rng-match-out-of-context-start-tag-open #[257 "\303\304\305$\211\203\306!\202	\307\n\"\211	=\203#\n	=\262\202(\211\310\262\207" [rng-current-schema rng-not-allowed-ipattern rng-match-state rng-map-element-attribute rng-find-element-content-pattern nil rng-intern-choice rng-intern-after t] 6 (#$ . 49900)])
#@144 Return a list of all the namespace URIs used in the current schema.
The absent URI is not included, so the result is always a list of symbols.
(defalias 'rng-match-possible-namespace-uris #[0 "\301\302\303#\207" [rng-current-schema rng-map-element-attribute #[514 "\300A@\"\207" [rng-find-name-class-uris] 5 "\n\n(fn PATTERN ACCUM)"] nil] 4 (#$ . 50250)])
(defalias 'rng-match-unknown-start-tag-open #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-unknown-start-tag-open-deriv t] 3])
(defalias 'rng-match-optionalize-elements #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-ipattern-optionalize-elements t] 3])
(defalias 'rng-match-ignore-attributes #[0 "\302!\211	=\203
	=\207\211\303\207" [rng-match-state rng-not-allowed-ipattern rng-ignore-attributes-deriv t] 3])
(defalias 'rng-match-text-typed-p #[0 "\301!\207" [rng-match-state rng-ipattern-text-typed-p] 2])
(defalias 'rng-match-empty-content #[0 "\300 \203	\301\302!\207\303 \207" [rng-match-text-typed-p rng-match-element-value "" rng-match-end-tag] 2])
#@176 Return non-nil if what can be matched before an end-tag is empty.
In other words, return non-nil if the pattern for what can be matched
for an end-tag is equivalent to empty.
(defalias 'rng-match-empty-before-p #[0 "\301!\207" [rng-match-state rng-ipattern-empty-before-p] 2 (#$ . 51366)])
#@19 

(fn LOCAL-NAME)
(defalias 'rng-match-infer-start-tag-namespace #[257 "\301\302\"\302\211\203H@\262A\232\203A@9\203A\211\204*@\262A\262\202\211@\232\2038A\262\202\302\262\302\262\202A\262\202\207" [rng-match-state rng-ipattern-possible-start-tags nil] 6 (#$ . 51663)])
(defalias 'rng-match-nullable-p #[0 "\301H\207" [rng-match-state 4] 2])
#@274 Return a list of possible names that would be valid for start-tags.

Each possible name is returned as a (NAMESPACE . LOCAL-NAME) pair,
where NAMESPACE is a symbol or nil (meaning the absent namespace) and
LOCAL-NAME is a string.  The returned list may contain duplicates.
(defalias 'rng-match-possible-start-tag-names #[0 "\301\302\"\207" [rng-match-state rng-ipattern-possible-start-tags nil] 3 (#$ . 52044)])
#@44 Return non-nil if a start-tag is possible.
(defalias 'rng-match-start-tag-possible-p #[0 "\301!\207" [rng-match-state rng-ipattern-start-tag-possible-p] 2 (#$ . 52463)])
#@146 Return a list of possible names that would be valid for attributes.

See the function `rng-match-possible-start-tag-names' for
more information.
(defalias 'rng-match-possible-attribute-names #[0 "\301\302\"\207" [rng-match-state rng-ipattern-possible-attributes nil] 3 (#$ . 52641)])
#@136 Return a list of strings that would be valid as content.
The list may contain duplicates.  Typically, the list will not
be exhaustive.
(defalias 'rng-match-possible-value-strings #[0 "\301\302\"\207" [rng-match-state rng-ipattern-possible-values nil] 3 (#$ . 52933)])
#@65 Return the name of an element which must occur, or nil if none.
(defalias 'rng-match-required-element-name #[0 "\301!\207" [rng-match-state rng-ipattern-required-element] 2 (#$ . 53208)])
#@60 Return a list of names of attributes which must all occur.
(defalias 'rng-match-required-attribute-names #[0 "\301\302\"\207" [rng-match-state rng-ipattern-required-attributes nil] 3 (#$ . 53403)])
#@19 

(fn &rest BODY)
(defalias 'rng-match-save '(macro . #[128 "\300\301!\302\303BC\304\305B\306\307EEE\207" [make-symbol "state" let (rng-match-state) unwind-protect progn setq rng-match-state] 9 (#$ . 53608)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-match-save lisp-indent-function 0 put edebug-form-spec t] 5)
#@26 

(fn SCHEMA &rest BODY)
(defalias 'rng-match-with-schema '(macro . #[385 "\300\301D\302B\303\304\305BBBBB\207" [let rng-current-schema (rng-match-state rng-compile-table rng-ipattern-table rng-last-ipattern-index) (rng-ipattern-maybe-init) (rng-compile-maybe-init) (setq rng-match-state (rng-compile rng-current-schema))] 8 (#$ . 53959)]))
(byte-code "\300\301\302\303#\304\301\305\306#\210\307\310!\207" [function-put rng-match-with-schema lisp-indent-function 1 put edebug-form-spec t provide rng-match] 5)