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



(require 'ebnf-otz)
#@44 Value returned by `ebnf-abn-lex' function.
(defvar ebnf-abn-lex nil (#$ . 104))
#@26 ABNF parser.

(fn START)
(defalias 'ebnf-abn-parser #[257 "ZTS`\302\211\211b\210\303 \262\304=\203 \305\306!\210\307=\203& \303 \262\304=\204Z \310`Z\311_\245\312\313	\"\"\266\314!\262A\262@\262\315!\204& \211B\262\202& b\210\207" [ebnf-limit ebnf-message-float nil ebnf-abn-lex end-of-input error "Invalid ABNF file format" end-of-rule "Parsing...%s%%" 100.0 message format ebnf-abn-rule ebnf-add-empty-rule-list] 14 (#$ . 190)])
#@14 

(fn TOKEN)
(defalias 'ebnf-abn-rule #[257 "	\302\211\303=\204 \304\305!\210\300 \262\306>\204 \304\307!\210\310=\203( \311P\262\312 \262\211@\313>\2047 \304\314!\210\211A\262\315!\210\300 \316#B\207" [ebnf-abn-lex ebnf-action nil non-terminal error "Invalid rule name" (equal incremental-alternative) "Invalid rule: missing `=' or `=/'" incremental-alternative " =/" ebnf-abn-alternation (end-of-rule end-of-input) "Invalid rule: there is no end of rule" ebnf-eps-add-production ebnf-make-production] 9 (#$ . 656)])
(defalias 'ebnf-abn-alternation #[0 "\300\211\301\302 !\211\262@\303=\203 \211AB\262\202 \304\"\207" [nil ebnf-abn-concatenation ebnf-abn-lex alternative ebnf-token-alternative] 5])
#@14 

(fn TOKEN)
(defalias 'ebnf-abn-concatenation #[257 "\300!\301@\262A\211\262\204 \302\303!\210C\262\300!\262@\262A\211\262\2031 B\262\202 \304!B\207" [ebnf-abn-repetition nil error "Empty element" ebnf-token-sequence] 6 (#$ . 1385)])
#@14 

(fn TOKEN)
(defalias 'ebnf-abn-repetition #[257 "\301\211\302=\203 \262\300 \262\303=\204 \262\303=\2039 \204( \304\262\304\262\300 \211\262\302=\2039 \262\300 \262\305!\203\200 \211\204H \306\307!\210\300 \262\310\230\203\\ \204\\ \311!B\207\312\230\203f \203r \304\230\203x \304\230\203x \313!B\207\314B#\207\211\203\211 \300 B\207C\207" [ebnf-abn-lex nil integer repeat "" ebnf-abn-element error "Missing element repetition" "1" ebnf-make-one-or-more "0" ebnf-make-zero-or-more ebnf-token-repeat] 8 (#$ . 1646)])
#@14 

(fn TOKEN)
(defalias 'ebnf-abn-element #[257 "\211\301\267\2020 \302!\207\303!\207\304 \211@\305=\204 \306\307!\210\211A\207\304 \211@\310=\204+ \306\311!\210\312A!\207\313\207" [ebnf-abn-lex #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (terminal 6 non-terminal 10 begin-group 14 begin-optional 30)) ebnf-make-terminal ebnf-make-non-terminal ebnf-abn-alternation end-group error "Missing `)'" end-optional "Missing `]'" ebnf-token-optional nil] 4 (#$ . 2206)])
#@51 Vector used to map characters to a lexical token.
(defconst ebnf-abn-token-table (make-vector 256 'error) (#$ . 2719))
#@30 Initialize EBNF token table.
(defalias 'ebnf-abn-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\314I\210\315\314I\210\316\317I\210\320\317I\210\321\317I\210\322\323I\210\324\306I\210\325\326I\210\327\326I\210\330\331I\210\332\333I\210\334\335I\210\336\337I\210\305\340I\210\341\342I\210\343\344I\210\345\346I\207" [ebnf-abn-token-table 48 58 integer 65 91 non-terminal 97 123 160 256 10 end-of-rule 13 11 space 9 32 12 form-feed 60 37 terminal 34 40 begin-group 41 end-group 42 repeat 61 equal begin-optional 93 end-optional 47 alternative 59 comment] 4 (#$ . 2844)])
(defconst ebnf-abn-non-terminal-chars "-_0-9A-Za-z -ÿ")
(defconst ebnf-abn-non-terminal-letter-chars "A-Za-z -ÿ")
#@101 Lexical analyzer for ABNF.

Return a lexical token.

See documentation for variable `ebnf-abn-lex'.
(defalias 'ebnf-abn-lex #[0 "`Y\203 \306\207\307g\310V\203 \311\262\202A 	gH\262\211\312\267\202= \313w\210`W\202> \314 \202> \307u\210\315\211\202> \316 \202> \307\204	 `Y\203I \306\207\211\317\267\202\257 \311\320!\207\321\207\322\323!\324\207g\325U\203f \326 \202h \327 \330\207g\331U\211\203\202 \307u\210\332\333\f\334Q!\204\202 \311\335!\210\322!\211\203\234 g\336U\204\224 \311\335!\210\307u\210\337\340Q\210\341\207\307u\210g\342U\204\252 \343\207\307u\210\344\207\307u\210\207" [ebnf-limit ebnf-abn-token-table ebnf-action ebnf-abn-lex ebnf-abn-non-terminal-letter-chars ebnf-abn-non-terminal-chars end-of-input nil 255 error #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (space 32 comment 42 form-feed 47 end-of-rule 56)) " 	" ebnf-abn-skip-comment form-feed ebnf-abn-skip-end-of-rule #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (error 79 end-of-rule 83 integer 85 terminal 91 non-terminal 107 equal 159)) "Invalid character" end-of-rule ebnf-buffer-substring "0-9" integer 34 ebnf-abn-string ebnf-abn-character terminal 60 looking-at "[" "]" "Invalid prose value" 62 "<" ">" non-terminal 47 equal incremental-alternative] 6 (#$ . 3727)])
(defalias 'ebnf-abn-skip-end-of-rule #[0 "\301\302w\303V\206\n \211\262\304w\210g\305U\203 \306 \204 \211?\207" [ebnf-limit nil "\n" 1 " 	" 59 ebnf-abn-skip-comment] 3])
(defconst ebnf-abn-comment-chars "^\n ---")
(defalias 'ebnf-abn-skip-comment #[0 "\305u\210\203 g\306U\203 \307\310 !\210\202S \203' g\311U\203' \312\310 !\210\202S \2039 g\313U\2039 \314\310 !\210\202S \203K g\315U\203K \316\310 !\210\202S 	gH\fw\210`\fY\203[ \305\207g\317U\203c \320\207\321\322!\207" [ebnf-eps-executing ebnf-comment-table ebnf-action ebnf-abn-comment-chars ebnf-limit nil 91 ebnf-eps-add-context ebnf-abn-eps-filename 93 ebnf-eps-remove-context 72 ebnf-eps-header-comment 70 ebnf-eps-footer-comment 10 t error "Invalid character"] 2])
(defalias 'ebnf-abn-eps-filename #[0 "\301u\210\302!\207" [ebnf-abn-comment-chars nil ebnf-buffer-substring] 2])
(defconst ebnf-abn-string-chars " !#-~ -ÿ")
(defalias 'ebnf-abn-string #[0 "\302\303u\210`	w\210g\304U\204 \305\306!\210`\303u\210\"\207" [ebnf-abn-string-chars ebnf-limit buffer-substring-no-properties nil 34 error "Missing `\"'"] 4])
(defalias 'ebnf-abn-character #[0 "\301`\302u\210g\211\303U\204 \211\304U\203 \305\2029 \211\306U\204\" \211\307U\203& \310\2029 \211\311U\2042 \211\312U\2036 \313\2029 \314\315!\302u\210\211w\316V\204H \314\315!\210g\317U\203a \302u\210\211w\316V\204y \314\320!\266\202{ g\321U\203y \302u\210\211w\316V\204a \314\315!\210\202a \266`\"\207" [ebnf-limit buffer-substring-no-properties nil 66 98 "01" 68 100 "0-9" 88 120 "[:xdigit:]" error "Invalid terminal value" 0 45 "Invalid terminal value range" 46] 6])
(provide 'ebnf-abn)
