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



(require 'ebnf2ps)#@26 List of empty rule name.
(defvar ebnf-empty-rule-list nil (#$ . 102))#@54 Add empty RULE in `ebnf-empty-rule-list'.

(fn RULE)
(defalias 'ebnf-add-empty-rule-list #[257 "\205 \211\302H\303H\304=\205 \211\305H	B\211\207" [ebnf-ignore-empty-rule ebnf-empty-rule-list 7 0 ebnf-generate-empty 6] 3 (#$ . 177)])#@23 Initialize optimizer.
(defalias 'ebnf-otz-initialize #[0 "\301\211\207" [ebnf-empty-rule-list nil] 2 (#$ . 419)])#@42 Eliminate empty rules.

(fn SYNTAX-LIST)
(defalias 'ebnf-eliminate-empty-rules #[257 "\203Z \211G\303\304\211\203R \305\306\307\310	T\211\311_\n\245!#\266@\312!\2031 \266\202\202K \211\313HB\262\203E A\241\266\202K A\262\210A\262\202 *\266\202  \207" [ebnf-empty-rule-list ebnf-nprod ebnf-total 0 nil "Eliminating empty rules" message "%s...%3d%%" round 100.0 ebnf-eliminate-empty 6] 13 (#$ . 539)])#@13 

(fn RULE)
(defalias 'ebnf-eliminate-empty #[257 "\211\301H\211\302\267\202\252 \303H\235?\205\253 \207\303H\303H\304\211\203G @\262\305!\2030 \262\202@ \203< A\241\210\202@ A\262A\262\202 \205Q \303I\210\207\303H\303H\304\211\203\205 @\262\305!\203n \262\202~ \203z A\241\210\202~ A\262A\262\202Z \205\231 G\306U\203\223 @\207\303I\210\207\305\307H!\211\205\251 \307I\210\207\207" [ebnf-empty-rule-list 0 #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ebnf-generate-non-terminal 9 ebnf-generate-sequence 20 ebnf-generate-alternative 82 ebnf-generate-production 154)) 6 nil ebnf-eliminate-empty 1 7] 9 (#$ . 972)])#@46 Syntactic chart optimizer.

(fn SYNTAX-LIST)
(defalias 'ebnf-optimize #[257 "\204 \207\211G\303\304\203  \305@!B\262A\262\202 \211\237*\207" [ebnf-optimize ebnf-nprod ebnf-total 0 nil ebnf-optimize1] 6 (#$ . 1681)])#@13 

(fn PROD)
(defalias 'ebnf-optimize1 #[257 "\302\303\304\305T\211\306_	\245!#\266\211\307H\211\310H\311=\203\315 \312\313H\313H\"\211@A\314\"\307\203k \315=\203; \316\262\317!\206B \262\320!\317A!\206R \321A!@\203a \322\"\266\202\202\312 \323\"\266\202\202\312 \203\273 \320!A\322\317!\206} \321!!\324!\211\203\212 \211C\262\203\241 G\325U\203\247 @\310H\326=\203\247 \266\203\202\312 \327\317	!\206\263 \321	!D!\266\203\202\312 \330!\206\312 \317!\206\312 I\266\207" [ebnf-nprod ebnf-total "Optimizing syntactic chart" message "%s...%3d%%" round 100.0 7 0 ebnf-generate-alternative ebnf-split-header-prefix 6 ebnf-split-header-suffix t nil ebnf-prefix-suffix ebnf-extract-empty ebnf-create-alternative ebnf-make-zero-or-more ebnf-make-one-or-more ebnf-map-list-to-optional 1 ebnf-generate-empty ebnf-make-sequence ebnf-map-node-to-optional] 14 (#$ . 1915)])#@25 

(fn NODE-LIST HEADER)
(defalias 'ebnf-split-header-prefix #[514 "\300\"\211@\301\211A\211\262\203@ @\211\302H\303=\203: \211\304HA\211G\305U\203* \211@\2020 \304I\210\262B\262\210\202 \306\266\202\202 \211\203J \307 B\262\237B\207" [ebnf-split-header-prefix1 nil 0 ebnf-generate-sequence 6 1 t ebnf-make-empty] 11 (#$ . 2830)])#@25 

(fn NODE-LIST HEADER)
(defalias 'ebnf-split-header-prefix1 #[514 "\300\211\203$ \301@\"\203 @B\262\202 @B\262A\262\202 \211\237\237B\207" [nil ebnf-node-equal-header] 7 (#$ . 3182)])#@20 

(fn NODE HEADER)
(defalias 'ebnf-node-equal-header #[514 "\300H\211\301\267\202 \302\303H@\"\207\303H\230\207\304\207" [0 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ebnf-generate-sequence 9 ebnf-generate-non-terminal 17)) ebnf-node-equal-header 6 nil] 6 (#$ . 3387)])#@13 

(fn NODE)
(defalias 'ebnf-map-node-to-optional #[257 "\211\300H\301=\205 \302\303H!\207" [0 ebnf-generate-alternative ebnf-map-list-to-optional 6] 4 (#$ . 3711)])#@14 

(fn NLIST)
(defalias 'ebnf-map-list-to-optional #[257 "\211G\300U\205' \211@A@\301H\302=\203 \303!\207\211\301H\302=\203$ \303!\207\266\304\207" [2 0 ebnf-generate-empty ebnf-make-optional nil] 5 (#$ . 3883)])#@14 

(fn ELIST)
(defalias 'ebnf-extract-empty #[257 "\211\300\211\2030 @\301H\302=\204 \262\202) \303\262\203% A\241\210\202) A\262A\262\202 \211B\207" [nil 0 ebnf-generate-empty t] 6 (#$ . 4106)])#@20 

(fn NLIST ZLIST)
(defalias 'ebnf-split-header-suffix #[514 "\300\211G\301U\203: \302@\2034 \2034 \303@\"\262A\262\302=\203, \302\262\202\f B\262\202\f \266\202\202v GGU\203u \302\211\203o \203o \303@@\"\262A\262A\262\211\302=\203g \302\262\202C \211B\262\202C \211\262\202v \300\205\254 \304!\211G\211\305U\203\210 \266\302\207\211\301U\203\234 @\262\203\232 \306!\207\207\203\246 \307 B\262\310\237!\266\202\207" [nil 1 t ebnf-split-header-suffix1 ebnf-unique-list 0 ebnf-make-optional ebnf-make-empty ebnf-create-alternative] 9 (#$ . 4321)])#@14 

(fn NE ZE)
(defalias 'ebnf-split-header-suffix1 #[514 "\300H\301=\203b \211\300H\301=\205\233 \302H\302H\303\211GGY\205a \304GGZ\262\233\262\211\203I \203I \305@@\"\262A\262A\262\202- \211\262\205a \300U\203Y \266\304\207S\233\303\241\210\207\211\300H\301=\203\227 \211\302H\211G\305S\233@\"\205\226 \211\306U\203\204 \266\304\207\211\307U\203\215 @\207\211\307Z\233\303\241\210\207\305\"\207" [0 ebnf-generate-sequence 6 nil t ebnf-node-equal 1 2] 10 (#$ . 4913)])#@12 

(fn LIS)
(defalias 'ebnf-prefix-suffix #[257 "\211\2058 \211<\2058 \300!\301A!\211A@\262@\262\204\" \2056 \302\2052 \303!\2061 \304!C\244\244!\266\203\207" [ebnf-split-prefix ebnf-split-suffix ebnf-make-sequence ebnf-map-list-to-optional ebnf-create-alternative] 8 (#$ . 5421)])#@12 

(fn LIS)
(defalias 'ebnf-split-prefix #[257 "\211G\211@\300H\301=\203 @\302H\202 @CT\211\300V\203c A\211\262\203c @\300H\301=\2037 @\302H\202: @C\300\203[ \203[ \303@@\"\203[ A\262A\262\211T\262\202; ^\266\204\202 \211\300U\204o \211V\203s \304B\207\211\233\211\203\201 S\233\304\241\210\304\211@\300H\301=\203\222 \204\241 A\262	\262\305\262\202\275 G\306U\203\261 @\240\210\202\270 @\302I\210A\262\203@\304\300H\301=\203\362 \302H\233\211\262\203\362 \211G\306U\203\347 @\240\210\202\354 \302I\210\262\202\305\262\203A\241\210\202\nA\262A\262\266\202\275 \307\203\n\310 C\244\202!\n!B\207" [0 ebnf-generate-sequence 6 ebnf-node-equal nil t 1 ebnf-unique-list ebnf-make-empty] 14 (#$ . 5720)])#@12 

(fn LIS)
(defalias 'ebnf-split-suffix #[257 "\211G\211@\300H\301=\203 @\302H\202 @C\237T\211\300V\203i A\211\262\203i @\300H\301=\2038 @\302H\202; @C\237\211\300\203^ \203^ \303@@\"\203^ A\262A\262\211T\262\202> \237\210^\266\205\202 \237\262\211\300U\204y \211V\203} \304B\207GZ\211\233\300V\205\222 S\233\304\241\210\304\211	@\300H\301=\203\242 \204\261 	A\262\n	\262\305\262\202\315 G\306U\203\301 	@\240\210\202\310 	@\302I\210	A\262\203.@\304\300H\301=\203\302H\262\211GZ\262\300V\203\306U\203\376 @\240\210\202S\233\304\241\210\302I\210\262\202%\305\262\203 A\241\210\202%A\262\fA\262\266\202\315 \307\203=\310 C\244\202?!B\207" [0 ebnf-generate-sequence 6 ebnf-node-equal nil t 1 ebnf-unique-list ebnf-make-empty] 15 (#$ . 6509)])#@14 

(fn NLIST)
(defalias 'ebnf-unique-list #[257 "\211\300\203G A@\300\2037 \301@\"\204 A\262\202 \302\262\300\262\2030 A\241\210\202 A\262\202 \211\204> \262A\262\266\202 \207" [nil ebnf-node-equal t] 9 (#$ . 7351)])#@12 

(fn A B)
(defalias 'ebnf-node-equal #[514 "\300H\300H=\205^ \301\267\202] \302\207\303H\303H\230\207\303H\303HGGU\205I \302\211\203F \203F \304@@\"\262A\262A\262\202+ \211\262\207\303H\303H\230\205^ \304\305H\305H\"\207\306\207" [0 #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ebnf-generate-empty 18 ebnf-generate-non-terminal 20 ebnf-generate-terminal 20 ebnf-generate-special 20 ebnf-generate-alternative 28 ebnf-generate-sequence 28 ebnf-generate-production 74)) t 6 ebnf-node-equal 7 nil] 10 (#$ . 7598)])#@12 

(fn ALT)
(defalias 'ebnf-create-alternative #[257 "\211G\300V\203 \301!\207\211@\207" [1 ebnf-make-alternative] 3 (#$ . 8180)])
(provide 'ebnf-otz)
