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



(byte-code "\300\301!\210\300\302!\207" [require semantic/wisent subr-x] 2)#@76 Define a context NAME that will bind variables VARS.

(fn NAME &rest VARS)
(defalias 'wisent-defcontext '(macro . #[385 "\300!\301\302\"\303\304\305\306\307	DEDC\"B\207" [wisent-context-name mapcar #[257 "\300D\207" [defvar] 3 "\n\n(fn V)"] progn append eval-when-compile defvar quote] 12 (#$ . 159)]))
(byte-code "\300\301\302\303#\300\207" [function-put wisent-defcontext lisp-indent-function 1] 4)#@70 Bind variables in context NAME then eval BODY.

(fn NAME &rest BODY)
(defalias 'wisent-with-context '(macro . #[385 "\300\301!BB\207" [dlet wisent-context-bindings] 5 (#$ . 572)]))
(byte-code "\300\301\302\303#\300\207" [function-put wisent-with-context lisp-indent-function 1] 4)#@175 Fill string S with spaces.
Return a new string of at least N characters.  Insert spaces on right.
If optional LEFT is non-nil insert spaces on left.

(fn S N &optional LEFT)
(defalias 'wisent-pad-string #[770 "\300\301$\207" [string-pad nil] 8 (#$ . 861)])
(byte-code "\300\301\302\303#\210\304\301\305\306#\307\301\310\311#\207" [make-obsolete wisent-pad-string string-pad "29.1" function-put speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defconst wisent-BITS-PER-WORD (logcount most-positive-fixnum))#@50 (N + BITS-PER-WORD - 1) / BITS-PER-WORD.

(fn N)
(defalias 'wisent-WORDSIZE #[257 "\211\\S\245\207" [wisent-BITS-PER-WORD] 3 (#$ . 1386)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-WORDSIZE speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@59 X[I/BITS-PER-WORD] |= 1 << (I % BITS-PER-WORD).

(fn X I)
(defalias 'wisent-SETBIT #[514 "\211\245\301H\302\303\246\"\"I\207" [wisent-BITS-PER-WORD logior ash 1] 11 (#$ . 1673)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-SETBIT speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@62 X[I/BITS-PER-WORD] &= ~(1 << (I % BITS-PER-WORD)).

(fn X I)
(defalias 'wisent-RESETBIT #[514 "\211\245\301H\302\303\304\246\"!\"I\207" [wisent-BITS-PER-WORD logand lognot ash 1] 12 (#$ . 2004)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-RESETBIT speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@67 (X[I/BITS-PER-WORD] & (1 << (I % BITS-PER-WORD))) != 0.

(fn X I)
(defalias 'wisent-BITISSET #[514 "\301\245H\302\303\246\"\"\304U?\207" [wisent-BITS-PER-WORD logand ash 1 0] 8 (#$ . 2354)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-BITISSET speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@40 Non-nil means enable some debug stuff.
(defvar wisent-debug-flag nil (#$ . 2696))#@25 Name of the log buffer.
(defconst wisent-log-buffer-name "*wisent-log*" (#$ . 2783))#@38 Non-nil means to start a new report.
(defvar wisent-new-log-flag nil (#$ . 2873))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable wisent-verbose-flag funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil means to report verbose information on generated parser." :group wisent :type boolean] 8)#@67 Toggle whether to report verbose information on generated parser.
(defalias 'wisent-toggle-verbose-flag #[0 "?\301\302!\205 \303\304\203 \305\202 \306\"\207" [wisent-verbose-flag called-interactively-p interactive message "Verbose report %sabled" "en" "dis"] 3 (#$ . 3210) nil])#@82 Return the log buffer.
Its name is defined in constant `wisent-log-buffer-name'.
(defalias 'wisent-log-buffer '(macro . #[0 "\300\207" [(get-buffer-create wisent-log-buffer-name)] 1 (#$ . 3500)]))#@47 Delete the entire contents of the log buffer.
(defalias 'wisent-clear-log '(macro . #[0 "\300\207" [(with-current-buffer (wisent-log-buffer) (erase-buffer))] 1 (#$ . 3702)]))#@45 Return the current source file name or nil.
(defalias 'wisent-source #[0 "\300 \211\205	 \301!\207" [macroexp-file-name file-relative-name] 3 (#$ . 3882)])#@40 Start a new entry into the log buffer.
(defalias 'wisent-new-log #[0 "\302\303\304\305 \206 \306 \307\310!#r\311	!q\210db\210\211c)\207" [wisent-new-log-flag wisent-log-buffer-name nil format "\n\n*** Wisent %s - %s\n\n" wisent-source buffer-name format-time-string "%Y-%m-%d %R" get-buffer-create] 5 (#$ . 4044)])#@187 Insert text into the log buffer.
`format-message' is applied to ARGS and the result string is inserted into the
log buffer returned by the function `wisent-log-buffer'.

(fn &rest ARGS)
(defalias 'wisent-log #[128 "\203 \302 \210r\303	!q\210\304\305\"c)\207" [wisent-new-log-flag wisent-log-buffer-name wisent-new-log get-buffer-create apply format-message] 4 (#$ . 4367)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-log speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@63 The log file.
Used when running without interactive terminal.
(defconst wisent-log-file "wisent.output" (#$ . 4885))#@57 Append contents of logging buffer to `wisent-log-file'.
(defalias 'wisent-append-to-log-file #[0 "\302!\205) \3031! r\304!q\210~\210deV\205 \305ed	\306$)0\207\307\310\311!\"\262\207" [wisent-log-buffer-name wisent-log-file get-buffer (error) get-buffer-create write-region t message "*** %s" error-message-string] 5 (#$ . 5007)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable wisent-state-table-size funcall function #[0 "\300\207" [1009] 1 ""] "The size of the state table." :type integer :group wisent] 8)#@95 Return non-nil if item number S defines a token (terminal).
That is if S < `ntokens'.

(fn S)
(defalias 'wisent-ISTOKEN '(macro . #[257 "\300\301BB\207" [< (ntokens)] 4 (#$ . 5566)]))#@91 Return non-nil if item number S defines a nonterminal.
That is if S >= `ntokens'.

(fn S)
(defalias 'wisent-ISVAR '(macro . #[257 "\300\301BB\207" [>= (ntokens)] 4 (#$ . 5756)]))#@49 Return printable form of item number S.

(fn S)
(defalias 'wisent-tag #[257 "H\302!\203 \211	\236A\206 \303\304\"\207\305!\207" [tags wisent-escape-sequence-strings characterp format "'%c'" symbol-name] 5 (#$ . 5941)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-tag speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@107 Store OBJECT's PROPNAME property with value VALUE.
Use `eq' to locate OBJECT.

(fn OBJECT PROPNAME VALUE)
(defalias 'wisent-put #[771 "\236\211\204 C\262\211B\211\301A#\241\207" [ptable plist-put] 9 (#$ . 6309)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-put speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@98 Return the value of OBJECT's PROPNAME property.
Use `eq' to locate OBJECT.

(fn OBJECT PROPNAME)
(defalias 'wisent-get #[514 "\301\236A\"\207" [ptable plist-get] 5 (#$ . 6673)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-get speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@45 Return the item number of symbol X.

(fn X)
(defalias 'wisent-item-number #[257 "\211\301\302\236A\"\207" [ptable wisent--item-no plist-get] 6 (#$ . 6995)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-item-number speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@49 Set the item number of symbol X to N.

(fn X N)
(defalias 'wisent-set-item-number #[514 "\301\236\211\204 C\262\211B\211\302A#\241\207" [ptable wisent--item-no plist-put] 11 (#$ . 7304)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-set-item-number speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@47 Return the associativity of symbol X.

(fn X)
(defalias 'wisent-assoc #[257 "\211\301\302\236A\"\207" [ptable wisent--assoc plist-get] 6 (#$ . 7657)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-assoc speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@51 Set the associativity of symbol X to A.

(fn X A)
(defalias 'wisent-set-assoc #[514 "\301\236\211\204 C\262\211B\211\302A#\241\207" [ptable wisent--assoc plist-put] 11 (#$ . 7954)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-set-assoc speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@50 Return the precedence level of symbol X.

(fn X)
(defalias 'wisent-prec #[257 "\211\301\302\236A\"\207" [ptable wisent--prec plist-get] 6 (#$ . 8295)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-prec speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@54 Set the precedence level of symbol X to P.

(fn X P)
(defalias 'wisent-set-prec #[514 "\301\236\211\204 C\262\211B\211\302A#\241\207" [ptable wisent--prec plist-put] 11 (#$ . 8592)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-set-prec speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@63 compiler-macro for inlining `core-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-p (and (memq (type-of cl-x) cl-struct-core-tags) t)) nil] 9 (#$ . 8933)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-p compiler-macro core-p--cmacro] 4)#@13 

(fn CL-X)
(defalias 'core-p #[257 "\301!>\205	 \302\207" [cl-struct-core-tags type-of t] 3 (#$ . 9284)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\301#\300\207" [function-put core-p side-effect-free error-free pure t define-symbol-prop core cl-deftype-satisfies] 6)#@66 compiler-macro for inlining `core-next'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-next--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-next (progn (or (core-p cl-x) (signal 'wrong-type-argument (list 'core cl-x))) (aref cl-x 1))) nil] 9 (#$ . 9576)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-next compiler-macro core-next--cmacro] 4)#@54 Access slot "next" of `core' struct CL-X.

(fn CL-X)
(defalias 'core-next #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-core-tags type-of signal wrong-type-argument core 1] 5 (#$ . 9981)])
(byte-code "\300\301\302\303#\300\207" [function-put core-next side-effect-free t] 4)#@66 compiler-macro for inlining `core-link'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-link--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-link (progn (or (core-p cl-x) (signal 'wrong-type-argument (list 'core cl-x))) (aref cl-x 2))) nil] 9 (#$ . 10282)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-link compiler-macro core-link--cmacro] 4)#@54 Access slot "link" of `core' struct CL-X.

(fn CL-X)
(defalias 'core-link #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-core-tags type-of signal wrong-type-argument core 2] 5 (#$ . 10688)])
(byte-code "\300\301\302\303#\300\207" [function-put core-link side-effect-free t] 4)#@68 compiler-macro for inlining `core-number'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-number--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-number (progn (or (core-p cl-x) (signal 'wrong-type-argument (list 'core cl-x))) (aref cl-x 3))) nil] 9 (#$ . 10990)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-number compiler-macro core-number--cmacro] 4)#@56 Access slot "number" of `core' struct CL-X.

(fn CL-X)
(defalias 'core-number #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-core-tags type-of signal wrong-type-argument core 3] 5 (#$ . 11406)])
(byte-code "\300\301\302\303#\300\207" [function-put core-number side-effect-free t] 4)#@78 compiler-macro for inlining `core-accessing-symbol'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-accessing-symbol--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-accessing-symbol (progn (or (core-p cl-x) (signal 'wrong-type-argument (list 'core cl-x))) (aref cl-x 4))) nil] 9 (#$ . 11714)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-accessing-symbol compiler-macro core-accessing-symbol--cmacro] 4)#@66 Access slot "accessing-symbol" of `core' struct CL-X.

(fn CL-X)
(defalias 'core-accessing-symbol #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-core-tags type-of signal wrong-type-argument core 4] 5 (#$ . 12180)])
(byte-code "\300\301\302\303#\300\207" [function-put core-accessing-symbol side-effect-free t] 4)#@68 compiler-macro for inlining `core-nitems'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-nitems--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-nitems (progn (or (core-p cl-x) (signal 'wrong-type-argument (list 'core cl-x))) (aref cl-x 5))) nil] 9 (#$ . 12518)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-nitems compiler-macro core-nitems--cmacro] 4)#@56 Access slot "nitems" of `core' struct CL-X.

(fn CL-X)
(defalias 'core-nitems #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-core-tags type-of signal wrong-type-argument core 5] 5 (#$ . 12934)])
(byte-code "\300\301\302\303#\300\207" [function-put core-nitems side-effect-free t] 4)#@67 compiler-macro for inlining `core-items'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'core-items--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block core-items (progn (or (core-p cl-x) (signal 'wrong-type-argument (list 'core cl-x))) (aref cl-x 6))) nil] 9 (#$ . 13242)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop core-items compiler-macro core-items--cmacro] 4)#@55 Access slot "items" of `core' struct CL-X.

(fn CL-X)
(defalias 'core-items #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-core-tags type-of signal wrong-type-argument core 6] 5 (#$ . 13653)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put core-items side-effect-free t defalias copy-core copy-sequence] 4)#@61 compiler-macro for inlining `make-core'.

(fn CL-WHOLE-ARG)
(defalias 'make-core--cmacro #[257 "\300\301\302\301\211\211%\207" [cl--defsubst-expand nil (cl-block make-core (record 'core nil nil 0 0 0 [0]))] 7 (#$ . 14001)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop make-core compiler-macro make-core--cmacro] 4)#@41 Constructor for objects of type `core'.
(defalias 'make-core #[0 "\300\301\302\211\303\211\211\304&\207" [record core nil 0 [0]] 8 (#$ . 14336)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put make-core side-effect-free t cl-struct-define core nil cl-structure-object record ((cl-tag-slot) (next) (link) (number 0) (accessing-symbol 0) (nitems 0) (items [0])) cl-struct-core-tags] 11)#@65 compiler-macro for inlining `shifts-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'shifts-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block shifts-p (and (memq (type-of cl-x) cl-struct-shifts-tags) t)) nil] 9 (#$ . 14771)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop shifts-p compiler-macro shifts-p--cmacro] 4)#@13 

(fn CL-X)
(defalias 'shifts-p #[257 "\301!>\205	 \302\207" [cl-struct-shifts-tags type-of t] 3 (#$ . 15135)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\301#\300\207" [function-put shifts-p side-effect-free error-free pure t define-symbol-prop shifts cl-deftype-satisfies] 6)#@68 compiler-macro for inlining `shifts-next'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'shifts-next--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block shifts-next (progn (or (shifts-p cl-x) (signal 'wrong-type-argument (list 'shifts cl-x))) (aref cl-x 1))) nil] 9 (#$ . 15436)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop shifts-next compiler-macro shifts-next--cmacro] 4)#@56 Access slot "next" of `shifts' struct CL-X.

(fn CL-X)
(defalias 'shifts-next #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-shifts-tags type-of signal wrong-type-argument shifts 1] 5 (#$ . 15856)])
(byte-code "\300\301\302\303#\300\207" [function-put shifts-next side-effect-free t] 4)#@70 compiler-macro for inlining `shifts-number'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'shifts-number--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block shifts-number (progn (or (shifts-p cl-x) (signal 'wrong-type-argument (list 'shifts cl-x))) (aref cl-x 2))) nil] 9 (#$ . 16168)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop shifts-number compiler-macro shifts-number--cmacro] 4)#@58 Access slot "number" of `shifts' struct CL-X.

(fn CL-X)
(defalias 'shifts-number #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-shifts-tags type-of signal wrong-type-argument shifts 2] 5 (#$ . 16598)])
(byte-code "\300\301\302\303#\300\207" [function-put shifts-number side-effect-free t] 4)#@71 compiler-macro for inlining `shifts-nshifts'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'shifts-nshifts--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block shifts-nshifts (progn (or (shifts-p cl-x) (signal 'wrong-type-argument (list 'shifts cl-x))) (aref cl-x 3))) nil] 9 (#$ . 16916)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop shifts-nshifts compiler-macro shifts-nshifts--cmacro] 4)#@59 Access slot "nshifts" of `shifts' struct CL-X.

(fn CL-X)
(defalias 'shifts-nshifts #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-shifts-tags type-of signal wrong-type-argument shifts 3] 5 (#$ . 17351)])
(byte-code "\300\301\302\303#\300\207" [function-put shifts-nshifts side-effect-free t] 4)#@70 compiler-macro for inlining `shifts-shifts'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'shifts-shifts--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block shifts-shifts (progn (or (shifts-p cl-x) (signal 'wrong-type-argument (list 'shifts cl-x))) (aref cl-x 4))) nil] 9 (#$ . 17672)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop shifts-shifts compiler-macro shifts-shifts--cmacro] 4)#@58 Access slot "shifts" of `shifts' struct CL-X.

(fn CL-X)
(defalias 'shifts-shifts #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-shifts-tags type-of signal wrong-type-argument shifts 4] 5 (#$ . 18102)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put shifts-shifts side-effect-free t defalias copy-shifts copy-sequence] 4)#@63 compiler-macro for inlining `make-shifts'.

(fn CL-WHOLE-ARG)
(defalias 'make-shifts--cmacro #[257 "\300\301\302\301\211\211%\207" [cl--defsubst-expand nil (cl-block make-shifts (record 'shifts nil 0 0 [0]))] 7 (#$ . 18465)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop make-shifts compiler-macro make-shifts--cmacro] 4)#@43 Constructor for objects of type `shifts'.
(defalias 'make-shifts #[0 "\300\301\302\303\211\304%\207" [record shifts nil 0 [0]] 6 (#$ . 18806)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put make-shifts side-effect-free t cl-struct-define shifts nil cl-structure-object record ((cl-tag-slot) (next) (number 0) (nshifts 0) (shifts [0])) cl-struct-shifts-tags] 11)#@69 compiler-macro for inlining `reductions-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'reductions-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block reductions-p (and (memq (type-of cl-x) cl-struct-reductions-tags) t)) nil] 9 (#$ . 19218)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop reductions-p compiler-macro reductions-p--cmacro] 4)#@13 

(fn CL-X)
(defalias 'reductions-p #[257 "\301!>\205	 \302\207" [cl-struct-reductions-tags type-of t] 3 (#$ . 19606)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\301#\300\207" [function-put reductions-p side-effect-free error-free pure t define-symbol-prop reductions cl-deftype-satisfies] 6)#@72 compiler-macro for inlining `reductions-next'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'reductions-next--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block reductions-next (progn (or (reductions-p cl-x) (signal 'wrong-type-argument (list 'reductions cl-x))) (aref cl-x 1))) nil] 9 (#$ . 19923)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop reductions-next compiler-macro reductions-next--cmacro] 4)#@60 Access slot "next" of `reductions' struct CL-X.

(fn CL-X)
(defalias 'reductions-next #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-reductions-tags type-of signal wrong-type-argument reductions 1] 5 (#$ . 20371)])
(byte-code "\300\301\302\303#\300\207" [function-put reductions-next side-effect-free t] 4)#@74 compiler-macro for inlining `reductions-number'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'reductions-number--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block reductions-number (progn (or (reductions-p cl-x) (signal 'wrong-type-argument (list 'reductions cl-x))) (aref cl-x 2))) nil] 9 (#$ . 20703)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop reductions-number compiler-macro reductions-number--cmacro] 4)#@62 Access slot "number" of `reductions' struct CL-X.

(fn CL-X)
(defalias 'reductions-number #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-reductions-tags type-of signal wrong-type-argument reductions 2] 5 (#$ . 21161)])
(byte-code "\300\301\302\303#\300\207" [function-put reductions-number side-effect-free t] 4)#@73 compiler-macro for inlining `reductions-nreds'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'reductions-nreds--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block reductions-nreds (progn (or (reductions-p cl-x) (signal 'wrong-type-argument (list 'reductions cl-x))) (aref cl-x 3))) nil] 9 (#$ . 21499)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop reductions-nreds compiler-macro reductions-nreds--cmacro] 4)#@61 Access slot "nreds" of `reductions' struct CL-X.

(fn CL-X)
(defalias 'reductions-nreds #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-reductions-tags type-of signal wrong-type-argument reductions 3] 5 (#$ . 21952)])
(byte-code "\300\301\302\303#\300\207" [function-put reductions-nreds side-effect-free t] 4)#@73 compiler-macro for inlining `reductions-rules'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'reductions-rules--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block reductions-rules (progn (or (reductions-p cl-x) (signal 'wrong-type-argument (list 'reductions cl-x))) (aref cl-x 4))) nil] 9 (#$ . 22287)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop reductions-rules compiler-macro reductions-rules--cmacro] 4)#@61 Access slot "rules" of `reductions' struct CL-X.

(fn CL-X)
(defalias 'reductions-rules #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-reductions-tags type-of signal wrong-type-argument reductions 4] 5 (#$ . 22740)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put reductions-rules side-effect-free t defalias copy-reductions copy-sequence] 4)#@67 compiler-macro for inlining `make-reductions'.

(fn CL-WHOLE-ARG)
(defalias 'make-reductions--cmacro #[257 "\300\301\302\301\211\211%\207" [cl--defsubst-expand nil (cl-block make-reductions (record 'reductions nil 0 0 [0]))] 7 (#$ . 23124)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop make-reductions compiler-macro make-reductions--cmacro] 4)#@47 Constructor for objects of type `reductions'.
(defalias 'make-reductions #[0 "\300\301\302\303\211\304%\207" [record reductions nil 0 [0]] 6 (#$ . 23489)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put make-reductions side-effect-free t cl-struct-define reductions nil cl-structure-object record ((cl-tag-slot) (next) (number 0) (nreds 0) (rules [0])) cl-struct-reductions-tags] 11)#@63 compiler-macro for inlining `errs-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'errs-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block errs-p (and (memq (type-of cl-x) cl-struct-errs-tags) t)) nil] 9 (#$ . 23922)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop errs-p compiler-macro errs-p--cmacro] 4)#@13 

(fn CL-X)
(defalias 'errs-p #[257 "\301!>\205	 \302\207" [cl-struct-errs-tags type-of t] 3 (#$ . 24274)])
(byte-code "\300\301\302\303#\300\301\304\305#\306\307\310\301#\300\207" [function-put errs-p side-effect-free error-free pure t define-symbol-prop errs cl-deftype-satisfies] 6)#@67 compiler-macro for inlining `errs-nerrs'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'errs-nerrs--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block errs-nerrs (progn (or (errs-p cl-x) (signal 'wrong-type-argument (list 'errs cl-x))) (aref cl-x 1))) nil] 9 (#$ . 24567)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop errs-nerrs compiler-macro errs-nerrs--cmacro] 4)#@55 Access slot "nerrs" of `errs' struct CL-X.

(fn CL-X)
(defalias 'errs-nerrs #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-errs-tags type-of signal wrong-type-argument errs 1] 5 (#$ . 24978)])
(byte-code "\300\301\302\303#\300\207" [function-put errs-nerrs side-effect-free t] 4)#@66 compiler-macro for inlining `errs-errs'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'errs-errs--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block errs-errs (progn (or (errs-p cl-x) (signal 'wrong-type-argument (list 'errs cl-x))) (aref cl-x 2))) nil] 9 (#$ . 25283)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop errs-errs compiler-macro errs-errs--cmacro] 4)#@54 Access slot "errs" of `errs' struct CL-X.

(fn CL-X)
(defalias 'errs-errs #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-errs-tags type-of signal wrong-type-argument errs 2] 5 (#$ . 25689)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put errs-errs side-effect-free t defalias copy-errs copy-sequence] 4)#@61 compiler-macro for inlining `make-errs'.

(fn CL-WHOLE-ARG)
(defalias 'make-errs--cmacro #[257 "\300\301\302\301\211\211%\207" [cl--defsubst-expand nil (cl-block make-errs (record 'errs 0 [0]))] 7 (#$ . 26034)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop make-errs compiler-macro make-errs--cmacro] 4)#@41 Constructor for objects of type `errs'.
(defalias 'make-errs #[0 "\300\301\302\303#\207" [record errs 0 [0]] 4 (#$ . 26357)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put make-errs side-effect-free t cl-struct-define errs nil cl-structure-object record ((cl-tag-slot) (nerrs 0) (errs [0])) cl-struct-errs-tags] 11)#@118 Visit L and R and return non-nil if their first N elements are `='.
L and R must be vectors of integers.

(fn L R N)
(defalias 'wisent-bits-equal #[771 "\211S\300\211\203 \301!\203 HHU\262S\262\202 \207" [t natnump] 8 (#$ . 26724)])#@49 Return number of bits set in integer I.

(fn I)
(defalias 'wisent-nbits #[257 "\300\300U\204 \301\302\211[\"\"\262\211T\262\202 \207" [0 logxor logand] 7 (#$ . 26973)])#@104 In vector S count the total of bits set in first N elements.
S must be a vector of integers.

(fn S N)
(defalias 'wisent-bits-size #[514 "\211S\300\301!\203 \211\302H!\\\262S\262\202 \207" [0 natnump wisent-nbits] 8 (#$ . 27155)])#@64 Return non-nil if production I is in useful set N0.

(fn I N0)
(defalias 'wisent-useful-production #[514 "\304H\305\2039 	H\211\262\306V\2039 \211\nY\2032 \nZ\307\245H\310\311\246\"\"\306U?\266\202\262T\262\202 \207" [rrhs ritem ntokens wisent-BITS-PER-WORD t nil 0 logand ash 1] 13 (#$ . 27399)])#@39 Find out which nonterminals are used.
(defalias 'wisent-useless-nonterminals #[0 "\306\211\211\211\211\211	\\S	\245\262\262\307\310\"\262\211\204\253 S\262\311!\2032 \nHI\210S\262\202 \312\262X\203\221 \f\313	\245H\314\312	\246\"\"\310U?\266\202\204\212 \315\n\"\203\212 HZ\211	\245\316H\314\312	\246\"\"I\266\f\211	\245\316H\314\312	\246\"\"I\266T\262\2025 \317\n#\203\240 \320\262\202 \262\n\262\202 \211\207" [nvars wisent-BITS-PER-WORD N nrules P rlhs nil make-vector 0 natnump 1 logand ash wisent-useful-production logior wisent-bits-equal t ntokens] 16 (#$ . 27719)])#@70 Find out which productions are reachable and which symbols are used.
(defalias 'wisent-inaccessible-symbols #[0 "\306\211\211\211\211\211\211\211\211\211	\\S	\245\262\262\nT\211	\\S	\245\262\262\307\310\"\262	\307\310\"\262\fZ\311	\245H\312\313	\246\"\"\310U?\266\202\203b\f\211	\245\314H\312\313	\246\"\"I\266\211\204bS\262\315!\203} HI\210S\262\202d \313\262\nX\203C\311	\245H\312\313	\246\"\"\310U?\266\202\204<\311	\245H\312\313	\246\"\"\310U?\266\202\203<H\311	\245H\312\313	\246\"\"\310U?\266\202\203<H\262\315H\211\262!\203$W\204Z\311	\245H\312\313	\246\"\"\310U?\266\202\203\211	\245\314H\312\313	\246\"\"I\266T\262\202\333 \211	\245\314H\312\313	\246\"\"I\266T\262\202\200 \316\n#\203S\317\262\202\\ \262\262	\202\\ \211\310\211	\245\314H\312\313	\246\"\"I\266\313\211	\245\314H\312\313	\246\"\"I\266\n\320\"Z\262W\203\322\311	\245H\312\313	\246\"\"\310U?\266\202\203\313ST\262\202\247\313\262\nX\205H\203\376H\211	\245\314H\312\313	\246\"\"I\266T\262\202\325\207" [nsyms wisent-BITS-PER-WORD nrules N start-symbol ntokens nil make-vector 0 logand ash 1 logior natnump wisent-bits-equal t wisent-bits-size V P rlhs rrhs ritem nuseless-productions nvars nuseless-nonterminals rprec V1] 21 (#$ . 28355)])#@30 Disable useless productions.
(defalias 'wisent-reduce-grammar-tables #[0 "\305V\205. \306\211	X\205, \n\307\f\245H\310\306\f\246\"\"\305U?\266\202I\210\211T\262\202 \262\207" [nuseless-productions nrules ruseful P wisent-BITS-PER-WORD 0 1 logand ash] 11 (#$ . 29779)])#@30 Remove useless nonterminals.
(defalias 'wisent-nonterminals-reduce #[0 "\306\211\211\211\211\211\307\310\"\262	\262	\262\nW\203D \311\f\245H\312\313\f\246\"\"\310U?\266\202\203= 	ZI\210T\262T\262\202 	\262\nW\203y \311\f\245H\312\313\f\246\"\"\310U?\266\202\204r 	ZI\210T\262T\262\202G \307\306\"\262	\262\nW\203\241 	ZH\262\211	ZHI\210T\262\202\202 	\262\nW\203\274 	ZHI\210T\262\202\244 \313\262\fX\203\334 	H	ZHI\210T\262\202\277 \310\262H\211\262\203 	Y\203\371 	ZHI\210T\262\202\337 	ZH\nZZ\211\207" [nvars ntokens nsyms V wisent-BITS-PER-WORD tags nil make-vector 0 logand ash 1 nrules rlhs ritem start-symbol nuseless-nonterminals] 14 (#$ . 30063)])#@56 Report number of useless nonterminals and productions.
(defalias 'wisent-total-useless #[0 "\302 \211\203\f \303P\202 \304\305\306\"\307V\203) \305\310\211\307V\203% \311\202& \304$\262\307V\203; 	\307V\203; \305\312\"\262	\307V\203S \305\313	\211\307V\203O \311\202P \304$\262\314!\207" [nuseless-nonterminals nuseless-productions wisent-source " in " "" format "Grammar%s contains" 0 "%s %d useless nonterminal%s" "s" "%s and" "%s %d useless rule%s" message] 9 (#$ . 30826)])#@59 Find unreachable terminals, nonterminals and productions.
(defalias 'wisent-reduce-grammar #[0 "\306\211	\\S	\245\262\307\"\306T\211	\\S	\245\262\307\"\306\211	\\S	\245\262\307\"\306\211	\\S	\245\262\307\"\307\211\310 \210\311 \210\\\307V\205\235 \312 \210\nZ\313	\245H\314\315	\246\"\"\307U?\266\202\204\221 \316\317H\320!\203\212 \211\236A\206\215 \321\322\"\266\202\202\217 \323!\266\202\"\210\324 \210\307V\205\235 \325 \207" [nvars wisent-BITS-PER-WORD N nrules P nsyms make-vector 0 wisent-useless-nonterminals wisent-inaccessible-symbols wisent-total-useless logand ash 1 error "Start symbol `%s' does not derive any sentence" characterp format "'%c'" symbol-name wisent-reduce-grammar-tables wisent-nonterminals-reduce V V1 nuseless-nonterminals nuseless-productions start-symbol ntokens tags wisent-escape-sequence-strings] 9 (#$ . 31322)])#@48 Output the detailed results of the reductions.
(defalias 'wisent-print-useless #[0 "\306\211\211\307V\203h \310C	\203 \311 \210r\312\n!q\210\313\314\"c)\266\307\262W\203h \315\\\fH\316!\203F \211\236A\206I \317\320\"\266\202\202K \321!\266\202D	\203S \311 \210r\312\n!q\210\313\314\"c)\266T\262\202# \306\262\307\262!W\203\"\322#\245H\323\324#\246\"\"\307U?\266\202\204\375 $\322#\245H\323\324#\246\"\"\307U?\266\202\204\375 \204\304 \325C	\203\266 \311 \210r\312\n!q\210\313\314\"c)\266\326\262\315\fH\316!\203\342 \211\236A\206\345 \317\320\"\266\202\202\347 \321!\266\202D	\203\357 \311 \210r\312\n!q\210\313\314\"c)\266T\262\202n %\307V\203\370\327C	\203\311 \210r\312\n!q\210\313\314\"c)\266\324\262&X\203\370'H\204\361\330\331\317\332\"\333\"D	\203D\311 \210r\312\n!q\210\313\314\"c)\266\334(H\fH\316!\203p\211\236A\206s\317\320\"\266\202\202u\321!\266\202D	\203}\311 \210r\312\n!q\210\313\314\"c)\266)H\262\335*H!\203\332\336*H\fH\316!\203\270\211\236A\206\273\317\320\"\266\202\202\275\321!\266\202D	\203\305\311 \210r\312\n!q\210\313\314\"c)\266\211T\262\202\221\337C	\203\343\311 \210r\312\n!q\210\313\314\"c)\266T\262\202%\204	\307V\204	%\307V\205 \340C	\203\311 \210r\312\n!q\210\313\314\"c)\262\207" [nuseless-nonterminals wisent-new-log-flag wisent-log-buffer-name nsyms tags wisent-escape-sequence-strings nil 0 "\n\nUseless nonterminals:\n\n" wisent-new-log get-buffer-create apply format-message "   %s\n" characterp format "'%c'" symbol-name logand ash 1 "\n\nTerminals which are not used:\n\n" t "\n\nUseless rules:\n\n" "#%s  " string-pad "%d" 4 "%s:" natnump " %s" ";\n" "\n\n" ntokens V wisent-BITS-PER-WORD V1 nuseless-productions nrules ruseful rlhs rrhs ritem] 11 (#$ . 32218)])#@182 Find, for each variable (nonterminal), which rules can derive it.
It sets up the value of DERIVES so that DERIVES[i - NTOKENS] points to
a list of rule numbers, terminated with -1.
(defalias 'wisent-set-derives #[0 "\306\211\211\211\211\211\307\306\"\262\307	T\310\"\262\310\262	\262\310V\203K \nH\203D H\262\211\fZHBI\210\fZI\210T\262S\262\202 \307\306\"\f\262\nW\205\220 \306\262\fZH\262\203{ \211H\262@B\262A\262\202e \311B\237\262\fZI\210T\262\202S \207" [nvars nrules ruseful rlhs ntokens derives nil make-vector 0 -1 nsyms] 12 (#$ . 34048)])#@17 Print NULLABLE.
(defalias 'wisent-print-nullable #[0 "\306\307C\203\n \310 \210r\311	!q\210\312\313\"c)\266\n\262\211W\203l \314\fH\315!\203< \211\236A\206? \316\317\"\266\202\202A \320!\266\202\nZH\203N \321\202O \322E\203W \310 \210r\311	!q\210\312\313\"c)\266\211T\262\202 \323C\203u \310 \210r\311	!q\210\312\313\"c)\207" [wisent-new-log-flag wisent-log-buffer-name ntokens nsyms tags wisent-escape-sequence-strings nil "NULLABLE\n" wisent-new-log get-buffer-create apply format-message "	%s: %s\n" characterp format "'%c'" symbol-name "yes" "no" "\n\n" nullable] 7 (#$ . 34653)])#@138 Set up NULLABLE.
A vector saying which nonterminals can expand into the null string.
NULLABLE[i - NTOKENS] is nil if symbol I can do so.
(defalias 'wisent-set-nullable #[0 "\306\211\211\211\211\211\211\211\211\211\211\307\310\"\262\307	T\310\"\262\307\306\"\262\307\n\\T\306\"\262\307\306\"\310\262\n\310\262	\310\262\311\262\n	X\203\367 \fH\203\357 \f\fHH\310V\203\301 \306\262\fH\262H\310V\203z HW\203r \312\262T\262\202\\ \211\204\357 \fH\262H\211\262\310V\203\357 HTI\210\fZHBI\210Z	I\210T\262T\262\202\205 \fH\203\357 H\211\262\203\357 ZH\204\357 Z\312I\210	I\210T\262	\nT\262\2028 		W\203QHZH\262	T\262\n\203\367 H\262@\262A\262HSI\310U\203H\262Z\312I\210	I\210T\262	\202\205X\313 \207" [nvars nrules nitems nullable ruseful ritem nil make-vector 0 1 t wisent-print-nullable rrhs ntokens rlhs wisent-debug-flag] 17 (#$ . 35265)])#@17 Print FDERIVES.
(defalias 'wisent-print-fderives #[0 "\306\211\211\307C\203\f \310 \210r\311	!q\210\312\313\"c)\266\n\262W\205\252 \314\fH\315!\203> \211\236A\206A \316\317\"\266\202\202C \320!\266\202D\203K \310 \210r\311	!q\210\312\313\"c)\266\nZH\262\321\262X\203\243 \211\322\245H\323\324\246\"\"\321U?\266\202\203\234 \325D\203\216 \310 \210r\311	!q\210\312\313\"c)\266T\262\202d T\262\202 \207" [wisent-new-log-flag wisent-log-buffer-name ntokens nsyms tags wisent-escape-sequence-strings nil "\n\n\nFDERIVES\n" wisent-new-log get-buffer-create apply format-message "\n\n%s derives\n\n" characterp format "'%c'" symbol-name 0 logand ash 1 "   %d\n" fderives nrules wisent-BITS-PER-WORD] 11 (#$ . 36249)])#@319 Set up FDERIVES.
An NVARS by NRULES matrix of bits indicating which rules can help
derive the beginning of the data for each nonterminal.  For example,
if symbol 5 can be derived as the sequence of symbols 8 3 20, and one
of the rules for deriving symbol 8 is rule 4, then the
[5 - NTOKENS, 4] bit in FDERIVES is set.
(defalias 'wisent-set-fderives #[0 "\306\211\211\307\306\"\310\262W\203  	\307\n\310\"I\210T\262\202 \311 \210\262\fW\203\225 \262\fW\203\216 ZHZ\312\245H\313\314\246\"\"\310U?\266\202\203\207 ZH\262\211@\310V\203\207 	ZH@\211\245\315H\313\314\246\"\"I\266\211A\262\202\\ T\262\202/ T\262\202& \205\234 \316 \207" [nvars fderives rulesetsize ntokens nsyms firsts nil make-vector 0 wisent-set-firsts logand ash 1 logior wisent-print-fderives wisent-BITS-PER-WORD derives wisent-debug-flag] 14 (#$ . 37006)])#@15 Print FIRSTS.
(defalias 'wisent-print-firsts #[0 "\306\211\211\307C\203\f \310 \210r\311	!q\210\312\313\"c)\266\n\262W\205\315 \314\fH\315!\203> \211\236A\206A \316\317\"\266\202\202C \320!\266\202D\203K \310 \210r\311	!q\210\312\313\"c)\266\nZH\262\321\262W\203\306 \211\322\245H\323\324\246\"\"\321U?\266\202\203\277 \325\n\\\n\\\fH\315!\203\244 \211\236A\206\247 \316\317\"\266\202\202\251 \320!\266\202E\203\261 \310 \210r\311	!q\210\312\313\"c)\266T\262\202d T\262\202 \207" [wisent-new-log-flag wisent-log-buffer-name ntokens nsyms tags wisent-escape-sequence-strings nil "\n\n\nFIRSTS\n\n" wisent-new-log get-buffer-create apply format-message "\n\n%s firsts\n\n" characterp format "'%c'" symbol-name 0 logand ash 1 "		%d (%s)\n" firsts nvars wisent-BITS-PER-WORD] 11 (#$ . 37889)])#@133 Transitive closure.
Given R an N by N matrix of bits, modify its contents to be the
transitive closure of what was given.

(fn R N)
(defalias 'wisent-TC #[514 "\301\211\211\302\262W\205} \302\262W\203v H\303\245H\304\305\246\"\"\302U?\266\202\203o \302\262\211W\203o H\303\245H\304\305\246\"\"\302U?\266\202\203h H\211\245\306H\304\305\246\"\"I\266\211T\262\2021 T\262\202 T\262\202 \207" [wisent-BITS-PER-WORD nil 0 logand ash 1 logior] 16 (#$ . 38731)])#@135 Reflexive Transitive Closure.
Same as `wisent-TC' and then set all the bits on the diagonal of R, an
N by N matrix of bits.

(fn R N)
(defalias 'wisent-RTC #[514 "\301\302\"\210\303\262\211W\205. H\211\245\304H\305\306\246\"\"I\266\211T\262\202	 \207" [wisent-BITS-PER-WORD nil wisent-TC 0 logior ash 1] 14 (#$ . 39236)])#@342 Set up FIRSTS.
An NVARS by NVARS bit matrix indicating which items can represent the
beginning of the input corresponding to which other items.  For
example, if some rule expands symbol 5 into the sequence of symbols 8
3 20, the symbol 8 can be the beginning of the data for symbol 5, so
the bit [8 - NTOKENS, 5 - NTOKENS] in FIRSTS is set.
(defalias 'wisent-set-firsts #[0 "\306\211\211\211\211\211	\\S	\245\262\262\307\306\"\310\262\211W\203/ \307\310\"I\210\211T\262\202 \310\262\f\262\211W\203\211 \fZH\262@\310Y\203~ @HH\262A\262\fY\203C \fZ\262H\211	\245\311H\312\313	\246\"\"I\266\202C T\262\211T\262\2025 \314\"\210\205\225 \315 \207" [nvars wisent-BITS-PER-WORD varsetsize firsts ntokens nsyms nil make-vector 0 logior ash 1 wisent-RTC wisent-print-firsts derives ritem rrhs wisent-debug-flag] 16 (#$ . 39581)])#@171 Allocate the ITEMSET and RULESET vectors.
And precompute useful data so that `wisent-closure' can be called.
N is the number of elements to allocate for ITEMSET.

(fn N)
(defalias 'wisent-initialize-closure #[257 "\305\306\"	T\211\n\\S\n\245\262\305\306\"\307 \207" [itemset nrules wisent-BITS-PER-WORD rulesetsize ruleset make-vector 0 wisent-set-fderives] 4 (#$ . 40458)])#@16 Print ITEMSET.
(defalias 'wisent-print-closure #[0 "\304\305D	\203 \306 \210r\307\n!q\210\310\311\"c)\266\312\262\211W\205C \313HD	\203. \306 \210r\307\n!q\210\310\311\"c)\266\211T\262\202 \207" [nitemset wisent-new-log-flag wisent-log-buffer-name itemset nil "\n\nclosure n = %d\n\n" wisent-new-log get-buffer-create apply format-message 0 "   %d\n"] 5 (#$ . 40844)])#@604 Set up RULESET and ITEMSET for the transitions out of CORE state.
Given a vector of item numbers items, of length N, set up RULESET and
ITEMSET to indicate what rules could be run and which items could be
accepted when those items are the active ones.

RULESET contains a bit for each rule.  `wisent-closure' sets the bits
for all rules which could potentially describe the next input to be
read.

ITEMSET is a vector of item numbers; NITEMSET is the number of items
in ITEMSET.  `wisent-closure' places there the indices of all items
which represent units of input that could arrive next.

(fn CORE N)
(defalias 'wisent-closure #[514 "\306\211\211\211\211\211\307U\203, \307\262	\nZH\262W\203w \fHI\210T\262\202 \310\f\307\"\210\307\262W\203w HH\262\nY\203p \307\262\nZH\262W\203p \f\311\fH	H\"I\210T\262\202T T\262\2024 \307\211\262\307\262_\262W\203\346 \f\312\245H\313\314\246\"\"\307U?\266\202\203\337 H\262W\203\323 HW\203\323 	HI\210TT\262\202\253 I\210TT\262\202\206 W\203	HI\210TT\262\202\346 \205\315 \207" [fderives start-symbol ntokens rulesetsize ruleset ritem nil 0 fillarray logior logand ash 1 wisent-print-closure nitemset wisent-BITS-PER-WORD rrhs itemset wisent-debug-flag] 17 (#$ . 41231)])#@32 Allocate storage for itemsets.
(defalias 'wisent-allocate-itemsets #[0 "\306\211\211\211\307\262\310	\\\307\"\262\307\262\nH\211\262\2035 \307V\203. T\262\211HTI\210T\262\202 \310\306\"\310\307\"\307\262\307\262W\203^ I\210H\\\262T\262\202E \211\310\306\"\211	\207" [nsyms nuseless-nonterminals ritem kernel-base kernel-items shift-symbol nil 0 make-vector kernel-end] 8 (#$ . 42564)])#@41 Allocate storage for the state machine.
(defalias 'wisent-allocate-storage #[0 "\306 \210\307\310\"\307\nT\310\"\307\f\311\"\211\207" [nsyms shiftset nrules redset wisent-state-table-size state-table wisent-allocate-itemsets make-vector 0 nil] 3 (#$ . 42991)])#@411 Find which symbols can be shifted in the current state.
And for each one record which items would be active after that shift.
Uses the contents of ITEMSET.  SHIFT-SYMBOL is set to a vector of the
symbols that can be shifted.  For each symbol in the grammar,
KERNEL-BASE[symbol] points to a vector of item numbers activated if
that symbol is shifted, and KERNEL-END[symbol] points after the end of
that vector.
(defalias 'wisent-new-itemsets #[0 "\306\211\211\211\211\307\306\"\210\310\262\310\262	W\203U \nH\262T\262H\262\211\310V\203 H\262\204A \fI\210T\262H\262	TI\210T\262I\210\202 \211\n\207" [kernel-end nitemset itemset ritem shift-symbol kernel-base nil fillarray 0 kernel-items nshifts] 8 (#$ . 43262)])#@135 Create a new state for those items, if necessary.
SYMBOL is the core accessing-symbol.
Subroutine of `wisent-get-state'.

(fn SYMBOL)
(defalias 'wisent-new-state #[257 "\306\211\211\211\211\211H\262	H\262Z\262\307\310\306\211\311\211\211\312&\262\313\311\"\262\314!\n>\204: \315\316\310D\"\210\317I\210\314!\n>\204P \315\316\310D\"\210\320I\210\314!\n>\204e \315\316\310D\"\210\321I\210\314!\n>\204{ \315\316\310D\"\210\322I\210\311\262W\203\234 \211\fHI\210T\262T\262\202\203 \314!\n>\204\253 \315\316\310D\"\210\211\323I\266T\207" [kernel-base kernel-end cl-struct-core-tags nstates kernel-items last-state nil record core 0 [0] make-vector type-of signal wrong-type-argument 4 3 5 6 1] 15 (#$ . 44015)])#@254 Find the state we would get to by shifting SYMBOL.
Return the state number for the state we would get to (from the
current state) by shifting SYMBOL.  Create a new state if no
equivalent one exists already.  Used by `wisent-append-states'.

(fn SYMBOL)
(defalias 'wisent-get-state #[257 "\306\211\211\211\211\211\211\211	H\262		H\262Z\262\307\262W\2035 \nH\\\262T\262\202 \246\262\fH\262\203\374 \306\262\204\310!>\204\\ \311\312\313D\"\210\314HU\203\253 \315\262	H\262\310!>\204} \311\312\313D\"\210\316H\262\307\262\203\253 W\203\253 \nHHU\204\237 \306\262T\262T\262\202\205 \204H \310!>\204\277 \311\312\313D\"\210\317H\203\335 \310!>\204\325 \311\312\313D\"\210\317H\262\202H \310!>\204\355 \311\312\313D\"\210\317\320!I\262\315\262\202H \320	!\262\fI\210\310!>\204\311\312\313D\"\210\321H\207" [kernel-base kernel-end kernel-items wisent-state-table-size state-table cl-struct-core-tags nil 0 type-of signal wrong-type-argument core 5 t 6 2 wisent-new-state 3] 13 (#$ . 44786)])#@250 Find or create the core structures for states.
Use the information computed by `wisent-new-itemsets' to find the
state numbers reached by each shift transition from the current state.
SHIFTSET is set up as a vector of state numbers of those states.
(defalias 'wisent-append-states #[0 "\303\211\211\304\262W\203> 	H\262\262\305V\2032 	SHV\2032 		SHI\210S\262\202 	I\210T\262\202 \305\262W\205Z 	H\262\n\306!I\210T\262\202A \207" [nshifts shift-symbol shiftset nil 1 0 wisent-get-state] 7 (#$ . 45875)])#@20 Initialize states.
(defalias 'wisent-initialize-states #[0 "\304\305\306\211\307\211\211\310&\211\211\211\311\211\207" [first-state last-state this-state nstates record core nil 0 [0] 1] 8 (#$ . 46412)])#@60 Save the NSHIFTS of SHIFTSET into the current linked list.
(defalias 'wisent-save-shifts #[0 "\306\211\211\307\310\306\311\211\312%\262\313\311\"\262\311\262\314!	>\204$ \315\316\310D\"\210\317\314\n!>\2045 \315\316\320\nD\"\210\n\321HI\210\314!	>\204I \315\316\310D\"\210\321I\210\314!	>\204] \315\316\310D\"\210\322I\210W\203v \211\fHI\210T\262\202b \203\223 \314!	>\204\211 \315\316\310D\"\210\211\323I\266\202\226 \211\207" [nshifts cl-struct-shifts-tags this-state cl-struct-core-tags shiftset last-shift nil record shifts 0 [0] make-vector type-of signal wrong-type-argument 2 core 3 4 1 first-shift] 9 (#$ . 46626)])#@155 Create the next-to-final state.
That is the state to which a shift has already been made in the
initial state.  Subroutine of `wisent-augment-automaton'.
(defalias 'wisent-insert-start-shift #[0 "\306\211\307\310\306\211\311\211\211\312&\262\313!>\204 \314\315\310D\"\210\316	I\210\313!>\2041 \314\315\310D\"\210\317\nI\210\313!>\204E \314\315\310D\"\210\211\320I\266\307\321\306\311\211\322%\262\313!\f>\204f \314\315\321D\"\210\211\323	I\210	T\313!\f>\204} \314\315\321D\"\210\211\316\320I\210\313!\f>\204\221 \314\315\321D\"\210\211\317\324	!I\210\313!\f>\204\247 \314\315\321D\"\210\211\320I\266\211\211\207" [cl-struct-core-tags nstates start-symbol last-state cl-struct-shifts-tags last-shift nil record core 0 [0] type-of signal wrong-type-argument 3 4 1 shifts [0] 2 vector] 10 (#$ . 47289)])#@335 Set up initial and final states as parser wants them.
Make sure that the initial state has a shift that accepts the
grammar's start symbol and goes to the next-to-final state, which has
a shift going to the final state, which has a shift to the termination
state.  Create such states and shifts if they don't happen to exist
already.
(defalias 'wisent-augment-automaton #[0 "\306\211\211\211\211\211\211\262\203\374\307!	>\204 \310\311\312D\"\210\313H\314U\203\252\307!	>\2046 \310\311\312D\"\210\315H\262\307\n!>\204J \310\311\316\nD\"\210\n\317H\262\307!>\204_ \310\311\316D\"\210\320H\fW\203\230 \307!>\204w \310\311\316D\"\210\315HW\203\230 \307!>\204\220 \310\311\316D\"\210\317H\262\202O \307!>\204\250 \310\311\316D\"\210\320H\fU\203r\307!>\204\300 \310\311\316D\"\210\315H\262\203\375 \307!	>\204\331 \310\311\312D\"\210\313HW\203\375 \262\307!	>\204\365 \310\311\312D\"\210\317H\262\202\305 \203\370\307!	>\204\310\311\312D\"\210\313HU\203\370\307!	>\204*\310\311\312D\"\210\315H\262\321\312\306\314\211\322%\262\323T\314\"\262\307!	>\204O\310\311\312D\"\210\313I\210\307!	>\204d\310\311\312D\"\210\315TI\210\307!	>\204z\310\311\312D\"\210\320I\210\211\314I\210\314V\203\260\211\307!	>\204\237\310\311\312D\"\210\320H	SHI\210S\262\202\204\307!	>\204\277\310\311\312D\"\210\317\307!	>\204\322\310\311\312D\"\210\317HI\210\307!	>\204\346\310\311\312D\"\210\317I\210=\2039\2029\321\312\306\314\211\322%\262\307!	>\204\310\311\312D\"\210\313I\210\307!	>\204%\310\311\312D\"\210\315\317I\210\307!	>\2049\310\311\312D\"\210\320\324!I\210\307!	>\204O\310\311\312D\"\210\317I\210\307!	>\204c\310\311\312D\"\210\317I\210\2049\2029\262\321\312\306\314\211\322%\262\307!	>\204\216\310\311\312D\"\210\315H\262\323T\314\"\262\307!	>\204\252\310\311\312D\"\210\315TI\210\307!	>\204\300\310\311\312D\"\210\320I\210\307\n!>\204\324\310\311\316\nD\"\210\n\317H\262\314\262\314\262\307!	>\204\361\310\311\312D\"\210\315HW\203_\307!>\204\310\311\316D\"\210\320H\fV\203\"U\203\"\211I\210T\262\211\307!	>\2046\310\311\312D\"\210\320H	HI\210\307!>\204N\310\311\316D\"\210\317H\262T\262T\262\202\337U\203q\211I\210T\262\307!	>\204\200\310\311\312D\"\210\317\307!	>\204\223\310\311\312D\"\210\317HI\210=\203\244\325 \210\2029\321\312\306\314\211\322%\262\307!	>\204\303\310\311\312D\"\210\315\317I\210\307!	>\204\330\310\311\312D\"\210\320\324!I\210\307!	>\204\357\310\311\312D\"\210\317I\210\325 \210\2029\321\312\306\314\211\322%\262\307!	>\204\310\311\312D\"\210\315\317I\210\307!	>\204*\310\311\312D\"\210\320\324!I\210\325 \210\321\316\306\211\314\211\211\326&\262\307!>\204U\310\311\316D\"\210\315I\210\307!>\204k\310\311\316D\"\210\211\317I\266\321\312\306\314\211\322%\262\307!	>\204\220\310\311\312D\"\210\313I\210T\307!	>\204\250\310\311\312D\"\210\315\317I\210\307!	>\204\275\310\311\312D\"\210\320\324!I\210\307!	>\204\325\310\311\312D\"\210\211\317I\266\321\316\306\211\314\211\211\326&\262\307!>\204 \310\311\316D\"\210\315I\210T\307!>\204\310\311\316D\"\210\211\317I\266\211\207" [first-shift cl-struct-shifts-tags first-state cl-struct-core-tags start-symbol nstates nil type-of signal wrong-type-argument shifts 2 0 3 core 1 4 record [0] make-vector vector wisent-insert-start-shift [0] last-shift last-state final-state] 15 (#$ . 48129)])#@184 Make a reductions structure.
Find which rules can be used for reduction transitions from the
current state and make a reductions structure for the state to record
their rule numbers.
(defalias 'wisent-save-reductions #[0 "\306\211\211\211\211\307\262\307\262W\2030 	\nHH\262\307W\203) [I\210T\262T\262\202 \307V\205\323 \310\311\306\307\211\312%\262\313\307\"\262\314!\f>\204T \315\316\311D\"\210\317\314!>\204f \315\316\320D\"\210\321HI\210\314!\f>\204z \315\316\311D\"\210\321I\210\314!\f>\204\216 \315\316\311D\"\210\322I\210\307\262W\203\253 \211HI\210T\262\202\226 \203\314 \314!\f>\204\301 \315\316\311D\"\210\211\323I\266\202\317 \211\207" [nitemset ritem itemset redset cl-struct-reductions-tags this-state nil 0 record reductions [0] make-vector type-of signal wrong-type-argument 2 core 3 4 1 cl-struct-core-tags last-reduction first-reduction] 11 (#$ . 51779)])#@69 Compute the nondeterministic finite state machine from the grammar.
(defalias 'wisent-generate-states #[0 "\304 \210\305!\210\306 \210	\203^ \307\310	!\n>\204 \311\312\313	D\"\210	\314H\310	!\n>\2040 \311\312\313	D\"\210	\315H\"\210\316 \210\317 \210\320 \210\321V\203G \322 \210\310	!\n>\204V \311\312\313	D\"\210	\323H\211\204 \324 \207" [nitems this-state cl-struct-core-tags nshifts wisent-allocate-storage wisent-initialize-closure wisent-initialize-states wisent-closure type-of signal wrong-type-argument core 6 5 wisent-save-reductions wisent-new-itemsets wisent-append-states 0 wisent-save-shifts 1 wisent-augment-automaton] 7 (#$ . 52718)])#@21 Traverse I.

(fn I)
(defalias 'wisent-traverse #[257 "\306\211\211\211\211\211T\211\262	I\210\nI\210H\262\203\212 \307\262H\307Y\203\212 \nHH\307U\203@ \310H!\210\nH\nHHV\203Y \n\n	HHI\210\fH\262\307\262W\203\203 \311H\fHH	H\"I\210T\262\202b T\262\202% \nHU\205\326 \306\262\211?\205\326 	H\262S\nI\210U\203\270 \312\262\202\226 \307\262W\203\226 \fH\f	HHI\210T\262\202\273 \207" [top VERTICES INDEX R F tokensetsize nil 0 wisent-traverse logior t infinity] 15 (#$ . 53379)])#@34 Digraph RELATION.

(fn RELATION)
(defalias 'wisent-digraph #[257 "\306\211\211\211\211\307\\\310T\311\"\310T\311\"\311\211\311\211W\205> \fH\311U\2037 H\2037 \312!\210\211T\262\202 -\207" [top infinity VERTICES R INDEX ngotos nil 2 make-vector 0 wisent-traverse] 6 (#$ . 53941)])#@20 Build state table.
(defalias 'wisent-set-state-table #[0 "\304\305\304\"\n\262\211\205: 	\306!>\204 \307\310\311D\"\210\312HI\210\306!>\2042 \307\310\311D\"\210\211\313H\262\202	 \207" [nstates state-table first-state cl-struct-core-tags nil make-vector type-of signal wrong-type-argument core 3 1] 6 (#$ . 54246)])#@31 Build accessing symbol table.
(defalias 'wisent-set-accessing-symbol #[0 "\304\305\306\"\n\262\211\205K 	\307!>\204 \310\311\312D\"\210\313H\307!>\204/ \310\311\312D\"\210\314HI\210\307!>\204C \310\311\312D\"\210\211\315H\262\202	 \207" [nstates accessing-symbol first-state cl-struct-core-tags nil make-vector 0 type-of signal wrong-type-argument core 3 4 1] 7 (#$ . 54580)])#@20 Build shift table.
(defalias 'wisent-set-shift-table #[0 "\304\305\304\"\n\262\211\205: 	\306!>\204 \307\310\311D\"\210\312HI\210\306!>\2042 \307\310\311D\"\210\211\313H\262\202	 \207" [nstates shift-table first-shift cl-struct-shifts-tags nil make-vector type-of signal wrong-type-argument shifts 2 1] 6 (#$ . 54978)])#@24 Build reduction table.
(defalias 'wisent-set-reduction-table #[0 "\304\305\304\"\n\262\211\205: 	\306!>\204 \307\310\311D\"\210\312HI\210\306!>\2042 \307\310\311D\"\210\211\313H\262\202	 \207" [nstates reduction-table first-reduction cl-struct-reductions-tags nil make-vector type-of signal wrong-type-argument reductions 2 1] 6 (#$ . 55316)])#@22 Setup MAXRHS length.
(defalias 'wisent-set-maxrhs #[0 "\302\211\211\303\262\303\262\303\262H\2034 H\303V\203! T\262\202- V\203* \262\303\262T\262\202\f \211\211\207" [ritem maxrhs nil 0] 5 (#$ . 55678)])#@12 Set up LA.
(defalias 'wisent-initialize-LA #[0 "\306\211\211\211\211\211\211\211\307\306\"\307T\310\"\310\262\310\262W\203\360 \nI\210H\262\fH\262\203\214 \311!>\204G \312\313\314D\"\210\315H\316V\204r \203\214 \311!>\204f \312\313\317D\"\210\320H\310HHY\204\214 \311!>\204\203 \312\313\314D\"\210\315H\\\262\202\222 	\321I\210\203\350 \310\262\311!>\204\251 \312\313\317D\"\210\315H\262\311!>\204\276 \312\313\317D\"\210\320H\262W\203\350 HHU\203\341 	\306I\210\262T\262\202\303 T\262\202 \nI\210\310U\203\307\316\306\"\307\316\310\"\307\316\306\"\202#\307\306\"\307\310\"\307\306\"\310\262G\262W\203F\307\310\"I\210T\262\202+\310\262\310\262W\205\266	H\204\256H\262\203\256\310\262\311!>\204w\312\313\314D\"\210\315H\262\311!>\204\214\312\313\314D\"\210\320H\262W\203\256	HI\210T\262T\262\202\221T\262\202L\207" [nstates consistent lookaheads reduction-table shift-table cl-struct-reductions-tags nil make-vector 0 type-of signal wrong-type-argument reductions 3 1 shifts 4 t accessing-symbol cl-struct-shifts-tags ntokens error-token-number LA LAruleno lookback tokensetsize] 13 (#$ . 55904)])#@18 Set up GOTO-MAP.
(defalias 'wisent-set-goto-map #[0 "\306\211\211\211\211\211\211\211\211\307T\310\"\307T\310\"\262\310\262	\203\240 \311	!\f>\2041 \312\313\314D\"\210\315HS\262\311	!\f>\204I \312\313\314D\"\210\316H\262\310Y\203\206 	HH\262W\203k \310\262\202~ \nT	Z	ZHTI\210S\262\202O \311	!\f>\204\227 \312\313\314D\"\210\317H\262	\202 \310\262\262\310\262W\203\316 I\210	H\\\262T\262T\262\202\252 \262\310\262W\203\363 		HI\210T\262T\262\202\325 	\nI\210\nI\210\307\n\310\"\307\n\310\"\262	\205\272\311	!\f>\204$\312\313\314D\"\210\320H\262\311	!\f>\204;\312\313\314D\"\210\316H\262\311	!\f>\204R\312\313\314D\"\210\315HS\262\310Y\203\240\211H\262H\262W\203x\310\262\202\230ZH\262ZTI\210I\210I\210S\262\202Y\311	!\f>\204\261\312\313\314D\"\210\317H\262	\202\207" [nvars goto-map ngotos first-shift cl-struct-shifts-tags accessing-symbol nil make-vector 0 type-of signal wrong-type-argument shifts 3 4 1 2 ntokens nsyms from-state to-state] 14 (#$ . 57178)])#@77 Map a STATE/SYMBOL pair into its numeric representation.

(fn STATE SYMBOL)
(defalias 'wisent-map-goto #[514 "\303\211\211\211\211	ZH\262T	ZHS\262\211\204O X\203O \\\304\245\262\nH\262U\203: \262\202 W\203H T\262\202 S\262\202 \211\206V \305\306!\207" [goto-map ntokens from-state nil 2 error "Internal error in `wisent-map-goto'"] 10 (#$ . 58317)])#@11 Set up F.
(defalias 'wisent-initialize-F #[0 "\306\211\211\211\211\211\211\211\211\211\211\211\211\307\306\"\310\262\fW\203- 	\307\n\310\"I\210\fT\262\202 \307\306\"\262\307T\310\"\262	\310\262\310\262\310\262\fW\203LH\262\fH\262\n	\203?\311\n!>\204k \312\313\314\fD\"\210	\315H\262\311\n!>\204\202 \312\313\314\fD\"\210	\316H\262\310\262\f\306\262\211\204\323 W\203\323 HH\262Y\203\260 \317\262\202\216 	H\211\245\320H\321\322\246\"\"I\266T\262\f\202\216 W\203HH\262ZH\203\375 \323\"I\210T\262T\262\f\202\323 \310V\203?\307T\310\"\262\310\262\fI\210W\2036\f\nHI\210T\262\f\202\324I\210\310\262T\262\fT\262\202C \325!\207" [ngotos F tokensetsize to-state shift-table cl-struct-shifts-tags nil make-vector 0 type-of signal wrong-type-argument shifts 3 4 t logior ash 1 wisent-map-goto -1 wisent-digraph accessing-symbol ntokens wisent-BITS-PER-WORD nullable] 24 (#$ . 58702)])#@96 Add a lookback edge.
STATENO, RULENO, GOTONO are self-explanatory.

(fn STATENO RULENO GOTONO)
(defalias 'wisent-add-lookback-edge #[771 "\303\211\211H\262TH\262\303\262\211\2042 W\2032 	HU\203+ \304\262\202 T\262\202 \211\204: \305\306!\210\n\nHBI\207" [lookaheads LAruleno lookback nil t error "Internal error in `wisent-add-lookback-edge'"] 11 (#$ . 59712)])#@243 Return the transpose of R-ARG, of size N.
Destroy R-ARG, as it is replaced with the result.  R-ARG[I] is nil or
a -1 terminated list of numbers.  RESULT[NUM] is nil or the -1
terminated list of the I such as NUM is in R-ARG[I].

(fn R-ARG N)
(defalias 'wisent-transpose #[514 "\300\211\211\211\211\211\211\301\300\"\262\301\300\"\262\301\302\"\262\302\262W\203[ H\262\203S \302\262H\302Y\203S H	HHTI\210T\262\2025 T\262\202 \302\262W\203\225 H\302V\203\215 \301HT\302\"\262\211H\303I\210I\210\302I\210T\262\202^ \302\262W\203\344 H\262\203\334 \302\262H\302Y\203\334 HHHHI\210H	HHTI\210T\262\202\256 T\262\202\230 \207" [nil make-vector 0 -1] 14 (#$ . 60102)])#@18 Build relations.
(defalias 'wisent-build-relations #[0 "\306\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\307\306\"\307T\310\"\262\307\nT\310\"\262\310\262W\203\233\310\262	H\262\fHH\262ZH\262\f@\310V\203\\\310I\210\311\262\n\262@H\262\f\fH\310V\203\351 \fH\262H\262\312!>\204\216 \313\314\315D\"\210\n\316H\262\312!>\204\246 \313\314\315D\"\210\n\317H\262\310\262W\203\325 \211H\262\fHU\203\315 \262\202\257 T\262\202\257 \nI\210	T\262\nT\262\f\202d H\204\373 \320@#\210	S\262\n\306\262\204T\321\262S\262\f\310Y\203\fHY\203	S\262\n\nH\262	\322H\"I\210T\262	HZH\203\306\262\202\fA\262\202G \310V\203\223\307	T\310\"\262\310\262	I\210	W\203\215\211HI\210T\262\202t\211	\323I\210T\262\202& \324	\"\211\207" [ngotos includes maxrhs from-state accessing-symbol to-state nil make-vector 0 1 type-of signal wrong-type-argument shifts 3 4 wisent-add-lookback-edge t wisent-map-goto -1 wisent-transpose derives ntokens rrhs ritem shift-table cl-struct-shifts-tags consistent nullable] 22 (#$ . 60868)])#@18 Compute follows.
(defalias 'wisent-compute-FOLLOWS #[0 "\301!\207" [includes wisent-digraph] 2 (#$ . 62057)])#@21 Compute lookaheads.
(defalias 'wisent-compute-lookaheads #[0 "\306\211\211\211\211\211	H\262\307\262W\205V \nH\262\211\203O H\262\f@H\262\307\262W\203H \310H	H\"I\210T\262\202- \211A\262\202 T\262\202 \207" [lookaheads nstates lookback LA F tokensetsize nil 0 logior] 12 (#$ . 62173)])#@63 Make the nondeterministic finite state machine deterministic.
(defalias 'wisent-lalr #[0 "\211	\\S	\245\262\303 \210\304 \210\305 \210\306 \210\307 \210\310 \210\311 \210\312 \210\313 \210\314 \210\315 \207" [ntokens wisent-BITS-PER-WORD tokensetsize wisent-set-state-table wisent-set-accessing-symbol wisent-set-shift-table wisent-set-reduction-table wisent-set-maxrhs wisent-initialize-LA wisent-set-goto-map wisent-initialize-F wisent-build-relations wisent-compute-FOLLOWS wisent-compute-lookaheads] 3 (#$ . 62495)])#@175 Log a shift-reduce conflict resolution.
In specified STATE between rule pointed by lookahead number LANO and
TOKEN, resolved as RESOLUTION.

(fn STATE LANO TOKEN RESOLUTION)
(defalias 'wisent-log-resolution #[1028 "\204 	\205E \306\nHH\307!\203' \211\f\236A\206* \310\311\"\266\202\202, \312!\266\202\257\2036 \313 \210r\314!q\210\315\316\"c)\262\207" [wisent-verbose-flag wisent-debug-flag LAruleno tags wisent-escape-sequence-strings wisent-new-log-flag "Conflict in state %d between rule %d and token %s resolved as %s.\n" characterp format "'%c'" symbol-name wisent-new-log get-buffer-create apply format-message wisent-log-buffer-name] 12 (#$ . 63025)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-log-resolution speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@153 Turn off the shift recorded in the specified STATE for TOKEN.
Used when we resolve a shift-reduce conflict in favor of the reduction.

(fn STATE TOKEN)
(defalias 'wisent-flush-shift #[514 "\303\211\211\211H\211\262\205_ \304!	>\204 \305\306\307D\"\210\310H\262\304!	>\2043 \305\306\307D\"\210\311H\262\312\262W\205_ \211H\312U\204X \nHHU\203X \211\312I\210T\262\202; \207" [shift-table cl-struct-shifts-tags accessing-symbol nil type-of signal wrong-type-argument shifts 3 4 0] 10 (#$ . 63854)])#@391 Attempt to resolve shift-reduce conflict for one rule.
Resolve by means of precedence declarations.  The conflict occurred in
specified STATE for the rule pointed by the lookahead symbol
LOOKAHEADNUM.  It has already been checked that the rule has a
precedence.  A conflict is resolved by modifying the shift or reduce
tables so that there is no longer a conflict.

(fn STATE LOOKAHEADNUM)
(defalias 'wisent-resolve-sr-conflict #[514 "\306\211\211\211\211\211\211\211	\nHHH\262\211\307\310\236A\"\266\203\262\311\312\313\314#\262\315\f\313\"\262\313\262\313\262\316!>\204D \317\320\312D\"\210\321I\210\fW\203H\262(	H\322)\245H\323\324)\246\"\"\313U?\266\202\203\n*\322)\245H\323\324)\246\"\"\313U?\266\202\203\n\211\307\310\236A\"\266\203\211\262\203\nW\203!			\325+\204\272 ,\205\371 \326\nHH\327!\203\332 \211-\236A\206\335 \330\331\"\266\202\202\337 \332!\266\202\257.\203\352 \333 \210r\334/!q\210\335\336\"c)\262\266*\211)\245\322H\337\323\324)\246\"!\"I\266\340\n	\"\210\202\nV\203\234			\341+\2049,\205x\326\nHH\327!\203Y\211-\236A\206\\\330\331\"\266\202\202^\332!\266\202\257.\203i\333 \210r\334/!q\210\335\336\"c)\262\266(	H\211)\245\322H\337\323\324)\246\"!\"I\266\202\n\211\342\310\236A\"\266\203\262\211\343\267\202\254			\341+\204\301,\205 \326\nHH\327!\203\341\211-\236A\206\344\330\331\"\266\202\202\346\332!\266\202\257.\203\361\333 \210r\334/!q\210\335\336\"c)\262\266\202\254			\325+\204,\205U\326\nHH\327!\2036\211-\236A\2069\330\331\"\266\202\202;\332!\266\202\257.\203F\333 \210r\334/!q\210\335\336\"c)\262\266\202\254			\344+\204k,\205\252\326\nHH\327!\203\213\211-\236A\206\216\330\331\"\266\202\202\220\332!\266\202\257.\203\233\333 \210r\334/!q\210\335\336\"c)\262\266\211\345=\204\325*\211)\245\322H\337\323\324)\246\"!\"I\266\340\n	\"\210\211\346=\204\372(	H\211)\245\322H\337\323\324)\246\"!\"I\266\211\347=\203\n	I\210T\262T\262\202J \313V\2055\316!>\204)\317\320\312D\"\210\324I\2100\nI\207" [tags rprec LAruleno ptable ntokens cl-struct-errs-tags nil wisent--prec plist-get record errs 0 [0] make-vector type-of signal wrong-type-argument 2 logand ash 1 "reduce" "Conflict in state %d between rule %d and token %s resolved as %s.\n" characterp format "'%c'" symbol-name wisent-new-log get-buffer-create apply format-message lognot wisent-flush-shift "shift" wisent--assoc #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (right 432 left 517 nonassoc 602)) "an error" right left nonassoc LA wisent-BITS-PER-WORD lookaheadset wisent-verbose-flag wisent-debug-flag wisent-escape-sequence-strings wisent-new-log-flag wisent-log-buffer-name err-table] 22 (#$ . 64381)])#@71 Find and attempt to resolve conflicts in specified STATE.

(fn STATE)
(defalias 'wisent-set-conflicts #[257 "\306\211\211\211\211\211H?\205B\307	\310\"\210\nH\211\262\203\204 \311!>\204, \312\313\314D\"\210\315H\262\311!>\204@ \312\313\314D\"\210\316H\262\310\262W\203\204 \fHH\211\262W\203\204 H\310U\204} 	\211\245\317H\320\321\246\"\"I\266T\262\202H H\262TH\262W\203\340 HH\203\331 H\262\310\262W\203\331 \322H	H\"\310U\203\313 T\262\202\256 \323\"\210\262\202\256 T\262\202\223 H\262W\205BH\262\310\262W\203\322H	H\"\310U\204\324I\210T\262\202\367 \310\262W\203;	\317	H	H\"I\210T\262\202T\262\202\347 \207" [consistent lookaheadset shift-table cl-struct-shifts-tags accessing-symbol ntokens nil fillarray 0 type-of signal wrong-type-argument shifts 3 4 logior ash 1 logand wisent-resolve-sr-conflict t wisent-BITS-PER-WORD lookaheads rprec LAruleno LA tokensetsize conflicts] 18 (#$ . 67300)])#@29 Find and resolve conflicts.
(defalias 'wisent-resolve-conflicts #[0 "\306\307\306\"\307\n\310\"\307\n\310\"\307\306\"\310\262\211W\205) \311!\210\211T\262\202 \207" [nstates conflicts tokensetsize shiftset lookaheadset err-table nil make-vector 0 wisent-set-conflicts] 4 (#$ . 68337)])#@76 Count the number of shift/reduce conflicts in specified STATE.

(fn STATE)
(defalias 'wisent-count-sr-conflicts #[257 "\306\211\211\211\211\211\307	H\262\203\310\n\307\"\210\310\307\"\210\311!\f>\204+ \312\313\314D\"\210\315H\262\311!\f>\204? \312\313\314D\"\210\316H\262\307\262W\203\212 \211H\307U\204\203 HH\262Y\203k \262\202\203 \n\211\245\317H\320\321\246\"\"I\266T\262\202G TH\262H\262W\203\314 H\262\307\262W\203\305 \317H	H\"I\210T\262\202\251 T\262\202\231 \307\262W\203\353 \322H\nH\"I\210T\262\202\317 \307\262W\203\322\245H\320\321\246\"\"\307U?\266\202\203TT\262\202\356 \207" [src-count shift-table shiftset lookaheadset cl-struct-shifts-tags accessing-symbol nil 0 fillarray type-of signal wrong-type-argument shifts 3 4 logior ash 1 logand ntokens wisent-BITS-PER-WORD lookaheads LA tokensetsize] 18 (#$ . 68639)])#@77 Count the number of reduce/reduce conflicts in specified STATE.

(fn STATE)
(defalias 'wisent-count-rr-conflicts #[257 "\305\211\211\211\211\306	H\262	TH\262Z\307Y\203e \306\262\nW\203e \306\262\211\262W\203U H\310\f\245H\311\312\f\246\"\"\306U?\266\202\203N T\262T\262\202+ \307Y\203^ TT\262\202 \207" [rrc-count lookaheads ntokens LA wisent-BITS-PER-WORD nil 0 2 logand ash 1] 14 (#$ . 69589)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\207" [custom-declare-variable wisent-expected-conflicts funcall function #[0 "\300\207" [nil] 1 ""] "If non-nil suppress the warning about shift/reduce conflicts.\nIt is a decimal integer N that says there should be no warning if\nthere are N shift/reduce conflicts and no reduce/reduce conflicts.  A\nwarning is given if there are either more or fewer conflicts, or if\nthere are any reduce/reduce conflicts." :group wisent :type (choice (const nil) integer) make-obsolete-variable "use %expectedconflicts in the .wy file instead" "27.1"] 8)#@39 Report the total number of conflicts.
(defalias 'wisent-total-conflicts #[0 "\303 \211\205 \304\305\306\307\310\311#\"!\312U\203; 	\312U?\205\221 	\n\206$ \312U?\205\221 \211\203; \313!\203; \211J	\232?\205\221 \203E \314P\202F \311\305\315\"	\312V\203b \305\316	\211\317V\203^ \320\202_ \311$\262	\312V\203t \312V\203t \305\321\"\262\312V\203\214 \305\322\211\317V\203\210 \320\202\211 \311$\262\323!\266\202\207" [rrc-total src-total wisent-expected-conflicts wisent-source intern format "wisent-%s--expected-conflicts" replace-regexp-in-string "\\.el\\'" "" 0 boundp " in " "Grammar%s contains" "%s %d shift/reduce conflict%s" 1 "s" "%s and" "%s %d reduce/reduce conflict%s" message] 10 (#$ . 70644)])#@19 Report conflicts.
(defalias 'wisent-print-conflicts #[0 "\306\307\211\307\262\211\nW\203\343 H\203\334 \310!\210\311!\210\f\\	\\\204. \203\334 \312D\2039 \313 \210r\314!q\210\315\316\"c)\266\f\307V\203s \317\f\211\320V\203Z \321\202[ \322E\203d \313 \210r\314!q\210\315\316\"c)\266\f\307V\203\230 \307V\203\230 \323C\203\211 \313 \210r\314!q\210\315\316\"c)\266\307V\203\303 \324\211\320V\203\252 \321\202\253 \322E\203\264 \313 \210r\314!q\210\315\316\"c)\266\325C\203\315 \313 \210r\314!q\210\315\316\"c)\266\211T\262\202 \326 \207" [src-total rrc-total nstates conflicts src-count rrc-count nil 0 wisent-count-sr-conflicts wisent-count-rr-conflicts "State %d contains" wisent-new-log get-buffer-create apply format-message " %d shift/reduce conflict%s" 1 "s" "" " and" " %d reduce/reduce conflict%s" ".\n" wisent-total-conflicts wisent-verbose-flag wisent-debug-flag wisent-new-log-flag wisent-log-buffer-name] 6 (#$ . 71372)])#@16 Print grammar.
(defalias 'wisent-print-grammar #[0 "\306\211\211\211\211\211\307C\203 \310 \210r\311	!q\210\312\313\"c)\266\314\262\nX\203\375 H\203\366 \315\316\317!\320\"\fHH\321!\203S \211#\236A\206V \322\323\"\266\202\202X \324!\266\202E\203` \310 \210r\311	!q\210\312\313\"c)\266$H\262%H\325V\203\310 %H\325V\203\337 \326%HH\321!\203\246 \211#\236A\206\251 \322\323\"\266\202\202\253 \324!\266\202D\203\263 \310 \210r\311	!q\210\312\313\"c)\266T\262\202~ \327C\203\321 \310 \210r\311	!q\210\312\313\"c)\266\330C\203\350 \310 \210r\311	!q\210\312\313\"c)\266T\262\202  \331C\203\310 \210r\311	!q\210\312\313\"c)\266\332\325H\321!\2030\211#\236A\2063\322\323\"\266\202\2025\324!\266\202D\203=\310 \210r\311	!q\210\312\313\"c)\266\314\262&W\203\333H\321!\203r\211#\236A\206u\322\323\"\266\202\202w\324!\266\202E\203\201\310 \210r\311	!q\210\312\313\"c)\266\314\262\nX\203\344$H\262\306\262\204\335%H\325V\203\335%HU\211\262\203\326\334D\203\305\310 \210r\311	!q\210\312\313\"c)\266\202\241T\262\202\241T\262\202\222\330C\203\355\310 \210r\311	!q\210\312\313\"c)\266T\262\202N\335C\203\310 \210r\311	!q\210\312\313\"c)\266&\262'W\205\255\325\262\325\262\314\262\nX\203x\fHU\203@T\262$H\262\306\262\204q%H\325V\203q%HU\203j\211T\262\336\262\202IT\262\202IT\262\202-\337H\321!\203\225\211#\236A\206\230\322\323\"\266\202\202\232\324!\266\202E\203\244\310 \210r\311	!q\210\312\313\"c)\266\325V\203 \340C\203\301\310 \210r\311	!q\210\312\313\"c)\266\314\262\nX\203 \fHU\203\371\334D\203\353\310 \210r\311	!q\210\312\313\"c)\266T\262\202\322\211\325V\203\217\325V\203#\341C\203\310 \210r\311	!q\210\312\313\"c)\266\342C\203,\310 \210r\311	!q\210\312\313\"c)\266\314\262\nX\203\217$H\262\306\262\204\210%H\325V\203\210%HU\211\262\203\201\334D\203p\310 \210r\311	!q\210\312\313\"c)\266\202LT\262\202LT\262\202=\330C\203\230\310 \210r\311	!q\210\312\313\"c)\266T\262\202\207" [wisent-new-log-flag wisent-log-buffer-name nrules ruseful rlhs tags nil "\n\nGrammar\n\n  Number, Rule\n" wisent-new-log get-buffer-create apply format-message 1 "  %s  %s ->" string-pad number-to-string 6 characterp format "'%c'" symbol-name 0 " %s" " /* empty */" "\n" "\n\nTerminals, with rules where they appear\n\n" "%s (-1)\n" "%s (%d)" " %d" "\n\nNonterminals, with rules where they appear\n\n" t "%s (%d)\n   " " on left:" "," " on right:" wisent-escape-sequence-strings rrhs ritem ntokens nsyms] 13 (#$ . 72359)])#@40 Print reductions on STATE.

(fn STATE)
(defalias 'wisent-print-reductions #[257 "\306\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\262\307\262\310\307\"\210	H\262\203\243 \311!\n>\2043 \312\313\314D\"\210\315H\262\311!\n>\204G \312\313\314D\"\210\316H\262\f\307\262W\203\243 H\307U\204\233 \fHH\262\n\fY\203x \f\262\202\233 \nU\203\202 \317\262\211$\245\320H\321\322$\246\"\"I\266T\262\202O %H\262\203\311!&>\204\276 \312\313\323D\"\210\322H\262\311!&>\204\323 \312\313\323D\"\210\324H\262\f\307\262W\203H\211\262\f\307U\204	\211$\245\320H\321\322$\246\"\"I\266T\262\202\333 'H\262\n'TH\262	\nZ\322U\203.\211\204.(\nH\262)\nH\262\f\307\262\f*W\203`+\325HH\"I\210\fT\262\202?\307\262\fW\203\357+\325$\245H\321\322$\246\"\"\307U?\266\202\203\347\326,H\327!\203\243\211-\236A\206\246\330\331\"\266\202\202\250\332!\266\202.	H,H\327!\203\312\211-\236A\206\315\330\331\"\266\202\202\317\332!\266\202F/\203\330\333 \210r\3340!q\210\335\336\"c)\266T\262\202c\337.H,H\327!\203\211-\236A\206\330\331\"\266\202\202\332!\266\202E/\203 \333 \210r\3340!q\210\335\336\"c)\207\nZ\322Y\205y\307\262\340\262\307\262\211\204\361	\262	W\203\361)H\262\f\307\262\307\262\f*W\203\201+\325H\341H!\"I\210\fT\262\202^\307\262\fW\203\262+\325$\245H\321\322$\246\"\"\307U?\266\202\203\252T\262T\262\202\204V\203\306\262\262(H\262\307\262\f*W\203\351\320H+H\"I\210\fT\262\202\311T\262\202I\310\307\"\210\203o\311!\n>\204	\312\313\314D\"\210\315H\262\311!\n>\204\312\313\314D\"\210\316H\262\f\307\262W\203oH\307U\204g\fHH\262\n\fY\203N\f\262\202g\211$\245\320H\321\322$\246\"\"I\266T\262\202%\307\262\fW\2032\306\262\325$\245H\321\322$\246\"\"\307U?\266\202\203\232\322\202\233\307\262	\262	W\203*)H\325$\245H\321\322$\246\"\"\307U?\266\202\203\"\307U\203JU\204@\342,H\327!\203\363\211-\236A\206\366\330\331\"\266\202\202\370\332!\266\202(H.(HH,H\327!\203 \211-\236A\206#\330\331\"\266\202\202%\332!\266\202F/\203.\333 \210r\3340!q\210\335\336\"c)\266\202C\317\262T\262\202\"\203\267\342,H\327!\203m\211-\236A\206p\330\331\"\266\202\202r\332!\266\202(	H.(HH,H\327!\203\232\211-\236A\206\235\330\331\"\266\202\202\237\332!\266\202F/\203\250\333 \210r\3340!q\210\335\336\"c)\266\306\262\326,H\327!\203\330\211-\236A\206\333\330\331\"\266\202\202\335\332!\266\202(H.(HH,H\327!\203\211-\236A\206\330\331\"\266\202\202\n\332!\266\202F/\203\333 \210r\3340!q\210\335\336\"c)\266T\262\202\241T\262\202r\307Y\205y\343.H,H\327!\203\\\211-\236A\206_\330\331\"\266\202\202a\332!\266\202E/\203j\333 \210r\3340!q\210\335\336\"c)\262\207" [shiftset shift-table cl-struct-shifts-tags accessing-symbol ntokens error-token-number nil 0 fillarray type-of signal wrong-type-argument shifts 3 4 t logior ash 1 errs 2 logand "    %s	[reduce using rule %d (%s)]\n" characterp format "'%c'" symbol-name wisent-new-log get-buffer-create apply format-message "    $default	reduce using rule %d (%s)\n\n" -1 lognot "    %s	reduce using rule %d (%s)\n" "    $default	reduce using rule %d (%s)\n" wisent-BITS-PER-WORD err-table cl-struct-errs-tags lookaheads LAruleno LA tokensetsize lookaheadset tags wisent-escape-sequence-strings rlhs wisent-new-log-flag wisent-log-buffer-name] 27 (#$ . 75017)])#@37 Print actions on STATE.

(fn STATE)
(defalias 'wisent-print-actions #[257 "\306\211\211\211\211\211\211\211\211\211\211\211H\262	H\262\nH\262\204Y \204Y U\203C \307C\f\2036 \310 \210r\311!q\210\312\313\"c)\207\314C\f\203L \310 \210r\311!q\210\312\313\"c)\207\204f \315\262\f\315\262\n\2021\316!#>\204x \317\320\321D\"\210\322H\262\n\316!#>\204\217 \317\320\321D\"\210\323H\262	\315\262\f\306\262\211\204\nW\203\fH\211\262	\315U\203\273 T\262\f\202\232 $H\262%Y\203\320 \324\262\202\232 \325&H\326!\203\356 \211'\236A\206\361 \327\330\"\266\202\202\363 \331!\266\202	E\f\203\375 \310 \210r\311!q\210\312\313\"c)\266T\262\f\202\232 \315V\2031\332C\f\203#\310 \210r\311!q\210\312\313\"c)\266\203\325\316!(>\204F\317\320\333D\"\210\334H\262\316!(>\204\\\317\320\333D\"\210\335H\262	\315\262\nW\203\267H\203\257\336	\fH&H\326!\203\224\211'\236A\206\227\327\330\"\266\202\202\231\331!\266\202D\f\203\241\310 \210r\311!q\210\312\313\"c)\266\nT\262\202d\n\315V\203\325\332C\f\203\307\310 \210r\311!q\210\312\313\"c)\266)H\203<\203<\316!*>\204\362\317\320\337D\"\210\323H\315H\262+H\262\340&H\326!\203\211'\236A\206!\327\330\"\266\202\202#\331!\266\202E\f\203+\310 \210r\311!q\210\312\313\"c)\266\202E\203E\341!\210\nW\205\330\316!#>\204_\317\320\321D\"\210\323H\262	\nW\203\301\fH\211\262	\203\271$H\262\342&H\326!\203\234\211'\236A\206\237\327\330\"\266\202\202\241\331!\266\202	E\f\203\253\310 \210r\311!q\210\312\313\"c)\266T\262\f\202d\332C\f\203\312\310 \210r\311!q\210\312\313\"c)\262\207" [shift-table reduction-table err-table final-state wisent-new-log-flag wisent-log-buffer-name nil "    $default	accept\n" wisent-new-log get-buffer-create apply format-message "    NO ACTIONS\n" 0 type-of signal wrong-type-argument shifts 3 4 t "    %s	shift, and go to state %d\n" characterp format "'%c'" symbol-name "\n" errs 1 2 "    %s	error (nonassociative)\n" reductions "    $default	reduce using rule %d (%s)\n\n" wisent-print-reductions "    %s	go to state %d\n" cl-struct-shifts-tags accessing-symbol ntokens tags wisent-escape-sequence-strings cl-struct-errs-tags consistent cl-struct-reductions-tags rlhs] 20 (#$ . 78684)])#@31 Print STATE core.

(fn STATE)
(defalias 'wisent-print-core #[257 "\306\211\211\211\211\211H\262\307!	>\204 \310\311\312D\"\210\313H\262\314V\205\201\314\262W\203h\307!	>\204> \310\311\312D\"\210\315HH\262\211\262\nH\314V\203X T\262\202I \nH[\262\316H\fH\317!\203{ \211\236A\206~ \320\321\"\266\202\202\200 \322!\266\202D\203\211 \323 \210r\324!q\210\325\326\"c)\266H\262W\203\345 \327\nH\fH\317!\203\301 \211\236A\206\304 \320\321\"\266\202\202\306 \322!\266\202D\203\317 \323 \210r\324!q\210\325\326\"c)\266T\262\202\236 \330C\203\357 \323 \210r\324!q\210\325\326\"c)\266\nH\314V\203G\331\nH\fH\317!\203#\211\236A\206&\320\321\"\266\202\202(\322!\266\202D\2031\323 \210r\324!q\210\325\326\"c)\266T\262\202\376 \332D\203R\323 \210r\324!q\210\325\326\"c)\266T\262\202) \333C\203r\323 \210r\324!q\210\325\326\"c)\262\207" [state-table cl-struct-core-tags ritem rlhs tags wisent-escape-sequence-strings nil type-of signal wrong-type-argument core 5 0 6 "    %s  ->  " characterp format "'%c'" symbol-name wisent-new-log get-buffer-create apply format-message "%s " "." " %s" "   (rule %d)\n" "\n" wisent-new-log-flag wisent-log-buffer-name rrhs] 13 (#$ . 81021)])#@41 Print information on STATE.

(fn STATE)
(defalias 'wisent-print-state #[257 "\302D\203\n \303 \210r\304	!q\210\305\306\"c)\266\307!\210\310!\207" [wisent-new-log-flag wisent-log-buffer-name "\n\nstate %d\n\n" wisent-new-log get-buffer-create apply format-message wisent-print-core wisent-print-actions] 5 (#$ . 82290)])#@30 Print information on states.
(defalias 'wisent-print-states #[0 "\301\211W\205 \302!\210\211T\262\202 \207" [nstates 0 wisent-print-state] 3 (#$ . 82621)])#@129 Print information on generated parser.
Report detailed information if `wisent-verbose-flag' or
`wisent-debug-flag' are non-nil.
(defalias 'wisent-print-results #[0 "\204 	\203 \304 \210\305 \210\204 	\203 \306 \210\307 \210\n\205, \310 \210r\311!q\210\312 )\207" [wisent-verbose-flag wisent-debug-flag noninteractive wisent-log-buffer-name wisent-print-useless wisent-print-conflicts wisent-print-grammar wisent-print-states wisent-append-to-log-file get-buffer-create erase-buffer] 2 (#$ . 82788)])#@634 Figure out the actions for the specified STATE.
Decide what to do for each type of token if seen as the lookahead
token in specified state.  The value returned is used as the default
action for the state.  In addition, ACTROW is filled with what to do
for each kind of token, index by symbol number, with nil meaning do
the default action.  The value `error', means this situation is an
error.  The parser recognizes this value specially.

This is where conflicts are resolved.  The loop over lookahead rules
considered lower-numbered rules last, and the last rule considered
that likes a token gets to handle it.

(fn STATE ACTROW)
(defalias 'wisent-action-row #[514 "\306\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\307\306\"\210\310\262\306\262\310\262\n\310\262\310\262H\262\203\247 \311!	>\204@ \312\313\314D\"\210\315H\262\n	\316Y\203\247 \nH\262\nTH\262\fS\262Y\203\247 \310\262W\203\237 \fH\317\245H\320\316\246\"\"\310U?\266\202\203\227 H[I\210T\262\202i S\262\202^ H\262\203!\311!>\204\302 \312\313\321D\"\210\315H\262\311!>\204\327 \312\313\321D\"\210\322H\262\f\310\262W\203!H\262\310U\204H\262Y\203\262\202I\210U\203\323\262T\262\202\337 H\262\203t\311!>\204<\312\313\324D\"\210\316H\262\311!>\204Q\312\313\324D\"\210\325H\262\f\310\262W\203t\fHI\210T\262\202Y	\316Y\2033\211\2043H\203\242\311!	>\204\227\312\313\314D\"\210\322H\310H[\262\2023\310\262\262W\203\377\310\262H[\262	\310\262W\203\347H\247\203\337H	U\203\337T\262T\262\202\277V\203\367\262\262T\262\202\251\310V\2033\310\262W\2033H\247\203+HU\203+\306I\210T\262\202	\n\310U\203qU\203I \262\202q\310\262W\203mH=\203e\306I\210T\262\202L\262\n\207" [reduction-table cl-struct-reductions-tags lookaheads ntokens LA wisent-BITS-PER-WORD nil fillarray 0 type-of signal wrong-type-argument reductions 3 1 logand ash shifts 4 t errs 2 LAruleno shift-table cl-struct-shifts-tags accessing-symbol error-token-number err-table cl-struct-errs-tags wisent-error-tag consistent final-state wisent-accept-tag] 27 (#$ . 83301)])#@59 Tag used in an action table to indicate a default action.
(defconst wisent-default-tag 'default (#$ . 85595))#@66 Figure out the actions for every state.
Return the action table.
(defalias 'wisent-state-actions #[0 "\306\307\310!I\210\311\211\211\211\211\312	\311\"\262\312\n\311\"\262\306\262\311\211\211\211\211\313\314!\313\315!\313\316!\313\317!	W\203\251 \320\"\262\211\250\203V \211\306W\203V \321[!\262BCI\210\306\262\nW\203\231 H\211\262\203\222 \211\250\203\202 \211\306W\203\202 \321[!\262HBHBI\210T\262\202b H\237I\210T\262\2029 -\207" [rcode nstates ntokens NAME state gotos 0 obarray-make 13 nil make-vector make-symbol "stack" "sp" "gotos" "state" wisent-action-row wisent-semantic-action sp stack wisent-default-tag tags] 10 (#$ . 85710)])#@177 Figure out what to do after reducing with each rule.
Depending on the saved state from before the beginning of parsing the
data that matched this rule.  Return the goto table.
(defalias 'wisent-goto-actions #[0 "\306\211\211\211\211\211\211\307	\306\"\262\n\262W\203Z \nZ\262\fH\262\fTH\262\262W\203R H\211	H		HBHBI\210T\262\202- T\262\202 )\207" [state nstates ntokens nsyms goto-map from-state nil make-vector tags to-state] 12 (#$ . 86412)])#@67 Return non-nil if SYM is bound to the `quote' function.

(fn SYM)
(defalias 'wisent-quote-p #[257 "\3001 \301!\301\302!=0\207\210\303\207" [(error) indirect-function quote nil] 4 (#$ . 86898)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-quote-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@71 Return non-nil if SYM is bound to the `backquote' function.

(fn SYM)
(defalias 'wisent-backquote-p #[257 "\3001 \301!\301\302!=0\207\210\303\207" [(error) indirect-function backquote nil] 4 (#$ . 87239)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-backquote-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@192 Return non-nil if X is a valid $N or $regionN symbol.
That is if X is a $N or $regionN symbol with N >= 1 and N <= M.
Also warn if X is a $N or $regionN symbol with N < 1 or N > M.

(fn X M)
(defalias 'wisent-check-$N #[514 "9\205N \301!\302\303\"\205 \304\305\306\"!\211\205L \211\307Y\203) \211X\203) \266\310\207\311\312\313\307W\203: \314\202F \307U\203E \315\202F \316\"$\210\317\266\202\207" [NAME symbol-name string-match "\\`\\$\\(region\\)?\\([0-9]+\\)\\'" string-to-number match-string 2 1 t message "*** In %s, %s might be a free variable (rule has %s)" format "no component" "%d component" "%d components" nil] 11 (#$ . 87597)])#@411 Parse BODY of semantic action.
N is the maximum number of $N variables that can be referenced in
BODY.  Warn on references out of permitted range.
Optional argument FOUND is the accumulated list of $N references
encountered so far.
Return a cons (FOUND . XBODY), where FOUND is the list of $N
references found in BODY, and XBODY is BODY expression with
`backquote' forms expanded.

(fn BODY N &optional FOUND)
(defalias 'wisent-semantic-action-expand-body #[770 "<\204 \300\"\203 \235\203 \211\202 B\262\211B\207\301\211@\30214 \303!\303\304!=0\262\2028 \210\301\262\203@ \305!\262\203\234 @\262A\262\211:\203} \211@\3061d \303!\303\307!=0\262\202h \210\301\262\204} \310#\262\211@\262\211A\262\202\223 \300\"\203\223 \211\235\203\216 \202\221 \211B\262C\244\262\202@ B\207" [wisent-check-$N nil (error) indirect-function backquote macroexpand (error) quote wisent-semantic-action-expand-body] 9 (#$ . 88260)])#@561 Set up the Elisp function for semantic action at rule R.
On entry RCODE[R] contains a vector [BODY N (NTERM I)] where BODY is the
body of the semantic action, N is the maximum number of values
available in the parser's stack, NTERM is the nonterminal the semantic
action belongs to, and I is the index of the semantic action inside
NTERM definition.  Return the semantic action symbol.
The semantic action function accepts three arguments:

- the state/value stack
- the top-of-stack index
- the goto table

And returns the updated top-of-stack index.

(fn R)
(defalias 'wisent-semantic-action #[257 "H\204 	\306I\207	H\211\307H\310\311\312\313H#\314\315H\"\211@AH\306\211\211\211\262\315V\203\203 \313	Z_T\262\316\311\317\"!\262>\203] \320\321\f\322EEDDB\262\316\311\323\"!\262>\203| \324\321\f\322EEDDB\262S\262\202/ &H\262\315\262'H\315V\203\241 \211T\262T\262\202\215 \316\n	\315H\"\262\n	\325\f(E\326\327\330\307U\203\323 \331\236\203\310 \331\202\350 \320\321\f\332DED\202\350 \307V\205\350 \333\f\322\313_SE\332DFD\334\nD\335\336)HDDE\315V\205\322\n\313_EDC*\320\337\335\321(\321\fEEEDDC$\340\341\342BBE\343\f\332D\344\345BBF\343\f*F\257EM)\210	\207" [ruseful rcode NAME rlhs stack sp nil 1 apply format "%s:%d" 2 wisent-semantic-action-expand-body 0 intern "$region%d" cdr aref - "$%d" car lambda let* append $region $region1 1- wisent-production-bounds $action $nterm quote assq setq + (2) aset cons ($region) rrhs ritem gotos tags state] 28 (#$ . 89221)])#@167 Compute and return LALR(1) automaton from GRAMMAR.
GRAMMAR is in internal format.  GRAM/ACTS are grammar rules
in internal format.  STARTS defines the start symbols.
(defalias 'wisent-parser-automaton #[0 "\302 \210\303 \210\304 \210\305 \210\306 \210\307 \210\310 \210\311\312 \313 	\314H$\207" [start-table rcode wisent-reduce-grammar wisent-set-derives wisent-set-nullable wisent-generate-states wisent-lalr wisent-resolve-conflicts wisent-print-results vector wisent-state-actions wisent-goto-actions 0] 6 (#$ . 90786)])#@143 The list of reserved symbols.
Also all symbols starting with a character defined in
`wisent-reserved-capitals' are reserved for internal use.
(defconst wisent-reserved-symbols (list wisent-error-term) (#$ . 91318))#@116 The list of reserved capital letters.
All symbol starting with one of these letters are reserved for
internal use.
(defconst wisent-reserved-capitals '(36 64) (#$ . 91539))#@58 Main start symbol.
It gives the rules for start symbols.
(defconst wisent-starts-nonterm '$STARTS (#$ . 91717))#@193 Non-nil means allows only one start symbol like in Bison.
That is don't add extra start rules to the grammar.  This is
useful to compare the Wisent's generated automaton with the Bison's
one.
(defvar wisent-single-start-flag nil (#$ . 91835))#@66 Return non-nil if X is a character or an allowed symbol.

(fn X)
(defalias 'wisent-ISVALID-VAR #[257 "\211\205 \2119\205 \302!\303H>?\205 \211	>?\207" [wisent-reserved-capitals wisent-reserved-symbols symbol-name 0] 3 (#$ . 92083)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-ISVALID-VAR speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@66 Return non-nil if X is a character or an allowed symbol.

(fn X)
(defalias 'wisent-ISVALID-TOKEN #[257 "\302!\206! \211\211\205 \2119\205 \303!\304H>?\205 \211	>?\262\207" [wisent-reserved-capitals wisent-reserved-symbols characterp symbol-name 0] 4 (#$ . 92470)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put wisent-ISVALID-TOKEN speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@112 Push a new SYMBOL in the list of tokens.
Bypass checking if NOCHECK is non-nil.

(fn SYMBOL &optional NOCHECK)
(defalias 'wisent-push-token #[513 "\211\2040 \305!\206& \211\211\205$ \2119\205$ \306!\307H>?\205$ \211	>?\262\262\2040 \310\311\"\210\n>\203; \312\313\"\207\314\315\236\211\204O C\262\211B\211\316A#\241\266\314\317\236\211\204m C\262\211B\211\316A#\241\266\f\320\236\211\204\213 C\262\211B\211\316A#\241\266\fT\nB\211\207" [wisent-reserved-capitals wisent-reserved-symbols token-list ptable ntokens characterp symbol-name 0 error "Invalid terminal symbol: %S" message "*** duplicate terminal `%s' ignored" nil wisent--prec plist-put wisent--assoc wisent--item-no] 13 (#$ . 92894)])#@118 Push a new SYMBOL in the list of nonterminals.
Bypass checking if NOCHECK is non-nil.

(fn SYMBOL &optional NOCHECK)
(defalias 'wisent-push-var #[513 "\211\2042 \211\205 \2119\205 \305!\306H>?\205 \211	>?\262\204' \307\310\"\210\n>\2032 \307\311\"\210\312\f\236\211\204F C\262\211\fB\211\313A#\241\266T\nB\211\207" [wisent-reserved-capitals wisent-reserved-symbols var-list nvars ptable symbol-name 0 error "Invalid nonterminal symbol: %S" "Nonterminal `%s' already defined" wisent--item-no plist-put] 13 (#$ . 93646)])#@333 Parse nonterminal definitions in DEFS.
Fill in each element of the global arrays RPREC, RCODE, RUSEFUL with
respectively rule precedence level, semantic action code and
usefulness flag.  Return a list of rules of the form (LHS . RHS) where
LHS and RHS are respectively the Left Hand Side and Right Hand Side of
the rule.

(fn DEFS)
(defalias 'wisent-parse-nonterminals #[257 "\306\211\307\211\306\211\211\211\211\211\211\211\211\211\211\211\211\211\211\307\262\203\206@\262A\262@\262A\262\307\262\f:\204B \310\311\"\210\f\203 \f@\262\f\fA\262@\262A\262	\307\262\306\262\n\nT\203\356 @\262A\262\nT<\203\274 T\262\312\313\314\"!\262\315\316\"\210\317D#\262\211T\262\306\262	BB\262CB\262\nTT\202\340 \f>\204\340 >\204\340 \320!\203\332 \321\316\"\210\202\340 \310\322	\"\210T\262\nB\262\n\202d \323	@!\205<@\262A\262	G\324U\2037\307H\f>\2037\307H\211\325\326\236A\"\266\203\2037\307H\211\327\326\236A\"\266\203\202<\310\330	\"\262B\317	\203\\	A\203V\310\331\"\202d	@\202d\307V\205d\332D#\262\211T\262	B\n\237BB\262T\202B \333T\316\"\334\306\237B!\334\306	\237B!\n\237\207" [rprec rcode nitems nrules token-list var-list nil 0 error "Invalid nonterminal definition syntax: %S" intern format "@%d" wisent-push-var t vector characterp wisent-push-token "Symbol `%s' is used, but is not defined as a token and has no rules" vectorp 1 wisent--prec plist-get wisent--item-no "Invalid rule precedence level syntax: %S" "Invalid semantic action syntax: %S" $1 make-vector vconcat ptable ruseful] 23 (#$ . 94198)])#@704 Parse GRAMMAR and build a suitable internal representation.
Optional argument START-LIST defines the start symbols.
GRAMMAR is a list of form: (TOKENS ASSOCS . NONTERMS)

TOKENS is a list of terminal symbols (tokens).

ASSOCS is nil or an alist of (ASSOC-TYPE . ASSOC-VALUE) elements
describing the associativity of TOKENS.  ASSOC-TYPE must be one of the
`default-prec' `nonassoc', `left' or `right' symbols.  When ASSOC-TYPE
is `default-prec', ASSOC-VALUE must be nil or t (the default).
Otherwise it is a list of tokens which must have been previously
declared in TOKENS.

NONTERMS is the list of non terminal definitions (see function
`wisent-parse-nonterminals').

(fn GRAMMAR &optional START-LIST)
(defalias 'wisent-parse-grammar #[513 ":\203\f G\306V\204 \307\310!\210\311\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\312\211\313\n\314\"\210\313\314\"\210@\262\f\203H \313@!\210\fA\262\2025 A@\262\312\262\311\262\311\262\314\f\203\"\f@\262@\262A\262\fA\262\n\304=\203\234 A\203\211 @\315>\204\211 \307\316\"\210@\203\226 \317\320\f\"\210\314\262\202Y \n\321>\204\251 \307\322\f\"\210T\262\203Y @\262A\262>\203\307 \317\323	\"\210>\204\323 \313!\210B\262\324(\236\211\204\362 C\262\211(B(\211\325A#\241\266\326(\236\211\204C\262\211(B(\211\325A#\241\266\202\256 AA\262\311\262\f\203a\f@\262\fA\262:\204E\307\327\"\210@>\203S\307\330@\"\210\331@!\210B\262\202+\204i\307\332!\210\237\262\311)\204}@@\262\f\202*\204\210A\204\235@\262\f\236\204\307\333\"\210\202*\204+\262\f\237\262\f\203\f\f@\262\fA\262,>\204\310\307\333\"\210)\236\204\253\334\335\336	\"!\262\334\335\337	\"!\262\313\314\"\210\331\314\"\210B)B)D\340DDB\262C\341DB\262\202\253\331\f\314\"\210BB\262\342!\262\n	\\-\237,\262\311,\f\203x\f@\262\fA\262,B,\211\343\344(\236A\"\266\203\\\343(\236\211\204kC\262\211(B(\211\325A#\241\266\202.\211\343\344(\236A\"\266\203.\211\343\344(\236A\"\266\203/\345,\"0\3461T\311\"2\3461T\311\"3\3464T\311\"5\312\262\347\262	\205f2@@\211\343\344(\236A\"\266\203I\2103I\210	@A\262\311\262\203\"@\211\343\344(\236A\"\266\203\262	W\203\f\203\2625\nI\210T\262A\262\202\3506H\204K\203K0H\211\324\344(\236A\"\266\203\203K6I\2105[I\210T\262T\262	A\262\n\202\274\207" [ntokens nvars wisent-eoi-term wisent-error-term default-prec token-list 2 error "Bad input grammar" nil 0 wisent-push-token t (t nil) "Invalid default-prec value: %S" message "*** redefining default-prec to %s" (left right nonassoc) "Invalid associativity syntax: %S" "*** redefining precedence of `%s'" wisent--prec plist-put wisent--assoc "Invalid nonterminal definition: %S" "Nonterminal `%s' already defined as token" wisent-push-var "No input grammar" "Start symbol `%s' has no rule" intern format "$%s" "$$%s" $2 $1 wisent-parse-nonterminals wisent--item-no plist-get vconcat make-vector 1 ptable start-table wisent-single-start-flag wisent-starts-nonterm var-list nsyms error-token-number start-symbol tags nrules rlhs rrhs nitems ritem rprec] 32 (#$ . 95867)])#@1680 Compile the LALR(1) GRAMMAR.

GRAMMAR is a list (TOKENS ASSOCS . NONTERMS) where:

- TOKENS is a list of terminal symbols (tokens).

- ASSOCS is nil, or an alist of (ASSOC-TYPE . ASSOC-VALUE) elements
  describing the associativity of TOKENS.  ASSOC-TYPE must be one of
  the `default-prec' `nonassoc', `left' or `right' symbols.  When
  ASSOC-TYPE is `default-prec', ASSOC-VALUE must be nil or t (the
  default).  Otherwise it is a list of tokens which must have been
  previously declared in TOKENS.

- NONTERMS is a list of nonterminal definitions.

Optional argument START-LIST specify the possible grammar start
symbols.  This is a list of nonterminals which must have been
previously declared in GRAMMAR's NONTERMS form.  By default, the start
symbol is the first nonterminal defined.  When START-LIST contains
only one element, it is the start symbol.  Otherwise, all elements are
possible start symbols, unless `wisent-single-start-flag' is non-nil.
In that case, the first element is the start symbol, and others are
ignored.

Return an automaton as a vector: [ACTIONS GOTOS STARTS FUNCTIONS]
where:

- ACTIONS is a state/token matrix telling the parser what to do at
  every state based on the current lookahead token.  That is shift,
  reduce, accept or error.

- GOTOS is a state/nonterminal matrix telling the parser the next
  state to go to after reducing with each rule.

- STARTS is an alist which maps the allowed start nonterminal symbols
  to tokens that will be first shifted into the parser stack.

- FUNCTIONS is an obarray of semantic action symbols.  Each symbol's
  function definition is the semantic action lambda expression.

(fn GRAMMAR START-LIST)
(defalias 'wisent--compile-grammar #[514 "\306!\203 \207\307\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR\310]R\311 \210\312S\313\"\210\314 .L\207" [ptable nuseless-productions nuseless-nonterminals V1 V P wisent-automaton-p nil 1000000 garbage-collect t wisent-parse-grammar wisent-parser-automaton N var-list token-list start-symbol error-token-number varsetsize tokensetsize to-state this-state tags state-table start-table src-total src-count shiftset shift-table shift-symbol rulesetsize ruleset rcode ruseful rrhs rrc-total rrc-count rprec rlhs ritem reduction-table redset rassoc nvars nullable ntokens nsyms nstates nshifts nrules nitems ngotos maxrhs lookback lookaheadset lookaheads last-state last-shift last-reduction kernel-items kernel-end kernel-base nitemset itemset includes goto-map from-state firsts first-state first-shift first-reduction final-state fderives err-table derives default-prec consistent conflicts accessing-symbol LAruleno LA F gc-cons-threshold wisent-new-log-flag] 77 (#$ . 99169)])
(require 'bytecomp)#@142 Byte compile the `wisent-compile-grammar' FORM.
Automatically called by the Emacs Lisp byte compiler as a
`byte-compile' handler.

(fn FORM)
(defalias 'wisent-byte-compile-grammar #[257 "\300\301\302\303\304\"!!!\207" [byte-compile-form macroexpand-all wisent-automaton-lisp-form eval t] 7 (#$ . 102299)])#@37 

(fn GRAMMAR &optional START-LIST)
(defalias 'wisent-compile-grammar #[513 "\300\"\207" [wisent--compile-grammar] 5 (#$ . 102611)])
(byte-code "\300\301\302\303#\210\304\301\305\306#\207" [make-obsolete wisent-compile-grammar wisent-compiled-grammar "Mar 2021" put byte-compile wisent-byte-compile-grammar] 4)#@126 Return a Lisp form that produces AUTOMATON.
See also `wisent-compile-grammar' for more details on AUTOMATON.

(fn AUTOMATON)
(defalias 'wisent-automaton-lisp-form #[257 "\300!\204 \301\302\300D\"\210\303\304!\305H\306\307BC\310\311C\312\313\314	#\"\210\211\242\262\315\211\316\313\317	#\n\320H\"B\321H\322\n\323HD	\257C\"BB\207" [wisent-automaton-p signal wrong-type-argument make-symbol "ob" 3 let ((obarray-make 13)) append nil mapatoms make-closure #[257 "\300\302\303\304!\301E\305KDE\300\242B\240\207" [V0 V1 fset intern symbol-name function] 6 "\n\n(fn S)"] vector mapcar #[257 "\302\303\304\305\300\301#\"B\207" [V0 V1 list mapcar make-closure #[257 "\211@A\2119\203' \302\303!\300\"\203' \3049\203 \305D\202 \302\303!\301EE\207\305D\207" [V0 V1 intern-soft symbol-name cons quote] 8 "\n\n(fn TR)"]] 7 "\n\n(fn ST)"] 0 1 quote 2] 14 (#$ . 102930)])
(provide 'semantic/wisent/comp)
