;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:50:55 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/ebnf-yac.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`ebnf-yac.el' was compiled for Emacs 19.29 or later"))

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


(require 'ebnf-otz)
#@44 Value returned by `ebnf-yac-lex' function.
(defvar ebnf-yac-lex nil (#$ . 648))
#@25 List of `%TOKEN' names.
(defvar ebnf-yac-token-list nil (#$ . 734))
#@70 Non-nil means skip printable characters with no grammatical meaning.
(defvar ebnf-yac-skip-char nil (#$ . 808))
#@33 Non-nil means "error" occurred.
(defvar ebnf-yac-error nil (#$ . 926))
#@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>\204h \317`Z\320_\245\321\322\"\"\210*\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 value format-str ebnf-message-float] 7 (#$ . 1003)])
(defalias 'ebnf-yac-definitions #[(token) "\303	\304>\204E 	\305=\203> \306 \211\307=\2030 \306 \310=\204\" \311\312!\210\306 \313=\204- \311\314!\210\306 \315	!\211A\n\244	@\202@ \306 \211\202 	)\207" [ebnf-yac-skip-char token ebnf-yac-token-list t (yac-separator end-of-input) yac-token ebnf-yac-lex open-angle non-terminal error "Missing type name" close-angle "Missing `>'" ebnf-yac-name-list] 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\203' \203' \305\202@ 	\2040 \310 \202@ 	G\311U\203< 	@\202@ \312	\237!,B\207" [factor seq token ebnf-yac-error ebnf-yac-ignore-error-recovery nil ebnf-yac-lex ebnf-yac-factor ebnf-make-empty 1 ebnf-make-sequence] 4])
(defalias 'ebnf-yac-factor #[(token) "\302=\203\n \303	!\207\304=\203 \305	!\207\306=\203 \307	!\207\310\207" [token ebnf-yac-lex terminal ebnf-make-terminal non-terminal ebnf-make-non-terminal yac-error 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 mapcar #[(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) (#$ . 3389))
#@40 Initializations for Yacc/Bison parser.
(defalias 'ebnf-yac-initialize #[nil "\301\211\207" [ebnf-yac-token-list nil] 2 (#$ . 4175)])
#@107 Lexical analyser 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\202W \ngH\211\312=\204) \203. 	\313=\203. \314 \202T 	\315=\2039 \316 \202T 	\317=\203D \320 \202T 	\321=\203S \307u\210\321\211\202T \307\204\n `Y\203a \306\202\333 	\311=\203m \311\322!\202\333 	\323=\203z \324 \323\202\333 	\325=\203\212 \326\327\330\331#\325\202\333 	\332=\203\260 \333\334!\211&\235\203\237 \325\202\333 \335\230\203\254 \336'\337\202\333 \332\202\333 	\340=\203\327 \307u\210g\341=\203\306 \307u\210\342\202\333 \333\343!\226\344\230\203\323 \345\202\333 \340\202\333 \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 yac-code ebnf-yac-skip-code slash ebnf-yac-handle-comment form-feed "Illegal character" string ebnf-get-string terminal ebnf-string " -&(-~" 39 "terminal" non-terminal ebnf-buffer-substring "0-9A-Za-z_." "error" t yac-error yac-pragma 37 yac-separator "0-9A-Za-z_" "TOKEN" yac-token ebnf-yac-token-list ebnf-yac-error] 5 (#$ . 4316)])
(defalias 'ebnf-yac-skip-spaces #[nil "\203 \302\202	 \303	w\210`	W\207" [ebnf-yac-skip-char ebnf-limit "\n	 !#$&()*+-.0123456789=?@[\\\\]^_`~" "\n	 "] 2])
(byte-code "\301B\302\303\304\305#\301\207" [current-load-list ebnf-yac-skip-chars ebnf-range-regexp "^{}/'\" --" 127 255] 4)
(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 "Illegal 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])
(byte-code "\301B\302\303\304\305#\301\207" [current-load-list ebnf-yac-comment-chars ebnf-range-regexp "^* --" 127 159] 4)
(defalias 'ebnf-yac-skip-comment #[nil "\306u\210\203 g\307U\203 \310\311 !\210\202+ \203' g\312U\203' \313\311 !\210\202+ 	gH\314\205b \fw\210`Y\203B \315\316!\210\202- g\317U\203[ \320w\210g\321U\203- \306u\210\306\211\202. \315\322!\210\202- )\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 t error "Missing end of comment: `*/'" 42 "*" 47 "Illegal 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)
