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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307!\"\210\304\310\311\307!\"\210\304\312\310\"\210\313\312\314\315#\210\316\307\317\310#\320\307\321\322\323$\207" [require srecode srecode/compile srecode/insert defalias srecode-extract-state-p eieio-make-class-predicate srecode-extract-state srecode-extract-state--eieio-childp eieio-make-child-predicate srecode-extract-state-child-p make-obsolete "use (cl-typep ... 'srecode-extract-state) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((anchor :initform nil :documentation "The last known plain-text end location.") (lastinserter :initform nil :documentation "The last inserter with 'later extraction type.") (lastdict :initform nil :documentation "The dictionary associated with lastinserter.")) (:documentation "The current extraction state.")] 6)#@78 Create a new object of class type `srecode-extract-state'.

(fn &rest SLOTS)
(defalias 'srecode-extract-state #[128 "\300\301\302#\207" [apply make-instance srecode-extract-state] 5 (#$ . 942)])
(byte-code "\300\301\302\303#\300\207" [function-put srecode-extract-state compiler-macro srecode-extract-state--anon-cmacro] 4)#@26 

(fn WHOLE &rest SLOTS)
(defalias 'srecode-extract-state--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 1272)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\207" [cl-generic-define-method srecode-extract-state-set nil ((st srecode-extract-state) ins dict) #[771 "\300\301#\210\300\302#\207" [eieio-oset lastinserter lastdict] 7 "Set onto the extract state ST a new inserter INS and dictionary DICT.\n\n(fn ST INS DICT)"] srecode-extract-state-set-anchor ((st srecode-extract-state)) #[257 "\300\301`#\207" [eieio-oset anchor] 5 "Reset the anchor point on extract state ST.\n\n(fn ST)"] srecode-extract-state-extract ((st srecode-extract-state) endpoint) #[514 "\300\301\"\205( \302 \303\304\"\216\305\300\301\"\300\306\"\300\307\"%)\266\310\311\211#\207" [eieio-oref lastinserter match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] srecode-inserter-extract anchor lastdict srecode-extract-state-set nil] 10 "Perform an extraction on the extract state ST with ENDPOINT.\nIf there was no waiting inserter, do nothing.\n\n(fn ST ENDPOINT)"]] 6)#@214 Extract TEMPLATE from between START and END in the current buffer.
Uses TEMPLATE's constant strings to break up the text and guess what
the dictionary entries were for that block of text.

(fn TEMPLATE START END)
(defalias 'srecode-extract #[771 "\212\214}\210\300\301!\302 b\210\303#\210\266\202*\207" [srecode-create-dictionary t srecode-extract-state srecode-extract-method] 9 (#$ . 2543)])
(cl-generic-define-method 'srecode-extract-method nil '((st srecode-template) dictionary state) nil #[771 "\300\301\302\"#\207" [srecode-extract-code-stream eieio-oref code] 7 "Extract template ST and store extracted text in DICTIONARY.\nOptional STARTRETURN is a symbol in which the start of the first\nplain-text match occurred.\n\n(fn ST DICTIONARY STATE)"])#@183 Extract CODE from buffer text into DICTIONARY.
Uses string constants in CODE to split up the buffer.
Uses STATE to maintain the current extraction state.

(fn CODE DICTIONARY STATE)
(defalias 'srecode-extract-code-stream #[771 "\205Z @;\203* \300!\210\301\302@!d\303#\204 \304\305!\210\306\307\224\"\210\307\225b\210\202S \310@!\311=\203= \312@#\210\202S \310@!\313=\203S \300!\210\314@`\315%\210A\262\202  \207" [srecode-extract-state-set-anchor re-search-forward regexp-quote t error "Unable to extract all dictionary entries" srecode-extract-state-extract 0 srecode-inserter-do-extract-p later srecode-extract-state-set now srecode-inserter-extract nil] 9 (#$ . 3315)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\301\302\310\302\311%\210\300\305\302\312\302\313%\210\300\301\302\314\302\315%\210\300\305\302\316\302\317%\210\300\301\302\320\302\321%\210\300\305\302\322\302\323%\210\324\325!\207" [cl-generic-define-method srecode-inserter-do-extract-p nil ((_ins srecode-template-inserter)) #[257 "\300\207" [nil] 2 "Return non-nil if this inserter can extract values.\n\n(fn INS)"] srecode-inserter-extract ((_ins srecode-template-inserter) _start _end _dict _state) #[1285 "\300\207" [nil] 6 "Extract text from START/END and store in DICT.\nReturn nil as this inserter will extract nothing.\n\n(fn INS START END DICT STATE)"] ((_ins srecode-template-inserter-variable)) #[257 "\300\207" [later] 2 "Return non-nil if this inserter can extract values.\n\n(fn INS)"] ((ins srecode-template-inserter-variable) start end vdict _state) #[1285 "\300\301\302\"\303\"#\210\304\207" [srecode-dictionary-set-value eieio-oref object-name buffer-substring-no-properties t] 11 "Extract text from START/END and store in VDICT.\nReturn t if something was extracted.\nReturn nil if this inserter doesn't need to extract anything.\n\n(fn INS START END VDICT STATE)"] ((_ins srecode-template-inserter-section-start)) #[257 "\300\207" [now] 2 "Return non-nil if this inserter can extract values.\n\n(fn INS)"] ((ins srecode-template-inserter-section-start) _start _end indict state) #[1285 "\300\301\"\302!\303\3041 \305\300	\306\"#\210\3070\202  \210\2020 \2030 B\262\302!\262\202 \310\237#\210\303\207" [eieio-oref object-name srecode-create-dictionary nil (error) srecode-extract-method template t srecode-dictionary-set-value] 12 "Extract text from START/END and store in INDICT.\nReturn the starting location of the first plain-text match.\nReturn nil if nothing was extracted.\n\n(fn INS START END INDICT STATE)"] ((_ins srecode-template-inserter-include)) #[257 "\300\207" [now] 2 "Return non-nil if this inserter can extract values.\n\n(fn INS)"] ((ins srecode-template-inserter-include) start _end dict state) #[1285 "b\210\300\"\210\301\302\"\303\230\204: \304\301\302\"\"\305\306!\210\30710 \310\301\311\"#\210\3120\2023 \210\313\207\2059 \202 \207\310\301\311\"#\207" [srecode-insert-include-lookup eieio-oref object-name "" srecode-dictionary-add-section-dictionary error "Need to implement include with name extractor" (error) srecode-extract-method includedtemplate t nil] 10 "Extract text from START/END and store in DICT.\nReturn the starting location of the first plain-text match.\nReturn nil if nothing was extracted.\n\n(fn INS START END DICT STATE)"] provide srecode/extract] 6)
