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



(byte-code "\300\301!\210\300\302!\210\303\304\305\306!\"\210\303\307\310\306!\"\210\303\311\307\"\210\312\311\313\314#\210\315\306\316\307#\317\306\320\321\322$\207" [require semantic/symref grep defalias semantic-symref-tool-grep-p eieio-make-class-predicate semantic-symref-tool-grep semantic-symref-tool-grep--eieio-childp eieio-make-child-predicate semantic-symref-tool-grep-child-p make-obsolete "use (cl-typep ... 'semantic-symref-tool-grep) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (semantic-symref-tool-baseclass) nil (:documentation "A symref tool implementation using grep.\nThis tool uses EDE to find the root of the project, then executes\n`find-grep' in the project.  The output is parsed for hits and\nthose hits returned.")] 6)#@82 Create a new object of class type `semantic-symref-tool-grep'.

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

(fn WHOLE &rest SLOTS)
(defalias 'semantic-symref-tool-grep--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 (#$ . 1216)])#@85 List of major modes and file extension pattern.
See find -name man page for format.
(defvar semantic-symref-filepattern-alist '((c-mode "*.[ch]") (c-ts-mode "*.[ch]") (c++-mode "*.[chCH]" "*.[ch]pp" "*.cc" "*.hh") (c++-ts-mode "*.[chCH]" "*.[ch]pp" "*.cc" "*.hh") (html-mode "*.html" "*.shtml" "*.php") (mhtml-mode "*.html" "*.shtml" "*.php") (ruby-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml" "Rakefile" "Thorfile" "Capfile" "Guardfile" "Vagrantfile") (ruby-ts-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml" "Rakefile" "Thorfile" "Capfile" "Guardfile" "Vagrantfile") (python-mode "*.py" "*.pyi" "*.pyw") (python-ts-mode "*.py" "*.pyi" "*.pyw") (perl-mode "*.pl" "*.PL") (cperl-mode "*.pl" "*.PL") (lisp-interaction-mode "*.el" "*.ede" ".emacs" "_emacs")) (#$ . 1471))#@296 Derive a list of file (glob) patterns for the current buffer.
Looks first in `semantic-symref-filepattern-alist'.  If it is not
there, it then looks in `auto-mode-alist', and attempts to derive something
from that.
Optional argument MODE specifies the `major-mode' to test.

(fn &optional MODE)
(defalias 'semantic-symref-derive-find-filepatterns #[256 "\211\206 \303	\"A\211\2047 \n\211\2036 \211@\211A=\203/ \304\305@\"\203/ \306\307\310@\"PB\262A\266\202\202 \210\211\204@ \311\312\"\207\313@DA\204J \207\314\315\316\317A\"\320#B\207" [major-mode semantic-symref-filepattern-alist auto-mode-alist assoc string-match "\\\\\\.\\([^\\'>]+\\)\\\\'" "*." match-string 1 error "Customize `semantic-symref-filepattern-alist' for %S" "-name" "(" append mapcan #[257 "\300\301E\207" ["-o" "-name"] 4 "\n\n(fn S)"] (")")] 10 (#$ . 2260)])#@64 Grep expand keywords used when expanding templates for symref.
(defvar semantic-symref-grep-expand-keywords (byte-code "\3011 \302!\303\304\"\211\305\241\210\266\2020\207\210\306\207" [grep-expand-keywords (error) copy-alist assoc "<C>" semantic-symref-grep-flags nil] 4) (#$ . 3114))#@321 Use the grep template expand feature to create a grep command.
ROOTDIR is the root location to run the `find' from.
FILEPATTERN is a string representing find flags for searching file patterns.
FLAGS are flags passed to Grep, such as -n or -l.
PATTERN is the pattern used by Grep.

(fn ROOTDIR FILEPATTERN FLAGS PATTERN)
(defalias 'semantic-symref-grep-use-template #[1028 "\305 \210	\306\307>\203 \310\311\312\f\313\211%\202 \f$*\207" [semantic-symref-grep-flags semantic-symref-grep-expand-keywords grep-expand-keywords system-type grep-find-template grep-compute-defaults grep-expand-template (windows-nt ms-dos) replace-regexp-in-string "--color=always" "" t] 11 (#$ . 3409)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable semantic-symref-grep-shell funcall function #[0 "\207" [shell-file-name] 1 ""] "The shell command to use for executing find/grep.\nThis shell should support pipe redirect syntax." :group semantic :type string] 8)#@52 Quote STRING as a grep-syntax regexp.

(fn STRING)
(defalias 'semantic-symref-grep--quote-grep #[257 "\300\301\302\303\304%\207" [replace-regexp-in-string "[$*.[\\^]" #[257 "\300P\207" ["\\"] 3 "\n\n(fn S)"] nil t] 7 (#$ . 4405)])
(defvar semantic-symref-grep--local-dir nil)
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\310\311!\207" [cl-generic-define-method semantic-symref-perform-search nil ((tool semantic-symref-tool-grep)) #[257 "\304\305\"\211\306>\204 \307\310\"\210\210\311 \312 \313\314\315#\304\316\"\317=\203& \320\2024 \304\305\"\321=\2033 \322\2024 \323\304\324\"\304\305\"\321=\203F \211\202I \325!\326\327!\330rq\210\331 \210\332\333$\334	\330\330\n&)\266\335\336	!!\337	\")\207" [default-directory semantic-symref-grep-shell shell-command-switch semantic-symref-grep--local-dir eieio-oref searchtype (symbol regexp) error "Symref impl GREP does not support searchtype of %s" semantic-symref-calculate-rootdir semantic-symref-derive-find-filepatterns mapconcat shell-quote-argument " " resulttype file "-l " regexp "-nE " "-nw " searchfor semantic-symref-grep--quote-grep get-buffer-create "*Semantic SymRef*" nil erase-buffer semantic-symref-grep-use-template "." process-file directory-file-name file-local-name semantic-symref-parse-tool-output] 17 "Perform a search with Grep.\n\n(fn TOOL)"] semantic-symref-parse-tool-output-one-line ((tool semantic-symref-tool-grep)) #[257 "@\211\242\243\211\242\243\211\242\302\303\"\304=\203\" \305\306\307\310#\205^ \311\312!\207\302\303\"\313=\203H \305\307\310#\205^ \314\311!!	\311!\312\307OP\315`\316 \"E\207\305\307\310#\205^ \314\311!!	\311!\312\307OPB\207" [grep-regexp-alist semantic-symref-grep--local-dir eieio-oref resulttype file re-search-forward "^\\([^\n]+\\)$" nil t match-string 1 line-and-text string-to-number buffer-substring-no-properties line-end-position] 12 "Parse one line of grep output, and return it as a match list.\nMoves cursor to end of the match.\n\n(fn TOOL)"] provide semantic/symref/grep] 6)
