;ELC ;;; compiled by roland@churchy.gnu.ai.mit.edu on Fri Jun 2 22:56:57 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/ada-mode.el ;;; emacs version 19.28.92.3. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.28.90"))) (error "`ada-mode.el' was compiled for Emacs 19.29 or later")) #@39 *Defines the size of Ada indentation. (defvar ada-indent 3 (#$ . -484)) #@60 *# of columns to indent the continuation of a broken line. (defvar ada-broken-indent 2 (#$ . -562)) #@34 *# of columns to indent a label. (defvar ada-label-indent -4 (#$ . -668)) #@110 *# of columns to indent a statement end keyword in a separate line. Examples are 'is', 'loop', 'record', ... (defvar ada-stmt-end-indent 0 (#$ . -749)) #@72 *Defines the indentation for 'when' relative to 'exception' or 'case'. (defvar ada-when-indent 3 (#$ . -907)) #@68 *Defines the indentation for 'record' relative to 'type' or 'use'. (defvar ada-indent-record-rel-type 3 (#$ . -1023)) #@54 *If non-nil, comment-lines get indented as ada-code. (defvar ada-indent-comment-as-code t (#$ . -1147)) #@78 *If non-nil, 'is separate' or 'is abstract' on a separate line are indented. (defvar ada-indent-is-separate t (#$ . -1257)) #@88 *If non-nil, following lines get indented according to the innermost open parenthesis. (defvar ada-indent-to-open-paren t (#$ . -1387)) #@55 *Search that many characters for an open parenthesis. (defvar ada-search-paren-char-count-limit 3000 (#$ . -1529)) #@408 *Control behaviour of the TAB key. Must be one of 'indent-rigidly, 'indent-auto, 'gei, 'indent-af or 'always-tab. 'indent-rigidly : always adds ada-indent blanks at the beginning of the line. 'indent-auto : use indentation functions in this file. 'gei : use David Kgedal's Generic Indentation Engine. 'indent-af : use Gary E. Barnes' ada-format.el 'always-tab : do indent-relative. (defvar ada-tab-policy (quote indent-auto) (#$ . -1651)) #@88 *If non-nil, ada-move-to-start moves point to the subprog-declaration, not to 'begin'. (defvar ada-move-to-declaration nil (#$ . -2121)) #@37 *Suffix of Ada specification files. (defvar ada-spec-suffix ".ads" (#$ . -2264)) #@28 *Suffix of Ada body files. (defvar ada-body-suffix ".adb" (#$ . -2351)) #@37 *Do we program in 'ada83 or 'ada95? (defvar ada-language-version (quote ada95) (#$ . -2429)) #@98 *downcase-word, upcase-word, ada-loose-case-word or capitalize-word to adjust ada keywords case. (defvar ada-case-keyword (quote downcase-word) (#$ . -2528)) #@100 *downcase-word, upcase-word, ada-loose-case-word or capitalize-word to adjust ada identifier case. (defvar ada-case-identifier (quote ada-loose-case-word) (#$ . -2693)) #@100 *downcase-word, upcase-word, ada-loose-case-word or capitalize-word to adjust ada identifier case. (defvar ada-case-attribute (quote capitalize-word) (#$ . -2869)) #@142 *Non-nil automatically changes casing of preceeding word while typing. Casing is done according to ada-case-keyword and ada-case-identifier. (defvar ada-auto-case t (#$ . -3040)) #@72 *If non-nil, remove-trailing-spaces and untabify buffer before saving. (defvar ada-clean-buffer-before-saving nil (#$ . -3225)) #@117 *List of functions to call when Ada Mode is invoked. This is a good place to add Ada environment specific bindings. (defvar ada-mode-hook nil (#$ . -3360)) #@56 *External pretty printer to call from within Ada Mode. (defvar ada-external-pretty-print-program "aimap" (#$ . -3522)) #@68 *Directory to store the temporary file for the Ada pretty printer. (defvar ada-tmp-directory "/tmp/" (#$ . -3647)) #@74 *This is inserted in the first columns when filling a comment paragraph. (defvar ada-fill-comment-prefix "-- " (#$ . -3768)) #@117 *This is inserted at the end of each line when filling a comment paragraph with ada-fill-comment-paragraph postfix. (defvar ada-fill-comment-postfix " --" (#$ . -3900)) #@118 *Argument of gnatk8, a string containing the max number of characters. Set to 0, if you dont use crunched filenames. (defvar ada-krunch-args "0" (#$ . -4076)) #@32 Abbrev table used in Ada mode. (defvar ada-mode-abbrev-table nil (#$ . 4241)) (define-abbrev-table (quote ada-mode-abbrev-table) nil) #@33 Local keymap used for ada-mode. (defvar ada-mode-map nil (#$ . 4381)) #@54 Syntax table to be used for editing Ada source code. (defvar ada-mode-syntax-table nil (#$ . 4457)) #@56 Syntax table for Ada, where `_' is a word constituent. (defvar ada-mode-symbol-syntax-table nil (#$ . 4563)) #@51 regular expression for looking at Ada83 keywords. (defconst ada-83-keywords "\\<\\(abort\\|abs\\|accept\\|access\\|all\\|and\\|array\\|at\\|begin\\|body\\|case\\|constant\\|declare\\|delay\\|delta\\|digits\\|do\\|else\\|elsif\\|end\\|entry\\|exception\\|exit\\|for\\|function\\|generic\\|goto\\|if\\|in\\|is\\|limited\\|loop\\|mod\\|new\\|not\\|null\\|of\\|or\\|others\\|out\\|package\\|pragma\\|private\\|procedure\\|raise\\|range\\|record\\|rem\\|renames\\|return\\|reverse\\|select\\|separate\\|subtype\\|task\\|terminate\\|then\\|type\\|use\\|when\\|while\\|with\\|xor\\)\\>" (#$ . 4678)) #@51 regular expression for looking at Ada95 keywords. (defconst ada-95-keywords "\\<\\(abort\\|abs\\|abstract\\|accept\\|access\\|aliased\\|all\\|and\\|array\\|at\\|begin\\|body\\|case\\|constant\\|declare\\|delay\\|delta\\|digits\\|do\\|else\\|elsif\\|end\\|entry\\|exception\\|exit\\|for\\|function\\|generic\\|goto\\|if\\|in\\|is\\|limited\\|loop\\|mod\\|new\\|not\\|null\\|of\\|or\\|others\\|out\\|package\\|pragma\\|private\\|procedure\\|protected\\|raise\\|range\\|record\\|rem\\|renames\\|requeue\\|return\\|reverse\\|select\\|separate\\|subtype\\|tagged\\|task\\|terminate\\|then\\|type\\|until\\|use\\|when\\|while\\|with\\|xor\\)\\>" (#$ . 5277)) #@49 regular expression for looking at Ada keywords. (defvar ada-keywords ada-95-keywords (#$ . 5936)) #@63 Variable to save key binding of RET when casing is activated. (defvar ada-ret-binding nil (#$ . 6040)) #@63 Variable to save key binding of LFD when casing is activated. (defvar ada-lfd-binding nil (#$ . 6149)) #@34 Regexp matching Ada identifiers. (defconst ada-ident-re "[a-zA-Z0-9_\\.]+" (#$ . 6258)) #@47 Regexp used to find Ada procedures/functions. (defvar ada-procedure-start-regexp "^[ ]*\\(procedure\\|function\\|task\\)[ \n]+\\([a-zA-Z0-9_\\.]+\\)" (#$ . 6352)) #@34 Regexp used to find Ada packages (defvar ada-package-start-regexp "^[ ]*\\(package\\)" (#$ . 6523)) #@42 Regexp for keywords starting ada-blocks. (defvar ada-block-start-re "\\<\\(begin\\|select\\|declare\\|private\\|or\\|generic\\|exception\\|loop\\|else\\|\\(\\(limited\\|abstract\\|tagged\\)[ ]+\\)*record\\)\\>" (#$ . 6630)) #@118 Regexp of possible ends for a non-broken statement. 'end' means that there has to start a new statement after these. (defvar ada-end-stmt-re "\\(;\\|=>\\|^[ ]*separate[ ]+([a-zA-Z0-9_\\.]+)\\|\\<\\(begin\\|else\\|record\\|loop\\|select\\|do\\|^[ ]*package[ a-zA-Z0-9_\\.]+is\\|^[ ]*exception\\|declare\\|generic\\|private\\)\\>\\)" (#$ . 6862)) #@33 Regexp for the start of a loop. (defvar ada-loop-start-re "\\<\\(for\\|while\\|loop\\)\\>" (#$ . 7218)) #@39 Regexp for the start of a subprogram. (defvar ada-subprog-start-re "\\<\\(procedure\\|protected\\|package[ ]+body\\|function\\|task\\|accept\\|entry\\)\\>" (#$ . 7328)) (defalias 'ada-xemacs #[nil "\n\" \n\"" [string-match "Lucid" emacs-version "XEmacs"] 3]) #@39 Create the syntax table for ada-mode. (defalias 'ada-create-syntax-table #[nil "  ! # # # # # # # # # # # # # # # # # # # # # # # # # # # !((#" [make-syntax-table ada-mode-syntax-table set-syntax-table modify-syntax-entry 37 "\"" 34 35 "$" 58 "." 59 38 124 43 42 47 61 60 62 36 91 93 123 125 46 92 39 45 ". 12" 12 "> " 10 95 "_" 40 "()" 41 ")(" copy-syntax-table ada-mode-symbol-syntax-table "w"] 4 (#$ . 7601)]) #@2580 Ada Mode is the major mode for editing Ada code. Bindings are as follows: (Note: 'LFD' is control-j.) Indent line '\[ada-tab]' Indent line, insert newline and indent the new line. '\[newline-and-indent]' Re-format the parameter-list point is in '\[ada-format-paramlist]' Indent all lines in region '\[ada-indent-region]' Call external pretty printer program '\[ada-call-pretty-printer]' Adjust case of identifiers and keywords in region '\[ada-adjust-case-region]' Adjust case of identifiers and keywords in buffer '\[ada-adjust-case-buffer]' Call EXTERNAL pretty printer (if you have one) '\[ada-call-pretty-printer]' Fill comment paragraph '\[ada-fill-comment-paragraph]' Fill comment paragraph and justify each line '\[ada-fill-comment-paragraph-justify]' Fill comment paragraph, justify and append postfix '\[ada-fill-comment-paragraph-postfix]' Next func/proc/task '\[ada-next-procedure]' Previous func/proc/task '\[ada-previous-procedure]' Next package '\[ada-next-package]' Previous package '\[ada-previous-package]' Goto matching start of current 'end ...;' '\[ada-move-to-start]' Goto end of current block '\[ada-move-to-end]' Comments are handled using standard GNU Emacs conventions, including: Start a comment '\[indent-for-comment]' Comment region '\[comment-region]' Uncomment region '\[ada-uncomment-region]' Continue comment on next line '\[indent-new-comment-line]' If you use imenu.el: Display index-menu of functions & procedures '\[imenu]' If you use find-file.el: Switch to other file (Body <-> Spec) '\[ff-find-other-file]' or '\[ff-mouse-find-other-file] Switch to other file in other window '\[ada-ff-other-window]' or '\[ff-mouse-find-other-file-other-window] If you use this function in a spec and no body is available, it gets created with body stubs. If you use ada-xref.el: Goto declaration: '\[ada-point-and-xref]' on the identifier or '\[ada-goto-declaration]' with point on the identifier Complete identifier: '\[ada-complete-identifier]' Execute Gnatf: '\[ada-gnatf-current]' (defalias 'ada-mode #[nil " !!!!!\n!\f!!!!!!i!l  {\"\" !(=*+(=-+. " [kill-all-local-variables make-local-variable require-final-newline t comment-start "-- " comment-end "" comment-start-skip "--+[ ]*" indent-line-function ada-indent-current-function fill-column 75 comment-column 40 parse-sexp-ignore-comments case-fold-search fill-paragraph-function ada-fill-comment-paragraph font-lock-defaults (ada-font-lock-keywords nil t ((95 . "w"))) ada-mode major-mode "Ada" mode-name blink-matching-paren use-local-map ada-mode-map ada-mode-syntax-table set-syntax-table ada-create-syntax-table ada-clean-buffer-before-saving add-hook local-write-file-hooks ada-remove-trailing-spaces ada-untabify-buffer ada-add-ada-menu run-hooks ada-mode-hook ada-language-version ada83 ada-83-keywords ada-keywords ada95 ada-95-keywords ada-auto-case ada-activate-keys-for-case] 3 (#$ . 8143) nil]) #@66 Fills current comment paragraph and justifies each line as well. (defalias 'ada-fill-comment-paragraph-justify #[nil "!" [ada-fill-comment-paragraph t] 2 (#$ . 11737) nil]) #@117 Fills current comment paragraph and justifies each line as well. Prompts for a postfix to be appended to each line. (defalias 'ada-fill-comment-paragraph-postfix #[nil "\"" [ada-fill-comment-paragraph t] 3 (#$ . 11920) nil]) #@270 Fills the current comment paragraph. If JUSTIFY is non-nil, each line is justified as well. If POSTFIX and JUSTIFY are non-nil, ada-fill-comment-postfix is appended to each filled and justified line. If ada-indent-comment-as code is non-nil, the paragraph is idented. (defalias 'ada-fill-comment-paragraph #[(&optional justify postfix) "  ! --\" ==\"! !Z!Zy Ey  b !}!}y hy i ) b\fP#!)by#!)\" Z#GZGZ\"S #\" #GG\\\\\\\"by )b j#cS#6#P!y j) sssbS#_P!K\"iZGZ\"c)Sb!)! b.߇" [point-marker nil "" fill-prefix ada-fill-comment-old-postfix indent end-2 end begin opos ada-in-comment-p error "not inside comment" justify postfix read-from-minibuffer "enter new postfix string: " ada-fill-comment-postfix "enter already existing postfix string: " message "filling comment paragraph ..." back-to-indentation looking-at "--.*$" "--[ ]*$" 1 0 -1 ada-indent-current re-search-forward "\n" t replace-match "^[ ]*--[ ]*" fill-column ada-fill-comment-prefix fill-region -2 insert-char 10 delete-char "filling comment paragraph ... done"] 7 (#$ . 12156) "P"]) #@315 Calls the external Pretty Printer. The name is specified in ada-external-pretty-print-program. Saves the current buffer in a directory specified by ada-tmp-directory, starts the Pretty Printer as external process on that file and then reloads the beautyfied program in the buffer and cleans up ada-tmp-directory. (defalias 'ada-call-pretty-printer #[nil "p`!!\f!P \n ! !!!!! %!O\"T!!!n!\n! !r! ! !! b." [buffer-file-name nil file-name-directory file-name-nondirectory ada-tmp-directory tmp-file-with-directory filename-without-path file-path mesgbuf orgpos curbuf filename-with-path message "saving current buffer to temporary file ..." write-file auto-save-mode "saving current buffer to temporary file ... done" "running external pretty printer ..." get-buffer-create "Pretty Printer Messages" call-process ada-external-pretty-print-program t buffer-modified-p display-buffer kill-buffer "running external pretty printer ... done" y-or-n-p "Really replace current buffer with pretty printer output ? " set-buffer-modified-p find-file "old buffer contents restored" delete-file set-visited-file-name] 9 (#$ . 13487) nil]) (defalias 'ada-after-keyword-p #[nil "v`eU!!)? P!)" [-1 backward-char 1 looking-at "_" ada-keywords "[^_]"] 3]) (defalias 'ada-after-char-p #[nil "`V u!)" [2 -2 looking-at "'"] 2]) #@187 Adjust the case of the word before the just-typed character, according to ada-case-keyword and ada-case-identifier If FORCE-IDENTIFIER is non-nil then also adjust keyword as identifier. (defalias 'ada-adjust-case #[(&optional force-identifier) "u`VU U U U`Sfz=Uv`eU/!!)> !U\nP P\f!U !u" [-1 1 ada-in-string-p ada-in-comment-p ada-after-char-p 119 backward-char looking-at "'" ada-case-attribute force-identifier ada-after-keyword-p ada-case-keyword ada-case-identifier] 2 (#$ . 14917)]) (defalias 'ada-adjust-case-interactive #[(arg) "= =2c ! =% E =E E => E!! =Q!S )" [last-command-char lastk 10 13 " " ada-adjust-case delete-backward-char 1 ada-lfd-binding ada-ret-binding 9 ada-tab self-insert-command prefix-numeric-value arg 95 t] 4 nil "P"]) (defalias 'ada-activate-keys-for-case #[nil "! !\"" [ada-ret-binding key-binding " " ada-lfd-binding "\n" mapcar #[(key) " !#" [define-key ada-mode-map char-to-string key ada-adjust-case-interactive] 4] (96 126 33 64 35 36 37 94 38 42 40 41 45 61 43 91 123 93 125 95 92 124 59 58 39 34 60 44 46 62 63 47 10 32 13)] 3]) #@123 Capitalizes the first and the letters following _ ARG is ignored, it's there to fit the standard casing functions' style. (defalias 'ada-loose-case-word #[(&optional arg) "`x \n#' g\"!\nb*" [t first pos "a-zA-Z0-9_" nil search-forward "_" insert-char 1 delete-char] 4 (#$ . 16116)]) #@129 Adjusts the case of all identifiers and keywords in the region. ATTENTION: This function might take very long for big regions ! (defalias 'ada-adjust-case-region #[(from to) "Ŏ!b #X` Z` Z\"!u `P!w\nM!R!\fb!." [nil reldiff keywordp end begin ((set-syntax-table ada-mode-syntax-table)) set-syntax-table ada-mode-symbol-syntax-table to re-search-backward "[^a-zA-Z0-9_]\\([a-zA-Z0-9_]+\\)[^a-zA-Z0-9_]" from t message format "adjusting case ... %5d characters left" 1 ada-in-string-or-comment-p looking-at ada-keywords "[^_]" "a-zA-Z0-9_" ada-case-keyword -1 ada-case-identifier "adjusting case ... done"] 5 (#$ . 16436) "*r"]) #@135 Adjusts the case of all identifiers and keywords in the whole buffer. ATTENTION: This function might take very long for big buffers ! (defalias 'ada-adjust-case-buffer #[nil "ed\"" [ada-adjust-case-region] 3 (#$ . 17133) "*"]) #@281 Re-formats a parameter-list. ATTENTION: 1) Comments inside the list are killed ! 2) If the syntax is not correct (especially, if there are semicolons missing), it can get totally confused ! In such a case, use 'undo', correct the syntax and try again. (defalias 'ada-format-paramlist #[nil "Ŏ! !Q#$!`!`!$u`\fT \"\f\nS|\fb !-" [nil paramlist delend end begin ((set-syntax-table ada-mode-syntax-table)) set-syntax-table ada-mode-symbol-syntax-table ada-in-paramlist-p error "not in parameter list" ada-search-ignore-string-comment "\\<\\(" "procedure\\|function\\|body\\|package\\|task\\|entry\\|accept" "\\)\\>" t "(" backward-char 1 forward-sexp delete-char -1 "[^ \n]" ada-scan-paramlist ada-insert-paramlist] 5 (#$ . 17369) nil]) (defalias 'ada-scan-paramlist #[(begin end) " b ` $4\n@\nA7  b!ДЕ{C\f$`\f$:C\" b\f$:C\" b\f$:C\" b !v !ؔؕ{C\"ؕb\f$\n@\f{C\"C\"\f = b!." [nil t match-cons semipos epos apos notend param paramlist begin ada-goto-next-non-ws ada-search-ignore-string-comment "[ \n]*;" end looking-at "\\([a-zA-Z0-9_, \n]*[a-zA-Z0-9_]\\)[ \n]*:[^=]" 1 ":" append "\\" "\\" "\\" "\\<\\(in\\|out\\|accept\\)\\>" "\\<[a-zA-Z0-9_\\.]+\\>" 0 ":=" reverse] 8]) (defalias 'ada-insert-paramlist #[(paramlist) "G‰ \n \f\fU\fS\f \f8@G X< >  \n\f88G XU W\n\nd\f8A@q\f88~\f88#!) ` \f!)jciG\f\fUi\fS\f \f8@c  \\\\jci\f8A@c\f88c\f88 c!!\f88!c\f88-ci\f88c\f88P \n\\\\j\f88c\fUcc jc!?r .\n" [paramlist 0 nil firstcol orgpoint column acceptp outp inp temp typlen parlen i 4 2 3 re-search-backward "^.\\|[^ ]" t looking-at "^." ada-indent-current newline delete-horizontal-space ada-indent-function "(" 1 ": " "in " " " "out " " " "accept " 5 ";" ")" "[ ]*[;\n]" ada-indent-newline-indent] 11]) #@72 Moves point to the matching start of the current end ... around point. (defalias 'ada-move-to-start #[nil "` !! P!!!&!!2!P!P`PP!P P`)b!*" [pos ((set-syntax-table ada-mode-syntax-table)) set-syntax-table ada-mode-symbol-syntax-table message "searching for block start ..." ada-in-string-or-comment-p looking-at "[ ]*\\" backward-word 1 error "not on end ...;" ada-goto-matching-start ada-move-to-declaration "\\" ada-goto-matching-decl-start "searching for block start ... done"] 2 (#$ . 19575) nil]) #@111 Moves point to the matching end of the current block around point. Moves to 'begin' if in a declarative part. (defalias 'ada-move-to-end #[nil "`Ď!!u !)'! 0!);! \\!\\v\\!\\!?\\!)g! p!){!!!)!!)!!`) b!," [nil packdecl decstart pos ((set-syntax-table ada-mode-syntax-table)) set-syntax-table ada-mode-symbol-syntax-table message "searching for block end ..." 1 ada-goto-previous-word looking-at "\\" ada-goto-matching-end ada-goto-stmt-start "\\\\|\\" ada-search-ignore-string-comment "\\" "[^ \n ]" backward-char "\\" "\\" 0 ada-goto-matching-decl-start t "\\" "searching for block end ... done"] 3 (#$ . 20159) nil]) #@59 Indents the region using ada-indent-current on each line. (defalias 'ada-indent-region #[(beg end) "b \" \"\" ! \n͏!," [beg 0 count-lines end format "indenting %4d lines %%4d lines remaining ..." copy-marker endmark msg lines-remaining block-done err (byte-code "`W- V \"!! y TS‡" [endmark block-done 9 message format msg lines-remaining 0 looking-at "^$" ada-indent-current 1] 4) ((error (byte-code "e`\"T\f#\"" [error format "line %d: %s" count-lines err nil] 6))) message "indenting ... done"] 7 (#$ . 20975) "*r"]) #@76 Indents the current line, inserts a newline and then indents the new line. (defalias 'ada-indent-newline-indent #[nil " `Ǝ! !))\nj!?* *" [nil orgpoint column ada-indent-current newline delete-horizontal-space ((set-syntax-table ada-mode-syntax-table)) set-syntax-table ada-mode-symbol-syntax-table ada-indent-function looking-at "[ ]*$"] 2 (#$ . 21561) "*"]) #@465 Indents current line as Ada code. This works by two steps: 1) It moves point to the end of the previous code-line. Then it calls the function to calculate the indentation for the following line as if a newline would be inserted there. The calculated column # is saved and the old position of point is restored. 2) Then another function is called to calculate the indentation for the current line, based on the previously calculated column #. (defalias 'ada-indent-current #[nil "\n! É \n!/y`\n \n!)2)U ! j bi WU ." [((set-syntax-table ada-mode-syntax-table)) set-syntax-table ada-mode-symbol-syntax-table nil point-marker t prevline prev-indent cur-indent orgpoint line-end ada-goto-prev-nonblank-line 1 ada-indent-function back-to-indentation ada-get-current-indent delete-horizontal-space current-indentation] 5 (#$ . 21957) nil]) (defalias 'ada-get-current-indent #[(prev-indent) "\f= = =#8!8#8!8 \\) !w!!q !)q#i!?)q @b )!! )!! \\)! !)# )!# )! !)# !\\)!5`b !1!!\n#!,1 !\\)!Q!G M!)!*~b`)!!)~ -\\) !\\)!#!# 2\\) ! )  )!-Z[Z!!!!!)iT)! !\\)!Du !)D!>!>i@)ʁ@!`A XB\\ʁC!m!xʁD!u!i)ʁE!F +" [nil match-cons pos column ada-indent-to-open-paren ada-in-paramlist-p ada-in-open-paren-p ada-search-ignore-string-comment "[^ ]" t looking-at "\n" "[^ \n]" ">" ada-broken-indent "\\" ada-goto-matching-start 1 "\\" back-to-indentation ada-loop-start-re current-indentation "\\" "\\" ada-when-indent "\\" ada-goto-previous-word "\\" prev-indent "\\" "\\" "\\" "\\\\|\\" ada-stmt-end-indent 0 ada-goto-stmt-start "\\\\|\\" "\\" ada-goto-matching-decl-start message "no matching declaration start" "\\" ada-indent-is-separate ada-goto-next-non-ws "\\\\|\\" ada-indent "\\" "\\<\\(type\\|use\\)\\>" "\\" "\\" ada-indent-record-rel-type ada-looking-at-semi-or ada-looking-at-semi-private "\\<\\(new\\|abstract\\|separate\\)\\>" "\\" forward-sexp -1 "(" backward-sexp 2 "\\" "\\" "\\<\\(package\\|function\\|procedure\\)\\>" "generic" "\\<[a-zA-Z0-9_]+[ \n]*:[^=]" ada-in-decl-p ada-label-indent "\\<[a-zA-Z0-9_]+[ \n]*" ")" "--" ada-indent-comment-as-code] 4]) (defalias 'ada-indent-function #[(&optional nomove) "`   `=(( 7 7!B!N!Z!e!q!|!!!!!!\n+" [nil stmt-start func orgpoint ada-in-paramlist-p ada-get-indent-paramlist nomove ada-goto-stmt-start ada-get-indent-nochange ada-indent-to-open-paren ada-in-open-paren-p ada-get-indent-open-paren looking-at "\\" ada-get-indent-end ada-loop-start-re ada-get-indent-loop ada-subprog-start-re ada-get-indent-subprog "\\" ada-block-start-re ada-get-indent-block-start "\\" ada-get-indent-type "\\<\\(els\\)?if\\>" ada-get-indent-if "\\" ada-get-indent-case "\\" ada-get-indent-when "--" ada-get-indent-comment "[a-zA-Z0-9_]+[ \n]*:[^=]" ada-get-indent-label "\\" ada-get-indent-noindent] 3]) (defalias 'ada-get-indent-open-paren #[(orgpoint) " " [ada-in-open-paren-p] 1]) (defalias 'ada-get-indent-nochange #[(orgpoint) "y )" [-1 current-indentation] 1]) (defalias 'ada-get-indent-paramlist #[(orgpoint) "$!ƕbi<!,$Ab i<$Ab i\n\\)" [ada-search-ignore-string-comment "[^ \n]" t nil looking-at "(" 0 ";" "(\\|;" ada-goto-next-non-ws ada-broken-indent] 5]) (defalias 'ada-get-indent-end #[(orgpoint) " #)v !X˔˕{!!/v !<˕b Q!RQ!R! )!t˔˕{!\n! )!!!i! ) \\ \\*" [nil indent defun-name ada-search-ignore-string-comment ";" orgpoint 1 ada-goto-next-non-ws looking-at "\\<\\(loop\\|select\\|if\\|case\\|record\\)\\>" ada-check-matching-start 0 "\\<\\(loop\\|record\\)\\>" ada-goto-stmt-start "[a-zA-Z0-9_]+[ \n ]+:" "\\<\\(" "loop\\|select\\|if\\|case\\|" "record\\|while\\|type\\)\\>" backward-word current-indentation ada-ident-re ada-goto-matching-start ada-check-defun-name "\\" ada-goto-matching-decl-start t ada-broken-indent] 4]) (defalias 'ada-get-indent-case #[(orgpoint) " `#). @b\n#%! \f\\)a#)G Ab  \\a#)\\ \\a  \\+" [current-indentation nil opos match-cons cur-indent ada-search-ignore-string-comment "[ \n]+=>" orgpoint "\\" t error "missing 'when' between 'case' and '=>'" ada-indent ada-broken-indent "\\" ada-when-indent] 4]) (defalias 'ada-get-indent-when #[(orgpoint) "  # \\ \\)" [current-indentation cur-indent ada-search-ignore-string-comment "[ \n]+=>" nil orgpoint ada-indent ada-broken-indent] 4]) (defalias 'ada-get-indent-if #[(orgpoint) " $G !) v#@\n@b Z!!\\\\K  \\K \\*" [current-indentation nil match-cons cur-indent ada-search-but-not "\\" "\\[ \n]+\\" orgpoint back-to-indentation looking-at 1 ada-search-ignore-string-comment "[^ \n]" ada-indent ada-indent-function t ada-broken-indent] 5]) (defalias 'ada-get-indent-block-start #[(orgpoint) " v#@)$\nb!!)) \n\\*" [current-indentation nil pos cur-indent 1 ada-search-ignore-string-comment "[^ \n]" orgpoint ada-indent-function t ada-indent] 4]) (defalias 'ada-get-indent-subprog #[(orgpoint) " `\n#)%Ab8\n#4 8\nb P\n$)P\\ v\n#)v@bP\"\n! \n#) !\n!\n#)\\-" [nil current-indentation 0 fstart addind foundis cur-indent match-cons ada-search-ignore-string-comment "\\\\|\\" orgpoint t "[^ \n]" ada-goto-next-non-ws ada-indent "\\<\\(separate\\|new\\|abstract\\)\\>" ada-subprog-start-re "\\|\\" ada-get-indent-noindent ada-indent-function ";" ada-broken-indent] 5]) (defalias 'ada-get-indent-noindent #[(orgpoint) " #) \\" [ada-search-ignore-string-comment ";" nil orgpoint current-indentation ada-broken-indent] 4]) (defalias 'ada-get-indent-label #[(orgpoint) " !Ab#)$ @b!#)? @b \n\\)#)Z S\n\n Z#)| q\n\\\n [\\\\ \n\\\n Z*" [nil current-indentation cur-indent match-cons ada-search-ignore-string-comment ":" ada-loop-start-re orgpoint ada-get-indent-loop "\\" ada-indent ";" ada-in-decl-p ada-label-indent "[^ \n]" ada-broken-indent] 4]) (defalias 'ada-get-indent-loop #[(orgpoint) "` #) ! !!˕b` #`!?`wU?` #`!?`!` #)t\nl\n@b \\ #)\n@b !) b \\ \\! #)\n@b !) b \\ \\*" [nil pos match-cons ada-search-ignore-string-comment ";" orgpoint current-indentation looking-at "loop\\>" ada-get-indent-block-start "for\\>" 0 "[^ /n/t]" backward-char 1 "_a-zA-Z0-9'" "\\" "\\" t ada-indent "\\" back-to-indentation ada-broken-indent "while\\>"] 4]) (defalias 'ada-get-indent-type #[(orgpoint) "\f#% %!%v% %!)2 @b y\f#)J @b  \\y\f#)Y y\f#h\f#?)t  \\y \\)" [nil match-dat ada-search-ignore-string-comment "\\" orgpoint ada-goto-next-non-ws looking-at "\\" 1 ";" current-indentation ada-indent "\\" "[^ \n]" ada-broken-indent] 4]) (defalias 'ada-goto-stmt-start #[(&optional limit) "`\f!,\nAb #)\f!\n&\nAb Ceb #@\n@bC b`*" [nil orgpoint match-dat ada-search-prev-end-stmt limit ada-search-ignore-string-comment "[^ \n]" ada-goto-next-non-ws] 5]) (defalias 'ada-search-prev-end-stmt #[(&optional limit) " < #< @b !/ !)5Ɖ! A +" [nil found pos match-dat ada-search-ignore-string-comment ada-end-stmt-re t limit ada-in-open-paren-p looking-at "\\<\\(record\\|loop\\|select\\)\\>" ada-goto-previous-word "\\" backward-word 1] 5]) (defalias 'ada-goto-next-non-ws #[(&optional limit) "\f$ @b\f?!)" [nil match-cons ada-search-ignore-string-comment "[^ \n]" limit t error "no more non-ws"] 6]) (defalias 'ada-goto-stmt-end #[(&optional limit) " # `" [ada-search-ignore-string-comment ada-end-stmt-re nil limit] 4]) (defalias 'ada-goto-previous-word #[nil "`$\nAbx` b*" [nil orgpoint match-cons ada-search-ignore-string-comment "[^ \n]" t "_a-zA-Z0-9"] 5]) (defalias 'ada-check-matching-start #[(keyword) "!\fQ!?\fQ!" [ada-goto-matching-start 0 looking-at "\\<" keyword "\\>" error "matching start is not '" "'"] 4]) (defalias 'ada-check-defun-name #[(defun-name) "! ! .v!!&v!!\fQ!?D`!`{P!)" [looking-at "\\<\\(accept\\|package\\|task\\|protected\\)\\>" ada-goto-matching-decl-start "\\" ada-goto-stmt-start 2 backward-word 1 "\\<\\(body\\|type\\)\\>" forward-sexp backward-sexp "\\<" defun-name "\\>" error "matching defun has different name: "] 5]) (defalias 'ada-goto-matching-decl-start #[(&optional noerror nogeneric) "UQ\"!5\"! T !ES ! x!!)ju!x !){ǔb S ! !) ǔb \f! T U !\"!?!," [1 nil t flag first pos nest-count 0 ada-search-ignore-string-comment "\\<\\(" "is\\|separate\\|end\\|declare\\|new\\|begin\\|generic" "\\)\\>" looking-at "end" ada-goto-matching-start noerror "begin" "declare\\|generic" "is" ada-goto-previous-word "a-zA-Z0-9_.'" backward-char ")" backward-sexp "\\" "new" ada-subprog-start-re error "no matching procedure/function/task/declare/package"] 5]) (defalias 'ada-goto-matching-start #[(&optional nest-level noerror gotothen) " ‰\fQ\"!( T!L` !B T`E S) b!g! !c S)!v !} S) S U\f!‰# !)b!#!`?!+" [nest-level 0 nil pos found nest-count ada-search-ignore-string-comment "\\<\\(" "end\\|loop\\|select\\|begin\\|case\\|do\\|" "if\\|task\\|package\\|record\\|protected\\)\\>" t looking-at "end" "loop\\|select\\|record\\|case\\|if" ada-goto-previous-word "\\" "package" "\\" ada-goto-next-non-ws "\\" "task" 1 "\\" gotothen "if" "\\" back-to-indentation "do" "\\" error "missing 'accept' in front of 'do'" noerror "no matching start"] 5]) (defalias 'ada-goto-matching-end #[(&optional nest-level noerror) "  fP!f!!8\fSw !^v^!X! !Q\fT^w^\fTv\fU v?w!w*" [nest-level 0 nil found nest-count ada-search-ignore-string-comment "\\<\\(end\\|loop\\|select\\|begin\\|case\\|" "if\\|task\\|package\\|record\\|do\\)\\>" backward-word 1 looking-at "\\" "end" ada-goto-next-non-ws "\\<\\(loop\\|select\\|record\\|case\\|if\\)\\>" "\\" "\\" "\\" "new" noerror error "no matching end" t] 4]) (defalias 'ada-forward-sexp-ignore-comment #[nil "!w!" [looking-at "[ \n]*--" "[ \n]" nil forward-sexp 1] 2]) (defalias 'ada-search-ignore-string-comment #[(search-re &optional backward limit paramlists) " \f‚ \f \n#̔̕ K B#̔byy g ^#̔b#` q˂rZf fU \\fU) $b!) yy׉B-" [nil backward re-search-backward re-search-forward search-func pos end begin found search-re limit 1 0 ada-in-comment-p "--" ada-in-string-p "\"" 2 39 paramlists ada-in-paramlist-p ada-search-ignore-string-comment "(" t looking-at] 6]) (defalias 'ada-search-but-not #[(search-re not-search-re &optional backward limit) " n \n #:,\n@\nA)n \n#:E\n@\nA)W XW Y]̉\ngib {bB." [nil found ret-cons end-not begin-end begin-not end begin ada-search-ignore-string-comment search-re backward limit t not-search-re] 8]) (defalias 'ada-goto-prev-nonblank-line #[(&optional ignore-comment) "yU1y`!! 1 1y`) ?;\nb*" [t nil newpoint notfound -1 0 looking-at "[ ]*$" "[ ]*--" ignore-comment ada-in-limit-line-p] 2]) (defalias 'ada-goto-next-nonblank-line #[(&optional ignore-comment) "yU4y`!! 4 4yy`) ?>\nb*" [t nil newpoint notfound 1 0 looking-at "[ ]*$" "[ ]*--" ignore-comment ada-in-limit-line-p] 2]) (defalias 'ada-in-decl-p #[nil " \n!)" [ada-in-paramlist-p ada-goto-matching-decl-start t] 2]) (defalias 'ada-looking-at-semi-or #[nil "!v !)" [looking-at "\\" 1 ada-goto-stmt-start] 2]) (defalias 'ada-looking-at-semi-private #[nil "!v !)" [looking-at "\\" 1 ada-goto-stmt-start] 2]) (defalias 'ada-in-limit-line-p #[nil "ye`U)d`U)" [0 nil] 2]) (defalias 'ada-in-comment-p #[nil "#\f!)" [re-search-backward "\\(--\\|\n\\)" nil 1 looking-at "-"] 4]) (defalias 'ada-in-string-p #[nil "y`)`\"8#`SfU?)" [3 parse-partial-sexp 0 re-search-backward "\"" nil t 39] 4]) (defalias 'ada-in-string-or-comment-p #[nil "  " [ada-in-comment-p ada-in-string-p] 1]) (defalias 'ada-in-paramlist-p #[nil "#0!0!0Q!0#0!?0!)" [re-search-backward "(\\|)" nil t looking-at "(" backward-word 2 "\\<\\(" "procedure\\|function\\|body\\|package\\|" "task\\|entry\\|accept\\)\\>" re-search-forward ")\\|:" backward-char 1 ":"] 4]) (defalias 'ada-in-open-paren-p #[nil "`W\n `Z‰ `\"A@C\fA@Tb#!!?9i)A Bi)+" [ada-search-paren-char-count-limit 1 nil col parse-result start parse-partial-sexp re-search-forward "[^ ]" backward-char looking-at "\n"] 5]) #@56 Do indenting or tabbing according to `ada-tab-policy'. (defalias 'ada-tab #[nil "=\n!= = =% =. =7!" [ada-tab-policy indent-and-tab error "not implemented" indent-rigidly ada-tab-hard indent-auto ada-indent-current gei ada-tab-gei indent-af af-indent-line always-tab] 2 (#$ . 36495) nil]) #@57 Delete leading indenting according to `ada-tab-policy'. (defalias 'ada-untab #[(arg) "= =!\"=\"!=+!" [ada-tab-policy indent-rigidly ada-untab-hard indent-af backward-delete-char-untabify prefix-numeric-value arg indent-auto error "not implemented" always-tab] 3 (#$ . 36829) "P"]) #@47 Ada Mode version of the indent-line-function. (defalias 'ada-indent-current-function #[nil "  ` W b ĉ)" [point-marker starting-point ada-beginning-of-line ada-tab nil] 3 (#$ . 37149) "*"]) #@39 Indent current line to next tab stop. (defalias 'ada-tab-hard #[nil "y \")`y`U) u" [0 insert-char 32 ada-indent] 3 (#$ . 37358) nil]) #@43 indent current line to previous tab stop. (defalias 'ada-untab-hard #[nil "y`)`) \n [#*" [0 nil eol bol indent-rigidly ada-indent] 4 (#$ . 37511) nil]) #@45 remove trailing spaces in the whole buffer. (defalias 'ada-remove-trailing-spaces #[nil "eb#‰#)" [re-search-forward "[ ]+$" nil t replace-match ""] 4 (#$ . 37680) nil]) (defalias 'ada-untabify-buffer #[nil "ed\")" [untabify] 3]) #@64 delete comment-start at the beginning of a line in the region. (defalias 'ada-uncomment-region #[(beg end) " \n#" [comment-region beg end -1] 4 (#$ . 37936) "r"]) #@59 Find other file in other window using ff-find-other-file. (defalias 'ada-ff-other-window #[nil "! !" [fboundp ff-find-other-file t] 2 (#$ . 38108) nil]) #@32 Moves point to next procedure. (defalias 'ada-next-procedure #[nil "\n#Ĕb!" [nil re-search-forward ada-procedure-start-regexp t 1 error "No more functions/procedures/tasks"] 4 (#$ . 38274) nil]) #@36 Moves point to previous procedure. (defalias 'ada-previous-procedure #[nil "y\n#Ŕb!" [0 re-search-backward ada-procedure-start-regexp nil t 1 error "No more functions/procedures/tasks"] 4 (#$ . 38489) nil]) #@30 Moves point to next package. (defalias 'ada-next-package #[nil "\n#Ĕb!" [nil re-search-forward ada-package-start-regexp t 1 error "No more packages"] 4 (#$ . 38715) nil]) #@34 Moves point to previous package. (defalias 'ada-previous-package #[nil "y\n#Ŕb!" [0 re-search-backward ada-package-start-regexp nil t 1 error "No more packages"] 4 (#$ . 38906) nil]) (byte-code " ### '#-##############\"!" [ada-mode-map make-sparse-keymap define-key "\n" ada-indent-newline-indent " " ada-tab "\f" ada-indent-region ada-xemacs (shift tab) ada-untab [S-tab] "" ada-format-paramlist "" ada-call-pretty-printer "" ada-fill-comment-paragraph-postfix "" ada-next-procedure "" ada-previous-procedure "" ada-move-to-start "" ada-move-to-end "" compile "" ada-adjust-case-region "" ada-adjust-case-buffer "" backward-delete-char-untabify ";" comment-region ":" ada-uncomment-region mapcar #[(pair) " @ A\n#" [substitute-key-definition pair ada-mode-map] 4] ((beginning-of-line . ada-beginning-of-line) (end-of-line . ada-end-of-line) (forward-to-indentation . ada-forward-to-indentation)) require easymenu] 4) #@50 Adds the menu 'Ada' to the menu-bar in Ada Mode. (defalias 'ada-add-ada-menu #[nil "! B#$ ) ! B " [boundp ada-mode-menu nil current-load-list put variable-documentation "Menu keymap for Ada mode." easy-menu-do-define ada-mode-map ("Ada" ["Next Package" ada-next-package t] ["Previous Package" ada-previous-package t] ["Next Procedure" ada-next-procedure t] ["Previous Procedure" ada-previous-procedure t] ["Goto Start" ada-move-to-start t] ["Goto End" ada-move-to-end t] ["------------------" nil nil] ["Indent Current Line (TAB)" ada-indent-current-function t] ["Indent Lines in Region" ada-indent-region t] ["Format Parameter List" ada-format-paramlist t] ["Pretty Print Buffer" ada-call-pretty-printer t] ["------------" nil nil] ["Fill Comment Paragraph" ada-fill-comment-paragraph t] ["Justify Comment Paragraph" ada-fill-comment-paragraph-justify t] ["Postfix Comment Paragraph" ada-fill-comment-paragraph-postfix t] ["------------" nil nil] ["Adjust Case Region" ada-adjust-case-region t] ["Adjust Case Buffer" ada-adjust-case-buffer t] ["----------" nil nil] ["Comment Region" comment-region t] ["Uncomment Region" ada-uncomment-region t] ["----------------" nil nil] ["Compile" compile (fboundp (quote compile))] ["Next Error" next-error (fboundp (quote next-error))] ["---------------" nil nil] ["Index" imenu (fboundp (quote imenu))] ["--------------" nil nil] ["Other File Other Window" ada-ff-other-window (fboundp (quote ff-find-other-file))] ["Other File" ff-find-other-file (fboundp (quote ff-find-other-file))]) ada-xemacs easy-menu-add "Ada Mode" mode-popup-menu] 5 (#$ . 39974)]) (defalias 'ada-beginning-of-line #[(&optional arg) "=\n ! !" [ada-tab-policy indent-af af-beginning-of-line arg beginning-of-line] 2 nil "P"]) (defalias 'ada-end-of-line #[(&optional arg) "=\n ! " [ada-tab-policy indent-af af-end-of-line arg] 2 nil "P"]) (defalias 'ada-current-column #[nil "= i" [ada-tab-policy indent-af af-current-column] 2]) (defalias 'ada-forward-to-indentation #[(&optional arg) "=\n ! !" [ada-tab-policy indent-af af-forward-to-indentation arg forward-to-indentation] 2 nil "P"]) #@70 determine the filename of a package/procedure from its own Ada name. (defalias 'ada-make-filename-from-adaname #[(adaname) "! q &eeb`{ !*" [nil krunch-buf generate-new-buffer "*gkrunch*" call-process "gnatk8" adaname ada-krunch-args kill-buffer] 7 (#$ . 42147) "s"]) #@103 Determine whether we are on a function definition/declaration and remember the name of that function. (defalias 'ada-which-function-are-we-in #[nil " #Ŕŕ{%#%Ŕŕ{)" [nil ff-function-name re-search-backward ada-procedure-start-regexp t 0 ada-package-start-regexp] 4 (#$ . 42452)]) #@35 create index alist for Ada files. (defalias 'imenu-create-ada-index #[(&optional regexp) "eb Ǝ #+  ̎ B** +" [nil char prev-pos index-alist match-data match-data ((store-match-data match-data)) re-search-forward regexp ada-procedure-start-regexp t match-data ((store-match-data match-data)) imenu-example--name-and-position] 4 (#$ . 42763)]) #@98 For consideration as a value of `ada-font-lock-keywords'. This does fairly subdued highlighting. (defconst ada-font-lock-keywords-1 (byte-code "ΰEC" ["\\<\\(" "accept\\|" "entry\\|" "function\\|" "package\\|" "package[ ]+body\\|" "procedure\\|" "protected\\|" "protected[ ]+body\\|" "protected[ ]+type\\|" "task\\|" "task[ ]+body\\|" "task[ ]+type" "\\)\\>[ ]*" "\\(\\sw+\\(\\.\\sw*\\)*\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)] 15) (#$ . 43142)) #@94 For consideration as a value of `ada-font-lock-keywords'. This does a lot more highlighting. (defconst ada-font-lock-keywords-2 (byte-code " Ͱ\fQEQEPEܯ\"" [append ada-font-lock-keywords-1 "\\<\\(" "a\\(b\\(ort\\|s\\(\\|tract\\)\\)\\|cce\\(pt\\|ss\\)\\|" "l\\(iased\\|l\\)\\|nd\\|rray\\|t\\)\\|begin\\|case\\|" "d\\(e\\(clare\\|l\\(ay\\|ta\\)\\)\\|igits\\|o\\)\\|" "e\\(ls\\(e\\|if\\)\\|ntry\\|x\\(ception\\|it\\)\\)\\|for\\|" "generic\\|i[fns]\\|l\\(imited\\|oop\\)\\|mod\\|n\\(ot\\|ull\\)\\|" "o\\(r\\|thers\\|ut\\)\\|pr\\(ivate\\|otected\\)\\|" "r\\(ange\\|e\\(cord\\|m\\|names\\|queue\\|turn\\|verse\\)\\)\\|" "se\\(lect\\|parate\\)\\|" "t\\(agged\\|erminate\\|hen\\)\\|until\\|" "wh\\(ile\\|en\\)\\|xor" "\\)\\>" ("\\<\\(end\\)\\>[ ]+\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) "\\<\\(access\\|constant\\|in\\|in[ ]+out\\|out\\)\\>" "[ ]*" "\\(\\sw+\\)?" (1 font-lock-keyword-face nil t) (2 font-lock-type-face nil t) "new\\|of\\|subtype\\|type" "\\)\\>[ ]*\\(\\sw+\\)?[ ]*\\((\\)?" (1 font-lock-keyword-face) (2 (if (match-beginning 4) font-lock-function-name-face font-lock-type-face) nil t) "\\<\\(goto\\|raise\\|use\\|with\\)\\>" "[ ]*\\([a-zA-Z0-9_\\.\\|, ]+\\)\\W" (1 font-lock-keyword-face) (2 font-lock-reference-face nil t) ("<<\\(\\sw+\\)>>" 1 font-lock-reference-face)] 14) (#$ . 43650)) #@40 *Expressions to highlight in Ada mode. (defvar ada-font-lock-keywords (byte-code " \n" [font-lock-maximum-decoration ada-font-lock-keywords-2 ada-font-lock-keywords-1] 1) (#$ . -45033)) (defalias 'ada-gen-comment-until-proc #[nil "y`! #b `\"!" [1 set-mark-command re-search-forward ada-procedure-start-regexp nil t comment-region mark error "No more functions/procedures"] 4]) (defalias 'ada-gen-treat-proc #[(match) "@b!!vv`A{ Ab \n?vw`w`{!ДЕ| c \neccc c c c \nc c cc !!!*" [match nil func-found proc-found looking-at "^[ ]*procedure" "^[ ]*function" 2 -1 procname forward-sexp 1 " \n" "a-zA-Z0-9_." functype "[ ]*;" 0 ada-indent-newline-indent " is" "Result : " ";" "begin -- " "null;" "return Result;" "end " "[ \n]*is" "[ \n]*rename" message "unknown syntax"] 3]) #@244 Create an Ada package body in the current buffer. The potential old buffer contents is deleted first, then we copy the spec buffer in here and modify it to make it a body. This function typically is to be hooked into `ff-file-created-hooks'. (defalias 'ada-make-body #[nil "ed| A@! !#\fAbc'!\n!7\f!')" [insert-buffer buffer-list ada-mode nil found ada-search-ignore-string-comment ada-package-start-regexp " body" error "No package" ada-procedure-start-regexp ada-gen-treat-proc] 2 (#$ . 45946) nil]) (provide (quote ada-mode))