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



(require 'ebnf-otz)#@44 Value returned by `ebnf-dtd-lex' function.
(defvar ebnf-dtd-lex nil (#$ . 103))#@25 DTD parser.

(fn START)
(defalias 'ebnf-dtd-parser #[257 "ZTS`\302\211\211\211b\210\303 \262\304=\203 \305\306!\210\307!\262@\310=\204\205 A\262@\262=\204i \311`Z\312_\245\313\314	\"\"\266\315!\262A\262@\262\2031 \316!\2041 B\262\2021 \211\304=\204z \303 \317=\204z \305\320!\210\311\312\313\314	\"\"\266b\210\207" [ebnf-limit ebnf-message-float nil ebnf-dtd-lex end-of-input error "Empty DTD file" ebnf-dtd-prolog end-prolog "Parsing...%s%%" 100.0 message format ebnf-dtd-intsubset ebnf-add-empty-rule-list end-decl "Missing end of DOCTYPE"] 15 (#$ . 188)])#@14 

(fn TOKEN)
(defalias 'ebnf-dtd-prolog #[257 "\211\301=\203/ \302\230\203/ \303\300 \304\305\306$\262\307\310\311\312$\262\307\313\314\315$\262\211\316=\204/ \317\320!\210\321\300 !\262\211\322\267\202Z \300 \323=\204F \317\324!\210\325 \326=\203R \300 \202S \327\330B\207\211\331B\207\332\207" [ebnf-dtd-lex begin-pi "xml" ebnf-dtd-attribute version-attr "^1\\.0$" "XML version" ebnf-dtd-attribute-optional encoding-attr "^[A-Za-z][-A-Za-z0-9._]*$" "XML encoding" standalone-attr "^yes|no$" "XML standalone" end-pi error "Missing end of XML processing instruction" ebnf-dtd-pi #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (doctype-decl 59 element-decl 86 attlist-decl 86 entity-decl 86 notation-decl 86)) name "Document type name is missing" ebnf-dtd-externalid begin-subset end-prolog end-subset end-of-input (end-prolog . end-subset)] 6 (#$ . 792)])#@35 

(fn TOKEN ATTR MATCH ATTR-NAME)
(defalias 'ebnf-dtd-attribute #[1028 "=\204 \300\301\"\210\302$\207" [error "%s attribute is missing" ebnf-dtd-attribute-optional] 9 (#$ . 1698)])#@35 

(fn TOKEN ATTR MATCH ATTR-NAME)
(defalias 'ebnf-dtd-attribute-optional #[1028 "=\203$ \300 \301=\203 \300 \302=\203 \303\"\204  \304\305\"\210\300 \262\207" [ebnf-dtd-lex equal string string-match error "XML %s attribute is invalid"] 7 (#$ . 1892)])#@24 

(fn &optional TOKEN)
(defalias 'ebnf-dtd-externalid #[256 "\211\204	 \300 \262\301\267\202 \302 \207\303 \210\302 \207\211\203  \304\305!\207\207" [ebnf-dtd-lex #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (system 15 public 18)) ebnf-dtd-systemliteral ebnf-dtd-pubidliteral error "Missing `SYSTEM' or `PUBLIC' in external id"] 4 (#$ . 2158)])
(defalias 'ebnf-dtd-systemliteral #[0 "\300 \301=\204 \302\303!\210\300 \207" [ebnf-dtd-lex string error "System identifier is invalid"] 2])
(defalias 'ebnf-dtd-pubidliteral #[0 "\300 \301=\203 \302\303\"\206 \304\305!\207" [ebnf-dtd-lex string string-match "^[-'()+,./:=?;!*#@$_%\n a-zA-Z0-9]*$" error "Public identifier is invalid"] 3])#@14 

(fn TOKEN)
(defalias 'ebnf-dtd-pi #[257 "\211\301=\203 \302\303\"\203 \304\305!\210\300 \306=\203 \300 \262\202  \207" [ebnf-dtd-lex begin-pi string-match "^[xX][mM][lL]$" error "Processing instruction name can not be `XML'" end-pi] 4 (#$ . 2897)])#@14 

(fn TOKEN)
(defalias 'ebnf-dtd-intsubset #[257 "\211\300=\203 \301!\262\211\302\267\202$ \211C\207\303 C\207\304 \207\305 \207\306 \207\307 \207\310\311!\207" [begin-pi ebnf-dtd-pi #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (end-subset 17 end-of-input 17 pe-ref 20 element-decl 24 attlist-decl 27 entity-decl 30 notation-decl 33)) ebnf-dtd-lex ebnf-dtd-elementdecl ebnf-dtd-attlistdecl ebnf-dtd-entitydecl ebnf-dtd-notationdecl error "Invalid DOCTYPE element"] 3 (#$ . 3158)])
(defalias 'ebnf-dtd-elementdecl #[0 "\302\211\211\211\301 \303=\204 \304\305!\210	\262\301 \262\306\267\202? \307	!\301 B\262\202B \301 \262\310=\2039 \311 \202B \312!\202B \304\313!\262\211@\314=\204O \304\315!\210\316!\210\301 \317A#B\207" [ebnf-action ebnf-dtd-lex nil name error "Invalid ELEMENT name" #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (empty 30 any 30 begin-group 42)) ebnf-make-terminal pcdata ebnf-dtd-mixed ebnf-dtd-children "Invalid ELEMENT content" end-decl "Missing `>' in ELEMENT declaration" ebnf-eps-add-production ebnf-make-production] 9])
(defalias 'ebnf-dtd-mixed #[0 "\301!C\300 \211\302=\302=\203& \300 \303=\204 \304\305!\210B\262\300 \262\202	 \306=\2040 \304\307!\210\211\203? \300 \310=\204? \304\311!\210\312\300 C\"\207" [ebnf-dtd-lex ebnf-make-terminal alternative name error "Invalid name" end-group "Missing `)'" zero-or-more "Missing `*'" ebnf-token-alternative] 6])#@14 

(fn TOKEN)
(defalias 'ebnf-dtd-children #[257 "\300\301!!\207" [ebnf-dtd-operators ebnf-dtd-choice-seq] 4 (#$ . 4660)])#@14 

(fn TOKEN)
(defalias 'ebnf-dtd-choice-seq #[257 "\300!\262\301@\302=\203, @\302=\203# AB\262\300\303 !\262\202 \304\"\262\202X @\305=\203T @\305=\203I AB\262\300\303 !\262\2023 \306AB!\262\202X A\262@\307=\204c \310\311!\210\207" [ebnf-dtd-cp nil alternative ebnf-dtd-lex ebnf-token-alternative comma ebnf-token-sequence end-group error "Missing `)' in ELEMENT content"] 5 (#$ . 4788)])#@14 

(fn TOKEN)
(defalias 'ebnf-dtd-cp #[257 "\301\302\267\202 \303!\202 \304\300 !\202 \305\306!!\207" [ebnf-dtd-lex ebnf-dtd-operators #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (name 7 begin-group 13)) ebnf-make-terminal ebnf-dtd-choice-seq error "Invalid element"] 4 (#$ . 5206)])#@12 

(fn ELM)
(defalias 'ebnf-dtd-operators #[257 "\300 \211\301\267\202 \300 \302!B\207\300 \303!B\207\300 \304!B\207\211B\207" [ebnf-dtd-lex #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (optional 8 zero-or-more 15 one-or-more 22)) ebnf-token-optional ebnf-make-zero-or-more ebnf-make-one-or-more] 5 (#$ . 5540)])
(defalias 'ebnf-dtd-attlistdecl #[0 "\300 \301=\204 \302\303!\210\304\300 \211\262\301=\203m \300 \262\211\305\267\202; \300 \306=\204+ \302\307!\210\310\311\312\"\210\202E \310\313\314\"\210\202E \211\315>\204E \302\316!\210\300 \262\211\317>\204\f \211\320=\203Y \300 \262\211\321=\203f \322\323\"\204\f \302\324!\210\202\f \211\325=\204w \302\326!\210\300 C\207" [ebnf-dtd-lex name error "Invalid ATTLIST name" nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (notation 32 begin-group 51)) begin-group "Missing `(' in NOTATION type in ATTLIST declaration" ebnf-dtd-namelist "NOTATION" (name) "enumeration" (name name-char) (cdata id idref idrefs entity entities nmtoken nmtokens) "Invalid type in ATTLIST declaration" (required implied) fixed string string-match "^\\(&\\([A-Za-z_:][-A-Za-z0-9._:]*\\|#\\(x[[:xdigit:]]+\\|[0-9]+\\)\\);\\|[^<&]\\)*$" "Invalid default value in ATTLIST declaration" end-decl "Missing `>' in end of ATTLIST"] 4])#@23 

(fn TYPE NAME-LIST)
(defalias 'ebnf-dtd-namelist #[514 "\300\301 >\204 \302\303\"\210\301 \211\262\304=\204 \211\305=\206! \302\306\"\207" [nil ebnf-dtd-lex error "Invalid name in %s type in ATTLIST declaration" alternative end-group "Missing `)' in %s type in ATTLIST declaration"] 6 (#$ . 6894)])
(defalias 'ebnf-dtd-entitydecl #[0 "\300 \211\301=\211\203 \300 \262\302=\204 \303\304!\210\300 \262\305=\2036 \306\307\"\203/ \300 \262\202T \303\310!\210\202T \311!\262\211\204T \312=\203T \300 \302=\204P \303\313!\210\300 \262\314=\204^ \303\315!\210\300 C\207" [ebnf-dtd-lex percent name error "Invalid name of ENTITY" string string-match "^\\(%[A-Za-z_:][-A-Za-z0-9._:]*;\\|&\\([A-Za-z_:][-A-Za-z0-9._:]*\\|#\\(x[[:xdigit:]]+\\|[0-9]+\\)\\);\\|[^%&]\\)*$" "Invalid ENTITY definition" ebnf-dtd-externalid ndata "Invalid NDATA name" end-decl "Missing `>' in end of ENTITY"] 5])
(defalias 'ebnf-dtd-notationdecl #[0 "\300 \301=\204 \302\303!\210\304 \305=\204 \302\306!\210\300 C\207" [ebnf-dtd-lex name error "Invalid name NOTATION" ebnf-dtd-externalid-or-publicid end-decl "Missing `>' in end of NOTATION"] 2])
(defalias 'ebnf-dtd-externalid-or-publicid #[0 "\300 \211\301\267\202 \302 \207\303 \210\300 \211\262\304=\203 \300 \262\207\305\306!\207" [ebnf-dtd-lex #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (system 8 public 11)) ebnf-dtd-systemliteral ebnf-dtd-pubidliteral string error "Missing `SYSTEM' or `PUBLIC'"] 3])#@51 Vector used to map characters to a lexical token.
(defconst ebnf-dtd-token-table (make-vector 256 'error) (#$ . 8394))#@30 Initialize EBNF token table.
(defalias 'ebnf-dtd-initialize #[0 "\301\211\302W\203 \303I\210\211T\262\202 \304\262\211\305W\203( \306I\210\211T\262\202 \307\262\211\310W\203= \306I\210\211T\262\202+ \311\262\211\312W\203R \306I\210\211T\262\202@ \313\306I\210\302\306I\210\314\303I\210\315\303I\210\316\317I\210\320\317I\210\321\317I\210\322\317I\210\323\324I\210\325\326I\210\327\330I\210\331\332I\210\333\334I\210\335\336I\210\337\340I\210\341\342I\210\343\344I\210\345\346I\210\347\350I\210\351\352I\210\353\354I\210\355\356I\210\357\360I\210\305\361I\210\362\363I\207" [ebnf-dtd-token-table 48 58 name-char 65 91 name 97 123 160 256 95 46 45 10 space 13 9 32 61 equal 44 comma 42 zero-or-more 43 one-or-more 124 alternative 37 percent 38 ampersand 35 hash 63 interrogation 34 double-quote 39 single-quote 60 less-than 62 end-decl 40 begin-group 41 end-group begin-subset 93 end-subset] 4 (#$ . 8518)])
(defconst ebnf-dtd-name-chars "-._:0-9A-Za-z -ÿ")
(defconst ebnf-dtd-decl-alist '(("ATTLIST" . attlist-decl) ("DOCTYPE" . doctype-decl) ("ELEMENT" . element-decl) ("ENTITY" . entity-decl) ("NOTATION" . notation-decl)))
(defconst ebnf-dtd-element-alist '(("#FIXED" . fixed) ("#IMPLIED" . implied) ("#PCDATA" . pcdata) ("#REQUIRED" . required)))
(defconst ebnf-dtd-name-alist '(("ANY" . any) ("CDATA" . cdata) ("EMPTY" . empty) ("ENTITIES" . entities) ("ENTITY" . entity) ("ID" . id) ("IDREF" . idref) ("IDREFS" . idrefs) ("NDATA" . ndata) ("NMTOKEN" . nmtoken) ("NMTOKENS" . nmtokens) ("NOTATION" . notation) ("PUBLIC" . public) ("SYSTEM" . system) ("encoding" . encoding-attr) ("standalone" . standalone-attr) ("version" . version-attr)))#@100 Lexical analyzer for DTD.

Return a lexical token.

See documentation for variable `ebnf-dtd-lex'.
(defalias 'ebnf-dtd-lex #[0 "`Y\203 \306\207\307g\310V\203 \311\262\202? 	gH\262\211\312=\203* \313w\210`W\202< \211\314=\203; \315\316!\203; \317 \202< \307\204	 `Y\203G \306\207\211\320\267\202\374 \311\321!\207\307u\210g\211\322U\203d \307u\210\323\n!\324\207\211\325U\203} \307u\210\323\n!\326\f\"A\206| \311\327\"\207\311\330\"\207\323\n!\326\"A\206 \207\307u\210g\331U\204\232 \332\207\307u\210\333\207\307u\210\334\323\n!P\3261\"A\206 \311\335\"\207\336\337!\340\207\336\341!\340\207\307u\210\315\342!\203\315 \343\207\344\345!\346\207\307u\210g\347U\204\342 \344\350!\351\207\307u\210g\352U\204\362 \353\354\355\"\202\371 \307u\210\353\356\357\"\360\207\307u\210\211\207" [ebnf-limit ebnf-dtd-token-table ebnf-dtd-name-chars ebnf-dtd-lex ebnf-dtd-decl-alist ebnf-dtd-name-alist end-of-input nil 255 error space " \n	" less-than looking-at "<!--" ebnf-dtd-skip-comment #s(hash-table size 10 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (error 77 less-than 81 name 130 name-char 130 interrogation 143 hash 159 double-quote 182 single-quote 188 percent 194 ampersand 211)) "Invalid character" 63 ebnf-buffer-substring begin-pi 33 assoc "Invalid declaration name `%s'" "Invalid declaration `<%c'" 62 optional end-pi "#" "Invalid element `%s'" ebnf-dtd-string 34 string 39 "[ \n	]" percent ebnf-dtd-name-ref "%" pe-ref 35 "&" entity-ref 120 ebnf-dtd-char-ref "&#" "0-9" "&#x" "[:xdigit:]" char-ref ebnf-dtd-element-alist] 6 (#$ . 10214)])#@14 

(fn START)
(defalias 'ebnf-dtd-name-ref #[257 "\301\"\207" [ebnf-dtd-name-chars ebnf-dtd-char-ref] 4 (#$ . 11807)])#@20 

(fn START CHARS)
(defalias 'ebnf-dtd-char-ref #[514 "\300!g\301U\204 \302\303g$\210\304u\210\305\306#\207" [ebnf-buffer-substring 59 error "Invalid element `%s%s%c'" nil format "%s%s;"] 8 (#$ . 11932)])
(defconst ebnf-dtd-double-string-chars "	 -!#-~ -ÿ")
(defconst ebnf-dtd-single-string-chars "	 -&(-~ -ÿ")#@14 

(fn DELIM)
(defalias 'ebnf-dtd-string #[257 "\303\304u\210`\305U\203 \202 	\nw\210gU\204 \306\307\"\210`\304u\210\"\207" [ebnf-dtd-double-string-chars ebnf-dtd-single-string-chars ebnf-limit buffer-substring-no-properties nil 34 error "Missing string delimiter `%c'"] 6 (#$ . 12258)])
(defconst ebnf-dtd-comment-chars "^- -\f--")
(defconst ebnf-dtd-filename-chars "^- --")
(defalias 'ebnf-dtd-skip-comment #[0 "\305u\210\203 g\306U\203 \307\310 !\210\202O \203' g\311U\203' \312\310 !\210\202O \2039 g\313U\2039 \314\310 !\210\202O \203K g\315U\203K \316\310 !\210\202O 	gH\fw\210`\fW\203f \317\320!\204f \321\fw\210\202O `\fY\203n \322\207\317\320!\203y \323u\210\324\207\325\326!\207" [ebnf-eps-executing ebnf-comment-table ebnf-action ebnf-dtd-comment-chars ebnf-limit 4 91 ebnf-eps-add-context ebnf-dtd-eps-filename 93 ebnf-eps-remove-context 72 ebnf-eps-header-comment 70 ebnf-eps-footer-comment looking-at "-->" "-" nil 3 t error "Invalid character"] 2])
(defalias 'ebnf-dtd-eps-filename #[0 "\302u\210\302\211\303!P\262`	W\203' g\304U\203' \305\306!\204' \211\303\307!P\262\202 \207" [ebnf-dtd-filename-chars ebnf-limit nil ebnf-buffer-substring 45 looking-at "-->" "-"] 4])
(provide 'ebnf-dtd)
