;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; 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.

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


(require 'ebnf-otz)
#@44 Value returned by `ebnf-abn-lex' function.
(defvar ebnf-abn-lex nil (#$ . 428))
#@14 ABNF parser.
(defalias 'ebnf-abn-parser #[(start) "	ZT	S`\306\211\211	b\210\307 \211\310=\203\" \311\312!\210\313=\203+ \307 \310=\204b \314`Z\315_\245\316\317\"\"\210*\320!\211A@\321\n!\204+ \n\fB\202+ b\210\f.\207" [ebnf-limit start rule token rule-list origin 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 bias total value format-str ebnf-message-float] 7 (#$ . 514)])
(defalias 'ebnf-abn-rule #[(token) "	\306\306\307=\204 \310\311!\210\300 \211\312>\204 \310\313!\210\314=\203) \f\315P\316 \211@\317>\2047 \310\320!\210\nA\321\f!\210\300 \322\f\n#+B\207" [ebnf-abn-lex ebnf-action elements action name token 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] 6])
(defalias 'ebnf-abn-alternation #[nil "\302\211\303\304 !\211@\305=\203 A	B\202 \306	\"*\207" [concatenation body nil ebnf-abn-concatenation ebnf-abn-lex alternative ebnf-token-alternative] 3])
(defalias 'ebnf-abn-concatenation #[(token) "\303!\304\211@\nA\211\204 \305\306!\210\n	B\303!\211@\nA\211\203- \n	B\202 \307	!*B\207" [token seq term ebnf-abn-repetition nil error "Empty element" ebnf-token-sequence] 4])
(defalias 'ebnf-abn-repetition #[(token) "\305\211\n\306=\203 \303 \211\307=\204 	\n\307=\2033 	\204% \310\211\303 \211\306=\2033 \303 \311\n!	\203\200 \f\204C \312\313!\210\303 	\314\230\203X \204X \n\315\f!B\202\216 	\316\230\203b \203n 	\310\230\203v \310\230\203v \n\317\f!B\202\216 \320	\n\fB#\202\216 \f\203\213 \303 \fB\202\216 \n\305B+\207" [upper lower token ebnf-abn-lex element 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] 5])
(defalias 'ebnf-abn-element #[(token) "\303=\203\n \304	!\207\305=\203 \306	!\207\307=\203, \310 \211@\311=\204( \312\313!\210\nA)\207\314=\203F \310 \211@\315=\204@ \312\316!\210\317\nA!)\207\320\207" [token ebnf-abn-lex body terminal ebnf-make-terminal non-terminal ebnf-make-non-terminal begin-group ebnf-abn-alternation end-group error "Missing `)'" begin-optional end-optional "Missing `]'" ebnf-token-optional nil] 3])
#@51 Vector used to map characters to a lexical token.
(defconst ebnf-abn-token-table (make-vector 256 'error) (#$ . 2995))
#@30 Initialize EBNF token table.
(defalias 'ebnf-abn-initialize #[nil "\302\211\303W\203 	\304I\210T\211\202 \305\211\306W\203( 	\307I\210T\211\202 \310\211\311W\203< 	\307I\210T\211\202+ \312\211\313W\203P 	\307I\210T\211\202? 	\314\315I\210	\316\315I\210	\317\320I\210	\321\320I\210	\322\320I\210	\323\324I\210	\325\307I\210	\326\327I\210	\330\327I\210	\331\332I\210	\333\334I\210	\335\336I\210	\337\340I\210	\306\341I\210	\342\343I\210	\344\345I\210	\346\347I)\207" [char 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 (#$ . 3120)])
(defconst ebnf-abn-non-terminal-chars (ebnf-range-regexp "-_0-9A-Za-z" 160 255))
(defconst ebnf-abn-non-terminal-letter-chars (ebnf-range-regexp "A-Za-z" 160 255))
#@101 Lexical analyzer for ABNF.

Return a lexical token.

See documentation for variable `ebnf-abn-lex'.
(defalias 'ebnf-abn-lex #[nil "`Y\203 \306\207\307g\310V\203 \311\202R \ngH\211\312=\203) \313w\210`W\202O 	\314=\2034 \315 \202O 	\316=\203C \307u\210\316\211\202O 	\317=\203N \320 \202O \307\204\n `Y\203\\ \306\202\357 	\311=\203h \311\321!\202\357 	\317=\203r \317\202\357 	\322=\203\200 \323\324!\322\202\357 	\325=\203\230 g\326U\203\221 \327 \202\223 \330 \325\202\357 	\331=\203\321 g\332U\211\203\264 \307u\210\333#!\204\264 \311\334!\210\323$!\203\314 g\335U\204\307 \311\334!\210\336\f\337Q)\331\202\357 	\340=\203\353 \307u\210g\341U\204\344 \340\202\357 \307u\210\342\202\357 \307u\210	)\207" [ebnf-limit token ebnf-abn-token-table ebnf-action ebnf-abn-lex prose-p end-of-input nil 255 error space " 	" comment ebnf-abn-skip-comment form-feed end-of-rule ebnf-abn-skip-end-of-rule "Invalid character" integer ebnf-buffer-substring "0-9" terminal 34 ebnf-abn-string ebnf-abn-character non-terminal 60 looking-at "Invalid prose value" 62 "<" ">" equal 47 incremental-alternative ebnf-abn-non-terminal-letter-chars ebnf-abn-non-terminal-chars] 4 (#$ . 4034)])
(defalias 'ebnf-abn-skip-end-of-rule #[nil "\302\303	w\304V\206 \305	w\210g\306U\203 \307 \204 )?\207" [eor-p ebnf-limit nil "\n" 1 " 	" 59 ebnf-abn-skip-comment] 2])
(defconst ebnf-abn-comment-chars (ebnf-range-regexp "^\n --" 127 159))
(defalias 'ebnf-abn-skip-comment #[nil "\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 #[nil "\301u\210\302!\207" [ebnf-abn-comment-chars nil ebnf-buffer-substring] 2])
(defconst ebnf-abn-string-chars (ebnf-range-regexp " -!#-~" 160 255))
(defalias 'ebnf-abn-string #[nil "\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 #[nil "\303`\304u\210g\211\305U\204 \306U\203 \307\202: \310U\204# \311U\203' \312\202: \313U\2043 \314U\2037 \315\202: \316\317!\304u\210	\nw\320V\204J \316\317!\210g\321U\203b \304u\210	\nw\320V\204z \316\322!\210\202z g\323U\203z \304u\210	\nw\320V\204b \316\317!\210\202b *`\"\207" [char chars ebnf-limit buffer-substring-no-properties nil 66 98 "01" 68 100 "0-9" 88 120 "0-9A-Fa-f" error "Invalid terminal value" 0 45 "Invalid terminal value range" 46] 5])
(provide 'ebnf-abn)
