;ELC ;;; compiled by kwzh@hal.gnu.ai.mit.edu on Mon Apr 17 19:48:05 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/pascal.el ;;; emacs version 19.28.90.26. ;;; 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"))) (error "`/gd/gnu/emacs/19.0/lisp/pascal.el' was compiled for Emacs 19")) #@45 Abbrev table in use in Pascal-mode buffers. (defvar pascal-mode-abbrev-table nil (#$ . 481)) (define-abbrev-table (quote pascal-mode-abbrev-table) nil) #@29 Keymap used in Pascal mode. (defvar pascal-mode-map nil (#$ . 639)) (byte-code "y ###################!)+B+-+B+/+B+1+B+3+B+5+B+7+B+9+B+;+B+=+B+?+B+@AA+B+" [pascal-mode-map make-sparse-keymap define-key ";" electric-pascal-semi-or-dot "." ":" electric-pascal-colon "=" electric-pascal-equal "#" electric-pascal-hash " " electric-pascal-terminate-line " " electric-pascal-tab "" pascal-complete-word "" pascal-show-completions "" backward-delete-char-untabify "" pascal-mark-defun "" pascal-insert-block "" pascal-star-comment "" pascal-comment-area "" pascal-uncomment-area "" pascal-beg-of-defun "" pascal-end-of-defun "" pascal-goto-defun "" pascal-outline boundp pascal-keywords ("and" "array" "begin" "case" "const" "div" "do" "downto" "else" "end" "file" "for" "function" "goto" "if" "in" "label" "mod" "nil" "not" "of" "or" "packed" "procedure" "program" "record" "repeat" "set" "then" "to" "type" "until" "var" "while" "with" "get" "put" "input" "output" "read" "readln" "reset" "rewrite" "write" "writeln") current-load-list "\\<[a-zA-Z_][a-zA-Z_0-9.]*\\>" pascal-symbol-re "\\<\\(begin\\|case\\|record\\|repeat\\)\\>" pascal-beg-block-re "\\<\\(end\\|until\\)\\>" pascal-end-block-re "\\<\\(const\\|label\\|type\\|var\\)\\>" pascal-declaration-re "\\<\\(function\\|procedure\\|program\\)\\>" pascal-defun-re "\\<\\(if\\|else\\|for\\|while\\|with\\)\\>" pascal-sub-block-re "\\<\\(begin\\|end\\|until\\|else\\)\\>" pascal-noindent-re "\\<\\(begin\\|repeat\\|then\\|do\\|else\\)\\>" pascal-nosemi-re "\\<\\(label\\|var\\|type\\|const\\|until\\|end\\|begin\\|repeat\\|else\\)\\>" pascal-autoindent-lines-re "{-----\\/----- EXCLUDED -----\\/-----" pascal-exclude-str-start " -----/\\----- EXCLUDED -----/\\-----}" pascal-exclude-str-end] 4) #@45 Syntax table in use in Pascal-mode buffers. (defvar pascal-mode-syntax-table nil (#$ . 2575)) (byte-code "g ################" [pascal-mode-syntax-table make-syntax-table modify-syntax-entry 92 "." 40 "()1" 41 ")(4" 42 ". 23" 123 "<" 125 ">" 43 45 61 37 60 62 38 124 95 "w" 39 "\""] 4) #@53 Additional expressions to highlight in Pascal mode. (defvar pascal-font-lock-keywords (byte-code "PBRʯ" [("^[ ]*\\(function\\|pro\\(cedure\\|gram\\)\\)\\>[ ]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) "\\<\\(array\\|boolean\\|c\\(har\\|onst\\)\\|file\\|" "integer\\|re\\(al\\|cord\\)\\|type\\|var\\)\\>" font-lock-type-face ("\\<\\(label\\|external\\|forward\\)\\>" . font-lock-reference-face) ("\\<\\([0-9]+\\)[ ]*:" 1 font-lock-reference-face) "\\<\\(" "and\\|begin\\|case\\|do\\|e\\(lse\\|nd\\)\\|for\\|i[fn]\\|" "not\\|o[fr]\\|repeat\\|t\\(hen\\|o\\)\\|until\\|w\\(hile\\|ith\\)" "\\)\\>" ("\\<\\(goto\\)\\>[ ]*\\([0-9]+\\)?" (1 font-lock-keyword-face) (2 font-lock-reference-face nil t))] 8) (#$ . 2953)) #@69 *Indentation of Pascal statements with respect to containing block. (defvar pascal-indent-level 3 (#$ . -3724)) #@35 *Indentation for case statements. (defvar pascal-case-indent 2 (#$ . -3842)) #@92 *Non-nil means automatically newline after simcolons and the punctation mark after an end. (defvar pascal-auto-newline nil (#$ . -3925)) #@147 *Non-nil means TAB in Pascal mode should always reindent the current line, regardless of where in the line point is when the TAB command is used. (defvar pascal-tab-always-indent t (#$ . -4069)) #@153 *Non-nil means a comment { ... } is set after the ends which ends cases and functions. The name of the function or case will be set between the braces. (defvar pascal-auto-endcomments t (#$ . -4271)) #@374 *List of contexts where auto lineup of :'s or ='s should be done. Elements can be of type: 'paramlist', 'declaration' or 'case', which will do auto lineup in parameterlist, declarations or case-statements respectively. The word 'all' will do all lineups. '(case paramlist) for instance will do lineup in case-statements and parameterlist, while '(all) will do all lineups. (defvar pascal-auto-lineup (quote (all)) (#$ . -4478)) #@227 *Non-nil means that \\[pascal-complete-label] should not display a completion buffer when the label couldn't be completed, but instead toggle the possible completions with repeated \[pascal-complete-label]'s. (defvar pascal-toggle-completions nil (#$ . -4913)) #@216 *Keywords for types used when completing a word in a declaration or parmlist. (eg. integer, real, char.) The types defined within the Pascal program will be completed runtime, and should not be added to this list. (defvar pascal-type-keywords (quote ("array" "file" "packed" "char" "integer" "real" "string" "record")) (#$ . -5198)) #@234 *Keywords to complete when standing at the first word of a statement. (eg. begin, repeat, until, readln.) The procedures and variables defined within the Pascal program will be completed runtime and should not be added to this list. (defvar pascal-start-keywords (quote ("begin" "end" "function" "procedure" "repeat" "until" "while" "read" "readln" "reset" "rewrite" "write" "writeln")) (#$ . -5539)) #@230 *Keywords to complete when NOT standing at the first word of a statement. (eg. downto, else, mod, then.) Variables and function names defined within the Pascal program are completed runtime and should not be added to this list. (defvar pascal-separator-keywords (quote ("downto" "else" "mod" "div" "then")) (#$ . -5947)) (defalias 'pascal-get-beg-of-line #[(&optional arg) " !`)" [beginning-of-line arg] 2]) (put (quote pascal-get-beg-of-line) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'pascal-get-end-of-line #[(&optional arg) "`)" [arg] 1]) (put (quote pascal-get-end-of-line) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'pascal-declaration-end #[nil " V-Ċ`)#-! TŔ S)" [1 nest 0 re-search-forward "[:=]\\|\\(\\\\)\\|\\(\\\\)" 2 t] 5]) (defalias 'pascal-declaration-beg #[nil " V; !`*#;#‰Ȕ/ Sɔ T U)" [1 nest 0 re-search-backward "[:=]\\|\\<\\(type\\|var\\|label\\|const\\)\\>\\|\\(\\\\)\\|\\(\\\\)" arg beginning-of-line t 2 3] 5]) (defalias 'pascal-within-string #[nil " !`*`\"8)" [3 parse-partial-sexp nil arg beginning-of-line] 4]) (put (quote pascal-within-string) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@1971 Major mode for editing Pascal code. \ TAB indents for Pascal code. Delete converts tabs to spaces as it moves back. \[pascal-complete-word] completes the word around current point with respect to position in code \[pascal-show-completions] shows all possible completions at this point. Other useful functions are: \[pascal-mark-defun] - Mark function. \[pascal-insert-block] - insert begin ... end; \[pascal-star-comment] - insert (* ... *) \[pascal-comment-area] - Put marked area in a comment, fixing nested comments. \[pascal-uncomment-area] - Uncomment an area commented with \[pascal-comment-area]. \[pascal-beg-of-defun] - Move to beginning of current function. \[pascal-end-of-defun] - Move to end of current function. \[pascal-goto-defun] - Goto function prompted for in the minibuffer. \[pascal-outline] - Enter pascal-outline-mode (see also pascal-outline). Variables controlling indentation/edit style: pascal-indent-level (default 3) Indentation of Pascal statements with respect to containing block. pascal-case-indent (default 2) Indentation for case statements. pascal-auto-newline (default nil) Non-nil means automatically newline after simcolons and the punctation mark after an end. pascal-tab-always-indent (default t) Non-nil means TAB in Pascal mode should always reindent the current line, regardless of where in the line point is when the TAB command is used. pascal-auto-endcomments (default t) Non-nil means a comment { ... } is set after the ends which ends cases and functions. The name of the function or case will be set between the braces. pascal-auto-lineup (default t) List of contexts where auto lineup of :'s or ='s hould be done. See also the user variables pascal-type-keywords, pascal-start-keywords and pascal-separator-keywords. Turning on Pascal mode calls the value of the variable pascal-mode-hook with no args, if that value is non-nil. (defalias 'pascal-mode #[nil " \n!\n!!\f!!!!!!" [kill-all-local-variables use-local-map pascal-mode-map pascal-mode major-mode "Pascal" mode-name pascal-mode-abbrev-table local-abbrev-table set-syntax-table pascal-mode-syntax-table make-local-variable indent-line-function pascal-indent-line pascal-indent-comment comment-indent-function parse-sexp-ignore-comments nil case-fold-search t comment-start-skip "(\\*+ *\\|{ *" comment-end "}" font-lock-defaults (pascal-font-lock-keywords nil t) run-hooks pascal-mode-hook] 2 (#$ . 7264) nil]) #@38 Terminate line and indent next line. (defalias 'electric-pascal-terminate-line #[nil "yw\f! ) # \nyw!=u Y!Y`*#)Y\n)\nd fc)" [0 " " nil looking-at pascal-autoindent-lines-re pascal-indent-line delete-horizontal-space newline pascal-auto-endcomments pascal-set-auto-comments setstar -1 "\\*[ ]+)" 1 "(\\*\\|\\*[^)]" search-forward "*)" arg t "* "] 4 (#$ . 9837) nil]) #@52 Insert `;' or `.' character and reindent the line. (defalias 'electric-pascal-semi-or-dot #[nil "cy )  " [last-command-char 0 pascal-indent-line pascal-auto-newline electric-pascal-terminate-line] 1 (#$ . 10284) nil]) #@67 Insert `:' and do all indentions except line indent on this line. (defalias 'electric-pascal-colon #[nil "c\f!`*`\"8)?%y ) )" [last-command-char 3 parse-partial-sexp nil arg beginning-of-line 0 pascal-indent-line pascal-tab-always-indent pascal-indent-command] 4 (#$ . 10520) nil]) #@58 Insert `=', and do indention if within type declaration. (defalias 'electric-pascal-equal #[nil "c @= )" [last-command-char pascal-calculate-indent declaration nil pascal-tab-always-indent pascal-indent-command] 2 (#$ . 10830) nil]) #@64 Insert `#', and indent to coulmn 0 if this is a CPP directive. (defalias 'electric-pascal-hash #[nil "cy!)y )" [last-command-char 0 looking-at "^[ ]*#" delete-horizontal-space] 2 (#$ . 11080) nil]) #@53 Function called when TAB is pressed in Pascal mode. (defalias 'electric-pascal-tab #[nil " !`*`\"8)\"n%yg)=%c5y )8c " [3 parse-partial-sexp nil arg beginning-of-line 0 35 " " pascal-tab-always-indent pascal-indent-line pascal-indent-command] 4 (#$ . 11300) nil]) #@72 Insert Pascal begin ... end; block in the code with right indentation. (defalias 'pascal-insert-block #[nil " c cy )" [pascal-indent-line "begin" electric-pascal-terminate-line "end;" 0] 1 (#$ . 11604) nil]) #@38 Insert Pascal star comment at point. (defalias 'pascal-star-comment #[nil " c c)c" [pascal-indent-line "(*" electric-pascal-terminate-line delete-horizontal-space ")" " "] 1 (#$ . 11834) nil]) #@109 Mark the current pascal function (or procedure). This puts the mark at the end, and point at the beginning. (defalias 'pascal-mark-defun #[nil "`! `! ! " [push-mark pascal-end-of-defun pascal-beg-of-defun fboundp zmacs-activate-region] 2 (#$ . 12052) nil]) #@429 Put the region into a Pascal comment. The comments that are in this area are "deformed": `*)' becomes `!(*' and `}' becomes `!{'. These deformed comments are returned to normal if you use \[pascal-uncomment-area] to undo the commenting. The commented area starts with `pascal-exclude-str-start', and ends with `pascal-include-str-end'. But if you change these variables, \[pascal-uncomment-area] won't recognize the comments. (defalias 'pascal-comment-area #[(start end) "bwl)xn)y!y c` byc b#Mˉ#;)#aˉ#O*" [end " " nil 1 0 pascal-exclude-str-end newline start pascal-exclude-str-start re-search-backward "\\*)" t replace-match "!(*" "}" "!{"] 4 (#$ . 12331) "r"]) #@172 Uncomment a commented area; change deformed comments back to normal. This command does nothing if the pointer is not in a commented area. See also `pascal-comment-area'. (defalias 'pascal-uncomment-area #[nil "`` #`#`) `$`X*!uby`  `T|) #Oʼn#>) #bʼn#Q) by`  `T|)+" [end start search-backward pascal-exclude-str-start nil t search-forward pascal-exclude-str-end message "Not standing within commented area." 0 pos re-search-backward "!{" replace-match "}" "!(\\*" "*)"] 4 (#$ . 13072) nil]) #@70 Move backward to the beginning of the current function or procedure. (defalias 'pascal-beg-of-defun #[nil "" [found (byte-code "\nP!\f! \n\n \f \n#e`\")8<8) ĕe!W\fYW S  T \f]\f ֕ \fU~\fY~ T  S ӕ  U\"  S ,χ" [looking-at "\\s \\|\\s)\\|" pascal-defun-re forward-sexp 1 0 -1 pascal-beg-block-re "\\|" pascal-end-block-re reg func max nest re-search-backward nil move parse-partial-sexp state 3 4 "\\" 2 throw found t] 9)] 2 (#$ . 13635) nil]) #@63 Move forward to the end of the current function or procedure. (defalias 'pascal-end-of-defun #[nil "!\n!\f! u \f\n \f U\n#e`\")8J8)'Õm\fT\fƔb!)' T )Օ\fS\fU' S )ҕ' T )+y" [looking-at "\\s " forward-sexp 1 pascal-defun-re pascal-beg-of-defun 0 pascal-beg-block-re "\\|" pascal-end-block-re reg func nest re-search-forward nil move parse-partial-sexp state 3 4 "\\" 2] 8 (#$ . 14196) nil]) #@43 Move forward to end of current statement. (defalias 'pascal-end-of-statement #[nil " ư !! !$ύ/Ѝ1+" [0 nil "\\(" pascal-beg-block-re "\\)\\|\\(" pascal-end-block-re "\\)" regexp pos nest looking-at "[ \n]" forward-sexp -1 found (byte-code "!!wu`\"! !)2ʔb\"m`\"" [forward-sexp 1 looking-at "[ ]*;" "^;" nil throw found -1 pascal-beg-block-re 0] 3) (byte-code " #ĕ T Sm`\" U \"" [re-search-forward regexp nil move 1 nest throw found 0 pascal-end-of-statement] 4)] 7 (#$ . 14694) nil]) #@45 Downcase all Pascal keywords in the buffer. (defalias 'pascal-downcase-keywords #[nil "!" [pascal-change-keywords downcase-word] 2 (#$ . 15299) nil]) #@43 Upcase all Pascal keywords in the buffer. (defalias 'pascal-upcase-keywords #[nil "!" [pascal-change-keywords upcase-word] 2 (#$ . 15458) nil]) #@47 Capitalize all Pascal keywords in the buffer. (defalias 'pascal-capitalize-keywords #[nil "!" [pascal-change-keywords capitalize-word] 2 (#$ . 15611) nil]) (defalias 'pascal-change-keywords #[(change-word) " #Qeb#\n!*" ["\\<\\(" mapconcat identity pascal-keywords "\\|" "\\)\\>" keyword-re re-search-forward nil t change-word -1] 5]) #@237 Insert `{ case }' or `{ NAME }' on this line if appropriate. Insert `{ case }' if there is an `end' on the line which ends a case block. Insert `{ NAME }' if there is an `end' on the line which ends a function or procedure named NAME. (defalias 'pascal-set-auto-comments #[nil "yw!!`*#)? @ =? =D c!uou!!fSH!HTHo|)U c‰ ww`w`)p#*c)))" [-1 " " nil looking-at "\\;>A ^\n=^!^>[>^ !gw+" [pascal-calculate-indent indent-str type ind paramlist all pascal-auto-lineup pascal-indent-paramlist declaration pascal-indent-declaration case looking-at "^[ ]*$" pascal-indent-case "[ ]+$" " " nil] 3 (#$ . 17117)]) #@44 Indent current line as a Pascal statement. (defalias 'pascal-indent-line #[nil " @ A@!# \n=&\f!0\n=0!?I!@ jI\n\"A!j+" [pascal-calculate-indent indent-str type ind looking-at "^[0-9a-zA-Z]+[ ]*:[^=]" search-forward ":" nil t delete-horizontal-space declaration pascal-declaration-re cpp pascal-defun-re pascal-noindent-re eval assoc pascal-indent-alist] 5 (#$ . 17527)]) #@109 Calculate the indent of the current Pascal line. Return a list of two elements: (INDENT-TYPE INDENT-LEVEL). (defalias 'pascal-calculate-indent #[nil "`e`\")!!\n̍ V) D. D." [oldpos parse-partial-sexp state 0 nest par looking-at "[ ]*end\\>" complete "[ ]*else\\>" elsed nesting (byte-code " 8\"B 8\"B @V2` @#biT\nByg)=B\"!!xn) `)`Uby`)`V\"B!U!\"B!\"B\"BSB!!\"TB!!3\nU\"B\n##Ε#T##S##V*\"/\")B'!Yby!)Q\"B\"Bm*!m\"B!gU)BoB\"B" [3 state throw nesting string 4 comment 0 scan-lists -1 par 35 cpp backward-sexp 1 looking-at "[A-Za-z0-9]+[ ]*:[^=]" complete " " nil oldpos caseblock pascal-beg-block-re nest "case\\>" case "record\\>" declaration block pascal-end-block-re "end\\s " elsed t pascal-defun-re defun n re-search-forward "\\(\\\\)\\|\\" paramlist pascal-declaration-re "^[ ]*$" unknown pascal-sub-block-re forward-sexp 59] 4) type contexp pascal-indent-level] 3 (#$ . 17949)]) #@101 Return the indent-level the current statement has. Do not count labels, case-statements or records. (defalias 'pascal-indent-level #[nil "y!#!#wi)" [0 looking-at "[ ]*[0-9a-zA-Z]+[ ]*:[^=]" search-forward ":" nil t ".*=[ ]*record\\>" "=" " "] 4 (#$ . 19171)]) #@123 Indent current line as comment. If optional arg is non-nil, just return the column number the line should be indented to. (defalias 'pascal-indent-comment #[(&optional arg) "#iT) \f \fj)" [re-search-backward "(\\*\\|{" nil t stcol arg delete-horizontal-space] 4 (#$ . 19472)]) #@32 Indent within case statements. (defalias 'pascal-indent-case #[nil "w #` \n`\n!WD\n!#1u iV>i  b\n!`\n!W\n!#euTjgUyu c` Nb," [": " nil point-marker re-search-backward "\\" t 0 ind oldpos beg end marker-position re-search-forward "^[ ]*[^ ,:]+[ ]*\\(,[ ]*[^ ,:]+[ ]*\\)*:" move -1 delete-horizontal-space pascal-end-of-statement "^[ ]*[^][ ,\\.:]+[ ]*\\(,[ ]*[^ ,:]+[ ]*\\)*:" 58 1 " "] 5 (#$ . 19771)]) #@128 Indent current line in parameterlist. If optional arg is non-nil, just return the indent of the current line in parameterlist. (defalias 'pascal-indent-paramlist #[(&optional arg) "``#b`iT \n\n!`*#` \f#\nLbyB!F k \\k\fbu e!e \\j\f #." [oldpos scan-lists -1 1 stpos stcol pascal-declaration-end search-backward ")" nil arg beginning-of-line t edpos re-search-backward "\\" usevar 0 looking-at "[ ]*var\\>" 4 delete-horizontal-space "var\\>" pascal-indent-declaration] 4 (#$ . 20288)]) #@66 Indent current lines as declaration, lining up the `:'s or `='s. (defalias 'pascal-indent-declaration #[(&optional arg start end) " \n  !\n \"ǂ# + 3v!`  ? E ` ]ϓb\n`!Xy !s\njy\n\\jyX#b`!X\n`*#u j!yu c!i!y,\ny !b)" [point-marker pos arg start pascal-declaration-beg looking-at "\\\\|\\" ":" "=" 2 backward-word 1 make-marker end pascal-declaration-end nil ind edpos stpos lineup marker-position 0 delete-horizontal-space "end\\>" pascal-indent-level pascal-get-lineup-indent search-forward move -1 " " "record\\>" pascal-indent-declaration] 5 (#$ . 20852)]) (defalias 'pascal-get-lineup-indent #[(b e str) " Pb`WO \f\f`*^#ɔ6 bxiVHibV\\TibxiT," [0 str "\\|\\(\\\\)" nil nest reg ind b e 1 re-search-forward 2 arg move pascal-declaration-end " "] 4]) (byte-code "! B! B!  B!- B!: B‡" [boundp pascal-str nil current-load-list pascal-all pascal-pred pascal-buffer-to-use pascal-flag] 2) #@59 Return index of first letter where STR1 and STR2 differs. (defalias 'pascal-string-diff #[(str1 str2) "" [done (byte-code "T\nGV T GV \"\n H H& \" T" [0 diff str1 str2 throw done] 4)] 2 (#$ . 22046)]) (defalias 'pascal-func-completion #[(type) " =ł =ǂR\f!1#u l`*#eՔՕ{\f^\f!e\fBؔb4*" [pascal-str "" "[a-zA-Z_]" type procedure "\\<\\(procedure\\)\\s +" function "\\<\\(function\\)\\s +" "\\<\\(function\\|procedure\\)\\s +" "\\<\\(" "[a-zA-Z0-9_.]*\\)\\>" nil match looking-at "\\<\\(function\\|procedure\\)\\>" re-search-backward t 1 pascal-beg-of-defun re-search-forward arg 2 pascal-pred pascal-all 0] 4]) (defalias 'pascal-get-completion-decl #[nil " `)` W|`*#_\nP!`*#_̕_͔͕{P\n\" V\n! \nB `*#v y *" [pascal-declaration-end nil match end re-search-forward "[:=]" arg t re-search-backward "\\((\\|\\<\\(var\\|type\\|const\\)\\>\\)\\|" pascal-symbol-re beginning-of-line 1 0 string-match "\\<" pascal-str pascal-pred pascal-all "\\"] 4]) #@47 Calculate all possible completions for types. (defalias 'pascal-type-completion #[nil "`  ?3\n `)uW/\n#/ŕ/ )*" [nil goon start pascal-beg-of-defun pascal-end-of-defun 1 re-search-forward "\\\\|\\<\\(begin\\|function\\|procedure\\)\\>" t pascal-get-completion-decl] 4 (#$ . 23189)]) #@66 Calculate all possible completions for variables (or constants). (defalias 'pascal-var-completion #[nil "` \n?a `)V]`*#2  SY]P #R˕R 4˕4̉5)+" [nil twice goon start pascal-beg-of-defun pascal-end-of-defun search-forward "(" arg t pascal-get-completion-decl 2 0 re-search-forward "\\<\\(var\\|const\\)\\>\\|" "\\<\\(begin\\|function\\|procedure\\)\\>"] 5 (#$ . 23518)]) #@68 Give list of all possible completions of keywords in KEYWORD-LIST. (defalias 'pascal-keyword-completion #[(keyword-list) "\n\"" [mapcar #[(s) "\nP \"\f\f ! B" [string-match "\\<" pascal-str s pascal-pred pascal-all] 3] keyword-list] 3 (#$ . 23957)]) (defalias 'pascal-completion #[(pascal-str pascal-pred pascal-flag) "\nq @=0\f=0\f=J\n\n!`*#)J\f=<\f=? !\f=|x!!g!!)| )!! )!!) *" [nil pascal-all pascal-buffer-to-use pascal-calculate-indent state declaration paramlist defun re-search-backward ")[ ]*:" arg beginning-of-line t pascal-beg-of-defun pascal-type-completion pascal-keyword-completion pascal-type-keywords contexp "a-zA-Z0-9_." backward-sexp 1 looking-at pascal-nosemi-re forward-sexp "\\s *\\(;\\|:[^=]\\)" pascal-var-completion pascal-func-completion procedure pascal-start-keywords function pascal-separator-keywords pascal-completion-response] 5]) (defalias 'pascal-completion-response #[nil "\nl\n??q\nA\n@G\f +[ [\f @\" WD\f O @ TƉ, A/e\fʚ??j\f-q\n" [pascal-flag lambda pascal-all elm match min nil exact tmp pascal-str t pascal-string-diff 0] 4]) (byte-code "! B! B!! BŇ" [boundp pascal-last-word-numb 0 current-load-list pascal-last-word-shown nil pascal-last-completions] 2) #@154 Complete word at current point. (See also `pascal-toggle-completions', `pascal-type-keywords', `pascal-start-keywords' and `pascal-separator-keywords'.) (defalias 'pascal-complete-word #[nil "x`)w`)\n {p'\f'+\f\" 6̂>\f \"\"\n |  GSY[҂^T  t\f!՚\f!՚ A!! A??\fGGUؐ !`\"!!!." ["a-zA-Z0-9_" nil b e pascal-str pascal-buffer-to-use pascal-toggle-completions pascal-last-word-shown pascal-last-completions all-completions pascal-completion allcomp "" try-completion mapcar #[(elm) "B" [elm 0] 2] match pascal-last-word-numb 0 message "(No match)" t "(Complete but not unique)" "(Sole completion)" "*Completions*" display-completion-list momentary-string-display delete-window get-buffer-window get-buffer] 5 (#$ . 25366) nil]) #@49 Show all possible completions at current point. (defalias 'pascal-show-completions #[nil "x`)w`)\n {p'\f'+\f\" ̐ !`\"!!!-" ["a-zA-Z0-9_" nil b e pascal-str pascal-buffer-to-use pascal-toggle-completions pascal-last-word-shown pascal-last-completions all-completions pascal-completion allcomp "*Completions*" display-completion-list momentary-string-display "" delete-window get-buffer-window get-buffer] 4 (#$ . 26251) nil]) #@49 Return symbol around current point as a string. (defalias 'pascal-get-default-symbol #[nil "xx`w`{)" [" " nil "a-zA-Z0-9_"] 3 (#$ . 26723)]) #@147 Return function/procedure starting with STR as regular expression. With optional second arg non-nil, STR is the complete name of the instruction. (defalias 'pascal-build-defun-re #[(str &optional arg) " \nQ\nQ" [arg "^\\(function\\|procedure\\)[ ]+\\(" str "\\)\\>" "[a-zA-Z0-9_]*\\)\\>"] 3 (#$ . 26883)]) (defalias 'pascal-comp-defun #[(pascal-str pascal-pred pascal-flag) " q\fŘ!\f!eb\f#?ʔʕ{ 8 ! \nB) +" [nil match pascal-all pascal-buffer-to-use pascal-str "" pascal-build-defun-re "[a-zA-Z_]" re-search-forward t 2 pascal-pred pascal-completion-response] 5]) #@102 Move to specified Pascal function/procedure. The default is a name found in the buffer around point. (defalias 'pascal-goto-defun #[nil " p # ƉƘ& Q%-%\fƘ8 \f\fƘNeb\f\"!y," [pascal-get-default-symbol default pascal-buffer-to-use pascal-comp-defun nil lambda "" completing-read "Label: (default " ") " t "Label: " label re-search-forward pascal-build-defun-re 0] 7 (#$ . 27506) nil]) #@37 Keymap used in Pascal Outline mode. (defvar pascal-outline-map nil (#$ . 27946)) (byte-code "B!\"! !$  \"#####" [pascal-outline-map boundp set-keymap-name set-keymap-parent copy-keymap pascal-mode-map make-sparse-keymap define-key "" pascal-outline-prev-defun "" pascal-outline-next-defun "" pascal-outline-goto-defun "" pascal-show-all "" pascal-hide-other-defuns] 4) #@42 Non-nil while using Pascal Outline mode. (defvar pascal-outline-mode nil (#$ . 28382)) (byte-code "!\" \" C\"Ç" [make-variable-buffer-local pascal-outline-mode set-default nil assoc minor-mode-alist append (pascal-outline-mode " Outl")] 3) #@690 Outline-line minor mode for Pascal mode. When in Pascal Outline mode, portions of the text being edited may be made invisible. \ Pascal Outline mode provides some additional commands. \[pascal-outline-prev-defun] - Move to previous function/procedure, hiding everything else. \[pascal-outline-next-defun] - Move to next function/procedure, hiding everything else. \[pascal-outline-goto-defun] - Goto function/procedure prompted for in minibuffer, hide all other functions. \[pascal-show-all] - Show the whole buffer. \[pascal-hide-other-defuns] - Hide everything but the current function (function under the cursor). \[pascal-outline] - Leave pascal-outline-mode. (defalias 'pascal-outline #[(&optional arg) " ?\n! ! \n!" [arg pascal-outline-mode t boundp redraw-mode-line selective-display use-local-map pascal-outline-map nil pascal-show-all pascal-mode-map] 2 (#$ . 28645) "P"]) (defalias 'pascal-outline-change #[(b e pascal-flag) " Ž\f UȂ$*" [buffer-modified-p modp ((set-buffer-modified-p modp)) subst-char-in-region b e pascal-flag 10 13] 5]) #@37 Show all of the text in the buffer. (defalias 'pascal-show-all #[nil "ed#" [pascal-outline-change 10] 4 (#$ . 29775) nil]) #@30 Show only the current defun. (defalias 'pascal-hide-other-defuns #[nil "!\n ` !#`e\n \feb\f#I\nєS#`\n `\fV#\nb#\f\nVZ\n\fS#\f #u #~`\n \n`#e b \n#\nєS#`\n \nd#y` W\fb !`d#," [looking-at "\\(function\\|procedure\\)\\>" pascal-beg-of-defun pascal-end-of-defun backward-sexp 1 search-forward "\n\\| " nil t opoint end beg re-search-forward "^\\(function\\|procedure\\)\\>" move pascal-outline-change 0 13 10 -1] 5 (#$ . 29907) nil]) #@53 Move to next function/procedure, hiding all others. (defalias 'pascal-outline-next-defun #[nil " " [pascal-end-of-defun pascal-hide-other-defuns] 1 (#$ . 30458) nil]) #@57 Move to previous function/procedure, hiding all others. (defalias 'pascal-outline-prev-defun #[nil " " [pascal-beg-of-defun pascal-hide-other-defuns] 1 (#$ . 30636) nil]) #@58 Move to specified function/procedure, hiding all others. (defalias 'pascal-outline-goto-defun #[nil " " [pascal-goto-defun pascal-hide-other-defuns] 1 (#$ . 30818) nil])