MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
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/progmodes/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/progmodes/ada-xref.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:16 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/ada-xref.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\305\306\307\310\311\312\313\314&\210\305\315\316\317\311\312\313\314&\210\305\320\316\321\311\312\313\314&\210\305\322\323\324\311\325\313\314&\210\305\326\327\330\311\325\313\314&\210\305\331\332\333\311\334\313\314&\210\305\335\336\337\311\325\313\314&\210\305\340\341\342\311\325\313\314&\210\305\343\341\344\311\325\313\314&\210\305\345\346\347\311\325\313\314&\210\305\350\341\351\311\325\313\314&\210\305\352\353\354\311\325\313\314&\210\305\355\356\357\311\325\313\314&\210\305\360\361\362\311\325\313\314&\210\305\363\364\362\311\325\313\314&\210\305\365\366\367\311\325\313\314&\210\305\370\371\372\311\325\313\314&\210\305\373\341\374\311\375\313\314&\210\305\376\377\201@\311\325\313\314&\210\305\201A\316\201B\311\312\313\314&\207" [require compile comint find-file ada-mode custom-declare-variable ada-xref-other-buffer t "If nil, always display the cross-references in the same buffer.\nOtherwise create either a new buffer or a new frame." :type boolean :group ada ada-xref-create-ali nil "If non-nil, run gcc whenever the cross-references are not up-to-date.\nIf nil, the cross-reference mode never runs gcc." ada-xref-confirm-compile "If non-nil, ask for confirmation before compiling or running the application." ada-krunch-args "0" "Maximum number of characters for filenames created by `gnatkr'.\nSet to 0, if you don't use crunched filenames.  This should be a string." string ada-gnat-cmd "gnat" "Default GNAT project file parser.\nWill be run with args \"list -v -Pfile.gpr\".\nDefault is standard GNAT distribution; alternate \"gnatpath\"\nis faster, available from Ada mode web site." ada-gnatls-args '("-v") "Arguments to pass to `gnatls' to find location of the runtime.\nTypical use is to pass `--RTS=soft-floats' on some systems that support it.\n\nYou can also add `-I-' if you do not want the current directory to be included.\nOtherwise, going from specs to bodies and back will first look for files in the\ncurrent directory.  This only has an impact if you are not using project files,\nbut only ADA_INCLUDE_PATH." (repeat string) ada-prj-default-comp-opt "-gnatq -gnatQ" "Default compilation options." ada-prj-default-bind-opt "" "Default binder options." ada-prj-default-link-opt "Default linker options." ada-prj-default-gnatmake-opt "-g" "Default options for `gnatmake'." ada-prj-default-gpr-file "Default GNAT project file.\nIf non-empty, this file is parsed to set the source and object directories for\nthe Ada mode project." ada-prj-ada-project-path-sep (cond ((boundp 'path-separator) path-separator) ((memq system-type '(windows-nt ms-dos)) ";") (t ":")) "Default separator for ada_project_path project variable." ada-prj-gnatfind-switches "-rf" "Default switches to use for `gnatfind'.\nYou should modify this variable, for instance to add `-a', if you are working\nin an environment where most ALI files are write-protected.\nThe command `gnatfind' is used every time you choose the menu\n\"Show all references\"." ada-prj-default-check-cmd (concat "${cross_prefix}gnatmake -u -c -gnatc ${gnatmake_opt} ${full_current}" " -cargs ${comp_opt}") "Default command to be used to compile a single file.\nEmacs will substitute the current filename for ${full_current}, or add\nthe filename at the end.  This is the same syntax as in the project file." ada-prj-default-comp-cmd (concat "${cross_prefix}gnatmake -u -c ${gnatmake_opt} ${full_current} -cargs" " ${comp_opt}") ada-prj-default-debugger "${cross_prefix}gdb" "Default name of the debugger." ada-prj-default-make-cmd (concat "${cross_prefix}gnatmake -o ${main} ${main} ${gnatmake_opt} " "-cargs ${comp_opt} -bargs ${bind_opt} -largs ${link_opt}") "Default command to be used to compile the application.\nThis is the same syntax as in the project file." ada-prj-default-project-file "Name of the current project file.\nEmacs will not try to use the search algorithm to find the project file if\nthis string is not empty.  It is set whenever a project file is found." (file :must-match t) ada-gnatstub-opts "-q -I${src_dir}" "Options to pass to `gnatsub' to generate the body of a package.\nThis has the same syntax as in the project file (with variable substitution)." ada-always-ask-project "If nil, use default values when no project file was found.\nOtherwise, ask the user for the name of the project file to use."] 8)
#@36 True if we are running on Windows.
(defconst ada-on-ms-windows (memq system-type '(windows-nt)) (#$ . 4968))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\307&\207" [custom-declare-variable ada-tight-gvd-integration nil "If non-nil, a new Emacs frame will be swallowed in GVD when debugging.\nIf GVD is not the debugger used, nothing happens." :type boolean :group ada ada-xref-search-with-egrep t "If non-nil, use egrep to find the possible declarations for an entity.\nThis alternate method is used when the exact location was not found in the\ninformation provided by GNAT.  However, it might be expensive if you have a lot\nof sources, since it will search in all the files in your project."] 8)
#@534 Hook that is run when loading a project file.
Each function in this hook takes one argument FILENAME, that is the name of
the project file to load.
This hook should be used to support new formats for the project files.

If the function can load the file with the given filename, it should create a
buffer that contains a conversion of the file to the standard format of the
project files, and return that buffer.  (The usual "src_dir=" or "obj_dir="
lines.)  It should return nil if it doesn't know how to convert that project
file.
(defvar ada-load-project-hook nil (#$ . 5709))
#@52 Name of the last project file entered by the user.
(defvar ada-last-prj-file "" (#$ . 6295))
#@39 The extension used for project files.
(defconst ada-prj-file-extension ".adp" (#$ . 6394))
#@99 Directories where the specs for the standard library is found.
This is used for cross-references.
(defvar ada-xref-runtime-library-specs-path nil (#$ . 6491))
#@97 Directories where the ali for the standard library is found.
This is used for cross-references.
(defvar ada-xref-runtime-library-ali-path nil (#$ . 6656))
#@99 List of positions selected by the cross-references functions.
Used to go back to these positions.
(defvar ada-xref-pos-ring nil (#$ . 6817))
#@156 Command to use to change to a specific directory.
On Windows systems using `cmdproxy.exe' as the shell,
we need to use `/d' or the drive is never changed.
(defvar ada-cd-command (byte-code "\301\302\"\203	\303\207\304\207" [shell-file-name string-match "cmdproxy.exe" "cd /d" "cd"] 3) (#$ . 6965))
#@166 Separator to use between multiple commands to `compile' or `start-process'.
`cmdproxy.exe' doesn't recognize multiple-line commands, so we have to use
"&&" for now.
(defvar ada-command-separator (byte-code "\203\301\207\302\207" [ada-on-ms-windows " && " "\n"] 1) (#$ . 7272))
#@59 Number of positions kept in the list `ada-xref-pos-ring'.
(defconst ada-xref-pos-ring-max 16 (#$ . 7558))
#@32 Regexp to match for operators.
(defvar ada-operator-re "\\+\\|-\\|/\\|\\*\\*\\|\\*\\|=\\|&\\|abs\\|mod\\|rem\\|and\\|not\\|or\\|xor\\|<=\\|<\\|>=\\|>" (#$ . 7670))
#@543 Associative list of project files with properties.
It has the format: (project project ...)
A project has the format: (project-file . project-plist)
(See 'apropos plist' for operations on property lists).
See `ada-default-prj-properties' for the list of valid properties.
The current project is retrieved with `ada-xref-current-project'.
Properties are retrieved with `ada-xref-get-project-field', set with
`ada-xref-set-project-field'.  If project properties are accessed with no
project file, a (nil . default-properties) entry is created.
(defvar ada-xref-project-files nil (#$ . 7841))
(defalias 'ada-make-identlist '(macro . #[nil "\300\301\302\"\207" [make-vector 8 nil] 3]))
(defalias 'ada-name-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 0] 3]))
(defalias 'ada-line-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 1] 3]))
(defalias 'ada-column-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 2] 3]))
(defalias 'ada-file-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 3] 3]))
(defalias 'ada-ali-index-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 4] 3]))
(defalias 'ada-declare-file-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 5] 3]))
(defalias 'ada-references-of '(macro . #[(identlist) "\301\302E\207" [identlist aref 6] 3]))
(defalias 'ada-on-declaration '(macro . #[(identlist) "\301\302E\207" [identlist aref 7] 3]))
(defalias 'ada-set-name '(macro . #[(identlist name) "\302\303	F\207" [identlist name aset 0] 4]))
(defalias 'ada-set-line '(macro . #[(identlist line) "\302\303	F\207" [identlist line aset 1] 4]))
(defalias 'ada-set-column '(macro . #[(identlist col) "\302\303	F\207" [identlist col aset 2] 4]))
(defalias 'ada-set-file '(macro . #[(identlist file) "\302\303	F\207" [identlist file aset 3] 4]))
(defalias 'ada-set-ali-index '(macro . #[(identlist index) "\302\303	F\207" [identlist index aset 4] 4]))
(defalias 'ada-set-declare-file '(macro . #[(identlist file) "\302\303	F\207" [identlist file aset 5] 4]))
(defalias 'ada-set-references '(macro . #[(identlist ref) "\302\303	F\207" [identlist ref aset 6] 4]))
(defalias 'ada-set-on-declaration '(macro . #[(ident value) "\302\303	F\207" [ident value aset 7] 4]))
#@73 Read the ali file FILE into a new buffer, and return the buffer's name.
(defalias 'ada-get-ali-buffer #[(file) "\301\302!!\207" [file find-file-noselect ada-get-ali-file-name] 3 (#$ . 10084)])
(put 'ada-get-ali-buffer 'byte-optimizer 'byte-compile-inline-expand)
#@76 Duplicate all `\' characters in CMD so that it can be passed to `compile'.
(defalias 'ada-quote-cmd #[(cmd) "\301\302\303\304\"\304#\207" [cmd mapconcat identity split-string "\\\\"] 5 (#$ . 10354)])
#@154 Find the full path to the executable file EXEC-NAME.
If not found, throw an error.
On Windows systems, this will properly handle .exe extension as well.
(defalias 'ada-find-executable #[(exec-name) "\303	\"\206
\303\304P	\"\211\203\n\202\305\306\")\207" [exec-name exec-path result ada-find-file-in-dir ".exe" error "'%s' not found in path"] 4 (#$ . 10562)])
#@120 Initialize the variables for the runtime library location.
CROSS-PREFIX is the prefix to use for the `gnatls' command.
(defalias 'ada-initialize-runtime-library #[(cross-prefix) "\305\306\307\217\211\203\216\212\305\211\310\311!q\210~\210\312 \210\313\216\314\315\316\317\"#eb\210\f\320U\2043\321`\322 {!\210\323\324!\210\325y\210\326\327!\204`\330 \210\326\331!\203Q\332\301\333\"\210\202Z\332\301\334`\335 \"\"\210\325y\210\202:\323\336!\210\325y\210\326\327!\204\215\330 \210\326\331!\203~\332\302\333\"\210\202\207\332\302\334`\335 \"\"\210\325y\210\202g+\337	!\337\n!\211)\207" [gnatls ada-xref-runtime-library-specs-path ada-xref-runtime-library-ali-path ada-gnatls-args status nil (byte-code "\301\302P!\207" [cross-prefix ada-find-executable "gnatls"] 3) ((error)) get-buffer-create "*gnatls*" erase-buffer ((kill-buffer nil)) apply call-process append (nil t nil) 4 error line-end-position search-forward "Source Search Path:" 1 looking-at "^$" back-to-indentation "<Current_Directory>" add-to-list "." buffer-substring-no-properties point-at-eol "Object Search Path:" reverse] 7 (#$ . 10937)])
#@262 Set gpr_file, src_dir and obj_dir properties in PLIST by parsing GPR-FILE.
Return new value of PLIST.
GPR_FILE must be full path to file, normalized.
src_dir, obj_dir will include compiler runtime.
Assumes environment variable ADA_PROJECT_PATH is set properly.
(defalias 'ada-gnat-parse-gpr #[(plist gpr-file) "r\306\307!q\210\310 \210\311\312\"\210\313\216\314	\315\"\211P\316P\317\211#\320\f\317\321\317\322\323
&(eb\210(\324U\204@\325`\326 {!\210\327\330!\210\331y\210\332\333!\204l\334 \210\335\336\332\337!\203])\202d\340\341`\326 \"!\"\210\331y\210\202G\327\342!\210\331y\210\332\333!\204\230\334 \210\335\343\332\337!\203\211)\202\220\340\341`\326 \"!\"\210\331y\210\202s\344	\345#\344	\346#\344	\347##.\207" [gpr-file plist cross-prefix ada-gnat-cmd gnat gpr-opt get-buffer-create "*gnatls*" erase-buffer message "Parsing %s ..." ((byte-code "\301\302!\210\303\304\"\207" [gpr-file kill-buffer nil message "Parsing %s ... done"] 3)) plist-get cross_prefix "-P" nil call-process t "list" "-v" 0 error line-end-position search-forward "Source Search Path:" 1 looking-at "^$" back-to-indentation add-to-list src-dir "<Current_Directory>" expand-file-name buffer-substring-no-properties "Object Search Path:" obj-dir plist-put gpr_file src_dir obj_dir status default-directory] 9 (#$ . 12067)])
#@334 Replace variable references ${var} in CMD-STRING with the appropriate value.
Also replace standard environment variables $var.
Assumes project exists.
As a special case, ${current} is replaced with the name of the current
file, minus extension but with directory, and ${full_current} is
replaced by the name including the extension.
(defalias 'ada-treat-cmd-string #[(cmd-string) "\305\306\"\203\307\310\311\"	\312\230\203\313\314 !\2024	\315\230\203(\314 \2024\316 \317\216\320\321	!!*\n\204H\322	!\211\204H\323\324\325	\326Q\"\210\n\204V\327\330\331\211$\202{\n;\203e\327\n\331\211$\202{\n<\203{\310\332\"\327\333\334\n\335#\331\211$)*\202\336!\207" [cmd-string name value save-match-data-internal prefix string-match "\\(-[^-$IO]*[IO]\\)?${\\([^}]+\\)}" nil match-string 2 "current" file-name-sans-extension buffer-file-name "full_current" match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ada-xref-get-project-field intern getenv message "%s" "No project or environment variable " " found" replace-match "" t 1 mapconcat #[(x) "	P\207" [prefix x] 2] " " substitute-in-file-name] 5 (#$ . 13404)])
#@262 Extract the value of FIELD from the current project file.
Project variables are substituted.

Note that for src_dir and obj_dir, you should rather use
`ada-xref-get-src-dir-field' or `ada-xref-get-obj-dir-field'
which will in addition return the default paths.
(defalias 'ada-xref-get-project-field #[(field) "\304 A\305	\"	\306=\203!\305\307\"\211\310\230\204 \311\312\nR)\n;\203,\313\n!\202A\n\2044\314\202A\n<\203@\315\316\n\"\202A\n*\207" [project-plist field value gpr-file ada-xref-current-project plist-get gnatmake_opt gpr_file "" "-P\"" "\" " ada-treat-cmd-string nil mapcar #[(x) "\203\301!\207\207" [x ada-treat-cmd-string] 2]] 5 (#$ . 14593)])
#@129 Return the full value for src_dir, including the default directories.
All the directories are returned as absolute directories.
(defalias 'ada-xref-get-src-dir-field #[nil "\302\303!\304C\305\302\306!\"	#)\207" [build-dir ada-xref-runtime-library-specs-path ada-xref-get-project-field build_dir append ada-get-absolute-dir-list src_dir] 5 (#$ . 15276)])
#@129 Return the full value for obj_dir, including the default directories.
All the directories are returned as absolute directories.
(defalias 'ada-xref-get-obj-dir-field #[nil "\302\303!\304C\305\302\306!\"	#)\207" [build-dir ada-xref-runtime-library-ali-path ada-xref-get-project-field build_dir append ada-get-absolute-dir-list obj_dir] 5 (#$ . 15640)])
#@65 Set FIELD to VALUE in current project.  Assumes project exists.
(defalias 'ada-xref-set-project-field #[(field value) "\305 \306	\"A\307\n\f#\306	\"\n\241*\207" [file-name ada-xref-project-files project-plist field value ada-xref-current-project-file assoc plist-put] 4 (#$ . 16001)])
#@73 Update the menu Ada->Project, with the list of available project files.
(defalias 'ada-xref-update-project-menu #[nil "\303\304\305\306\307\310\311\206\f\312\"BBBBB\313\n\314	#)\207" [ada-xref-project-files submenu ada-mode-menu "Project" ["Load..." ada-set-default-project-file t] ["New..." ada-prj-new t] ["Edit..." ada-prj-edit t] "---" mapcar #[(x) "@\206\304\305\306\307\310\311	D\257\312\313	!\n\314\315@\232B$*\207" [x name command ada-prj-default-project-file "<default>" lambda nil "Select the current project file." (interactive) ada-select-prj-file vector file-name-nondirectory :button :toggle] 7] (nil) easy-menu-add-item nil] 8 (#$ . 16298)])
#@161 Completion function when reading a file from the minibuffer.
Completion is attempted in all the directories in the source path,
as defined in the project file.
(defalias 'ada-do-file-completion #[(string predicate flag) "\305 \210\306\307 \203#\310@!\203\311	\312\n@\"\"A\211\204\f\313\232\2030\314\n	\"\202@\2038	\202@\315\n\316\317	\"\f#*\207" [dirs list string flag predicate ada-require-project-file nil ada-xref-get-src-dir-field file-directory-p append file-name-all-completions lambda assoc try-completion mapcar #[(x) "\301B\207" [x 1] 2]] 6 (#$ . 16973)])
#@75 Open FILENAME, from anywhere in the source path.
Completion is available.
(defalias 'ada-find-file #[(filename) "\302!\211\203\303	!\202\304\305\")\207" [filename file ada-find-src-file-in-dir find-file error "%s not found in src_dir"] 4 (#$ . 17563) (list (completing-read "File: " 'ada-do-file-completion))])
#@120 If the current project does not exist, load or create a default one.
Should only be called from interactive functions.
(defalias 'ada-require-project-file #[nil "\301\230\205\302\303\304!!\207" [ada-prj-default-project-file "" ada-reread-prj-file ada-prj-find-prj-file t] 3 (#$ . 17888)])
#@113 Return the current project file name; never nil.
Call `ada-require-project-file' first if a project must exist.
(defalias 'ada-xref-current-project-file #[nil "\301\230\204\207\302\303!\207" [ada-prj-default-project-file "" ada-prj-find-prj-file t] 2 (#$ . 18187)])
#@95 Return the current project.
Call `ada-require-project-file' first to ensure a project exists.
(defalias 'ada-xref-current-project #[nil "\302 \303	\")\207" [file-name ada-xref-project-files ada-xref-current-project-file assoc] 3 (#$ . 18463)])
#@54 Display current project file name in message buffer.
(defalias 'ada-show-current-project #[nil "\300\301 !\207" [message ada-xref-current-project-file] 2 (#$ . 18715) nil])
#@51 Display current main file name in message buffer.
(defalias 'ada-show-current-main #[nil "\300\301\302\303!\"\207" [message "ada-mode main: %s" ada-xref-get-project-field main] 4 (#$ . 18894) nil])
#@70 Push (FILENAME, POSITION) on the position ring for cross-references.
(defalias 'ada-xref-push-pos #[(filename position) "	D\nB\211GV\205S\n\233\304\241\207" [position filename ada-xref-pos-ring ada-xref-pos-ring-max nil] 3 (#$ . 19098)])
#@48 Go to the previous cross-reference we were on.
(defalias 'ada-xref-goto-previous-reference #[nil "\205@A\302	A@!\210	@b)\207" [ada-xref-pos-ring pos find-file] 2 (#$ . 19348) nil])
#@150 Convert from NAME to a name that can be used by the compilation commands.
This is overridden on VMS to convert from VMS filenames to Unix filenames.
(defalias 'ada-convert-file-name #[(name) "\207" [name] 1 (#$ . 19543)])
#@39 Set FILE as the current project file.
(defalias 'ada-set-default-project-file #[(file) "\301!\210\302!\207" [file ada-parse-prj-file ada-select-prj-file] 2 (#$ . 19772) "fProject file:"])
#@484 Find the project file associated with the current buffer.
If the buffer is not in Ada mode, or not associated with a file,
return `ada-prj-default-project-file'.  Otherwise, search for a file with
the same base name as the Ada file, but extension given by
`ada-prj-file-extension' (default .adp).  If not found, search for *.adp
in the current directory; if several are found, and NO-USER-QUESTION
is non-nil, prompt the user to select one.  If none are found, return
'default.adp'.
(defalias 'ada-prj-find-prj-file #[(&optional no-user-question) "\306\307\310!\203\f	\204\306\202\301 \311\n!P\312\n!\313
\314\315\316!\317Q#+\306,\320\f!\2038\f\202+G\321U\203G+@\202+G\321V\203\362-\204\362\322 .\323\216/0r\324\325!q\210p\326 \2100/\306\2111\314\2112\31434\327 \210\330\331!\210+\21156\332\333!\210\332\334!\210\332\335!\210\332\336!\210\321\2117+GX\203\270\332\337\3407\211S+8#!\2107T\2117\202\233)\3415!\210+\306\211,\203\334,\250\203\334,\321W\204\334,+GV\203\347\342\343\344!!\211,\202\303,S+8*\202+G\345U\203-\2048\203\346\3479\350Q\3069#\2119\351\230\2049-\206\352)\207" [selected buffer-file-name current-file ada-prj-file-extension first-choice dir nil derived-mode-p ada-mode file-name-sans-extension file-name-directory directory-files t ".*" regexp-quote "$" file-exists-p 1 current-window-configuration ((set-window-configuration #1=#:wconfig)) get-buffer-create "*choice list*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook princ "There are more than one possible project file.\n" "Which one should we use ?\n\n" "  no.   file name  \n" "  ---   ------------------------\n" format "  %2d)    %s\n" internal-temp-output-buffer-show string-to-number read-from-minibuffer "Enter No. of your choice: " 0 read-file-name "project file [" "]:" "" "default.adp" prj-files choice no-user-question #1# default-directory #2=#:old-dir buffer-read-only buffer-undo-list inhibit-modification-hooks inhibit-read-only #3=#:buf standard-output counter ada-always-ask-project ada-last-prj-file] 7 (#$ . 19969)])
#@77 Return the default project properties list with the current buffer as main.
(defalias 'ada-default-prj-properties #[nil "\306\307!\310\311\312!\206\f\313\314	\315\n\316\317\f<\203\f\202\fC\320
C\321(C\322)\323\313\324*\325+\2054\326Q\327\307C\330,\331PC\332-\333.\334/\3350\336\203W\337\340!!\202X\313\3411C\342\343C\344\313\345\346+\205i\326PC\347\343C\257,)\207" [file ada-prj-ada-project-path-sep ada-prj-default-bind-opt default-directory ada-case-exception-file ada-prj-default-check-cmd buffer-file-name nil ada_project_path getenv "ADA_PROJECT_PATH" "" ada_project_path_sep bind_opt build_dir casing check_cmd comp_cmd comp_opt cross_prefix debug_cmd " ${main}" ".exe" debug_post_cmd debug_pre_cmd " ${build_dir}" gnatmake_opt gnatfind_opt gpr_file link_opt main file-name-nondirectory file-name-sans-extension make_cmd obj_dir "." remote_machine run_cmd "./${main}" src_dir ada-prj-default-comp-cmd ada-prj-default-comp-opt ada-prj-default-debugger ada-on-ms-windows ada-cd-command ada-prj-default-gnatmake-opt ada-prj-gnatfind-switches ada-prj-default-gpr-file ada-prj-default-link-opt ada-prj-default-make-cmd] 44 (#$ . 22092)])
#@68 Read PRJ-FILE, set project properties in `ada-xref-project-files'.
(defalias 'ada-parse-prj-file #[(prj-file) "\303 \304	!\305	!\306\230\203\307	\"\202\310	\"\311	\n\"\203-\311	\n\"\241\210\2024\312\302	B\"\210\313 )\207" [project prj-file ada-xref-project-files ada-default-prj-properties expand-file-name file-name-extension "gpr" ada-gnat-parse-gpr ada-parse-prj-file-1 assoc add-to-list ada-xref-update-project-menu] 4 (#$ . 23261)])
#@107 Parse the Ada mode project file PRJ-FILE, set project properties in PROJECT.
Return new value of PROJECT.
(defalias 'ada-parse-prj-file-1 #[(prj-file project) "p\306\211\211\211\211\211\211\211\211\211\211 4\307\3105\"\2116\2040\3115\306\"66q\210)~\210eb\210m\204D\312\313!\203>\314\315!\316\230\203Z\317\320\321\322\314\323!!!\"\210\202>\314\315!\324\230\203q\3257\326\327\314\323!!#7\202>\314\315!\330\230\203\207\317\331\321\322\314\323!!!\"\210\202>\314\315!\332\230\203\231\317\333\314\323!\"\210\202>\314\315!\334\230\203\253\317\335\314\323!\"\210\202>\314\315!\336\230\203\275\317\305\314\323!\"\210\202>\314\315!\337\230\203\317\317\340\314\323!\"\210\202>\314\315!\341\230\203\340\321\314\323!!\202>\314\315!\342\230\203\362\317\303\314\323!\"\210\202>\314\315!\343\230\203\317\302\327\321\314\323!!!\"\210\202>\314\315!\344\230\203\317\300\314\323!\"\210\202>\314\315!\345\230\2030\317\301\327\321\314\323!!!\"\210\202>\3257\346\314\315!!\314\323!#7\315y\210\202:4q\210\203s\3477\350\"8\351!\352\3538#\3257\320#7\354\355\"\210)
\203\201\3257\305\351
!#7 \203\221\3257\340\351 !#7\203\241\3257\331\351!#7\203\261\3257\333\351!#7\203\301\3257\335\351!#7\203\317\3257\303\351!#7\203\335\3257\300\351!#7\f\203\3567\f\"7\357\3477\301\"	\"\357\3477\302\"\n\"\306\2119:\360\361\362!\206\363!\210\n\203\3257\302\351\n!#7	\203&\3257\301\351	!#77.\f\207" [run_cmd src_dir obj_dir make_cmd gpr_file debug_post_cmd nil run-hook-with-args-until-success ada-load-project-hook find-file-noselect looking-at "^\\([^=\n]+\\)=\\(.*\\)" match-string 1 "ada_project_path" add-to-list ada_project_path expand-file-name substitute-in-file-name 2 "build_dir" plist-put build_dir file-name-as-directory "casing" casing "check_cmd" check_cmd "comp_cmd" comp_cmd "debug_post_cmd" "debug_pre_cmd" debug_pre_cmd "gpr_file" "make_cmd" "obj_dir" "run_cmd" "src_dir" intern plist-get ada_project_path_sep reverse mapconcat identity setenv "ADA_PROJECT_PATH" ada-gnat-parse-gpr append ada-initialize-runtime-library ada-xref-get-project-field cross_prefix "" ada-buffer prj-file buffer project sep ada-xref-runtime-library-specs-path ada-xref-runtime-library-ali-path] 13 (#$ . 23720)])
#@42 Select FILE as the current project file.
(defalias 'ada-select-prj-file #[(file) "\306!\307\302!\211\203\n\310 \210)\307\304!\211\203\311\312\f\"\210)\313 \314\315\316
\"\"\317\207" [file ada-prj-default-project-file casing ada-case-exception-file ada_project_path compilation-search-path expand-file-name ada-xref-get-project-field ada-case-read-exceptions setenv "ADA_PROJECT_PATH" ada-xref-get-src-dir-field append mapcar directory-file-name t ada-search-directories ada-search-directories-internal] 5 (#$ . 26028) nil])
#@238 Find all references to the entity under POS.
Calls gnatfind to find the references.
If ARG is non-nil, the contents of the old *gnatfind* buffer is preserved.
If LOCAL-ONLY is non-nil, only declarations in the current file are returned.
(defalias 'ada-find-references #[(&optional pos arg local-only) "\306 \210\307!\310	\311H!\312 \313	\311H!q\210\314p!\204&\315	\311H\n\"\2036\316	\317H	\311H\320\211\f
&\202G\316	\317H	\311H	\321H	\322H\f
&+\207" [pos identlist alifile process-environment local-only arg ada-require-project-file ada-read-identifier ada-get-ali-file-name 3 ada-set-environment get-file-buffer buffer-modified-p file-newer-than-file-p ada-find-any-references 0 nil 1 2] 7 (#$ . 26573) "d\nP"])
#@162 Find all references to the entity under POS.
Calls `gnatfind' to find the references.
If ARG is non-nil, the contents of the old *gnatfind* buffer is preserved.
(defalias 'ada-find-local-references #[(&optional pos arg) "\302	\303#\207" [pos arg ada-find-references t] 4 (#$ . 27302) "d\nP"])
(defconst ada-gnatfind-buffer-name "*gnatfind*")
#@328 Search for references to any entity whose name is ENTITY.
ENTITY was first found the location given by FILE, LINE and COLUMN.
If LOCAL-ONLY is non-nil, then list only the references in FILE,
which is much faster.
If APPEND is non-nil, then append the output of the command to the
existing buffer `*gnatfind*', if there is one.
(defalias 'ada-find-any-references #[(entity &optional file line column local-only append) "\306 \210\307H\310U\203#	\203\311\312\313O\311Q\202$\314\312\313O\315Q\202$\316\317!\316\320!\211\321\322\n
\205;\323\324
!P&\205D\323&P'\205M\323'P(\205W\322\324
!P\260	)\325*+\203\210+\326\230\204\210\327+!\330\230\203)\331+\332R)\202\210)\333+\332R),\203\235\334-!\203\235r\335q\210\336 *)\337.\340)\341\342#\210)r-q\210\343\344!\210*\205\305\312b\210\325/*c\210\345/db.\207" [entity ada-on-ms-windows quote-entity switches cross-prefix file ada-require-project-file 0 34 "\\\"" 1 -1 "'\"" "\"'" ada-xref-get-project-field gnatfind_opt cross_prefix "gnat find " " " ":" file-name-nondirectory nil "" file-name-extension "gpr" " -P\"" "\"" " -p\"" get-buffer "*gnatfind*" buffer-string "reference" compilation-start compilation-mode #[(_mode) "\207" [ada-gnatfind-buffer-name] 1] local-unset-key [menu-bar compilation-menu] t line column local-only command old-contents ada-prj-default-project-file append ada-gnatfind-buffer-name compilation-error buffer-read-only] 12 (#$ . 27652) "sEntity name: "])
(byte-code "\300\301\302K\"\207" [defalias ada-change-prj ada-set-default-project-file] 3)
#@88 Try to complete the identifier around POS, using compiler cross-reference information.
(defalias 'ada-complete-identifier #[(pos) "\306 \210p\307	!\310\311\n\312H!\313Q\314\211\315 \316\317!!)q\210db\210\320\314\321#\2039\322\323!\314B
B\202&\324\325
\"\326\314!\210q\210\327\330!\210\331\325!\210\fc-\207" [curbuf pos identlist sofar completed symalist ada-require-project-file ada-read-identifier "^[0-9]+[a-zA-Z][0-9]+[ *]\\(" regexp-quote 0 "[a-zA-Z0-9_]*\\)" nil buffer-file-name find-file-noselect ada-get-ali-file-name re-search-backward t match-string 1 try-completion "" kill-buffer looking-at "[a-zA-Z0-9_]+" replace-match file] 5 (#$ . 29225) "d"])
#@57 Jump to the declaration of the entity below the cursor.
(defalias 'ada-point-and-xref #[nil "\301!\210\302`!\207" [last-input-event mouse-set-point ada-goto-declaration] 2 (#$ . 29906) nil])
#@50 Jump to the body of the entity under the cursor.
(defalias 'ada-point-and-xref-body #[nil "\301!\210\302`!\207" [last-input-event mouse-set-point ada-goto-body] 2 (#$ . 30104) nil])
#@219 Display the body of the entity around POS.
OTHER-FRAME non-nil means display in another frame.
If the entity doesn't have a body, display its declaration.
As a side effect, the buffer for the declaration is also open.
(defalias 'ada-goto-body #[(pos &optional other-frame) "\303	\"\210\304\303`\304\")\207" [pos other-frame ada-xref-other-buffer ada-goto-declaration nil] 3 (#$ . 30294) "d"])
#@210 Display the declaration of the identifier around POS.
The declaration is shown in another buffer if `ada-xref-other-buffer' is
non-nil.
If OTHER-FRAME is non-nil, display the cross-reference in another frame.
(defalias 'ada-goto-declaration #[(pos &optional other-frame) "\302 \210\303!\210\304\305 \"\210\306!\307\310\311\217)\207" [pos identlist ada-require-project-file push-mark ada-xref-push-pos buffer-file-name ada-read-identifier err (ada-find-in-ali identlist other-frame) ((error-file-not-found (byte-code "\301\302!AP!\207" [err message error-message-string] 3)) (error (byte-code "\304\305H!\306	!\203\307	\305H\"\203\310\311!\202)\n\203&\312\"\202)\310\313!)\207" [identlist ali-file ada-xref-search-with-egrep other-frame ada-get-ali-file-name 3 file-exists-p file-newer-than-file-p message "No cross-reference found -- may be a predefined entity." ada-find-in-src-path "Cross-referencing information is not up-to-date; please recompile."] 4)))] 3 (#$ . 30696) "d"])
#@136 Display the declaration of the identifier around POS.
The declaration is shown in another frame if `ada-xref-other-buffer' is
non-nil.
(defalias 'ada-goto-declaration-other-frame #[(pos) "\301\302\"\207" [pos ada-goto-declaration t] 3 (#$ . 31702) "d"])
#@76 Return the remote version of COMMAND, or COMMAND if remote_machine is nil.
(defalias 'ada-remote #[(command) "\303\304!\211\203\305\230\203	\202\306\307\n	$)\207" [machine command remote-shell-program ada-xref-get-project-field remote_machine "" format "%s %s '(%s)'"] 6 (#$ . 31963)])
#@174 Return the list of absolute directories found in DIR-LIST.
If a directory is a relative directory, ROOT-DIR is prepended.
Project and environment variables are substituted.
(defalias 'ada-get-absolute-dir-list #[(dir-list root-dir) "\301\302\"\207" [dir-list mapcar #[(x) "\302\303	!\"\207" [x root-dir expand-file-name ada-treat-cmd-string] 4]] 3 (#$ . 32265)])
#@230 Prepare an environment for Ada compilation.
This returns a new value to use for `process-environment',
but does not actually put it into use.
It modifies the source path and object path with the values found in the
project file.
(defalias 'ada-set-environment #[nil "\305\306!\305\307!\310\311!\211\203\nP	\203	P\312\313\314\310\315!#\nQ\316\313\317\310\320!#	Q\f+BB\207" [build-dir objects include path-separator process-environment getenv "ADA_INCLUDE_PATH" "ADA_OBJECTS_PATH" ada-xref-get-project-field build_dir "ADA_INCLUDE_PATH=" mapconcat #[(x) "\302	\"\207" [x build-dir expand-file-name] 3] src_dir "ADA_OBJECTS_PATH=" #[(x) "\302	\"\207" [x build-dir expand-file-name] 3] obj_dir] 7 (#$ . 32637)])
#@117 Compile the application, using the command found in the project file.
If ARG is not nil, ask for user confirmation.
(defalias 'ada-compile-application #[(&optional arg) "\306 \210\307\310!\311 \312\313 \n\204\314\312\315\316\317\n
#!\204(\f\203-\320\321\n\"\322\323\"\2049\n\324P\325\326\n!!+\207" [compilation-scroll-output process-environment cmd compilation-search-path arg ada-command-separator ada-require-project-file ada-xref-get-project-field make_cmd ada-set-environment t ada-xref-get-src-dir-field ("") ada-remote mapconcat identity read-from-minibuffer "enter command to compile: " string-match ".exe" "\n\n" compile ada-quote-cmd ada-xref-confirm-compile shell-file-name] 5 (#$ . 33367) "P"])
#@58 Set main project variable to current buffer, build main.
(defalias 'ada-set-main-compile-application #[nil "\302 \210\303p!\304\204\305\306!\202(\203\307\310!!\202 \311\312\301	\"\210\313 *\207" [file main ada-require-project-file buffer-file-name nil error "No file for current buffer" file-name-nondirectory file-name-sans-extension "" ada-xref-set-project-field ada-compile-application] 3 (#$ . 34097) nil])
#@230 Recompile the current file.
If ARG is non-nil, ask for user confirmation of the command.
PRJ-FIELD is the name of the field to use in the project file to get the
command, and should be either `comp_cmd' (default) or `check_cmd'.
(defalias 'ada-compile-current #[(&optional arg prj-field) "\306 \210\203\202\f\307\310	!\311 \312\n\204\313\312\314\315\316\n#!\2040
\2035\317\320\n\"\321\322\n!!,\207" [prj-field field cmd process-environment compilation-scroll-output arg ada-require-project-file comp_cmd ada-xref-get-project-field ada-set-environment t ("") ada-remote mapconcat identity read-from-minibuffer "enter command to compile: " compile ada-quote-cmd ada-command-separator ada-xref-confirm-compile] 5 (#$ . 34527) "P"])
#@104 Check the current file for syntax errors.
If ARG is non-nil, ask for user confirmation of the command.
(defalias 'ada-check-current #[(&optional arg) "\301\302\"\207" [arg ada-compile-current check_cmd] 3 (#$ . 35284) "P"])
#@68 Run the application.
If ARG is non-nil, ask for user confirmation.
(defalias 'ada-run-application #[(&optional arg) "\306 \210\307\310!\211\203\311\230\204\312\313!\210)\307\314!\211\204$\315\316 !C\317\320\321	\n#!\2044\f\2039\322\323	\"r\324\325!q\210\326\327 \210\330\331p$\332	%\210\333 \210\334\335!\210\336\334\337!\210\336)\340\325!\210\341\342!\210\343\325!)\207" [machine command ada-command-separator ada-xref-confirm-compile arg buffer-read-only ada-require-project-file ada-xref-get-project-field cross_prefix "" error "This feature is not supported yet for cross environments" run_cmd file-name-sans-extension buffer-name ada-remote mapconcat identity read-from-minibuffer "Enter command to execute: " get-buffer-create "*run*" nil erase-buffer start-process "run" "-c" comint-mode make-local-variable scroll-step 0 scroll-conservatively display-buffer other-window 1 switch-to-buffer shell-file-name] 7 (#$ . 35515) nil])
#@188 Start the debugger on the application.
If ARG is non-nil, ask the user to confirm the command.
EXECUTABLE-NAME, if non-nil, is debugged instead of the file specified in the
project file.
(defalias 'ada-gdb-application #[(&optional arg executable-name) "\306 \210p\307\211\211\f\203
\310\fQ\202\311\312!\311\313!\311\314!\n\2042
\310\f\2060\315\316 !Q9\203U\317\320\n\"\203U\321\322!:\n\323\324\325\326:!\"AQ\327:!\210)\330\n\331P!;\204e<\203j\332\333\n\"\334K=\335\336M\210\337\340	>#\211\341\232\204\204	>P\337\340\342#\211\203\222\342P\334\343\344\345\346\347\350\351\352\353	\354BBDDEEEM\210\317\355\356\n\357\211#\"\203\3029\203\302\317\360\n\"\204\302\n\360P\317\361\356\n\357\211#\"\203\333\362\363!\203\333\363K\n!\210\202\337\364\n!\210\334=M\210\365\366p!\"\210db\210\317\355\356\n\357\211#\"\203\317\360\n\"\203\367 \210\370!-\207" [post-cmd pre-cmd cmd buffer executable-name ada-prj-default-debugger ada-require-project-file nil " " ada-xref-get-project-field debug_cmd debug_pre_cmd debug_post_cmd file-name-sans-extension buffer-file-name string-match "^[^ 	]*gvd" make-frame ((visibility)) " --editor-window=" assoc outer-window-id frame-parameters select-frame ada-remote " -fullname " read-from-minibuffer "enter command to debug: " comint-exec gud-gdb-massage-args #[(_file args) "\207" [args] 1] mapconcat identity "" "\n" lambda (buffer name command startfile switches) let (compilation-buffer-name-function) save-excursion (set 'compilation-buffer-name-function (lambda (x) (buffer-name buffer))) compile ada-quote-cmd concat (command " " (mapconcat 'identity switches " ")) "gvd" comint-arguments 0 "--tty" "jdb" boundp jdb gdb process-send-string get-buffer-process split-window-below switch-to-buffer ada-tight-gvd-integration frame arg ada-xref-confirm-compile old-comint-exec ada-command-separator] 13 (#$ . 36478) "P"])
#@111 Reread either the current project, or FILENAME if non-nil.
If FILENAME is non-nil, set it as current project.
(defalias 'ada-reread-prj-file #[(&optional filename) "\204	\302!\210\303!\207" [filename ada-prj-default-project-file ada-parse-prj-file ada-select-prj-file] 2 (#$ . 38386) "P"])
#@290 Update the cross-references for FILE.
This in fact recompiles FILE to create ALI-FILE-NAME.
This function returns the name of the file that was recompiled to generate
the cross-reference information.  Note that the ali file can then be deduced
by replacing the file extension with `.ali'.
(defalias 'ada-xref-current #[(file &optional ali-file-name) "\203\306!\203\307\306!!\210\310	!\311\n!\206\n\212\312!\313\211\203-
q\210\2021\314!\210\315 \210\316\317!\f\203K\320\f!\321\232\204K\322\323!\210\2028
\204U\307\312!!\210+*\207" [ali-file-name file name body-name process body-visible get-file-buffer kill-buffer ada-convert-file-name ada-get-body-name find-buffer-visiting nil find-file ada-compile-current get-buffer-process "*compilation*" process-status exit sit-for 1] 4 (#$ . 38689)])
#@30 Search for FILE in DIR-LIST.
(defalias 'ada-find-file-in-dir #[(file dir-list) "\303\204!	\203!\304	@!\305\n!P\306!\204\303	A\202)\207" [found dir-list file nil file-name-as-directory file-name-nondirectory file-exists-p] 3 (#$ . 39511)])
#@192 Find the ali file FILE, searching obj_dir for the current project.
Adds build_dir in front of the search path to conform to gnatmake's behavior,
and the standard runtime location at the end.
(defalias 'ada-find-ali-file-in-dir #[(file) "\301\302 \"\207" [file ada-find-file-in-dir ada-xref-get-obj-dir-field] 3 (#$ . 39770)])
#@171 Find the source file FILE, searching src_dir for the current project.
Adds the standard runtime location at the end of the search path to conform
to gnatmake's behavior.
(defalias 'ada-find-src-file-in-dir #[(file) "\301\302 \"\207" [file ada-find-file-in-dir ada-xref-get-src-dir-field] 3 (#$ . 40104)])
#@141 Create the ali file name for the Ada file FILE.
The file is searched for in every directory shown in the obj_dir lines of
the project file.
(defalias 'ada-get-ali-file-name #[(file) "r\306!q\210\307!\310P\311\211\312!\313\230\2044\f\211\2033\314\315
@!\316P\"\203,\317
A\211\204)	\203A\320\307\321 !\310P!\n\206{\320!\206{\320\307\321 !\310P!\206{\307!\n\204y\314\322\"\203y\323\324\"\320\310P!\211\203_\n)\211\204\227\203\220\325\326!!\310P\202\250\327\330!\210\202\250\331\n\"\203\250\203\250\326\n\"\210\332\n!,\207" [file is-spec ali-file-name short-ali-file-name ada-spec-suffixes specs get-file-buffer file-name-base ".ali" nil file-name-extension "ads" string-match regexp-quote "$" t ada-find-ali-file-in-dir ada-other-file-name "^\\(.*\\)[.-][^.-]*" match-string 1 file-name-sans-extension ada-xref-current error "`.ali' file not found; recompile your source file" file-newer-than-file-p expand-file-name parent-name ada-xref-create-ali] 4 (#$ . 40417)])
#@154 Create the complete file name (+directory) for FILE.
The original file (where the user was) is ORIGINAL-FILE.
Search in project file for possible paths.
(defalias 'ada-get-ada-file-name #[(file original-file) "\212\304!\211\203	q\210\202\305!\210)\306\n!\211\203\"\307!\202(\310\311\312\n!\"*\207" [original-file buffer file filename get-file-buffer find-file ada-find-src-file-in-dir expand-file-name signal error-file-not-found file-name-nondirectory] 5 (#$ . 41439)])
#@61 Return the file number for FILE in the associated ali file.
(defalias 'ada-find-file-number-in-ali #[(file) "\302\303!!)q\210eb\210\304\305!\306 \210\304\307\310!P!\210\311	`\")\207" [file begin find-file-noselect ada-get-ali-file-name re-search-forward "^D" beginning-of-line "^D " file-name-nondirectory count-lines] 4 (#$ . 41927)])
#@212 Return the identlist around POS and switch to the .ali buffer.
The returned list represents the entity, and can be manipulated through the
macros `ada-name-of', `ada-line-of', `ada-column-of', `ada-file-of',...
(defalias 'ada-read-identifier #[(pos) "`dY\203\n\306\307!\210b\210\310\311x\210\311\312	\206\313\314 `\"8)\203&\306\315!\210\311\211\311f\316U\2034\317u\210\320\f!\203v\311fz\321U\203S\322\225fz\321U\204v\322\225f\323U\204v`Sf\316U\203j\324\322!G`\\f\316U\203j\325u\210\326\327\324\322!\327Q!\202\250\311\330	\206\202\313\314 `\"8)\203\213\306\331!\210\320
\332P!\203\227\306\333!\210\320\334!\203\244\324\322!\202\250\306\335!\210\336\211\322\227I\210\n\317\337\340\317`\"!I\210\n\341\337iT!I\210\n\330\342 I\210\n*\207" [pos parse-result identlist identifier ada-operator-re ada-keywords error "No identifier on point" "a-zA-Z0-9_<>" nil 4 parse-partial-sexp line-beginning-position "Inside comment" 34 1 looking-at 119 0 95 match-string -1 regexp-quote "\"" 3 "Inside string or character constant" "[^a-zA-Z_]" "No cross-reference available for reserved keyword" "[a-zA-Z0-9_]+" "No identifier around" [nil nil nil nil nil nil nil nil] number-to-string count-lines 2 buffer-file-name] 7 (#$ . 42275)])
#@120 Complete IDENTLIST with definition file and places where it is referenced.
Information is extracted from the ali file.
(defalias 'ada-get-all-references #[(identlist) "\306H\307\310	!!)\311\211q\210eb\210\312\311I\210\313\314\315\306H!P\311\316#\203L\212\313\317\311\316#)\313\320\321H\322\323H\324\325H\326\260\f\316#\211\203K\312\316I\210)\n\204\312eb\210\316\327\330\331\306H!!I\210\313\327H\332\321H\333\323H\334\260\311\316#\204\215\313\335\325H\336\321H\337\323H\334\260\311\316#\204\215\311\n\203\260\340 \210\341\342!\203\243\343y\210\340 \210\202\224\341\344\325H\345Q!\204\260\311\n\204\312\346!\203\277\316\202\312\347!\210\350\351\325H\"\210\340 \210\n\205`\352 {\212\321y\210\340 \210\341\353!\203\357
\354\321!P\321y\210\202\335)\355\356\311\316#\203\375\357\360\361\217\210\362
I)*\207" [identlist file declaration-found ali-buffer bound current-line 3 find-file-noselect ada-get-ali-file-name nil 7 re-search-forward "^X [0-9]+ " file-name-nondirectory t "^X " "^" 1 "." 2 "[ *]" 0 "[{[(<= ]?\\(.*\\)$" 4 number-to-string ada-find-file-number-in-ali "|\\([0-9]+[^0-9][0-9]+\\(\n\\.\\)? \\)*" "[^etpzkd<>=^]" "\\>" "^[0-9]+.[0-9]+[ *]" "[ <{=([]\\(.\\|\n\\.\\)*\\<" "[^0-9]" beginning-of-line looking-at "^\\." -1 "[0-9]+.[0-9]+[ *]" "[ <{=([]" ada-xref-find-in-modified-ali kill-buffer error "No declaration of %s found" point-at-eol "^\\.\\(.*\\)" match-string re-search-backward "^X [0-9]+ \\([a-zA-Z0-9_.-]+\\)" err (byte-code "\301\302\303\304!\305H\"I\207" [identlist 5 ada-get-ada-file-name match-string 1 3] 6) ((error-file-not-found (byte-code "\301@A\"\207" [err signal] 3)) (error (byte-code "\302!\210\303\304	!!\207" [ali-buffer err kill-buffer error error-message-string] 3))) 6] 9 (#$ . 43525)])
#@238 Find the matching position for IDENTLIST in the current ali buffer.
This function is only called when the file was not up-to-date, so we need
to make some guesses.
This function is disabled for operators, and only works for identifiers.
(defalias 'ada-xref-find-in-modified-ali #[(identlist) "\306\307H!\310U?\205H\311\312\313\307H!\314Q\315\211\307\211\211p23db\210\3163\311\317#\203i\212\320\321`\"\322 \210\323\324!\203L\325\321!2\325\326!\202Q\315\2112\316\327\311\317#\203e\330\331\f\325\321!2
F\"\210)\202(G\211\307U\203\200\332p!\210\333\334\307H\"\202F\321U\203\226eb\210\2114@@)Sy\202F\335 5\336\21667r\337\340!q\210p\341 \21076\311\21189\317\211:\317;<\342 \210\343\344!\210+\211=>\345\346!\210\345\347!\210\345\350!\210\345\351!\210\307\211?W\203\345\352\353?T\354?8A@\355H\"\326?88\355?88%!\210?T\211?\202\336)\356=!\210+\311\211\203-\n\250\203-\n\321W\204-\nV\2037\357\360\361!!\211\202*	q\210eb\210\nS8@Sy.\207" [identlist ali-buffer choice len line-ali col-ada string-to-char 0 34 nil "[ *]" regexp-quote " " "--" re-search-backward t count-lines 1 beginning-of-line looking-at "^\\([0-9]+\\).\\([0-9]+\\)[ *]" match-string 2 "^X [0-9]+ \\([a-zA-Z0-9._-]+\\)" add-to-list declist kill-buffer error "No declaration of %s recorded in .ali file" current-window-configuration ((set-window-configuration #1=#:wconfig)) get-buffer-create "*choice list*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook princ "Identifier is overloaded and Xref information is not up to date.\n" "Possible declarations are:\n\n" "  no.   in file                at line  col\n" "  ---   ---------------------     ----  ----\n" format "  %2d)    %-21s   %4s  %4s\n" ada-get-ada-file-name 3 internal-temp-output-buffer-show string-to-number read-from-minibuffer "Enter No. of your choice: " line-ada my-regexp x #1# default-directory #2=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #3=#:buf standard-output counter] 10 (#$ . 45314)])
#@185 Look in the .ali file for the definition of the identifier in IDENTLIST.
If OTHER-FRAME is non-nil, and `ada-xref-other-buffer' is non-nil,
opens a new window to show the declaration.
(defalias 'ada-find-in-ali #[(identlist &optional other-frame) "\306!\210\307H\310\311\310\211\211\312\313\"\210\314\315\"\314\316\"\317HEC\312\320\f#\203{\314\315\"\314\321\"\321\225\312\322\314\311\"P\"\203k\314\315\"eb\210\323\324\310\325\326!$\210\314\315!)\202o\317H\327
\n	EC\"\202)\327
\211@C\"\211\211@@)
@A@\316
@8
\203\340
\211@@)\315H\230\203\331
@A@\316H\230\203\331\330\316
@8!\330\321H!\230\203\331
\211A@)\211@
A@\316
8\310\211\202\225
A\211\204\230\331\321H\"\332p!\210\333\326\n!\326	!S%.\207" [identlist col line file start locations ada-get-all-references 6 nil 0 string-match "^\\([0-9]+\\)[a-zA-Z+*]\\([0-9]+\\)[ *]" match-string 1 2 5 "\\([0-9]+\\)[bc]\\(<[^>]+>\\)?\\([0-9]+\\)" 3 "[^{(<0-9]\\([0-9]+\\)|\\([^|bc]+\\)?" re-search-forward "^D \\([a-zA-Z0-9_.-]+\\)" t string-to-number append file-name-nondirectory ada-get-ada-file-name kill-buffer ada-xref-change-buffer ali-line file-number x other-frame] 7 (#$ . 47405)])
#@513 More general function for cross-references.
This function should be used when the standard algorithm that parses the
.ali file has failed, either because that file was too old or even did not
exist.
This function attempts to find the possible declarations for the identifier
anywhere in the object path.
This command requires the external `egrep' program to be available.

This works well when one is using an external library and wants to find
the declaration and documentation of the subprograms one is using.
(defalias 'ada-find-in-src-path #[(identlist &optional other-frame) "\306\307 \310\311HP\306\211\211\211<=r\312\313!q\210<\203?\314\315\316\317
\320Q!\321\316\322<@!!\323\260!c\210<A\211<\204 \324>eb\210\325
\306\324#\203\202\212\326 \210\306f\327U\204~\330\331!\210\332\333!\332\334!\335\336!\210\332\333!\fE\211=\235\204~\337=	C\"=)\202E\340\313!\210)=\204\222\341\342!\202\254=G\333U\203\323\343=\211?@@)!\211\203\301\344	\345=@A@!\345\334=@8!@%\210\202\315\341\346=\211?@@)\"\210\347\350!\202\254\351 A\352\216BCr\312\353!q\210p\354 \210CB\306\211DE\324\211F\324GH\355 \210\356\357!\210+\211IJ\360\361!\210\360\362!\210\360\363!\210\360\364!\210\311\211K=GW\203H\360\365\366KTK=8@K=8A@\334K=88%!\210KT\211K\202)\367I!\210+\306\211\203h\n\250\203h\n\333W\204h\n=GV\203r\345\370\371!!\211\202R*\nS\340\353!\210\343\n=8@!\211\203\240\344	\345\n=8A@!\345\334\n=88!@%\210\202\251\372\373\n=8@\"\210\347\350!.\207" [identlist file choice column line regexp nil ada-xref-get-obj-dir-field "[ *]" 0 get-buffer-create "*grep*" shell-command-to-string "grep -E -i -h " shell-quote-argument "^X|" "( |$)" " " file-name-as-directory "*.ali" t re-search-forward beginning-of-line 88 looking-at "\\([0-9]+\\).\\([0-9]+\\)" match-string 1 2 re-search-backward "^X [0-9]+ \\(.*\\)$" append kill-buffer error "No cross-reference found, please recompile your file" ada-find-src-file-in-dir ada-xref-change-buffer string-to-number "%s not found in src_dir" message "This is only a (good) guess at the cross-reference." current-window-configuration ((set-window-configuration #1=#:wconfig)) "*choice list*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook princ "Identifier is overloaded and Xref information is not up to date.\n" "Possible declarations are:\n\n" "  no.   in file                at line  col\n" "  ---   ---------------------     ----  ----\n" format "  %2d)    %-21s   %4s  %4s\n" internal-temp-output-buffer-show read-from-minibuffer "Enter No. of your choice: " signal error-file-not-found dirs list case-fold-search x other-frame #1# default-directory #2=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #3=#:buf standard-output counter] 10 (#$ . 48621)])
#@224 Select and display FILE, at LINE and COLUMN.
If we do not end on the same identifier as IDENTLIST, find the
closest match.  Kills the .ali buffer at the end.
If OTHER-FRAME is non-nil, creates a new frame to show the file.
(defalias 'ada-xref-change-buffer #[(file line column identlist &optional other-frame) "\306	\203\n\203\307!\210\202#\310!\211q\210\311!\210\202#\312!\210\313 \210eb\210\fSy\210\314
!\210\315\316H!?\205A\317\316H!)\207" [declaration-buffer ada-xref-other-buffer other-frame file line column nil find-file-other-frame find-file-noselect switch-to-buffer-other-window find-file push-mark move-to-column looking-at 0 ada-xref-search-nearest identlist] 4 (#$ . 51470)])
#@143 Search for NAME nearest to the position recorded in the Xref file.
Return the position of the declaration in the buffer, or nil if not found.
(defalias 'ada-xref-search-nearest #[(name) "`\305\211db\210\306\305\307#\203|\212\310\225b\210\311\312!)\204	\305\313\314 `\"\211\315\f\2061\313\314 `\"8)\206D\f\316\f\206B\313\314 `\"8))\204	\212\317\305w\210\320 \210\311\321!)\204c\212\322\307!\210\311\323!)\203	\203q\324`\nZ!W\203	`\324	\nZ!\202		\205\206\325\326!\210	b+\207" [diff newpos orgpos name parse-result nil search-backward t 0 looking-at "_" parse-partial-sexp line-beginning-position 3 4 "a-zA-Z_0-9" ada-goto-next-non-ws ":[^=]" ada-goto-next-word "\\<[pP][rR][oO][cC][eE][dD][uU][rR][eE]\\>\\|\\<[fF][uU][nN][cC][tT][iI][oO][nN]\\>\\|\\<[tT][yY][pP][eE]\\>\\|\\<[tT][aA][sS][kK]\\>\\|\\<[pP][aA][cC][kK][aA][gG][eE]\\>\\|\\<[bB][oO][dD][yY]\\>" abs message "ATTENTION: this declaration is only a (good) guess ..."] 4 (#$ . 52183)])
#@32 Go to the parent library file.
(defalias 'ada-goto-parent #[nil "\305 \210\306 \307\310!!)\311\211\211r\fq\210eb\210\312\313!\210\314\315!\316\317\"\2044\320\f!\210\321\322!\210\2029\314\315\"eb\210\312\323\324\325R!\210\314\315!\314\326!\320\f!\210)\327	!\212	\203q\330	!\210eb\210\312\331\332\333R!\210\314\315!\320p!\210)\330\n!,\207" [file ali-name body-name unit-name buffer ada-require-project-file buffer-file-name find-file-noselect ada-get-ali-file-name nil re-search-forward "^U \\([^ 	%]+\\)%[bs][ 	]+\\([^ 	]+\\)" match-string 1 string-match "\\(.*\\)\\.[^.]+" kill-buffer error "No parent unit !" "^W " "%s[ 	]+\\([^ 	]+\\)[ 	]+" "\\([^ 	\n]+\\)" 2 ada-find-ali-file-in-dir find-file "^U " "%s[ 	]+" "\\([^ 	]+\\)"] 5 (#$ . 53157) nil])
#@106 Determine the filename in which ADANAME is found.
This is a GNAT specific function that uses gnatkrunch.
(defalias 'ada-make-filename-from-adaname #[(adaname) "\304\305!\306\307 A\310\"r	q\210\311\312P\313	\313\n\314P&\210eeb\210\313\210`{\211\315\316O\317	!\210+\n\207" [cross-prefix krunch-buf adaname ada-krunch-args generate-new-buffer "*gkrunch*" plist-get ada-xref-current-project cross_prefix call-process "gnatkr" nil ".adb" 0 -4 kill-buffer] 8 (#$ . 53933)])
#@257 Create an Ada package body in the current buffer.
This function uses the `gnat stub' program to create the body.
This function typically is to be hooked into `ff-file-created-hook'.
If INTERACTIVE is nil, assume this is called from `ff-file-created-hook'.
(defalias 'ada-make-body-gnatstub #[(&optional interactive) "\306 \210\204\307\310!\210\311p!\210\312\310\211\"\210\313\314 @!\204%\314 \211A@)q\210\315 A\316!\317\n\320\"\313\314 @!$\321$!\322P%\317\n\323\"\211&\324
\325\230?\205T\326
\327Q\330\f\330$\260'\331\332!(r(q\210\333\334!\210\335 \210'c\210\336 \210)\337)\310(\310\340'&\210\341%!\203\226\342%!\210\311(!\202\232\343(!.\207" [interactive x project-plist ada-gnatstub-opts gnatstub-opts gpr-file ada-require-project-file set-buffer-modified-p nil kill-buffer save-some-buffers buffer-file-name buffer-list ada-xref-current-project ada-treat-cmd-string plist-get gpr_file file-name-sans-extension ".adb" cross_prefix "gnat stub" "" " -P\"" "\"" " " get-buffer-create "*gnat stub*" compilation-minor-mode 1 erase-buffer newline call-process "-c" file-exists-p find-file display-buffer filename output cross-prefix gnatstub-cmd buffer shell-file-name] 8 (#$ . 54416) "p"])
#@158 Function called by `ada-mode-hook' to initialize the ada-xref.el package.
For instance, it creates the gnat-specific menus, sets some hooks for
`find-file'.
(defalias 'ada-xref-initialize #[nil "\300\301\302\"\210\300\301\302\303#\210\304\301\305\306\303$\210\307\310\311\"\210\312 \207" [remove-hook ff-file-created-hook ada-make-body t add-hook ada-make-body-gnatstub nil add-to-list completion-ignored-extensions ".ali" ada-xref-update-project-menu] 5 (#$ . 55641)])
(byte-code "\300\301\302\"\210\303\304\305\306#\210\303\304\307\310#\210\311\312!\207" [add-hook ada-mode-hook ada-xref-initialize put error-file-not-found error-conditions (error ada-mode-errors error-file-not-found) error-message "File not found in src-dir (check project file): " provide ada-xref] 4)

MMCT - 2023