%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
;ELC ;;; Compiled ;;; in Emacs version 25.2.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'semantic/wisent) #@36 Return the context name from NAME. (defalias 'wisent-context-name '(macro . #[(name) "\301\302\303DE\304\305\306ED\307\310EF\207" [name if and symbolp intern format "wisent-context-%s" error "Invalid context name: %S"] 6 (#$ . 437)])) #@39 Return the variables in context NAME. (defalias 'wisent-context-bindings '(macro . #[(name) "\301\302DD\207" [name symbol-value wisent-context-name] 3 (#$ . 682)])) #@54 Define a context NAME that will bind variables VARS. (defalias 'wisent-defcontext '(macro . #[(name &rest vars) "\203 9\203 \304\305\306\"!\202 \307\310\"\311\312\n\"\313\314\315\316 \317\nDEDC\"*B\207" [name context vars declarations intern format "wisent-context-%s" error "Invalid context name: %S" mapcar #[(v) "\301D\207" [v defvar] 2] progn append eval-when-compile defvar quote] 8 (#$ . 854)])) (function-put 'wisent-defcontext 'lisp-indent-function 1) #@48 Bind variables in context NAME then eval BODY. (defalias 'wisent-with-context '(macro . #[(name &rest body) "\203 9\203 \303\304\305\"!\202 \306\307\"J\310\311\312\313 \"\314 \nBBC\")B\207" [name bindings body intern format "wisent-context-%s" error "Invalid context name: %S" progn append mapcar #[(binding) "\301\242\206 D\207" [binding defvar] 2] let*] 6 (#$ . 1331)])) (function-put 'wisent-with-context 'lisp-indent-function 1) #@406 Define a simple data structure called NAME. Which contains data stored in FIELDS. FIELDS is a list of symbols which are field names or pairs (FIELD INITIAL-VALUE) where INITIAL-VALUE is a constant used as the initial value of FIELD when the data structure is created. INITIAL-VALUE defaults to nil. This defines a `make-NAME' constructor, get-able `NAME-FIELD' and set-able `set-NAME-FIELD' accessors. (defalias 'wisent-struct '(macro . #[(name &rest fields) "G\306\307\211\211\211\211W\203p @A\f:\2030 \fA@ B\f@\2024 \307 B\310\311\f#\312\310\313\"!\314\n\315\316\317\320FF B\312\310\321\"!\314\n\322\316\323\320\324BBBBF BT\211\202 \325\314\312\310\326\"!\307\327\330\331 \237DEF .BB\207" [fields ivals fun sufx field accors 0 nil format "%s-%s" intern "%s" defmacro (s) list 'aref s "set-%s" (s v) 'aset (v) progn "make-%s" cons 'vector quote i size name] 9 (#$ . 1782)])) (put 'wisent-struct 'lisp-indent-function 1) #@150 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. (defalias 'wisent-pad-string #[(s n &optional left) "G\211\nW\203# \203 \304\n Z\305\"P\202$ \304\n Z\305\"P\202$ )\207" [s i n left make-string 32] 5 (#$ . 2755)]) (put 'wisent-pad-string 'byte-optimizer 'byte-compile-inline-expand) (defconst wisent-BITS-PER-WORD (byte-code "\302\303\304!\203 \305\202\f \306 !\307U\204 T\202 *\207" [do-shift i 1 boundp most-positive-fixnum #[(i) "\302 [\"\207" [most-positive-fixnum i lsh] 3] #[(i) "\301\302\"\207" [i lsh 1] 3] 0] 3)) #@42 (N + BITS-PER-WORD - 1) / BITS-PER-WORD. (defalias 'wisent-WORDSIZE #[(n) " \\S \245\207" [n wisent-BITS-PER-WORD] 2 (#$ . 3401)]) (put 'wisent-WORDSIZE 'byte-optimizer 'byte-compile-inline-expand) #@49 X[I/BITS-PER-WORD] |= 1 << (I % BITS-PER-WORD). (defalias 'wisent-SETBIT #[(x i) " \245\n\304\nH\305\306 \246\"\"I)\207" [i wisent-BITS-PER-WORD k x logior lsh 1] 8 (#$ . 3606)]) (put 'wisent-SETBIT 'byte-optimizer 'byte-compile-inline-expand) #@52 X[I/BITS-PER-WORD] &= ~(1 << (I % BITS-PER-WORD)). (defalias 'wisent-RESETBIT #[(x i) " \245\n\304\nH\305\306\307 \246\"!\"I)\207" [i wisent-BITS-PER-WORD k x logand lognot lsh 1] 9 (#$ . 3861)]) (put 'wisent-RESETBIT 'byte-optimizer 'byte-compile-inline-expand) #@57 (X[I/BITS-PER-WORD] & (1 << (I % BITS-PER-WORD))) != 0. (defalias 'wisent-BITISSET #[(x i) "\303 \n\245H\304\305 \n\246\"\"\306U?\207" [x i wisent-BITS-PER-WORD logand lsh 1 0] 6 (#$ . 4135)]) (put 'wisent-BITISSET 'byte-optimizer 'byte-compile-inline-expand) #@57 Return non-nil if running without interactive terminal. (defalias 'wisent-noninteractive #[nil "\207" [noninteractive] 1 (#$ . 4402)]) (put 'wisent-noninteractive 'byte-optimizer 'byte-compile-inline-expand) #@40 Non-nil means enable some debug stuff. (defvar wisent-debug-flag nil (#$ . 4617)) #@25 Name of the log buffer. (defconst wisent-log-buffer-name "*wisent-log*" (#$ . 4705)) #@38 Non-nil means to start a new report. (defvar wisent-new-log-flag nil (#$ . 4796)) #@67 *Non-nil means to report verbose information on generated parser. (defvar wisent-verbose-flag nil (#$ . -4884)) #@67 Toggle whether to report verbose information on generated parser. (defalias 'wisent-toggle-verbose-flag #[nil "?\301\302!\205 \303\304\203 \305\202 \306\"\207" [wisent-verbose-flag called-interactively-p interactive message "Verbose report %sabled" "en" "dis"] 3 (#$ . 5002) nil]) #@82 Return the log buffer. Its name is defined in constant `wisent-log-buffer-name'. (defalias 'wisent-log-buffer '(macro . #[nil "\300\207" [(get-buffer-create wisent-log-buffer-name)] 1 (#$ . 5295)])) #@47 Delete the entire contents of the log buffer. (defalias 'wisent-clear-log '(macro . #[nil "\300\207" [(with-current-buffer (wisent-log-buffer) (erase-buffer))] 1 (#$ . 5500)])) #@45 Return the current source file name or nil. (defalias 'wisent-source #[nil "\303\300!\203\n \206 \206 \304 \211\205 \305\n!)\207" [byte-compile-current-file load-file-name source boundp buffer-file-name file-relative-name] 3 (#$ . 5683)]) #@40 Start a new entry into the log buffer. (defalias 'wisent-new-log #[nil "\303\304\305\306 \206 \307 \310\311!#r\312\n!q\210db\210 c*\207" [wisent-new-log-flag text 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 (#$ . 5934)]) #@170 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'. (defalias 'wisent-log #[(&rest args) "\203 \303 \210r\304 !q\210\305\306\n\"c)\207" [wisent-new-log-flag wisent-log-buffer-name args wisent-new-log get-buffer-create apply format-message] 3 (#$ . 6264)]) (put 'wisent-log 'byte-optimizer 'byte-compile-inline-expand) #@63 The log file. Used when running without interactive terminal. (defconst wisent-log-file "wisent.output" (#$ . 6707)) #@57 Append contents of logging buffer to `wisent-log-file'. (defalias 'wisent-append-to-log-file #[nil "\303!\205) \3041! r\305!q\210~\210deV\205 \306ed \307$)0\207\310\311\312\n!\")\207" [wisent-log-buffer-name wisent-log-file err get-buffer (error) get-buffer-create write-region t message "*** %s" error-message-string] 5 (#$ . 6830)]) #@30 The size of the state table. (custom-declare-variable 'wisent-state-table-size 1009 '(#$ . 7175) :type 'integer :group 'wisent) #@87 Return non-nil if item number S defines a token (terminal). That is if S < `ntokens'. (defalias 'wisent-ISTOKEN '(macro . #[(s) "\301\302BB\207" [s < (ntokens)] 3 (#$ . 7309)])) #@83 Return non-nil if item number S defines a nonterminal. That is if S >= `ntokens'. (defalias 'wisent-ISVAR '(macro . #[(s) "\301\302BB\207" [s >= (ntokens)] 3 (#$ . 7494)])) #@41 Return printable form of item number S. (defalias 'wisent-tag #[(s) " H\304\n!\203 \n\236A\206 \305\306\n\"\202 \307\n!)\207" [tags s item wisent-escape-sequence-strings wisent-char-p format "'%c'" symbol-name] 3 (#$ . 7674)]) (put 'wisent-tag 'byte-optimizer 'byte-compile-inline-expand) #@79 Store OBJECT's PROPNAME property with value VALUE. Use `eq' to locate OBJECT. (defalias 'wisent-put #[(object propname value) " \236\211\204 C\211 B\n\305\nA\f#\241)\207" [object ptable entry propname value plist-put] 6 (#$ . 7975)]) (put 'wisent-put 'byte-optimizer 'byte-compile-inline-expand) #@76 Return the value of OBJECT's PROPNAME property. Use `eq' to locate OBJECT. (defalias 'wisent-get #[(object propname) "\303 \236A\n\"\207" [object ptable propname plist-get] 3 (#$ . 8284)]) (put 'wisent-get 'byte-optimizer 'byte-compile-inline-expand) #@37 Return the item number of symbol X. (defalias 'wisent-item-number #[(x) "\304\305\n\236A \"*\207" [x propname object ptable wisent--item-no plist-get] 3 (#$ . 8542)]) (put 'wisent-item-number 'byte-optimizer 'byte-compile-inline-expand) #@39 Set the item number of symbol X to N. (defalias 'wisent-set-item-number #[(x n) "\306 \211 \236\211\204 \fC\211 B\307A\n#\241,\207" [x n value propname object ptable wisent--item-no plist-put entry] 6 (#$ . 8789)]) (put 'wisent-set-item-number 'byte-optimizer 'byte-compile-inline-expand) #@39 Return the associativity of symbol X. (defalias 'wisent-assoc #[(x) "\304\305\n\236A \"*\207" [x propname object ptable wisent--assoc plist-get] 3 (#$ . 9099)]) (put 'wisent-assoc 'byte-optimizer 'byte-compile-inline-expand) #@41 Set the associativity of symbol X to A. (defalias 'wisent-set-assoc #[(x a) "\306 \211 \236\211\204 \fC\211 B\307A\n#\241,\207" [x a value propname object ptable wisent--assoc plist-put entry] 6 (#$ . 9334)]) (put 'wisent-set-assoc 'byte-optimizer 'byte-compile-inline-expand) #@42 Return the precedence level of symbol X. (defalias 'wisent-prec #[(x) "\304\305\n\236A \"*\207" [x propname object ptable wisent--prec plist-get] 3 (#$ . 9632)]) (put 'wisent-prec 'byte-optimizer 'byte-compile-inline-expand) #@44 Set the precedence level of symbol X to P. (defalias 'wisent-set-prec #[(x p) "\306 \211 \236\211\204 \fC\211 B\307A\n#\241,\207" [x p value propname object ptable wisent--prec plist-put entry] 6 (#$ . 9867)]) (put 'wisent-set-prec 'byte-optimizer 'byte-compile-inline-expand) (defalias 'make-core '(macro . #[nil "\300\301B\207" [vector (nil nil 0 0 0 [0])] 2])) (defalias 'set-core-items '(macro . #[(s v) "\302\303 F\207" [s v aset 5] 4])) (defalias 'core-items '(macro . #[(s) "\301\302E\207" [s aref 5] 3])) (defalias 'set-core-nitems '(macro . #[(s v) "\302\303 F\207" [s v aset 4] 4])) (defalias 'core-nitems '(macro . #[(s) "\301\302E\207" [s aref 4] 3])) (defalias 'set-core-accessing-symbol '(macro . #[(s v) "\302\303 F\207" [s v aset 3] 4])) (defalias 'core-accessing-symbol '(macro . #[(s) "\301\302E\207" [s aref 3] 3])) (defalias 'set-core-number '(macro . #[(s v) "\302\303 F\207" [s v aset 2] 4])) (defalias 'core-number '(macro . #[(s) "\301\302E\207" [s aref 2] 3])) (defalias 'set-core-link '(macro . #[(s v) "\302\303 F\207" [s v aset 1] 4])) (defalias 'core-link '(macro . #[(s) "\301\302E\207" [s aref 1] 3])) (defalias 'set-core-next '(macro . #[(s v) "\302\303 F\207" [s v aset 0] 4])) (defalias 'core-next '(macro . #[(s) "\301\302E\207" [s aref 0] 3])) (defalias 'make-shifts '(macro . #[nil "\300\301B\207" [vector (nil 0 0 [0])] 2])) (defalias 'set-shifts-shifts '(macro . #[(s v) "\302\303 F\207" [s v aset 3] 4])) (defalias 'shifts-shifts '(macro . #[(s) "\301\302E\207" [s aref 3] 3])) (defalias 'set-shifts-nshifts '(macro . #[(s v) "\302\303 F\207" [s v aset 2] 4])) (defalias 'shifts-nshifts '(macro . #[(s) "\301\302E\207" [s aref 2] 3])) (defalias 'set-shifts-number '(macro . #[(s v) "\302\303 F\207" [s v aset 1] 4])) (defalias 'shifts-number '(macro . #[(s) "\301\302E\207" [s aref 1] 3])) (defalias 'set-shifts-next '(macro . #[(s v) "\302\303 F\207" [s v aset 0] 4])) (defalias 'shifts-next '(macro . #[(s) "\301\302E\207" [s aref 0] 3])) (defalias 'make-reductions '(macro . #[nil "\300\301B\207" [vector (nil 0 0 [0])] 2])) (defalias 'set-reductions-rules '(macro . #[(s v) "\302\303 F\207" [s v aset 3] 4])) (defalias 'reductions-rules '(macro . #[(s) "\301\302E\207" [s aref 3] 3])) (defalias 'set-reductions-nreds '(macro . #[(s v) "\302\303 F\207" [s v aset 2] 4])) (defalias 'reductions-nreds '(macro . #[(s) "\301\302E\207" [s aref 2] 3])) (defalias 'set-reductions-number '(macro . #[(s v) "\302\303 F\207" [s v aset 1] 4])) (defalias 'reductions-number '(macro . #[(s) "\301\302E\207" [s aref 1] 3])) (defalias 'set-reductions-next '(macro . #[(s v) "\302\303 F\207" [s v aset 0] 4])) (defalias 'reductions-next '(macro . #[(s) "\301\302E\207" [s aref 0] 3])) (defalias 'make-errs '(macro . #[nil "\300\301B\207" [vector (0 [0])] 2])) (defalias 'set-errs-errs '(macro . #[(s v) "\302\303 F\207" [s v aset 1] 4])) (defalias 'errs-errs '(macro . #[(s) "\301\302E\207" [s aref 1] 3])) (defalias 'set-errs-nerrs '(macro . #[(s v) "\302\303 F\207" [s v aset 0] 4])) (defalias 'errs-nerrs '(macro . #[(s) "\301\302E\207" [s aref 0] 3])) #@106 Visit L and R and return non-nil if their first N elements are `='. L and R must be vectors of integers. (defalias 'wisent-bits-equal #[(L R n) "S\305\n\203 \306 !\203 H\f HU S\202 \n*\207" [n i iseq L R t natnump] 3 (#$ . 13004)]) #@41 Return number of bits set in integer I. (defalias 'wisent-nbits #[(i) "\302 \302U\204 \303 \304 \211[\"\"T\202 )\207" [count i 0 logxor logand] 5 (#$ . 13252)]) #@94 In vector S count the total of bits set in first N elements. S must be a vector of integers. (defalias 'wisent-bits-size #[(S n) "S\304\305 !\203 \n\306 H!\\ S\202 \n*\207" [n i count S 0 natnump wisent-nbits] 4 (#$ . 13426)]) #@53 Return non-nil if production I is in useful set N0. (defalias 'wisent-useful-production #[(i N0) "\306 \nH\307\203A H\211\310V\203A \f\fY\203; \f\fZ\311\n\245H\312\313\n\246\"\"\310U*?T\202 +\207" [useful rrhs i r n ritem t nil 0 logand lsh 1 ntokens N0 x wisent-BITS-PER-WORD] 6 (#$ . 13667)]) #@39 Find out which nonterminals are used. (defalias 'wisent-useless-nonterminals #[nil "\306\211\211\211\211 \211\\S\245)\307 \310\"\204\313 S\311\n!\2036 \f\n\nHI\210\nS\202\"