MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.217.207.112
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/cedet/srecode/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/cedet/srecode/insert.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:32 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/cedet/srecode/insert.el
;;; in Emacs version 24.3.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!\210\300\303!\210\300\304!\210\300\305!\210\306\307\310\311\312\313\314\315&\207" [require srecode/compile srecode/find srecode/dictionary srecode/args srecode/filters custom-declare-variable srecode-insert-ask-variable-method 'ask "Determine how to ask for a dictionary value when inserting a template.\nOnly the ASK style inserter will query the user for a value.\nDictionary value references that ask begin with the ? character.\nPossible values are:\n  'ask   - Prompt in the minibuffer as the value is inserted.\n  'field - Use the dictionary macro name as the inserted value,\n           and place a field there.  Matched fields change together.\n\nNOTE: The field feature does not yet work with XEmacs." :group srecode :type (choice (const :tag "Ask" ask) (const :tag "Field" field))] 8)
#@70 Non-nil means that we are actively inserting a template with fields.
(defvar srecode-insert-with-fields-in-progress nil (#$ . 1393))
#@75 The context that was at point at the beginning of the template insertion.
(defvar srecode-insertion-start-context nil (#$ . 1532))
#@58 Insert the previously inserted template (by name) again.
(defalias 'srecode-insert-again #[nil "@\211\203
\302	!\202\303\302!)\207" [srecode-read-template-name-history prev srecode-insert call-interactively] 3 (#$ . 1669) nil])
#@123 Insert the template TEMPLATE-NAME into the current buffer at point.
DICT-ENTRIES are additional dictionary values to add.
(defalias 'srecode-insert #[(template-name &rest dict-entries) "\306 \204\n\307\310\"\210\311 \312\306 	\"\313 \204\307\314	\"\210
\2034\315\f
@
A@#\210
AA\211\204#\316\f\"+\207" [major-mode template-name srecode-insertion-start-context temp newdict dict-entries srecode-table error "No template table found for mode %s" srecode-create-dictionary srecode-template-get-table srecode-calculate-context "No Template named %s" srecode-dictionary-set-value srecode-insert-fcn] 5 (#$ . 1909) (list (srecode-read-template-name "Template Name: "))])
#@203 Insert TEMPLATE using DICTIONARY into STREAM.
Optional SKIPRESOLVER means to avoid refreshing the tag list,
or resolving any template arguments.  It is assumed the caller
has set everything up already.
(defalias 'srecode-insert-fcn #[(template dictionary &optional stream skipresolver) "\206p\306\307\304\"\203\310\f\311\304\"\"\210
\204#\312 \210\313\f\"\210\314\n!\203D`\315\211\316\f\"\210*\317\320`\321$\210)\202I\322\f\"\210\314\n!\203c\307\323\324\"\203c\nq\210\325 \311\324\"b\210\326\323\324#\210	\206o`*\207" [stream end-mark standard-output template dictionary skipresolver nil slot-boundp srecode-dictionary-merge eieio-oref semantic-fetch-tags srecode-resolve-arguments bufferp t srecode--insert-into-buffer run-hook-with-args after-change-functions 0 srecode-insert-method srecode-template-inserter-point point point-marker eieio-oset-default start inhibit-modification-hooks inhibit-point-motion-hooks eieio-unbound] 5 (#$ . 2592)])
#@495 Insert a TEMPLATE with DICTIONARY into a buffer.
Do not call this function yourself.  Instead use:
  `srecode-insert' - Inserts by name.
  `srecode-insert-fcn' - Insert with objects.
This function handles the case from one of the above functions when
the template is inserted into a buffer.  It looks
at `srecode-insert-ask-variable-method' to decide if unbound dictionary
entries ask questions or insert editable fields.

Buffer based features related to change hooks is handled one level up.
(defalias 'srecode--insert-into-buffer #[(template dictionary) "\306=\203\n\307\310!\210\311`\306=\205\312\313\f
\"\210)?\2059\306=\2059\n\2059\314\315\316	\317`%\320!)*\207" [srecode-insert-ask-variable-method start srecode-field-archive srecode-insert-with-fields-in-progress template dictionary field require srecode/fields nil t srecode-insert-method srecode-template-inserted-region "TEMPLATE" :start :end srecode-overlaid-activate reg] 6 (#$ . 3577)])
#@134 Display an error report based on DICTIONARY, FORMAT and ARGS.
This is intended to diagnose problems with failed template
insertions.
(defalias 'srecode-insert-show-error-report #[(dictionary format &rest args) "r\304\305!q\210\306 \210\307\310\311\312#\307\313\311\314#\315\261\210\316\317\320\321\"!\322\"\210\307\323\311\324#\325\261\210\326	\327\322#\210\307\330\311\331#\325\261\210\332\302\n#c\210\333p!)\207" [srecode-template dictionary format args data-debug-new-buffer "*SRECODE INSERTION ERROR*" erase-buffer propertize "Template Stack" face (:weight bold) " (most recent at bottom)" (:slant italic) ":\n" data-debug-insert-stuff-list reverse eieio-oref active "> " "Dictionary" (:weight bold) "\n" data-debug-insert-thing "" "Error" (:weight bold) apply pop-to-buffer] 5 (#$ . 4553)])
(defalias 'srecode-insert-report-error #[(dictionary format &rest args) "\303	\n#\210\304\305	\n#\207" [dictionary format args srecode-insert-show-error-report apply error] 4])
#@103 Resolve all the arguments needed by the template TEMP.
Apply anything learned to the dictionary DICT.
(defalias 'srecode-resolve-arguments #[(temp dict) "\302\303\304\"	#\207" [temp dict srecode-resolve-argument-list eieio-oref args] 4 (#$ . 5539)])
#@200 Resolve arguments in the argument list ARGS.
ARGS is a list of symbols, such as :blank, or :file.
Apply values to DICT.
Optional argument TEMP is the template that is getting its arguments resolved.
(defalias 'srecode-resolve-argument-list #[(args dict &optional temp) "\304	\2051\305\306\307	@!P!\211\204\310\311	@\"\210\n\203%\304\312\313\217\210\202)!\210	A\211\204\304)\207" [fcn args temp dict nil intern-soft "srecode-semantic-handle-" symbol-name error "Error resolving template argument %S" (funcall fcn dict temp) ((wrong-number-of-arguments (funcall fcn dict)))] 5 (#$ . 5798)])
(byte-code "\300\301\302\301\303\"\"\210\304\301\305\306\307$\210\300\310\302\310\311\"\"\210\304\310\312\306\313$\210\300\314\302\314\315\"\"\210\304\314\312\306\316$\210\300\317\302\317\320\"\"\210\304\317\305\306\321$\207" [eieio--defalias srecode-push eieio--defgeneric-init-form #1="Push the srecoder template ST onto the active stack." eieio--defmethod nil srecode-template #[(st) "\301\302\303\302\"B#\207" [st eieio-oset active eieio-oref] 7 #1#] srecode-pop #2="Pop the srecoder template ST onto the active stack.\nST can be a class, or an object." :STATIC #[(st) "\301\302\303\302\"A#\207" [st eieio-oset active eieio-oref] 6 #2#] srecode-peek #3="Fetch the topmost active template record.  ST can be a class." #[(st) "\301\302\"@\207" [st eieio-oref active] 3 #3#] srecode-insert-method #4="Insert the srecoder template ST." #[(st dictionary) "\303\301\"\203\304	\305\301\"\"\210\306\216\305\307\"\310!\210\311\n	\"*\207" [st dictionary c slot-boundp srecode-dictionary-merge eieio-oref ((srecode-pop st)) code srecode-push srecode-insert-code-stream] 5 #4#]] 5)
#@95 Insert the CODE from a template into `standard-output'.
Use DICTIONARY to resolve any macros.
(defalias 'srecode-insert-code-stream #[(code dictionary) "\205 @;\203\302@!\210\202\303@	\"\210A\211\204\304\207" [code dictionary princ srecode-insert-method nil] 4 (#$ . 7492)])
(byte-code "\300\301\302\303\304$\210\305\306\307\306\310\"\"\210\311\306\312\301\313$\210\305\314\307\314\315\"\"\210\311\314\312\301\316$\210\300\317\320\321\322$\210\305\306\307\306\323\"\"\210\311\306\312\317\324$\210\300\325\326\327\330$\210\305\331\307\331\332\"\"\210\311\331\333\325\334$\210\305\306\307\306\335\"\"\210\311\306\312\325\336$\210\300\337\340\341\342$\207" [eieio-defclass srecode-template-inserter-newline (srecode-template-inserter) ((key :initform "\n" :allocation :class :documentation "The character code used to identify inserters of this style.") (hard :initform nil :initarg :hard :documentation "Is this a hard newline (always inserted) or optional?\nOptional newlines don't insert themselves if they are on a blank line\nby themselves.")) ("Insert a newline, and possibly do indenting.\nSpecify the :indent argument to enable automatic indentation when newlines\noccur in your template.") eieio--defalias srecode-insert-method eieio--defgeneric-init-form #1="Insert the STI inserter." eieio--defmethod nil #[(sti dictionary) "\306\307\"\310	!\311\312 \f\203.\313\314\"\204.\315 \210\214`\n}\210\316\317!\203*\320)\nb\210
\311=\203>\f\203>\321 \210\nb\210\205s\322\323!\210
\311=\203]\310	!\203]\312 \321 \210\nb\202s
\247\203k\322\324
\325\"!\202s
;\205s\322
!,\207" [dictionary standard-output pm doit inbuff i srecode-dictionary-lookup-name "INDENT" bufferp t point-marker eieio-oref hard beginning-of-line looking-at "\\s-*$" nil indent-according-to-mode princ "\n" make-string " " sti] 4 #1#] srecode-dump #2="Dump the state of the SRecode template inserter INS." #[(ins indent) "\301 \210\302\303\"\205
\304\305!\207" [ins call-next-method eieio-oref hard princ " : hard"] 3 #2#] srecode-template-inserter-blank (srecode-template-inserter) ((key :initform "
" :allocation :class :documentation "The character representing this inserter style.\nCan't be blank, or it might be used by regular variable insertion.") (where :initform 'begin :initarg :where :documentation "This should be 'begin or 'end, indicating where to insert a CR.\nWhen set to 'begin, it will insert a CR if we are not at 'bol'.\nWhen set to 'end it will insert a CR if we are not at 'eol'.")) ("Insert a newline before and after a template, and possibly do indenting.\nSpecify the :blank argument to enable this inserter.") #3="Make sure there is no text before or after point." #[(sti dictionary) "\306\307\"\310	!\311 \205\203\312
\313\"G\314U\205\203\f\315=\2034\2034\312\316\"\317=\2044\320 \210\nb\210\312\316\"\317=\203In\204I\321\322!\210\202f\312\316\"\323=\203f\324\325!\203^`\326 |\210l\204f\321\322!\210\311 \f\315=\205\203\205\203\312\316\"\323=?\205\203\320 \210\nb+\207" [dictionary standard-output pm inbuff i srecode-template srecode-dictionary-lookup-name "INDENT" bufferp point-marker eieio-oref active 1 t where begin indent-according-to-mode princ "\n" end looking-at "\\s-*$" point-at-eol sti] 3 #3#] srecode-template-inserter-comment (srecode-template-inserter) ((key :initform 33 :allocation :class :documentation "The character code used to identify inserters of this style.")) ("Allow comments within template coding.  This inserts nothing.") srecode-inserter-prin-example #4="Insert an example using inserter INS.\nArguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." :STATIC #[(ins escape-start escape-end) "\302\303!\210\302!\210\302\304!\210\302	!\210\305 \207" [escape-start escape-end princ "   " "! Miscellaneous text commenting in your template. " terpri] 2 #4#] #5="Don't insert anything for comment macros in STI." #[(sti dictionary) "\300\207" [nil] 1 #5#] srecode-template-inserter-variable (srecode-template-inserter) ((key :initform nil :allocation :class :documentation "The character code used to identify inserters of this style.")) ("Insert the value of a dictionary entry.\nIf there is no entry, insert nothing.")] 5)
#@55 The active dictionary when calling a variable filter.
(defvar srecode-inserter-variable-current-dictionary nil (#$ . 11737))
(byte-code "\300\301\302\301\303\"\"\210\304\301\305\306\307$\210\300\310\302\310\311\"\"\210\304\310\305\306\312$\210\313\314\315\316\317$\210\300\320\302\320\321\"\"\210\304\320\305\314\322$\210\300\310\302\310\311\"\"\210\304\310\305\314\323$\210\300\324\302\324\325\"\"\210\304\324\305\314\326$\210\300\327\302\327\330\"\"\210\304\327\305\314\331$\210\300\332\302\332\333\"\"\210\304\332\305\314\334$\210\300\335\302\335\336\"\"\210\304\335\305\314\337$\210\313\340\341\342\343$\210\300\301\302\301\344\"\"\210\304\301\305\340\345$\210\300\346\302\346\347\"\"\210\304\346\350\340\351$\207" [eieio--defalias srecode-insert-variable-secondname-handler eieio--defgeneric-init-form #1="For VALUE handle SECONDNAME behaviors for this variable inserter.\nReturn the result as a string.\nBy default, treat as a function name.\nIf SECONDNAME is nil, return VALUE." eieio--defmethod nil srecode-template-inserter-variable #[(sti dictionary value secondname) "\203!\306!\307	!\203\n	\f!)\202\310\n\311\312
!$)\207\f\207" [secondname fcnpart dictionary srecode-inserter-variable-current-dictionary value sti read fboundp srecode-insert-report-error "Variable inserter %s: second argument `%s' is not a function" object-print] 5 #1#] srecode-insert-method #2="Insert the STI inserter." #[(sti dictionary) "\306\307\"\306\310\"\311	\"\312\f\204\313\314	\"\210\315\f;\203+\316\f\n$\202]\317\f!\203H\n\2039\320\n!\321\f\n#\211\204]\322\202]\323\f!\203W\324\325	#\210\202]\324\326	#\210
\205d\327\f!,\207" [sti name fcnpart dictionary val do-princ eieio-oref :object-name :secondname srecode-dictionary-lookup-name t message "Warning: macro %S was not found in the dictionary." #4="" srecode-insert-variable-secondname-handler srecode-dictionary-compound-value-child-p read srecode-compound-toString nil srecode-dictionary-child-p srecode-insert-report-error "Macro %s cannot insert a dictionary - use section macros instead" "Macro %s cannot insert arbitrary data" princ] 6 #2#] eieio-defclass srecode-template-inserter-ask (srecode-template-inserter-variable) ((key :initform 63 :allocation :class :documentation "The character code used to identify inserters of this style.") (prompt :initarg :prompt :initform nil :documentation "The prompt used to query for this dictionary value.") (defaultfcn :initarg :defaultfcn :initform nil :documentation "The function which can calculate a default value.") (read-fcn :initarg :read-fcn :initform 'read-string :documentation "The function used to read in the text for this prompt.")) ("Insert the value of a dictionary entry.\nIf there is no entry, prompt the user for the value to use.\nThe prompt text used is derived from the previous PROMPT command in the\ntemplate file.") srecode-inserter-apply-state #3="For the template inserter INS, apply information from STATE.\nLoop over the prompts to see if we have a match." #[(ins STATE) "\305\301\"\211\205_	@\211@)\305\306\"\230\203W\307\310	@\311\312\n\313\n8)\f\"*#\210\307\314	@\315\312\n\313\n8)\f\"*#\210\307\316	@\317\312\n\313\n8)\f\"*\206U\320#\210	A\211\204	\321)\207" [STATE prompts tag ins attribute eieio-oref :object-name eieio-oset :prompt :text plist-get 2 :defaultfcn :default :read-fcn :read read-string nil] 7 #3#] #[(sti dictionary) "\304\305	\306\"\"\211\203\307 \202/\203\310	\"\202\"\311	\"\312\313!\305	\306\"\n#\210\307 )\207" [dictionary sti val srecode-insert-with-fields-in-progress srecode-dictionary-lookup-name eieio-oref :object-name call-next-method srecode-insert-method-field srecode-insert-method-ask srecode-dictionary-set-value srecode-root-dictionary] 6 "Insert the STI inserter."] srecode-insert-ask-default #5="Derive the default value for an askable inserter STI.\nDICTIONARY is used to derive some values." #[(sti dictionary) "\303\304\"\211;\203	\202:\305	!\203	 \202:	<\203-	@\306=\203-\307\n	A\"\202:	\2045\310\202:\311\n\312	#)\207" [sti defaultfcn dictionary eieio-oref :defaultfcn functionp macro srecode-dictionary-lookup-name #4# srecode-insert-report-error "Unknown default for prompt: %S"] 5 #5#] srecode-insert-method-ask #6="Do the \"asking\" for the template inserter STI.\nUse DICTIONARY to resolve values." #[(sti dictionary) "\306\301\"\307\n\"\306\310\"\311\f\312=\2031\312	\206#\313\314\306\315\"\"!\203,\202\\\316\202\\\f\317=\203K\313\320\317	\206E\313\321\306\315\"\"!\"\202\\\212\f	\206X\313\322\306\315\"\"\")
,\207" [sti prompt dictionary default reader val eieio-oref srecode-insert-ask-default :read-fcn nil y-or-n-p format "%s? " :object-name #4# read-char "%c" "Char for %s: " "Specify %s: "] 8 #6#] srecode-insert-method-field #7="Create an editable field for the template inserter STI.\nUse DICTIONARY to resolve values." #[(sti dictionary) "\303	\"\304\305\306\"\307\310\n%)\207" [sti dictionary default srecode-insert-ask-default srecode-field-value eieio-oref :object-name :firstinserter :defaultvalue] 7 #7#] srecode-dump #8="Dump the state of the SRecode template inserter INS." #[(ins indent) "\301 \210\302\303!\210\302\304\305\"!\210\302\306!\207" [ins call-next-method princ " : \"" eieio-oref prompt "\""] 4 #8#] srecode-template-inserter-width (srecode-template-inserter-variable) ((key :initform 124 :allocation :class :documentation "The character code used to identify inserters of this style.")) ("Inserts the value of a dictionary variable with a specific width.\nThe second argument specifies the width, and a pad, separated by a colon.\nThus a specification of `10:left' will insert the value of A\nto 10 characters, with spaces added to the left.  Use `right' for adding\nspaces to the right.") #9="For VALUE handle WIDTH behaviors for this variable inserter.\nReturn the result as a string.\nBy default, treat as a function name." #[(sti dictionary value width) "\204	\306	\307\"\210\310\311\"\312\n@!\nA@\211\203!\313\230\203%\314\2024\315\230\203/\316\2024\306	\317#
GY\203C
\320O\202^\321
GZ\322\"\f\316=\203Y
P\202]
P),\207" [width dictionary split second pad value srecode-insert-report-error "Width not specified for variable/width inserter" split-string ":" string-to-number "right" right "left" left "Unknown pad type %s" 0 make-string 32 padchars] 5 #9#] srecode-inserter-prin-example #10="Insert an example using inserter INS.\nArguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." :STATIC #[(ins escape-start escape-end) "\302\303!\210\302!\210\302\304!\210\302	!\210\305 \207" [escape-start escape-end princ "   " "|A:10:right" terpri] 2 #10#]] 5)
#@298 Point-positioning method for the SRecode template inserter.
When nil, perform normal point-positioning behavior.
When the value is a cons cell (DEPTH . FUNCTION), call FUNCTION
instead, unless the template nesting depth, measured
by (length (oref srecode-template active)), is greater than
DEPTH.
(defvar srecode-template-inserter-point-override nil (#$ . 18476))
(byte-code "\300\301\302\303\304$\210\305\306\307\306\310\"\"\210\311\306\312\301\313$\210\305\314\307\314\315\"\"\210\311\314\316\301\317$\210\300\320\321\316\322$\210\305\306\307\306\310\"\"\210\311\306\312\320\323$\210\305\324\307\324\325\"\"\210\311\324\316\320\326$\210\305\327\307\327\330\"\"\210\311\327\316\320\331$\210\305\314\307\314\332\"\"\210\311\314\316\320\333$\210\300\334\335\336\337$\210\305\340\307\340\341\"\"\210\311\340\316\334\342$\210\305\343\307\343\344\"\"\210\311\343\316\334\345$\210\300\346\347\350\351$\210\305\314\307\314\352\"\"\210\311\314\316\346\353$\210\305\354\307\354\355\"\"\210\311\354\316\346\356$\210\300\357\360\361\362$\210\305\306\307\306\310\"\"\210\311\306\312\357\363$\210\305\364\307\364\365\"\"\210\311\364\316\357\366$\210\305\314\307\314\367\"\"\210\311\314\316\357\370$\210\300\371\372\373\374$\210\305\306\307\306\310\"\"\210\311\306\312\371\375$\210\305\314\307\314\376\"\"\210\311\314\316\371\377$\210\201@\201A!\207" [eieio-defclass srecode-template-inserter-point (srecode-template-inserter) ((key :initform 94 :allocation :class :documentation "The character code used to identify inserters of this style.") (point :type (or null marker) :allocation :class :documentation "Record the value of (point) in this class slot.\nIt is the responsibility of the inserter algorithm to clear this\nafter a successful insertion.")) ("Record the value of (point) when inserted.\nThe cursor is placed at the ^ macro after insertion.\nSome inserter macros, such as `srecode-template-inserter-include-wrap'\nwill place text at the ^ macro from the included macro.") eieio--defalias srecode-inserter-prin-example eieio--defgeneric-init-form #1="Insert an example using inserter INS.\nArguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." eieio--defmethod :STATIC #[(ins escape-start escape-end) "\302\303!\210\302!\210\302\304!\210\302	!\210\305 \207" [escape-start escape-end princ "   " "^" terpri] 2 #1#] srecode-insert-method #2="Insert the STI inserter.\nSave point in the class allocated 'point' slot.\nIf `srecode-template-inserter-point-override' non-nil then this\ngeneralized marker will do something else.  See\n`srecode-template-inserter-include-wrap' as an example." nil #[(sti dictionary) "\203\305	\306\"G@X\203A\307\211!*\207\310\f\311\312 #\207" [srecode-template-inserter-point-override srecode-template over dictionary sti eieio-oref active nil eieio-oset point point-marker] 5 #2#] srecode-template-inserter-subtemplate (srecode-template-inserter) ("Wrap a section of a template under the control of a macro." :abstract t) #[(ins escape-start escape-end) "\302 \210\303\304!\210\305 \210\303\306!\210\303!\210\303\307!\210\303	!\210\305 \207" [escape-start escape-end call-next-method princ "     Template Text to control" terpri "   " "/VARNAME"] 2 "Insert an example using inserter INS.\nArguments ESCAPE-START and ESCAPE-END are the current escape sequences in use."] srecode-insert-subtemplate #3="Insert a subtemplate for the inserter STI with dictionary DICT." #[(sti dict slot) "\303!\204\304\305\306	!#\210\307\310	\n\"\"\207" [dict sti slot srecode-dictionary-child-p srecode-insert-report-error "Only section dictionaries allowed for `%s'" object-name-string srecode-insert-method slot-value] 5 #3#] srecode-insert-method-helper #4="Do the work for inserting the STI inserter.\nLoops over the embedded CODE which was saved here during compilation.\nThe template to insert is stored in SLOT." #[(sti dictionary slot) "\304\305	\306\"\"\211<\204\307\310\305	\306\"#\210\n\2059\311\n@!\204*\307\310\305	\306\"#\210\312	\n@#\210\nA\211\204\313)\207" [dictionary sti dicts slot srecode-dictionary-lookup-name eieio-oref :object-name srecode-insert-report-error "Cannot insert section %S from non-section variable." srecode-dictionary-p srecode-insert-subtemplate nil] 7 #4#] #5="Insert the STI inserter.\nCalls back to `srecode-insert-method-helper' for this class." #[(sti dictionary) "\302	\303#\207" [sti dictionary srecode-insert-method-helper template] 4 #5#] srecode-template-inserter-section-start (srecode-template-inserter-subtemplate) ((key :initform 35 :allocation :class :documentation "The character code used to identify inserters of this style.") (template :initarg :template :documentation "A template used to frame the codes from this inserter.")) ("Apply values from a sub-dictionary to a template section.\nThe dictionary saved at the named dictionary entry will be\napplied to the text between the section start and the\n`srecode-template-inserter-section-end' macro.") srecode-parse-input #6="For the section inserter INS, parse INPUT.\nShorten input until the END token is found.\nReturn the remains of INPUT." #[(ins tag input STATE) "\305	\n\306\307\"$\310\311\312\313!\314\315\316\315\317\fA&#\210\f@)\207" [tag input STATE ins out srecode-compile-split-code eieio-oref :object-name eieio-oset template srecode-template object-name-string :context nil :args :code] 11 #6#] srecode-dump #7="Dump the state of the SRecode template inserter INS." #[(ins indent) "\302 \210\303\304!\210\305\306\211\307\"\310\"	\311P\"\207" [ins indent call-next-method princ "\n" srecode-dump-code-list eieio-oref template code "    "] 5 #7#] srecode-template-inserter-section-end (srecode-template-inserter) ((key :initform 47 :allocation :class :documentation "The character code used to identify inserters of this style.")) ("All template segments between the section-start and section-end\nare treated specially.") #8="Insert the STI inserter." #[(sti dictionary) "\300\207" [#8#] 1 #8#] srecode-match-end #9="For the template inserter INS, do I end a section called NAME?" #[(ins name) "\302	\303\"\230\207" [name ins eieio-oref :object-name] 4 #9#] srecode-template-inserter-include (srecode-template-inserter-subtemplate) ((key :initform 62 :allocation :class :documentation "The character code used to identify inserters of this style.") (includedtemplate :initarg :includedtemplate :documentation "The template included for this inserter.")) ("Include a different template into this one.\nThe included template will have additional dictionary entries from the subdictionary\nstored specified by this macro.") #[(ins escape-start escape-end) "\302\303!\210\302!\210\302\304!\210\302	!\210\305 \207" [escape-start escape-end princ "   " ">DICTNAME:contextname:templatename" terpri] 2 "Insert an example using inserter INS.\nArguments ESCAPE-START and ESCAPE-END are the current escape sequences in use."] srecode-insert-include-lookup #10="For the template inserter STI, lookup the template to include.\nFinds the template with this macro function part and stores it in\nthis template instance." #[(sti dictionary) "\306\307\"\211\204\310\n\311\306\312\"#\210\313\314 	\"\306\305\"\315\211\204r\204f
\203f\306
@\316\"\313\314 	\f#\211\204`\317
@\320\"\203`\306\211
@\320\"\321\"\211\203_\313\314 	\f$)
A\202$\204r\313\314 	\"\322\323#\210+\306\324\"?\205\213\310\n\325	\306\312\"$)\207" [sti templatenamepart dictionary srecode-template ctxt active eieio-oref :secondname srecode-insert-report-error "Include macro `%s' needs a template name" :object-name srecode-template-get-table srecode-table nil context slot-boundp table application eieio-oset :includedtemplate includedtemplate "No template \"%s\" found for include macro `%s'" tmpl app] 8 #10#] #11="Insert the STI inserter.\nFinds the template with this macro function part, and inserts it\nwith the dictionaries found in the dictionary." #[(sti dictionary) "\302	\"\210\303	\304\305\"\"\203\306	\307#\207\310	\307#\207" [sti dictionary srecode-insert-include-lookup srecode-dictionary-lookup-name eieio-oref :object-name srecode-insert-method-helper includedtemplate srecode-insert-subtemplate] 5 #11#] srecode-template-inserter-include-wrap (srecode-template-inserter-include srecode-template-inserter-section-start) ((key :initform 60 :allocation :class :documentation "The character code used to identify inserters of this style.")) ("Include a different template into this one, and add text at the ^ macro.\nThe included template will have additional dictionary entries from the subdictionary\nstored specified by this macro.  If the included macro includes a ^ macro,\nthen the text between this macro and the end macro will be inserted at\nthe ^ macro.") #[(ins escape-start escape-end) "\302\303!\210\302!\210\302\304!\210\302	!\210\305 \210\302\306!\210\305 \210\302\303!\210\302!\210\302\307!\210\302	!\210\305 \207" [escape-start escape-end princ "   " "<DICTNAME:contextname:templatename" terpri "     Template Text to insert at ^ macro" "/DICTNAME"] 2 "Insert an example using inserter INS.\nArguments ESCAPE-START and ESCAPE-END are the current escape sequences in use."] #13="Insert the template STI.\nThis will first insert the include part via inheritance, then\ninsert the section it wraps into the location in the included\ntemplate where a ^ inserter occurs." #[(sti dictionary) "\306	\"\210\307\310!\211\211L\210)\311\f\312\"GT\313\314\315\316\317D\316\nD\320FE)B\321 )\207" [sti dictionary #:--cl-inserter1-- #:v srecode-template srecode-template-inserter-point-override srecode-insert-include-lookup make-symbol "--inserter1--" eieio-oref active lambda (&rest --cl-rest--) apply quote #[(#12=#:G15900 dict) "\303\304	\305\nJ\306\"\"\203\307\nJ	\310#\202\311\nJ	\310#)\207" [srecode-template-inserter-point-override dict #12# nil srecode-dictionary-lookup-name eieio-oref :object-name srecode-insert-method-helper template srecode-insert-subtemplate] 5] --cl-rest-- call-next-method] 8 #13#] provide srecode/insert] 5)

MMCT - 2023