;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require nxml-util rng-util rng-uri rng-pttrn] 2)
#@90 Load a schema in RELAX NG compact syntax from FILENAME.
Return a pattern.

(fn FILENAME)
(defalias 'rng-c-load-schema #[257 "\300!\207" [rng-c-parse-file] 3 (#$ . 200)])
(define-error 'rng-c-incorrect-schema "Incorrect schema" '(rng-error nxml-file-parse-error))
#@29 

(fn FILENAME POS MESSAGE)
(defalias 'rng-c-signal-incorrect-schema #[771 "\300\301$\207" [nxml-signal-file-parse-error rng-c-incorrect-schema] 8 (#$ . 470)])
#@58 List of strings that are keywords in the compact syntax.
(defconst rng-c-keywords '("attribute" "default" "datatypes" "div" "element" "empty" "external" "grammar" "include" "inherit" "list" "mixed" "namespace" "notAllowed" "parent" "start" "string" "text" "token") (#$ . 639))
#@62 Regular expression to match a keyword in the compact syntax.
(defconst rng-c-anchored-keyword-re (byte-code "\301\302!\303Q\207" [rng-c-keywords "\\`\\(" regexp-opt "\\)\\'"] 3) (#$ . 922))
#@46 Syntax table for parsing the compact syntax.
(defvar rng-c-syntax-table nil (#$ . 1119))
(byte-code "\204+ \301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\310#\210\302\312\310#\210\302\313\314#\210\301\207" [rng-c-syntax-table make-syntax-table modify-syntax-entry 35 "<" 10 ">" 45 "w" 46 95 58 "_"] 4)
#@54 Regular expression to match a single-quoted literal.
(defconst rng-c-literal-1-re "'\\(''\\([^']\\|'[^']\\|''[^']\\)*''\\|[^'\n]*\\)'" (#$ . 1453))
#@54 Regular expression to match a double-quoted literal.
(defconst rng-c-literal-2-re (string-replace "'" "\"" rng-c-literal-1-re) (#$ . 1607))
(defconst rng-c-ncname-re "\\w+")
(defconst rng-c-anchored-ncname-re (concat "\\`" rng-c-ncname-re "\\'"))
#@60 Regular expression to match a token in the compact syntax.
(defconst rng-c-token-re (concat "[&|]=\\|[][()|&,*+?{}~=-]\\|" rng-c-literal-1-re #1="\\|" rng-c-literal-2-re #1# rng-c-ncname-re "\\(:\\(\\*\\|" rng-c-ncname-re "\\)\\)?\\|\\\\" rng-c-ncname-re "\\|>>") (#$ . 1860))
(defalias 'rng-c-init-buffer #[0 "\302\303\304!\210\305	!\207" [case-fold-search rng-c-syntax-table nil set-buffer-multibyte t set-syntax-table] 2])
(defvar rng-c-current-token nil nil)
(make-variable-buffer-local 'rng-c-current-token)
(defalias 'rng-c-advance #[0 "\302!\203 \303\304!\304\225b\210\305d!\207`dU\203 \306\211\207\307\310!\207" [rng-c-token-re rng-c-current-token looking-at match-string 0 forward-comment "" rng-c-error "Invalid token"] 2])
(defconst rng-c-anchored-datatype-name-re (concat "\\`" rng-c-ncname-re ":" rng-c-ncname-re "\\'"))
(defalias 'rng-c-current-token-keyword-p #[0 "\302	\"\207" [rng-c-anchored-keyword-re rng-c-current-token string-match] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-c-current-token-keyword-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'rng-c-current-token-prefixed-name-p #[0 "\302	\"\207" [rng-c-anchored-datatype-name-re rng-c-current-token string-match] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-c-current-token-prefixed-name-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'rng-c-current-token-literal-p #[0 "\301\302\"\207" [rng-c-current-token string-match "\\`['\"]"] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-c-current-token-literal-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'rng-c-current-token-quoted-identifier-p #[0 "\301\302\"\207" [rng-c-current-token string-match "\\`\\\\"] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-c-current-token-quoted-identifier-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'rng-c-current-token-ncname-p #[0 "\302	\"\207" [rng-c-anchored-ncname-re rng-c-current-token string-match] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-c-current-token-ncname-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'rng-c-current-token-ns-name-p #[0 "G\211\301V\205 SH\302U\207" [rng-c-current-token 0 42] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put rng-c-current-token-ns-name-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defvar rng-c-inherit-namespace nil)
(defvar rng-c-default-namespace nil)
(defvar rng-c-default-namespace-declared nil)
#@34 Alist of namespace declarations.
(defvar rng-c-namespace-decls nil (#$ . 4500))
(defconst rng-c-no-namespace nil)
(defalias 'rng-c-declare-standard-namespaces #[0 "\305B	B\n?\205 \205 \211\207" [nxml-xml-namespace-uri rng-c-namespace-decls rng-c-default-namespace-declared rng-c-inherit-namespace rng-c-default-namespace "xml"] 2])
#@22 

(fn PREFIXED-NAME)
(defalias 'rng-c-expand-name #[257 "\300\301\"\302\303\304O!T\305O\"\207" [string-search ":" rng-make-name rng-c-lookup-prefix 0 nil] 7 (#$ . 4845)])
#@15 

(fn PREFIX)
(defalias 'rng-c-lookup-prefix #[257 "\301\"\211\204 \302\303\"\210\211A\207" [rng-c-namespace-decls assoc rng-c-error "Undefined prefix %s"] 5 (#$ . 5027)])
#@18 

(fn ATTRIBUTE)
(defalias 'rng-c-unqualified-namespace #[257 "\211\203 \207	\207" [rng-c-no-namespace rng-c-default-namespace] 2 (#$ . 5209)])
(defalias 'rng-c-make-context #[0 "	B\207" [rng-c-default-namespace rng-c-namespace-decls] 2])
(defconst rng-string-datatype (rng-make-datatype rng-builtin-datatypes-uri "string"))
(defconst rng-token-datatype (rng-make-datatype rng-builtin-datatypes-uri "token"))
#@119 Alist of datatype declarations.
Contains a list of pairs (PREFIX . URI) where PREFIX is a string
and URI is a symbol.
(defvar rng-c-datatype-decls nil (#$ . 5628))
(defalias 'rng-c-declare-standard-datatypes #[0 "\302B	B\211\207" [rng-xsd-datatypes-uri rng-c-datatype-decls "xsd"] 2])
#@15 

(fn PREFIX)
(defalias 'rng-c-lookup-datatype-prefix #[257 "\301\"\211\204 \302\303\"\210\211A\207" [rng-c-datatype-decls assoc rng-c-error "Undefined prefix %s"] 5 (#$ . 5921)])
#@22 

(fn PREFIXED-NAME)
(defalias 'rng-c-expand-datatype #[257 "\300\301\"\302\303\304O!T\305O\"\207" [string-search ":" rng-make-datatype rng-c-lookup-datatype-prefix 0 nil] 7 (#$ . 6111)])
(defvar rng-c-current-grammar nil)
(defvar rng-c-parent-grammar nil)
(defalias 'rng-c-make-grammar #[0 "\300\301\302\"\207" [make-hash-table :test equal] 3])
(defconst rng-c-about-override-slot 0)
(defconst rng-c-about-combine-slot 1)
#@261 Return a def object for NAME.
A def object is a pair (ABOUT . REF) where REF is returned by
`rng-make-ref'.
ABOUT is a two-element vector [OVERRIDE COMBINE].
COMBINE is either nil, choice or interleave.
OVERRIDE is either nil, require or t.

(fn NAME GRAMMAR)
(defalias 'rng-c-lookup-create #[514 "\300\"\211\203	 \207\301\302\211\"\303!B\262\304#\210\207" [gethash vector nil rng-make-ref puthash] 7 (#$ . 6546)])
#@13 

(fn NAME)
(defalias 'rng-c-make-ref #[257 "\204 \301\302!\210\303\"A\207" [rng-c-current-grammar rng-c-error "Reference not in a grammar" rng-c-lookup-create] 4 (#$ . 6974)])
#@13 

(fn NAME)
(defalias 'rng-c-make-parent-ref #[257 "\204 \301\302!\210\303\"A\207" [rng-c-parent-grammar rng-c-error "Reference to non-existent parent grammar" rng-c-lookup-create] 4 (#$ . 7161)])
#@40 Contains a list of (NAME . DEF) pairs.
(defvar rng-c-overrides nil (#$ . 7368))
#@25 

(fn DEF COMBINE NAME)
(defalias 'rng-c-merge-combine #[771 "@\211H\203 \211\203 =\206 \301\302\"\207I\207\211\207" [rng-c-about-combine-slot rng-c-error "Inconsistent combine for %s"] 8 (#$ . 7454)])
#@32 

(fn NAME COMBINE IN-INCLUDE)
(defalias 'rng-c-prepare-define #[771 "\303\"\211@\211	H\203 B\nB\211\203$ \211\304=\203\" 	\305I\210\306\207\307#\262\310A!\203> \204> \311\312\"\210\207" [rng-c-current-grammar rng-c-about-override-slot rng-c-overrides rng-c-lookup-create require t nil rng-c-merge-combine rng-ref-get rng-c-error "Duplicate definition of %s"] 10 (#$ . 7674)])
#@18 

(fn OVERRIDES)
(defalias 'rng-c-start-include #[257 "\300\301\"\207" [mapcar #[257 "\211A\211@\211H\301I\210\211B\207" [rng-c-about-override-slot require] 7 "\n\n(fn NAME-DEF)"]] 4 (#$ . 8076)])
#@18 

(fn OVERRIDES)
(defalias 'rng-c-end-include #[257 "\300\301\"\207" [mapcar #[257 "\211@A\211@A\211@\211H\301=\203 \302\303\"\210\211I\207" [rng-c-about-override-slot require rng-c-error "Definition of %s in include did not override definition in included file"] 9 "\n\n(fn O)"]] 4 (#$ . 8284)])
#@18 

(fn DEF VALUE)
(defalias 'rng-c-define #[514 "\205, \301A!\302A\203( @H\303=\203  \304D!\202) \305D!\202) \"\262\207" [rng-c-about-combine-slot rng-ref-get rng-ref-set choice rng-make-choice rng-make-interleave] 8 (#$ . 8596)])
(defalias 'rng-c-finish-grammar #[0 "\301\302\"\210\303\304\305\"\206 \306\307!A!\207" [rng-c-current-grammar maphash #[514 "\300A!\206 \301\302\"\207" [rng-ref-get rng-c-error "Reference to undefined pattern %s"] 5 "\n\n(fn KEY DEF)"] rng-ref-get gethash start rng-c-error "No definition of start"] 4])
(defvar rng-c-escape-positions nil nil)
(make-variable-buffer-local 'rng-c-escape-positions)
(defvar rng-c-file-name nil nil)
(make-variable-buffer-local 'rng-c-file-name)
(defvar rng-c-file-index nil)
#@35 

(fn FILENAME &optional CONTEXT)
(defalias 'rng-c-parse-file #[513 "r\302\303!!q\210\304 \210\305 \210\306!@\307\310 \210\311!)\207" [rng-c-file-name rng-c-escape-positions get-buffer-create rng-c-buffer-name erase-buffer rng-c-init-buffer insert-file-contents nil rng-c-process-escapes rng-c-parse-top-level] 5 (#$ . 9356)])
#@16 

(fn CONTEXT)
(defalias 'rng-c-buffer-name #[257 "\301\203 \302\303T\211!\304Q\202 \305\306P\207" [rng-c-file-index " *RNC Input" "<" number-to-string ">*" 1 "*"] 6 (#$ . 9694)])
(defalias 'rng-c-process-escapes #[0 "\301\302\303\304#\211\203 \305\306!\210\210\307\310\311d\304#\203Z \312\313\314\315\316!\317\"\"\211\203R \211\307V\203R \307\224\307\225|\210\320=\203< \307\202= c\210ZS\\\262`BB\266\202 \305\321!\266\202 \210\316b\207" [rng-c-escape-positions search-forward " " nil t rng-c-error "Nul character found (binary file?)" 0 re-search-forward "\\\\x+{\\([[:xdigit:]]+\\)}" decode-char ucs string-to-number match-string 1 16 10 "Invalid character escape"] 7])
#@12 

(fn POS)
(defalias 'rng-c-translate-position #[257 "\211\203 \211@@V\203 \211A\262\202 \211\203 @A\\\207\207" [rng-c-escape-positions] 4 (#$ . 10395)])
#@19 

(fn &rest ARGS)
(defalias 'rng-c-error #[128 "\301\302`!\303\304\"#\207" [rng-c-file-name rng-c-signal-incorrect-schema rng-c-translate-position apply format-message] 7 (#$ . 10565)])
#@16 

(fn CONTEXT)
(defalias 'rng-c-parse-top-level #[257 "\304\211\211eb\210\305d!\210\306 \210\307 \210\211\310=\203) \311 \203$ \312\313!\2025 \314 \2025 \311 \2033 \315 \2025 \316 \313\230\204? \317\320!\210\211\262+\207" [rng-c-datatype-decls rng-c-default-namespace rng-c-namespace-decls rng-c-current-token nil forward-comment rng-c-advance rng-c-parse-decls include rng-c-implicit-grammar-p rng-c-parse-grammar-body "" rng-c-parse-included-grammar rng-c-parse-implicit-grammar rng-c-parse-pattern rng-c-error "Unexpected characters after pattern"] 4 (#$ . 10759)])
(defalias 'rng-c-parse-included-grammar #[0 "\301\230\204\n \302\303!\210\304 \210\305\306!\210\307\310!\207" [rng-c-current-token "grammar" rng-c-error "Included schema is not a grammar" rng-c-advance rng-c-expect "{" rng-c-parse-grammar-body "}"] 2])
(defalias 'rng-c-implicit-grammar-p #[0 "\304	\"\204 \304\305	\"\204 \304\n	\"\203\" \304	\"\204\" \306\307!\2064 	\310\230\203+ \311 \210	\312\235\2064 \306\313!\207" [rng-c-anchored-datatype-name-re rng-c-current-token rng-c-anchored-ncname-re rng-c-anchored-keyword-re string-match "\\`\\\\" looking-at "\\[" "[" rng-c-parse-lead-annotation ("div" "include" "") "[|&]?="] 3])
(defalias 'rng-c-parse-decls #[0 "\302\303	\304\"\211\205 \305 \210\211A \210\306\262\204 \307 \210\310 \207" [rng-c-default-namespace-declared rng-c-current-token nil assoc (("namespace" . rng-c-parse-namespace) ("datatypes" . rng-c-parse-datatypes) ("default" . rng-c-parse-default)) rng-c-advance t rng-c-declare-standard-datatypes rng-c-declare-standard-namespaces] 3])
(defalias 'rng-c-parse-datatypes #[0 "\301 \302\"\203 \303\304\"\210\305\306!\210\211\307\310 !BB\211\207" [rng-c-datatype-decls rng-c-parse-identifier-or-keyword assoc rng-c-error "Duplicate datatypes declaration for prefix %s" rng-c-expect "=" rng-make-datatypes-uri rng-c-parse-literal] 4])
(defalias 'rng-c-parse-namespace #[0 "\300\301\302 \"\207" [rng-c-declare-namespace nil rng-c-parse-identifier-or-keyword] 3])
(defalias 'rng-c-parse-default #[0 "\301\302!\210\303\304\305\230?\205 \306 \"\207" [rng-c-current-token rng-c-expect "namespace" rng-c-declare-namespace t "=" rng-c-parse-identifier-or-keyword] 4])
#@31 

(fn DECLARE-DEFAULT PREFIX)
(defalias 'rng-c-declare-namespace #[514 "\305\306!\210\307\230\203 \310 \210	\202 \311\312 !\203- \313\n\"\203' \314\315\"\203- B\nB\205D \203; \314\316!\205D \317\211\205D \211\211\207" [rng-c-current-token rng-c-inherit-namespace rng-c-namespace-decls rng-c-default-namespace-declared rng-c-default-namespace rng-c-expect "=" "inherit" rng-c-advance nxml-make-namespace rng-c-parse-literal assoc rng-c-error "Duplicate namespace declaration for prefix %s" "Duplicate default namespace declaration" t] 6 (#$ . 12982)])
(defalias 'rng-c-parse-implicit-grammar #[0 "\302 \303\304!\210\305 *\207" [rng-c-current-grammar rng-c-parent-grammar rng-c-make-grammar rng-c-parse-grammar-body "" rng-c-finish-grammar] 2])
#@41 

(fn CLOSE-TOKEN &optional IN-INCLUDE)
(defalias 'rng-c-parse-grammar-body #[513 "\230\204\261 \304	\"\203D \305!\211\306\267\202< \307\310\"\266\202  \311 \210\312!\266\202  \2032 \313\314!\210\311 \210\315 \266\202  \313\316!\266\202  \304\n\"\203_ \317\320!\203W \321 \210\202  \307\"\210\202  \304\322\"\203} \317\320!\203r \321 \210\202  \307\323\324O\"\210\202  \304\"\203\212 \321 \210\202  \325\230\203\252 \326 \210\230\203\235 \313\327!\210\317\320!\203  \313\330!\210\202  \313\331!\210\202  \332\230\206\271 \311 \207" [rng-c-current-token rng-c-anchored-keyword-re rng-c-anchored-ncname-re rng-c-anchored-datatype-name-re string-match intern #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (start 22 div 31 include 42)) rng-c-parse-define start rng-c-advance rng-c-parse-div rng-c-error "Nested include" rng-c-parse-include "Invalid grammar keyword" looking-at "\\[" rng-c-parse-annotation-element "\\`\\\\" 1 nil "[" rng-c-parse-lead-annotation "Missing annotation subject" "Leading annotation applied to annotation" "Invalid grammar content" ""] 6 (#$ . 13747)])
#@19 

(fn IN-INCLUDE)
(defalias 'rng-c-parse-div #[257 "\300\301!\210\302\303\"\207" [rng-c-expect "{" rng-c-parse-grammar-body "}"] 4 (#$ . 14892)])
(defalias 'rng-c-parse-include #[0 "\303\304 !\305 \306	\307\230\203, \310 \210\306\311\312\313\"\210\n\262)\314!\262\315\316\"\210\317!\2020 \315\316\")\207" [rng-c-inherit-namespace rng-c-current-token rng-c-overrides rng-c-expand-file rng-c-parse-literal rng-c-parse-opt-inherit nil "{" rng-c-advance rng-c-parse-grammar-body "}" t rng-c-start-include rng-c-parse-file include rng-c-end-include] 5])
#@24 

(fn NAME IN-INCLUDE)
(defalias 'rng-c-parse-define #[514 "\301 \210\302\303\"\211\204 \304\305!\210\301 \210\306A#\307\310 \"\207" [rng-c-current-token rng-c-advance assoc (("=") ("|=" . choice) ("&=" . interleave)) rng-c-error "Expected assignment operator" rng-c-prepare-define rng-c-define rng-c-parse-pattern] 7 (#$ . 15456)])
(defvar rng-c-had-except nil)
(defalias 'rng-c-parse-pattern #[0 "\302\303 \304	\305\"\211\2035 \203 \306\307!\2026 C\211	\310 \210\303 C\241\210\262	\230\204 A!\266\203\2026 )\207" [rng-c-had-except rng-c-current-token nil rng-c-parse-repeated assoc (("|" . rng-make-choice) ("," . rng-make-group) ("&" . rng-make-interleave)) rng-c-error "Parentheses required around pattern using -" rng-c-advance] 8])
(defalias 'rng-c-parse-repeated #[0 "\302\303 !\304\305\"\211\203 	\203 \306\307!\207\302\310 \210A!!\207\207" [rng-c-current-token rng-c-had-except rng-c-parse-follow-annotations rng-c-parse-primary assoc (("*" . rng-make-zero-or-more) ("+" . rng-make-one-or-more) ("?" . rng-make-optional)) rng-c-error "Parentheses required around pattern using -" rng-c-advance] 5])
#@176 Parse a primary expression.
The current token must be the first token of the expression.
After parsing the current token should be the token following
the primary expression.
(defalias 'rng-c-parse-primary #[0 "\305	\"\203 \306	!\307N\211\204 \310\311	\"\210\312 \210\211 \207\305\n	\"\203( \313\314	!!\207	\315\230\2038 \312 \210\316 \317\320!\210\207\305	\"\203I \321	!\312 \210\322!\207\305\323	\"\203W \324\f\325 \326#\207\305\327	\"\203g \313\314	\330\326O!!\207	\331\230\203s \332 \210\333 \207\310\334!\207" [rng-c-anchored-keyword-re rng-c-current-token rng-c-anchored-ncname-re rng-c-anchored-datatype-name-re rng-token-datatype string-match intern rng-c-pattern rng-c-error "Keyword %s does not introduce a pattern" rng-c-advance rng-c-advance-with rng-c-make-ref "(" rng-c-parse-pattern rng-c-expect ")" rng-c-expand-datatype rng-c-parse-data "\\`['\"]" rng-make-value rng-c-parse-literal nil "\\`\\\\" 1 "[" rng-c-parse-lead-annotation rng-c-parse-primary "Invalid pattern"] 5 (#$ . 16595)])
(defalias 'rng-c-parse-parent #[0 "\302	\"\203\f \303\304	\"\210\305\306 !\207" [rng-c-anchored-keyword-re rng-c-current-token string-match rng-c-error "Keyword following parent was not quoted" rng-c-make-parent-ref rng-c-parse-identifier-or-keyword] 3])
(defalias 'rng-c-parse-literal #[0 "\300\301\302\303 \"!\207" [rng-c-fix-escaped-newlines apply concat rng-c-parse-literal-segments] 4])
(defalias 'rng-c-parse-literal-segments #[0 "\301 \211\302\230\203 \303 \210\304 \202 \305B\207" [rng-c-current-token rng-c-parse-literal-segment "~" rng-c-advance rng-c-parse-literal-segments nil] 4])
(defalias 'rng-c-parse-literal-segment #[0 "\301\302\"\204 \303\304!\210\305G\306Y\203! \307H\310H=\203! \311\202\" \310\211[O\262!\207" [rng-c-current-token string-match "\\`['\"]" rng-c-error "Expected a literal" rng-c-advance-with 6 0 1 3] 5])
#@12 

(fn STR)
(defalias 'rng-c-fix-escaped-newlines #[257 "\300\301\302#\207" [subst-char-in-string 0 10] 5 (#$ . 18463)])
(defalias 'rng-c-parse-identifier-or-keyword #[0 "\302	\"\203 \303	!\207\302\304	\"\203 \303	\305\306O!\207\307\310!\207" [rng-c-anchored-ncname-re rng-c-current-token string-match rng-c-advance-with "\\`\\\\" 1 nil rng-c-error "Expected identifier or keyword"] 4])
(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#\207" [put string rng-c-pattern rng-c-parse-string token rng-c-parse-token element rng-c-parse-element attribute rng-c-parse-attribute list rng-c-parse-list mixed rng-c-parse-mixed text rng-c-parse-text empty rng-c-parse-empty notAllowed rng-c-parse-not-allowed grammar rng-c-parse-grammar parent rng-c-parse-parent external rng-c-parse-external] 4)
(defalias 'rng-c-parse-element #[0 "\300\301!\302\303!\210\304 \302\305!\210\306\"\207" [rng-c-parse-name-class nil rng-c-expect "{" rng-c-parse-pattern "}" rng-make-element] 5])
(defalias 'rng-c-parse-attribute #[0 "\300\301!\302\303!\210\304 \302\305!\210\306\"\207" [rng-c-parse-name-class attribute rng-c-expect "{" rng-c-parse-pattern "}" rng-make-attribute] 5])
#@18 

(fn ATTRIBUTE)
(defalias 'rng-c-parse-name-class #[257 "\302\303\304!!	\305\230\2035 \211C\211\203 \306\307!\210\310 \210\303\304!!C\241\210\262	\305\230\204 \311!\266\202\2026 \211)\207" [rng-c-had-except rng-c-current-token nil rng-c-parse-follow-annotations rng-c-parse-primary-name-class "|" rng-c-error "Parentheses required around name-class using - operator" rng-c-advance rng-make-choice-name-class] 7 (#$ . 19841)])
#@18 

(fn ATTRIBUTE)
(defalias 'rng-c-parse-primary-name-class #[257 "\303	\"\203 \304\305\306\307!	\"!!\207\303\n	\"\203! \304\305\310	!!!\207	\311\230\2035 \312!\211\2032 \313!\207\314 \207	G\211\315V\205C 	SH\316U\262\203^ \317	\315\320O!\312!\211\203Z \321\"\207\322!\207	\323\230\203o \324 \210\325!\326\327!\210\207\303\330	\"\203\204 \304\305\306\307!	\331\332O\"!!\207	\333\230\203\221 \334 \210\335!\207\336\337!\207" [rng-c-anchored-ncname-re rng-c-current-token rng-c-anchored-datatype-name-re string-match rng-c-advance-with rng-make-name-name-class rng-make-name rng-c-unqualified-namespace rng-c-expand-name "*" rng-c-parse-opt-except-name-class rng-make-any-name-except-name-class rng-make-any-name-name-class 0 42 rng-c-lookup-prefix -2 rng-make-ns-name-except-name-class rng-make-ns-name-name-class "(" rng-c-advance rng-c-parse-name-class rng-c-expect ")" "\\`\\\\" 1 nil "[" rng-c-parse-lead-annotation rng-c-parse-primary-name-class rng-c-error "Bad name class"] 8 (#$ . 20284)])
#@18 

(fn ATTRIBUTE)
(defalias 'rng-c-parse-opt-except-name-class #[257 "\302 \210\303\230\205 	\203 \304\305!\205 \306\211\205 \302 \210\307!\207" [rng-c-current-token rng-c-had-except rng-c-advance "-" rng-c-error "Parentheses required around name-class using - operator" t rng-c-parse-primary-name-class] 3 (#$ . 21300)])
(defalias 'rng-c-parse-mixed #[0 "\300\301!\210\302\303 !\300\304!\210\207" [rng-c-expect "{" rng-make-mixed rng-c-parse-pattern "}"] 3])
(defalias 'rng-c-parse-list #[0 "\300\301!\210\302\303 !\300\304!\210\207" [rng-c-expect "{" rng-make-list rng-c-parse-pattern "}"] 3])
(defalias 'rng-c-parse-text #[0 "\300 \207" [rng-make-text] 1])
(defalias 'rng-c-parse-empty #[0 "\300 \207" [rng-make-empty] 1])
(defalias 'rng-c-parse-not-allowed #[0 "\300 \207" [rng-make-not-allowed] 1])
(defalias 'rng-c-parse-string #[0 "\301!\207" [rng-string-datatype rng-c-parse-data] 2])
(defalias 'rng-c-parse-token #[0 "\301!\207" [rng-token-datatype rng-c-parse-data] 2])
#@13 

(fn NAME)
(defalias 'rng-c-parse-data #[257 "\302\303\"\203 \304\305 @\205 \306 #\207\307 \310\230\2033 	\203' \311\312!\210\202) \313\314 \210\315\316 #\207\317\"\207" [rng-c-current-token rng-c-had-except string-match "\\`['\"]" rng-make-value rng-c-parse-literal rng-c-make-context rng-c-parse-optional-params "-" rng-c-error "Parentheses required around pattern using -" t rng-c-advance rng-make-data-except rng-c-parse-primary rng-make-data] 6 (#$ . 22294)])
(defalias 'rng-c-parse-optional-params #[0 "\301\230\2058 \302C\211\303 \210\304\230\2041 \305\230\203 \306 \210\307 \310\311!\210\312!\313 BC\241\210\266\202\202\f \303 \210A\266\202\207" [rng-c-current-token "{" nil rng-c-advance "}" "[" rng-c-parse-lead-annotation rng-c-parse-identifier-or-keyword rng-c-expect "=" intern rng-c-parse-literal] 6])
(defalias 'rng-c-parse-external #[0 "\301\302 !\303 \304\305\")\207" [rng-c-inherit-namespace rng-c-expand-file rng-c-parse-literal rng-c-parse-opt-inherit rng-c-parse-file external] 4])
#@12 

(fn URI)
(defalias 'rng-c-expand-file #[257 "\3011 \302\303\304!\"!0\207\305A@!\207" [rng-c-file-name (rng-uri-error) rng-uri-file-name rng-uri-resolve rng-file-name-uri rng-c-error] 6 (#$ . 23325)])
(defalias 'rng-c-parse-opt-inherit #[0 "\302\230\203 \303 \210\304\305!\210\306\307 !\207	\207" [rng-c-current-token rng-c-default-namespace "inherit" rng-c-advance rng-c-expect "=" rng-c-lookup-prefix rng-c-parse-identifier-or-keyword] 2])
(defalias 'rng-c-parse-grammar #[0 "\302\303!\210\304 \305\306!\210\307 *\207" [rng-c-current-grammar rng-c-parent-grammar rng-c-expect "{" rng-c-make-grammar rng-c-parse-grammar-body "}" rng-c-finish-grammar] 2])
(defalias 'rng-c-parse-lead-annotation #[0 "\301 \210\302\230\205\f \303\304!\207" [rng-c-current-token rng-c-parse-annotation-body "[" rng-c-error "Multiple leading annotations"] 2])
#@12 

(fn OBJ)
(defalias 'rng-c-parse-follow-annotations #[257 "\302\230\203  \303 \210\304	\"\203 \303 \210\202 \305 \210\306\307!\210\202  \207" [rng-c-current-token rng-c-anchored-datatype-name-re ">>" rng-c-advance string-match rng-c-parse-identifier-or-keyword rng-c-parse-annotation-body t] 4 (#$ . 24182)])
(defalias 'rng-c-parse-annotation-element #[0 "\300 \210\301\302!\207" [rng-c-advance rng-c-parse-annotation-body t] 2])
#@121 Current token is [.  Parse up to matching ].
Current token after parse is token following ].

(fn &optional ALLOW-TEXT)
(defalias 'rng-c-parse-annotation-body #[256 "\302\230\204\n \303\304!\210\305 \210\306\230\204[ \307\310\"\203( \211\204\" \303\311!\210\312 \210\202 \307	\"\2035 \305 \210\2028 \313 \210\302\230\203E \314\315!\210\202 \316\230\203T \305 \210\312 \210\202 \303\317!\210\202 \305 \207" [rng-c-current-token rng-c-anchored-datatype-name-re "[" rng-c-error "Expected [" rng-c-advance "]" string-match "\\`['\"]" "Out of place text within annotation" rng-c-parse-literal rng-c-parse-identifier-or-keyword rng-c-parse-annotation-body t "=" "Expected = or ["] 4 (#$ . 24624)])
#@16 

(fn PATTERN)
(defalias 'rng-c-advance-with #[257 "\300 \210\207" [rng-c-advance] 2 (#$ . 25332)])
#@12 

(fn STR)
(defalias 'rng-c-expect #[257 "\230\204\f \301\302#\210\303 \207" [rng-c-current-token rng-c-error "Expected `%s' but got `%s'" rng-c-advance] 5 (#$ . 25438)])
(provide 'rng-cmpct)
