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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\307\310\311\312\313\302%\210\314\315\316\317\320DD\321\322\323%\210\324\315!\210\314\325\316\317\326DD\327\322\330%\210\324\325!\210\314\331\316\317\332DD\333\322\334%\210\324\331!\207" [require ring semantic semantic/ctxt semantic/decorate semantic/format semantic/analyze custom-declare-group senator nil "Semantic Navigator." :group custom-declare-variable senator-step-at-tag-classes funcall function #[0 "\300\207" [nil] 1 #1=""] "List of tag classes recognized by Senator's navigation commands.\nA tag class is a symbol, such as `variable', `function', or `type'.\n\nAs a special exception, if the value is nil, Senator's navigation\ncommands recognize all tag classes." :type (repeat (symbol)) make-variable-buffer-local senator-step-at-start-end-tag-classes #[0 "\300\207" [nil] 1 #1#] "List of tag classes at which Senator's navigation commands should stop.\nA tag class is a symbol, such as `variable', `function', or `type'.\nThe navigation commands stop at the start and end of each tag\nclass in this list, provided the tag class is recognized (see\n`senator-step-at-tag-classes').\n\nAs a special exception, if the value is nil, the navigation\ncommands stop at the beginning of every tag.\n\nIf t, the navigation commands stop at the start and end of any\ntag, where possible." (choice :tag "Identifiers" (repeat :menu-tag "Symbols" (symbol)) (const :tag "All" t)) senator-highlight-found #[0 "\300\207" [nil] 1 #1#] "If non-nil, Senator commands momentarily highlight found tags." boolean] 6)
(custom-declare-face 'senator-momentary-highlight-face '((((class color) (background dark)) (:background "gray30")) (((class color) (background light)) (:background "gray70"))) "Face used to momentarily highlight tags." :group 'semantic-faces)#@88 Momentarily highlight TAG.
Does nothing if `senator-highlight-found' is nil.

(fn TAG)
(defalias 'senator-momentary-highlight-tag #[257 "\205 \301\302\"\207" [senator-highlight-found semantic-momentary-highlight-tag senator-momentary-highlight-face] 4 (#$ . 1927)])#@64 Return non-nil if must step at start and end of TAG.

(fn TAG)
(defalias 'senator-step-at-start-end-p #[257 "\211\205 \301=\206 \211\211A@\262>\207" [senator-step-at-start-end-tag-classes t] 3 (#$ . 2201)])#@44 Return non-nil if must skip TAG.

(fn TAG)
(defalias 'senator-skip-p #[257 "\211\205 \205 \211\211A@\262>?\207" [senator-step-at-tag-classes] 3 (#$ . 2418)])#@70 Return non-nil if POS is between start and end of TAG.

(fn POS TAG)
(defalias 'senator-middle-of-tag-p #[514 "\211\3008\262\301!\203 \302!\266\202\202 \211\303H\266\202V\205; \211\3008\262\301!\2035 \304!\266\202\202: \211\305H\266\202W\207" [4 overlayp overlay-start 0 overlay-end 1] 7 (#$ . 2586)])#@96 Return TAG's outermost parent if must step at start/end of it.
Return nil otherwise.

(fn TAG)
(defalias 'senator-step-at-parent #[257 "\211\205O \300\211\301\211\3028\262\303!\203 \304!\266\202\202! \211\305H\266\202!\262\211\203L \204L \211@\262\211A\262=\204F \306!\204F \307!\204$ \300\262\202$ \266\202\207" [nil semantic-find-tag-by-overlay 4 overlayp overlay-start 0 senator-skip-p senator-step-at-start-end-p] 8 (#$ . 2907)])#@73 Return the tag before POS or one of its parent where to step.

(fn POS)
(defalias 'senator-previous-tag-or-parent #[257 "\300\211\203\256 eV\203\256 \211\204\256 \301!\262\203 \302!\262\203 \211\204 \303@\304\"\262\211\203\244 \211\3051_ \211:\205Y \211@;\205Y \211A@9\205Y \211A@\205Y \3068<\205Y \3078<0\262\202c \210\300\262\203\244 \211\211\3108\262\311!\203{ \312!\266\202\202\200 \211\313H\266\202U\204 \211\211\3108\262\311!\203\232 \314!\266\202\202\237 \211\315H\266\202U\204 \300\262A\262\202 \316!\206\265 \211\207" [nil previous-overlay-change overlays-at overlay-get semantic (error) 2 3 4 overlayp overlay-start 0 overlay-end 1 senator-step-at-parent] 7 (#$ . 3362)])#@273 Search for TAG name in current buffer.
Limit the search to TAG bounds.
If found, set point to the end of the name, and return point.  The
beginning of the name is at (match-beginning 0).
Return nil if not found, that is if TAG name doesn't come from the
source.

(fn TAG)
(defalias 'senator-search-tag-name #[257 "\211\211@\262\300\301\"\203 \302\303\"\202 \211\262\211\3048\262\305!\203+ \306!\266\202\2020 \211\307H\266\202b\210\310\311\312!\313Q\211\3048\262\305!\203N \314!\266\202\202S \211\303H\266\202\315#\205_ \307\224b\210\316!\207" [string-match "\\`\\([^[]+\\)[[]" match-string 1 4 overlayp overlay-start 0 re-search-forward "\\(\\<\\|\\s-+\\|\\s.\\)" regexp-quote "\\(\\>\\|\\s-+\\|\\s.\\)" overlay-end t search-forward] 8 (#$ . 4084)])
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable senator-search-ignore-tag-classes funcall function #[0 "\300\207" [(code block)] 1 ""] "List of ignored tag classes.\nTags of those classes are excluded from search." :type (repeat (symbol :tag "class"))] 6)#@119 Default function that filters searched tags.
Ignore tags of classes in `senator-search-ignore-tag-classes'.

(fn TAG)
(defalias 'senator-search-default-tag-filter #[257 "\211\211A@\262>?\207" [senator-search-ignore-tag-classes] 3 (#$ . 5144)])#@154 List of functions to be called to filter searched tags.
Each function is passed a tag.  If one of them returns nil, the tag is
excluded from the search.
(defvar senator-search-tag-filter-functions '(senator-search-default-tag-filter) (#$ . 5396))#@392 Use the SEARCHER function to search from point for TEXT in a tag name.
SEARCHER is typically the function `search-forward', `search-backward',
`word-search-forward', `word-search-backward', `re-search-forward', or
`re-search-backward'.  See one of the above function to see how the
TEXT, BOUND, NOERROR, and COUNT arguments are interpreted.

(fn SEARCHER TEXT &optional BOUND NOERROR COUNT)
(defalias 'senator-search #[1282 "`\206 \300\211\301V\203 \300\202 \211\301W\203 \211[\262\302\202 \301\303\211\211\211\211\211\211\301U\204\216 \204\216 \304$\211\262\203\216 \301\224\262\301\225\262U\203V \304\262\202- \305 \211\262\203\210 \306\307\"\203\210 \310!\211\262\203\210 \301\224\262Y\205\206 X\205\206 S\211\262\n\301U\262b\210\202- \204\236 	\262	\262\202\260 U\203\255 \262\262\202\260 \262b\210$\207" [1 0 -1 nil t semantic-current-tag run-hook-with-args-until-failure senator-search-tag-filter-functions senator-search-tag-name] 20 (#$ . 5649)])#@79 Navigate to the next Semantic tag.
Return the tag or nil if at end of buffer.
(defalias 'senator-next-tag #[0 "\204 \301\302!\210`\303 \304\203B \305!\204B \306!\203B \211\3078\262\310!\2032 \311!\266\202\2027 \211\312H\266\202U\204{ \313\"\204{ \314!\211\262\204{ \315!\262\203{ \305!\203{ \315\211\3078\262\310!\203p \311!\266\202\202u \211\312H\266\202!\262\202P \204\211 db\210\316\317!\210\202\n\306!\203\327 \211\3078\262\310!\203\245 \311!\266\202\202\252 \211\312H\266\202U\204\265 \313\"\203\327 \320\262\211\3078\262\310!\203\315 \321!\266\202\202\322 \211\322H\266\202b\210\202\366 \323\262\211\3078\262\310!\203\357 \311!\266\202\202\364 \211\312H\266\202b\210\324!\210\316\325\211A@\262\211@\262$\210\207" [semantic-new-buffer-fcn-was-run error "Buffer was not parsed by Semantic" semantic-current-tag nil senator-skip-p senator-step-at-start-end-p 4 overlayp overlay-start 0 senator-middle-of-tag-p senator-step-at-parent semantic-find-tag-by-overlay-next message "End of buffer" "end" overlay-end 1 "start" senator-momentary-highlight-tag "%S: %s (%s)"] 8 (#$ . 6671) nil])#@89 Navigate to the previous Semantic tag.
Return the tag or nil if at beginning of buffer.
(defalias 'senator-previous-tag #[0 "\204 \301\302!\210`\303 \304\203B \305!\204B \306!\203B \211\3078\262\310!\2032 \311!\266\202\2027 \211\312H\266\202U\204{ \313\"\204{ \314!\211\262\204{ \315!\262\203{ \305!\203{ \315\211\3078\262\310!\203p \316!\266\202\202u \211\317H\266\202!\262\202P \204\211 eb\210\320\321!\210\202\n\306!\203\265 \211\3078\262\310!\203\245 \311!\266\202\202\252 \211\312H\266\202U\204\265 \313\"\203\327 \322\262\211\3078\262\310!\203\315 \316!\266\202\202\322 \211\317H\266\202b\210\202\366 \323\262\211\3078\262\310!\203\357 \311!\266\202\202\364 \211\312H\266\202b\210\324!\210\320\325\211A@\262\211@\262$\210\207" [semantic-new-buffer-fcn-was-run error "Buffer was not parsed by Semantic" semantic-current-tag nil senator-skip-p senator-step-at-start-end-p 4 overlayp overlay-end 1 senator-middle-of-tag-p senator-step-at-parent senator-previous-tag-or-parent overlay-start 0 message "Beginning of buffer" "start" "end" senator-momentary-highlight-tag "%S: %s (%s)"] 8 (#$ . 7820) nil])#@253 Search in tag names forward from point for STRING.
Set point to the end of the occurrence found, and return point.
See also the function `search-forward' for details on the BOUND,
NOERROR and COUNT arguments.

(fn STRING &optional BOUND NOERROR COUNT)
(defalias 'senator-search-forward #[1025 "\300\301%\207" [senator-search search-forward] 10 (#$ . 8987) "sSemantic search: "])#@275 Search in tag names forward from point for regular expression REGEXP.
Set point to the end of the occurrence found, and return point.
See also the function `re-search-forward' for details on the BOUND,
NOERROR and COUNT arguments.

(fn REGEXP &optional BOUND NOERROR COUNT)
(defalias 'senator-re-search-forward #[1025 "\300\301%\207" [senator-search re-search-forward] 10 (#$ . 9376) "sSemantic regexp search: "])#@254 Search in tag names forward from point for WORD.
Set point to the end of the occurrence found, and return point.
See also the function `word-search-forward' for details on the BOUND,
NOERROR and COUNT arguments.

(fn WORD &optional BOUND NOERROR COUNT)
(defalias 'senator-word-search-forward #[1025 "\300\301%\207" [senator-search word-search-forward] 10 (#$ . 9800) "sSemantic word search: "])#@261 Search in tag names backward from point for STRING.
Set point to the beginning of the occurrence found, and return point.
See also the function `search-backward' for details on the BOUND,
NOERROR and COUNT arguments.

(fn STRING &optional BOUND NOERROR COUNT)
(defalias 'senator-search-backward #[1025 "\300\301%\207" [senator-search search-backward] 10 (#$ . 10205) "sSemantic backward search: "])#@283 Search in tag names backward from point for regular expression REGEXP.
Set point to the beginning of the occurrence found, and return point.
See also the function `re-search-backward' for details on the BOUND,
NOERROR and COUNT arguments.

(fn REGEXP &optional BOUND NOERROR COUNT)
(defalias 'senator-re-search-backward #[1025 "\300\301%\207" [senator-search re-search-backward] 10 (#$ . 10614) "sSemantic backward regexp search: "])#@262 Search in tag names backward from point for WORD.
Set point to the beginning of the occurrence found, and return point.
See also the function `word-search-backward' for details on the BOUND,
NOERROR and COUNT arguments.

(fn WORD &optional BOUND NOERROR COUNT)
(defalias 'senator-word-search-backward #[1025 "\300\301%\207" [senator-search word-search-backward] 10 (#$ . 11058) "sSemantic backward word search: "])#@53 Type of last non-incremental search command called.
(defvar senator-last-search-type nil (#$ . 11482))#@58 Search forward for the previous search string or regexp.
(defalias 'senator-nonincremental-repeat-search-forward #[0 "\303=\203 	\203 \304	@!\207\305=\203 \n\203 \306\n@!\207\307\310!\207" [senator-last-search-type search-ring regexp-search-ring string senator-search-forward regexp senator-re-search-forward error "No previous search"] 2 (#$ . 11590) nil])#@59 Search backward for the previous search string or regexp.
(defalias 'senator-nonincremental-repeat-search-backward #[0 "\303=\203 	\203 \304	@!\207\305=\203 \n\203 \306\n@!\207\307\310!\207" [senator-last-search-type search-ring regexp-search-ring string senator-search-backward regexp senator-re-search-backward error "No previous search"] 2 (#$ . 11959) nil])#@50 Search for STRING nonincrementally.

(fn STRING)
(defalias 'senator-nonincremental-search-forward #[257 "\302\211\303\232\203 \304	@!\207\305\306\"\210\304!\207" [senator-last-search-type search-ring string "" senator-search-forward isearch-update-ring nil] 4 (#$ . 12332) "sSemantic search for string: "])#@59 Search backward for STRING nonincrementally.

(fn STRING)
(defalias 'senator-nonincremental-search-backward #[257 "\302\211\303\232\203 \304	@!\207\305\306\"\210\304!\207" [senator-last-search-type search-ring string "" senator-search-backward isearch-update-ring nil] 4 (#$ . 12648) "sSemantic search for string: "])#@73 Search for the regular expression STRING nonincrementally.

(fn STRING)
(defalias 'senator-nonincremental-re-search-forward #[257 "\302\211\303\232\203 \304	@!\207\305\306\"\210\304!\207" [senator-last-search-type regexp-search-ring regexp "" senator-re-search-forward isearch-update-ring t] 4 (#$ . 12975) "sSemantic search for regexp: "])#@82 Search backward for the regular expression STRING nonincrementally.

(fn STRING)
(defalias 'senator-nonincremental-re-search-backward #[257 "\302\211\303\232\203 \304	@!\207\305\306\"\210\304!\207" [senator-last-search-type regexp-search-ring regexp "" senator-re-search-backward isearch-update-ring t] 4 (#$ . 13325) "sSemantic search for regexp: "])
(defvar senator--search-filter nil)#@210 In current buffer, limit search scope to tag CLASSES.
CLASSES is a list of tag class symbols or nil.  If nil only global
filters in `senator-search-tag-filter-functions' remain active.

(fn &optional CLASSES)
(defalias 'senator-search-set-tag-class-filter #[256 "\211C\211\242\204\f \301\202. \2429\203 \242C\202. \242;\203( \302\303\304\242!\"\202. \305\306\242C\"\240\210\307\310\311#\210\312\300!\210\211\242\203Z \313\314\242\315#\316\300!\210\317\320\"\321\310\301\311$\210\322\323\"\207\322\324!\207" [senator--search-filter nil mapcar read split-string signal wrong-type-argument remove-hook senator-search-tag-filter-functions t kill-local-variable mapconcat symbol-name "', `" make-local-variable make-closure #[257 "\211\211A@\262\300\242>\207" [V0] 3 "\n\n(fn TAG)"] add-hook message "Limit search to `%s' tags" "Default search filter restored"] 8 (#$ . 13723) "sClasses: "])#@43 Fold the current TAG.

(fn &optional TAG)
(defalias 'senator-fold-tag #[256 "\300\206 \301 \302\"\207" [semantic-set-tag-folded semantic-current-tag t] 4 (#$ . 14629) nil])#@43 Fold the current TAG.

(fn &optional TAG)
(defalias 'senator-unfold-tag #[256 "\300\206 \301 \302\"\207" [semantic-set-tag-folded semantic-current-tag nil] 4 (#$ . 14809) nil])#@43 Fold the current TAG.

(fn &optional TAG)
(defalias 'senator-fold-tag-toggle #[256 "\211\206 \300 \301!\203 \302!\207\303!\207" [semantic-current-tag semantic-tag-folded-p senator-unfold-tag senator-fold-tag] 4 (#$ . 14993) nil])#@314 Return a tag that is referred to by TAG.
A "reference" could be any interesting feature of TAG.
In C++, a function may have a `parent' which is non-local.
If that parent which is only a reference in the function tag
is found, we can jump to it.
Some tags such as includes have other reference features.

(fn TAG)
(defalias 'semantic-up-reference #[257 "\303\211\304\305\306!\304\204\" \211\262\204\" 	\262\n\205  \307\n\"\262\203M \211\204M \302N\203< \307\302N\"\211\262\204\" \211\310N\206F \211\311N\262\262\202\" \266\203\211\262\205a \211\203_ N\205a J\266\203\206\326 \211\211\312N\262\205\326 \211\211\312N\262\304\305\306!\304\204\225 \211\262\204\225 	\262\n\205\223 \307\n\"\262\203\300 \211\204\300 \302N\203\257 \307\302N\"\211\262\204\225 \211\310N\206\271 \211\311N\262\262\202\225 \266\203\211\262\205\324 \211\203\322 N\205\324 J\266\203\262\211\203\340 \211!\207\313!\207" [mode-local-active-mode major-mode mode-local-symbol-table semantic-up-reference nil override-flag symbol-name intern-soft mode-local-parent derived-mode-parent mode-local--overload-obsolete semantic-up-reference-default] 13 (#$ . 15234)])
(put 'semantic-up-reference 'mode-local-overload t)#@327 Move up one reference from the current TAG.
A "reference" could be any interesting feature of TAG.
In C++, a function may have a `parent' which is non-local.
If that parent which is only a reference in the function tag
is found, we can jump to it.
Some tags such as includes have other reference features.

(fn &optional TAG)
(defalias 'senator-go-to-up-reference #[256 "\204 \301\302!\210\303\206 \304 !\211\204 \301\305!\207\306 \210\307\310!\203$ \310 \210\211\3111R \211:\205L \211@;\205L \211A@9\205L \211A@\205L \3128<\205L \3138<0\262\202V \210\314\262\203e \315!\210\316p!\210\317!\207\320!\203s \316!\210\321`!\207\211;\203\206 \322!\203\206 \323!\210\321`!\207\301\324!\207" [semantic-new-buffer-fcn-was-run error "Buffer was not parsed by Semantic" semantic-up-reference semantic-current-tag "No up reference found" push-mark fboundp xref-push-marker-stack (error) 2 3 nil semantic-go-to-tag pop-to-buffer-same-window semantic-momentary-highlight-tag bufferp pulse-momentary-highlight-one-line file-exists-p find-file "Unknown result type from `semantic-up-reference'"] 5 (#$ . 16469) nil])#@91 Return a tag that is referred to by TAG.
Makes C/C++ language like assumptions.

(fn TAG)
(defalias 'semantic-up-reference-default #[257 "\300!\203 \301\302!\210\303!\211@\207\211\211A@\262\304=\203B \305!\211\203( \306!\2041 \307\310\211@\262\"\207\311!\203; \311!\207\211;\205A \211\207\211\312\211A@\262=\266\202\203l \211\211\211\313\314\3158\262\"\266\204\203l \316`!\317\320\"@\207\211\321\314\3158\262\"\266\202\203\211 \301\322!\210\323!\324\325\"@\207\211\326\211A@\262=\266\202\203\257 \327!\203\257 \301\330!\210\316`!\327!\331@\326#\207\211\211\332\314\3158\262\"\266\203\203\310 \316`!\333\"\207\334\207" [semantic-tag-faux-p require semantic/sort semantic-tag-external-class include semantic-dependency-tag-file file-exists-p error "Could not location include %s" get-file-buffer function :parent plist-get 2 semantic-calculate-scope eieio-oref parents :prototype-flag semantic/analyze/refs semantic-analyze-tag-references semantic-analyze-refs-impl t type semantic-tag-type-superclasses semantic/analyze semantic-analyze-find-tag :type semantic-analyze-tag-type nil] 9 (#$ . 17591)])#@75 Non-nil if isearch does semantic search.
This is a buffer local variable.
(defvar senator-isearch-semantic-mode nil (#$ . 18732))
(make-variable-buffer-local 'senator-isearch-semantic-mode)#@156 Move backward to the beginning of a defun.
Use semantic tags to navigate.
ARG is the number of tags to navigate (not yet implemented).

(fn &optional ARG)
(defalias 'senator-beginning-of-defun #[256 "\302 \210\303\304\305 \211\205J `\211\3068\262\307!\203# \310!\266\202\202( \211\311H\266\202U\203H \211\211\3068\262\307!\203A \312!\266\202\202F \211\313H\266\202b\210\314 *\207" [senator-highlight-found senator-step-at-start-end-tag-classes semantic-fetch-tags nil t senator-previous-tag 4 overlayp overlay-end 1 overlay-start 0 beginning-of-line] 7 (#$ . 18928)])#@148 Move forward to next end of defun.
Use semantic tags to navigate.
ARG is the number of tags to navigate (not yet implemented).

(fn &optional ARG)
(defalias 'senator-end-of-defun #[256 "\302 \210\303\304\305 \211\205T `\211\3068\262\307!\203# \310!\266\202\202( \211\311H\266\202U\203H \211\211\3068\262\307!\203A \312!\266\202\202F \211\313H\266\202b\210\314\303w\210\315\316!\205T \313y*\207" [senator-highlight-found senator-step-at-start-end-tag-classes semantic-fetch-tags nil t senator-next-tag 4 overlayp overlay-start 0 overlay-end 1 " 	" looking-at "\\s<\\|\n"] 7 (#$ . 19513)])#@142 Make text outside current defun invisible.
The defun visible is the one that contains point or follows point.
Use semantic tags to navigate.
(defalias 'senator-narrow-to-defun #[0 "\300 \210\212~\210\301 \210`\302 \210`})\207" [semantic-fetch-tags senator-end-of-defun senator-beginning-of-defun] 3 (#$ . 20118) nil])#@149 Put mark at end of this defun, point at beginning.
The defun marked is the one that contains point or follows point.
Use semantic tags to navigate.
(defalias 'senator-mark-defun #[0 "`\300 \210`\301 \210`b\210\302 \210b\210\302`\303\304#\210\211b\210\305\306`S\304#\207" [senator-end-of-defun senator-beginning-of-defun push-mark nil t re-search-backward "^\n"] 7 (#$ . 20443) nil])#@42 Ring of tags for use with cut and paste.
(defvar senator-tag-ring (make-ring 20) (#$ . 20833))#@53 Take the current tag, and place it in the tag ring.
(defalias 'senator-copy-tag #[0 "\301 \210\302 \211\203O \303\"\210\304\211\3058\262\306!\203$ \307!\266\202\202) \211\310H\266\202\211\3058\262\306!\203> \311!\266\202\202C \211\312H\266\202\"\210\313\314!\203O \315\316!\210\207" [senator-tag-ring semantic-fetch-tags semantic-obtain-foreign-tag ring-insert kill-ring-save 4 overlayp overlay-start 0 overlay-end 1 called-interactively-p interactive message "Use C-y to yank text.  Use `senator-yank-tag' for prototype insert."] 7 (#$ . 20933) nil])#@177 Take the current tag, place it in the tag ring, and kill it.
Killing the tag removes the text for that tag, and places it into
the kill ring.  Retrieve that text with \[yank].
(defalias 'senator-kill-tag #[0 "\300 \301\211\3028\262\303!\203 \304!\266\202\202 \211\305H\266\202\211\3028\262\303!\2032 \306!\266\202\2027 \211\307H\266\202\"\210\310\311!\205B \312\313!\207" [senator-copy-tag kill-region 4 overlayp overlay-start 0 overlay-end 1 called-interactively-p interactive message "Use C-y to yank text.  Use `senator-yank-tag' for prototype insert."] 7 (#$ . 21503) nil])#@109 Yank a tag from the tag ring.
The form the tag takes is different depending on where it is being
yanked to.
(defalias 'senator-yank-tag #[0 "\301!\206m \302\303\"\211\211\211\3041: \211:\2054 \211@;\2054 \211A@9\2054 \211A@\2054 \3058<\2054 \3068<0\262\202> \210\307\262\205N \211\310\311\3068\262\"\266\202\262\206W \312\313\314\"\266\315!\210\316\317!\205k \320\321\211@\262\"\262\207" [senator-tag-ring ring-empty-p ring-ref 0 (error) 2 3 nil :foreign-flag plist-get signal wrong-type-argument (semantic-foreign-tag-p tag) semantic-insert-foreign-tag called-interactively-p interactive message "Use C-y to recover the yank the text of %s."] 9 (#$ . 22099) nil])#@75 compiler-macro for inlining `senator-register-p'.

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

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

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

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

(fn CL-WHOLE-ARG FOREIGN-TAG)
(defalias 'senator-make-register--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (foreign-tag) (cl-block senator-make-register (record 'senator-register foreign-tag)) nil] 9 (#$ . 24513)])
(byte-code "\300\301\302\303#\300\207" [define-symbol-prop senator-make-register compiler-macro senator-make-register--cmacro] 4)#@71 Constructor for objects of type `senator-register'.

(fn FOREIGN-TAG)
(defalias 'senator-make-register #[257 "\300\301\"\207" [record senator-register] 4 (#$ . 24943)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\210\313\314\306\315\306\316%\210\313\317\306\320\306\321%\210\313\322\306\323\306\324%\207" [function-put senator-make-register side-effect-free t cl-struct-define senator-register nil cl-structure-object record ((cl-tag-slot) (foreign-tag)) cl-struct-senator-register-tags cl-generic-define-method register-val-jump-to ((data senator-register) _arg) #[514 "\301!>\204 \302\303\304D\"\210\305H\306\307!!\210\211\211\3108\262\311!\203- \312!\266\202\2022 \211\313H\266\202b\207" [cl-struct-senator-register-tags type-of signal wrong-type-argument senator-register 1 switch-to-buffer semantic-tag-buffer 4 overlayp overlay-start 0] 7 "\n\n(fn DATA ARG)"] register-val-describe ((data senator-register) _verbose) #[514 "\301\302!>\204 \303\304\305D\"\210\306H!\207" [cl-struct-senator-register-tags cl-prin1-to-string type-of signal wrong-type-argument senator-register 1] 7 "\n\n(fn DATA VERBOSE)"] register-val-insert ((data senator-register)) #[257 "\301\302!>\204 \303\304\305D\"\210\306H!\207" [cl-struct-senator-register-tags semantic-insert-foreign-tag type-of signal wrong-type-argument senator-register 1] 6 "\n\n(fn DATA)"]] 11)#@221 Copy the current tag into REGISTER.
Optional argument KILL-FLAG will delete the text of the tag to the
kill ring.

Interactively, reads the register using `register-read-with-preview'.

(fn REGISTER &optional KILL-FLAG)
(defalias 'senator-copy-tag-to-register #[513 "\300 \210\301 \211\205K \302\303\304\"\"\210\205K \305\211\3068\262\307!\203+ \310!\266\202\2020 \211\311H\266\202\211\3068\262\307!\203E \312!\266\202\202J \211\313H\266\202\"\207" [semantic-fetch-tags semantic-obtain-foreign-tag set-register record senator-register kill-region 4 overlayp overlay-start 0 overlay-end 1] 9 (#$ . 26347) (byte-code "\301\302!D\207" [current-prefix-arg register-read-with-preview "Tag to register: "] 2)])#@51 Transpose the current tag, and the preceding tag.
(defalias 'senator-transpose-tags-up #[0 "\300 \210\301 \212\211\211\3028\262\303!\203 \304!\266\202\202  \211\305H\266\202b\210\306 )\307!\307!=\2045 \310\311!\210\211\3028\262\303!\203J \304!\266\202\202O \211\305H\266\202\211\3028\262\303!\203d \312!\266\202\202i \211\313H\266\202{\314\211\3028\262\303!\203\200 \304!\266\202\202\205 \211\305H\266\202`\"\315\211\3028\262\303!\203\236 \304!\266\202\202\243 \211\305H\266\202\211\3028\262\303!\203\271 \312!\266\202\202\276 \211\313H\266\202|\210\316 \210\211\3028\262\303!\203\330 \304!\266\202\202\335 \211\305H\266\202b\210`\262c\210i\305U\204\356 \317c\210\317c\210\211b\210y\207" [semantic-fetch-tags semantic-current-tag 4 overlayp overlay-start 0 semantic-find-tag-by-overlay-prev semantic-find-tag-parent-by-overlay error "Cannot transpose tags" overlay-end 1 count-lines nil delete-blank-lines "\n"] 12 (#$ . 27071) nil])#@51 Transpose the current tag, and the following tag.
(defalias 'senator-transpose-tags-down #[0 "\300 \210\301 \212\211\211\3028\262\303!\203 \304!\266\202\202  \211\305H\266\202b\210\306 )\307 \211\3028\262\303!\203< \310!\266\202\202A \211\311H\266\202b\210\305u\210\312 \210\211b\207" [semantic-fetch-tags semantic-current-tag 4 overlayp overlay-end 1 semantic-find-tag-by-overlay-next point-marker overlay-start 0 senator-transpose-tags-up] 7 (#$ . 28054) nil])#@30 Force lazy highlight update.
(defalias 'senator-lazy-highlight-update #[0 "\302\303!\210\304\303\305 \207" [isearch-lazy-highlight-last-string isearch-adjusted lazy-highlight-cleanup t nil isearch-update] 2 (#$ . 28532)])#@113 Return the function to use for the search.
Use a senator search function when semantic isearch mode is enabled.
(defalias 'senator-isearch-search-fun #[0 "\304\203	 \305\202\n \306	\203 \307\202 \n\203 \310\202 \306\311\203$ \312\202% \313R!\207" [senator-isearch-semantic-mode isearch-regexp-function isearch-regexp isearch-forward intern "senator-" "" "word-" "re-" "search-" "forward" "backward"] 5 (#$ . 28762)])#@54 Toggle semantic searching on or off in isearch mode.
(defalias 'senator-isearch-toggle-semantic-mode #[0 "?	\203\n \302 \207\303\304\203 \305\202 \306\"\207" [senator-isearch-semantic-mode isearch-mode senator-lazy-highlight-update message "Isearch semantic mode %s" "enabled" "disabled"] 3 (#$ . 29190) nil])#@55 Hold previous value of `isearch-search-fun-function'.
(defvar senator-old-isearch-search-fun nil (#$ . 29510))#@48 Isearch mode hook to setup semantic searching.
(defalias 'senator-isearch-mode-hook #[0 "\203\" 	\203\" \304\302!\203 \304\303!\204 \305\303!\210\n\305\302!\210\306\211\207\n\306=\205; \304\303!\2038 \305\302!\210\307\303!\207\307\302!\207" [isearch-mode senator-isearch-semantic-mode isearch-search-fun-function senator-old-isearch-search-fun local-variable-p make-local-variable senator-isearch-search-fun kill-local-variable] 2 (#$ . 29626)])
(provide 'semantic/senator)
