;ELC ;;; Compiled ;;; in Emacs version 27.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require semantic semantic/wisent/wisent] 2) #@50 Input stream of `semantic-lex' syntactic tokens. (defvar wisent-lex-istream nil (#$ . 493)) #@87 Extra lookahead token. When non-nil it is directly returned by `wisent-lex-function'. (defvar wisent-lex-lookahead nil (#$ . 591)) (semantic-alias-obsolete 'wisent-lex-make-token-table 'semantic-lex-make-type-table "23.2") #@100 Return an End-Of-Input lexical token. The EOI token is like this: ($EOI "" POINT-MAX . POINT-MAX). (defalias 'wisent-lex-eoi '(macro . #[nil "\301\302D\303BB\207" [wisent-eoi-term cons quote ((cons "" (cons (point-max) (point-max))))] 3 (#$ . 821)])) #@585 Create a new lexical analyzer with NAME. DOC is a documentation string describing this analyzer. When a token is available in `wisent-lex-istream', eval BODY forms sequentially. BODY must return a lexical token for the LALR parser. Each token in input was produced by `semantic-lex', it is a list: (TOKSYM START . END) TOKSYM is a terminal symbol used in the grammar. START and END mark boundary in the current buffer of that token's value. Returned tokens must have the form: (TOKSYM VALUE START . END) where VALUE is the buffer substring between START and END positions. (defalias 'define-wisent-lexer '(macro . #[(name doc &rest body) "\303\304 \305\306\307\nB\310BBB\257\207" [name doc body defun nil cond (wisent-lex-lookahead (prog1 wisent-lex-lookahead (setq wisent-lex-lookahead nil))) wisent-lex-istream (((wisent-lex-eoi)))] 8 (#$ . 1080)])) #@246 Return the next available lexical token in Wisent's form. The variable `wisent-lex-istream' contains the list of lexical tokens produced by `semantic-lex'. Pop the next token available and convert it to a form suitable for the Wisent's parser. (defalias 'wisent-lex #[nil "\203\303\207 \203s @ A\n\211@\262\n\211A@;\203'\211A@\262\202[\304\211\211A@\247\2049\211AA\262\202=\211A\262@\262\211\211A@\247\204Q\211AA\262\202U\211A\262A\262\"\262\n\211A@\247\204k\211AA\262\202o\211A\262)BB\207\305\306ddBBB\207" [wisent-lex-lookahead wisent-lex-istream tk nil buffer-substring-no-properties $EOI ""] 7 (#$ . 1952)]) #@84 Function used to report parse error. By default use the function `wisent-message'. (defvar wisent-error-function nil (#$ . 2600)) (make-variable-buffer-local 'wisent-error-function) #@123 Function used to obtain the next lexical token in input. Should be a lexical analyzer created with `define-wisent-lexer'. (defvar wisent-lexer-function 'wisent-lex (#$ . 2789)) (make-variable-buffer-local 'wisent-lexer-function) #@134 Return raw form of given Semantic tag SEMANTIC-TAG. Should be used in semantic actions, in grammars, to build a Semantic parse tree. (defalias 'wisent-raw-tag #[(semantic-tag) " \204 \nAA\211\203 @ AD\202ddD\244\207" [semantic-tag $region wisent-input] 3 (#$ . 3025)]) (put 'wisent-raw-tag 'byte-optimizer 'byte-compile-inline-expand) #@151 From raw form of Semantic tag RAW-TAG, return a list of cooked tags. Should be used in semantic actions, in grammars, to build a Semantic parse tree. (defalias 'wisent-cook-tag #[(raw-tag) "\304!\211\211\203\305\n@\306 #\210\nA\211\204\n *\207" [raw-tag cooked l $nterm semantic--tag-expand semantic--tag-put-property reparse-symbol] 5 (#$ . 3374)]) (put 'wisent-cook-tag 'byte-optimizer 'byte-compile-inline-expand) #@243 Add lexical token NOMATCH to the cache of unmatched tokens. See also the variable `semantic-unmatched-syntax-cache'. NOMATCH is in Wisent's form: (SYMBOL VALUE START . END) and will be collected in `semantic-lex' form: (SYMBOL START . END). (defalias 'wisent-collect-unmatched-syntax #[(nomatch) "AA\303 @!\205\303 A!\205@ B\nB\211)\207" [nomatch region semantic-unmatched-syntax-cache number-or-marker-p] 2 (#$ . 3805)]) #@468 Parse STREAM using the Wisent LALR parser. GOAL is a nonterminal symbol to start parsing at. Return the list (STREAM SEMANTIC-STREAM) where STREAM are those elements of STREAM that have not been used. SEMANTIC-STREAM is the list of semantic tags found. The LALR parser automaton must be available in buffer local variable `semantic--parse-table'. Must be installed by `semantic-install-function-overrides' to override the standard function `semantic-parse-stream'. (defalias 'wisent-parse-stream #[(stream goal) "\306\211\211\211\f@\211@:\203 @@\fA\202\306\f \203\\\30715\310$0\202\252 \204S\3118U\203S\312\313\314!\"\210\312\315!\202X\316\317\")\202\252\3201\232\3211r\310$0\202\226 \204\220\3118U\203\220\312\313\314!\"\210\312\315!\202\225\316\317\")0\202\252\312\313\322\323p\314!#\"\210)\306\203\357 @@=\203\317\306 @\211\203\357\324\325 @\"\210 A\211\202\277:\204\330 \204\334\306\211B  @B\240\210 AA\241\210 B :\203\371\202\372\326,D\207" [cache la-elt wisent-lex-lookahead wisent-lex-istream stream debug-on-error nil (args-out-of-range) wisent-parse 2 message "wisent-parse-stream: %s" error-message-string "wisent-parse-max-stack-size might need to be increased" apply signal (error) (args-out-of-range) format "%S - %s" run-hook-with-args wisent-discarding-token-functions (nil) semantic--parse-table wisent-lexer-function wisent-error-function goal error-to-filter wisent-parse-max-stack-size err wisent-lookahead] 8 (#$ . 4243)]) #@501 Parse the area between START and END using the Wisent LALR parser. Return the list of semantic tags found. Optional arguments GOAL is a nonterminal symbol to start parsing at, DEPTH is the lexical depth to scan, and RETURNONERROR is a flag to stop parsing on syntax error, when non-nil. The LALR parser automaton must be available in buffer local variable `semantic--parse-table'. Must be installed by `semantic-install-function-overrides' to override the standard function `semantic-parse-region'. (defalias 'wisent-parse-region #[(start end &optional goal depth returnonerror) "eW\204 dV\204 W\203\306\307 #\210\n\310 \f#\311\211 \311\211!\"\311# \2038\"@#$\203J\312%&'($\202l\3131\\\312%&'($0\202l)\314\315\316\317p\320)!#\"\210)\311 *\203\233\"@*=\203\224\311 \"\203\233\321\322\"@\"\210\"A\211\"\202\201*\"B\" :\203\344\311\"\323 !!\324!\"!\203\353!@ !A! \325+ \326  \327 8)+\"*\204\262\330 \325(#\210\202\262,\203\353\311 \203/-\331=\203/\332\333!\203/\203/\334\335 @\211\211A@\247\204\211AA\262\202\211A\262@\262_d\"\311\247\203.@Y\2053\336#\266\202/\237.\207" [start end semantic-case-fold case-fold-search depth wisent-lex-istream error "Invalid bounds [%s %s] passed to `wisent-parse-region'" semantic-lex nil wisent-parse (error) message "wisent-parse-region: %s" format "%S - %s" error-message-string run-hook-with-args wisent-discarding-token-functions semantic--tag-expand append reparse-symbol plist-get 3 semantic--tag-put-property percent boundp semantic--progress-reporter floor 100.0 progress-reporter-do-update ptree tag cooked lstack wisent-lex-lookahead debug-on-error semantic--parse-table wisent-lexer-function wisent-error-function goal err wisent-lookahead property returnonerror semantic-working-type] 8 (#$ . 5788)]) (byte-code "\300\301\302\"\210\303\304!\207" [add-hook edebug-setup-hook #[nil "\300\301\302\303#\207" [put define-wisent-lexer edebug-form-spec (&define name stringp def-body)] 4] provide semantic/wisent] 3)