Current File : //proc/self/root/kunden/usr/share/emacs/27.2/lisp/nxml/rng-match.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; 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 (progn (aref cl-x 0))) nil] 9 (#$ . 1191)])
(put 'rng--ipattern-type 'compiler-macro 'rng--ipattern-type--cmacro)
#@63 Access slot "type" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-type #[257 "\211\300H\207" [0] 3 (#$ . 1521)])
(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 (progn (aref cl-x 1))) nil] 9 (#$ . 1756)])
(put 'rng--ipattern-index 'compiler-macro 'rng--ipattern-index--cmacro)
#@64 Access slot "index" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-index #[257 "\211\300H\207" [1] 3 (#$ . 2091)])
(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 (progn (aref cl-x 2))) nil] 9 (#$ . 2329)])
(put 'rng--ipattern-name-class 'compiler-macro 'rng--ipattern-name-class--cmacro)
#@69 Access slot "name-class" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-name-class #[257 "\211\300H\207" [2] 3 (#$ . 2689)])
(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 (progn (aref cl-x 3))) nil] 9 (#$ . 2942)])
(put 'rng--ipattern-child 'compiler-macro 'rng--ipattern-child--cmacro)
#@64 Access slot "child" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-child #[257 "\211\300H\207" [3] 3 (#$ . 3277)])
(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 (progn (aref cl-x 4))) nil] 9 (#$ . 3515)])
(put 'rng--ipattern-nullable 'compiler-macro 'rng--ipattern-nullable--cmacro)
#@67 Access slot "nullable" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-nullable #[257 "\211\300H\207" [4] 3 (#$ . 3865)])
(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 (progn (aref cl-x 5))) nil] 9 (#$ . 4112)])
(put 'rng--ipattern-memo-text-typed 'compiler-macro 'rng--ipattern-memo-text-typed--cmacro)
#@74 Access slot "memo-text-typed" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-text-typed #[257 "\211\300H\207" [5] 3 (#$ . 4497)])
(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 (progn (aref cl-x 6))) nil] 9 (#$ . 4766)])
(put 'rng--ipattern-memo-map-start-tag-open-deriv 'compiler-macro 'rng--ipattern-memo-map-start-tag-open-deriv--cmacro)
#@88 Access slot "memo-map-start-tag-open-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-map-start-tag-open-deriv #[257 "\211\300H\207" [6] 3 (#$ . 5221)])
(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 (progn (aref cl-x 7))) nil] 9 (#$ . 5532)])
(put 'rng--ipattern-memo-map-start-attribute-deriv 'compiler-macro 'rng--ipattern-memo-map-start-attribute-deriv--cmacro)
#@89 Access slot "memo-map-start-attribute-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-map-start-attribute-deriv #[257 "\211\300H\207" [7] 3 (#$ . 5992)])
(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 (progn (aref cl-x 8))) nil] 9 (#$ . 6305)])
(put 'rng--ipattern-memo-start-tag-close-deriv 'compiler-macro 'rng--ipattern-memo-start-tag-close-deriv--cmacro)
#@85 Access slot "memo-start-tag-close-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-start-tag-close-deriv #[257 "\211\300H\207" [8] 3 (#$ . 6745)])
(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 (progn (aref cl-x 9))) nil] 9 (#$ . 7046)])
(put 'rng--ipattern-memo-text-only-deriv 'compiler-macro 'rng--ipattern-memo-text-only-deriv--cmacro)
#@79 Access slot "memo-text-only-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-text-only-deriv #[257 "\211\300H\207" [9] 3 (#$ . 7456)])
(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 (progn (aref cl-x 10))) nil] 9 (#$ . 7739)])
(put 'rng--ipattern-memo-mixed-text-deriv 'compiler-macro 'rng--ipattern-memo-mixed-text-deriv--cmacro)
#@80 Access slot "memo-mixed-text-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-mixed-text-deriv #[257 "\211\300H\207" [10] 3 (#$ . 8155)])
(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 (progn (aref cl-x 11))) nil] 9 (#$ . 8442)])
(put 'rng--ipattern-memo-map-data-deriv 'compiler-macro 'rng--ipattern-memo-map-data-deriv--cmacro)
#@78 Access slot "memo-map-data-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-map-data-deriv #[257 "\211\300H\207" [11] 3 (#$ . 8848)])
(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 (progn (aref cl-x 12))) nil] 9 (#$ . 9129)])
(put 'rng--ipattern-memo-end-tag-deriv 'compiler-macro 'rng--ipattern-memo-end-tag-deriv--cmacro)
#@77 Access slot "memo-end-tag-deriv" of `rng--ipattern' struct CL-X.
(fn CL-X)
(defalias 'rng--ipattern-memo-end-tag-deriv #[257 "\211\300H\207" [12] 3 (#$ . 9530)])
(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 (#$ . 9809)])
(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 (#$ . 10275)])
(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 (#$ . 11177)])
(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 (#$ . 11468)])
(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 (#$ . 13074)])
#@12
(fn KEY)
(defalias 'rng-get-ipattern #[257 "\301\"\207" [rng-ipattern-table gethash] 4 (#$ . 13333)])
(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 (#$ . 13887)])
#@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 (#$ . 14103)])
#@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 (#$ . 14332)])
#@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 (#$ . 14533)])
#@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 (#$ . 14709)])
#@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 (#$ . 14868)])
#@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 (#$ . 15107)])
#@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 (#$ . 15328)])
#@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&