;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.

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


(require 'ebnf-otz)
#@44 Value returned by `ebnf-yac-lex' function.
(defvar ebnf-yac-lex nil (#$ . 428))
#@25 List of `%TOKEN' names.
(defvar ebnf-yac-token-list nil (#$ . 514))
#@70 Non-nil means skip printable characters with no grammatical meaning.
(defvar ebnf-yac-skip-char nil (#$ . 588))
#@33 Non-nil means "error" occurred.
(defvar ebnf-yac-error nil (#$ . 706))
#@20 yacc/Bison parser.
(defalias 'ebnf-yac-parser #[(start) "	ZT	S`\306\211\211	b\210\307 \211\310=\203\" \311\312!\210\313!\314=\204. \311\315!\210\307 \316>\204b \317`Z\320_\245\321\322\"\"\266\323!\211A@\324\n!\2041 \n\fB\2021 b\210\f.\207" [ebnf-limit start rule token syntax-list origin nil ebnf-yac-lex end-of-input error "Invalid Yacc/Bison file format" ebnf-yac-definitions yac-separator "Missing `%%%%'" (end-of-input yac-separator) "Parsing...%s%%" 100.0 message format ebnf-yac-rule ebnf-add-empty-rule-list bias total ebnf-message-float] 8 (#$ . 783)])
(defalias 'ebnf-yac-definitions #[(token) "\303	\304>\204U 	\305\267\202N \306 \211\307=\2030 \306 \310=\204\" \311\312!\210\306 \313=\204- \311\314!\210\306 \315	!\211A\n\244	@\202P \306 \310=\204I \311\316!\210\306 \202P \306 \211\202 	)\207" [ebnf-yac-skip-char token ebnf-yac-token-list t (yac-separator end-of-input) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (yac-token 14 yac-prec 62)) ebnf-yac-lex open-angle non-terminal error "Missing type name" close-angle "Missing `>'" ebnf-yac-name-list "Missing prec name"] 3])
(defalias 'ebnf-yac-rule #[(token) "	\306\306\307=\204 \310\311!\210\300 \312=\204 \310\313!\210\314 \211@\315=\204+ \310\316!\210\nA\317\f!\210\300 \320\f\n#+B\207" [ebnf-yac-lex ebnf-action body action header token nil non-terminal error "Invalid rule name" colon "Invalid rule: missing `:'" ebnf-yac-alternative period "Invalid rule: missing `;'" ebnf-eps-add-production ebnf-make-production] 6])
(defalias 'ebnf-yac-alternative #[nil "\302\211\303 \211@\304=\203 A\211\203 	B\202 \305	\"*\207" [sequence body nil ebnf-yac-sequence alternative ebnf-token-alternative] 3])
(defalias 'ebnf-yac-sequence #[nil "\305\211\211\211\306 \307\n!\211\203 	B\202 \n\f\205  ?\205' \310	!,B\207" [factor seq token ebnf-yac-error ebnf-yac-ignore-error-recovery nil ebnf-yac-lex ebnf-yac-factor ebnf-token-sequence] 4])
(defalias 'ebnf-yac-factor #[(token) "\302\267\202 \303	!\207\304	!\207\305	!\207\306\207" [token ebnf-yac-lex #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (terminal 6 non-terminal 10 yac-error 14)) ebnf-make-terminal ebnf-make-non-terminal ebnf-make-special nil] 2])
(defalias 'ebnf-yac-name-list #[(token) "\303	\304=\203# \nB\302 \211\305=\203# \302 \304=\204 \306\307!\210\202 	)B\207" [names token ebnf-yac-lex nil non-terminal comma error "Missing token name"] 3])
#@51 Vector used to map characters to a lexical token.
(defconst ebnf-yac-token-table (byte-code "\301\302\303\"\304\305\306\"\210\304\307\310\"\210\311\312I\210\313\312I\210\314\312I\210\315\312I\210\316\317I\210\320\321I\210\322\323I\210\324\325I\210\326\327I\210\330\331I\210\332\333I\210\334\335I\210\336\337I\210\340\341I\210\342\343I\210\344\345I\210)\207" [table make-vector 256 error mapc #[(char) "	\302I\207" [table char non-terminal] 3] "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" #[(char) "	\302I\207" [table char character] 3] "!#$&()*+-.0123456789=?@[\\]^_`~" 10 space 13 9 32 12 form-feed 60 open-angle 62 close-angle 44 comma 37 yac-pragma 47 slash 123 yac-code 34 string 39 terminal 58 colon 124 alternative 59 period] 3) (#$ . 3316))
#@40 Initializations for Yacc/Bison parser.
(defalias 'ebnf-yac-initialize #[nil "\301\211\207" [ebnf-yac-token-list nil] 2 (#$ . 4100)])
#@107 Lexical analyzer for Yacc/Bison.

Return a lexical token.

See documentation for variable `ebnf-yac-lex'.
(defalias 'ebnf-yac-lex #[nil "`Y\203 \306\207\307g\310V\203 \311\202K \ngH\211\312=\204) \203. 	\313=\203. \314 \202H 	\315\267\202G \316 \202H \317 \202H \307u\210\320\211\202H \307\204\n `Y\203U \306\202\265 	\321\267\202\261 \311\322!\202\265 \323 \324\202\265 \325\326\327\330#\331\202\265 \332\333!\211&\235\203\201 \331\202\265 \334\230\203\216 \335'\336\202\265 \337\202\265 \307u\210g\340=\203\242 \307u\210\341\202\265 \342\332\343!\226\344\"A\206\265 \345\202\265 \307u\210	)\207" [ebnf-limit token ebnf-yac-token-table ebnf-yac-skip-char ebnf-action ebnf-yac-lex end-of-input nil 255 error space character ebnf-yac-skip-spaces #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (yac-code 52 slash 57 form-feed 62)) ebnf-yac-skip-code ebnf-yac-handle-comment form-feed #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (error 91 string 97 terminal 104 non-terminal 114 yac-pragma 146)) "Invalid character" ebnf-get-string string ebnf-string " -&(-~" 39 "terminal" terminal ebnf-buffer-substring "0-9A-Za-z_." "error" t yac-error non-terminal 37 yac-separator assoc "0-9A-Za-z_" (("TOKEN" . yac-token) ("RIGHT" . yac-token) ("LEFT" . yac-token) ("NONASSOC" . yac-token) ("PREC" . yac-prec)) yac-pragma ebnf-yac-token-list ebnf-yac-error] 5 (#$ . 4241)])
(defalias 'ebnf-yac-skip-spaces #[nil "\203 \302\202	 \303	w\210`	W\207" [ebnf-yac-skip-char ebnf-limit "-\n	 !#$&()*+,.0123456789=?@[\\\\]^_`~" "\n	 "] 2])
(defconst ebnf-yac-skip-chars (ebnf-range-regexp "^{}/'\" --" 127 255))
(defalias 'ebnf-yac-skip-code #[nil "\303u\210\304\305V\203] 	\nw\210g\306U\203 \303u\210T\211\202 g\307U\203/ \303u\210S\211\202 g\310U\203; \311 \210\202 g\312U\203G \313 \210\202 g\314U\203V \315\316\314\317#\210\202 \320\321!\210\202 )\322 \207" [pair ebnf-yac-skip-chars ebnf-limit nil 1 0 123 125 47 ebnf-yac-handle-comment 34 ebnf-get-string 39 ebnf-string " -&(-~" "character" error "Invalid character" ebnf-yac-skip-spaces] 5])
(defalias 'ebnf-yac-handle-comment #[nil "\300u\210g\301U\203 \302 \210\303 \207g\304U\203 \300\210\303 \207\300\207" [nil 42 ebnf-yac-skip-comment ebnf-yac-skip-spaces 47] 2])
(defconst ebnf-yac-comment-chars (ebnf-range-regexp "^* --" 127 159))
(defalias 'ebnf-yac-skip-comment #[nil "\306u\210\203 g\307U\203 \310\311 !\210\202O \203' g\312U\203' \313\311 !\210\202O \2039 g\314U\2039 \315\311 !\210\202O \203K g\316U\203K \317\311 !\210\202O 	gH\320\205\206 \fw\210`Y\203f \321\322!\210\202Q g\323U\203 \324w\210g\325U\203Q \306u\210\306\211\202R \321\326!\210\202Q )\207" [ebnf-eps-executing ebnf-comment-table ebnf-action not-end ebnf-yac-comment-chars ebnf-limit nil 91 ebnf-eps-add-context ebnf-yac-eps-filename 93 ebnf-eps-remove-context 72 ebnf-eps-header-comment 70 ebnf-eps-footer-comment t error "Missing end of comment: `*/'" 42 "*" 47 "Invalid character"] 3])
(defalias 'ebnf-yac-eps-filename #[nil "\304u\210\305`\306P\304	\204: \nw\210`Y\203 `\2025 g\307U\2034 \310w\210g\311U\2055 \312u\210`\2025 `\211\203 	*\"\207" [ebnf-yac-comment-chars found chars ebnf-limit nil buffer-substring-no-properties "\n" 42 "*" 47 -1] 5])
(provide 'ebnf-yac)
