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 ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:29 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/pascal.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-declare-group 'pascal nil "Major mode for editing Pascal source in Emacs." :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces) :group 'languages) #@45 Abbrev table in use in Pascal-mode buffers. (defvar pascal-mode-abbrev-table nil (#$ . 733)) (define-abbrev-table 'pascal-mode-abbrev-table nil) #@29 Keymap used in Pascal mode. (defvar pascal-mode-map (byte-code "\300 \301\302\303#\210\301\304\303#\210\301\305\306#\210\301\307\310#\210\301\311\312#\210\301\313\314#\210\301\315\316#\210\301\317\320#\210\301\321\322#\210\301\323\324#\210\301\325\326#\210\301\327\330#\210\301\331\332#\210\301\333\334#\210\301\335\336#\210\301\337\340#\210\301\341\342#\210\211\207" [make-sparse-keymap define-key ";" electric-pascal-semi-or-dot "." ":" electric-pascal-colon "=" electric-pascal-equal "#" electric-pascal-hash "\211" completion-at-point "\277" completion-help-at-point "" backward-delete-char-untabify "\210" pascal-mark-defun "" pascal-insert-block "\252" pascal-star-comment "" pascal-comment-area "" pascal-uncomment-area "\201" pascal-beg-of-defun "\205" pascal-end-of-defun "" pascal-goto-defun "" pascal-outline-mode] 5) (#$ . 884)) #@68 Imenu expression for Pascal-mode. See `imenu-generic-expression'. (defvar pascal-imenu-generic-expression '((nil "^[ ]*\\(function\\|procedure\\)[ \n]+\\([a-zA-Z0-9_.:]+\\)" 2)) (#$ . 1759)) (defvar 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")) (defconst pascal-symbol-re "\\<[a-zA-Z_][a-zA-Z_0-9.]*\\>") (defconst pascal-beg-block-re "\\<\\(begin\\|case\\|record\\|repeat\\)\\>") (defconst pascal-end-block-re "\\<\\(end\\|until\\)\\>") (defconst pascal-declaration-re "\\<\\(const\\|label\\|type\\|var\\)\\>") (defconst pascal-progbeg-re "\\<\\program\\>") (defconst pascal-defun-re "\\<\\(function\\|procedure\\|program\\)\\>") (defconst pascal-sub-block-re "\\<\\(if\\|else\\|for\\|while\\|with\\)\\>") (defconst pascal-noindent-re "\\<\\(begin\\|end\\|until\\|else\\)\\>") (defconst pascal-nosemi-re "\\<\\(begin\\|repeat\\|then\\|do\\|else\\)\\>") (defconst pascal-autoindent-lines-re "\\<\\(label\\|var\\|type\\|const\\|until\\|end\\|begin\\|repeat\\|else\\)\\>") (defconst pascal-exclude-str-start "{-----\\/----- EXCLUDED -----\\/-----") (defconst pascal-exclude-str-end " -----/\\----- EXCLUDED -----/\\-----}") #@45 Syntax table in use in Pascal-mode buffers. (defvar pascal-mode-syntax-table (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\303#\210\301\317\303#\210\301\320\303#\210\301\321\303#\210\301\322\303#\210\301\323\303#\210\301\324\303#\210\301\325\303#\210\301\326\327#\210\301\330\331#\210\211\207" [make-syntax-table modify-syntax-entry 92 "." 40 "()1" 41 ")(4" 42 ". 23" 123 "<" 125 ">" 43 45 61 37 60 62 38 124 95 "_" 39 "\""] 5) (#$ . 3195)) #@53 Additional expressions to highlight in Pascal mode. (defconst pascal-font-lock-keywords (byte-code "\300\301\302\303\304B\305\306\307\310\311\257!\207" [purecopy ("^[ ]*\\(function\\|pro\\(cedure\\|gram\\)\\)\\>[ ]*\\([a-z]\\)" 1 font-lock-keyword-face) ("^[ ]*\\(function\\|pro\\(cedure\\|gram\\)\\)\\>[ ]*\\([a-z][a-z0-9_]*\\)" 3 font-lock-function-name-face t) "\\<\\(array\\|boolean\\|c\\(har\\|onst\\)\\|file\\|integer\\|re\\(al\\|cord\\)\\|type\\|var\\)\\>" font-lock-type-face ("\\<\\(label\\|external\\|forward\\)\\>" . font-lock-constant-face) ("\\<\\([0-9]+\\)[ ]*:" 1 font-lock-function-name-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) ("\\<\\(goto\\)\\>[ ]*\\([0-9]+\\)?" 2 font-lock-keyword-face t)] 9) (#$ . 3740)) (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\210\304\316\306\307\317DD\320\312\313\314\315&\210\304\321\306\307\322DD\323\312\324\314\315&\210\304\325\306\307\326DD\327\312\324\314\315&\210\304\330\306\307\331DD\332\312\324\314\315&\210\304\333\306\307\334DD\335\312\324\314\315&\210\304\336\306\307\337DD\340\312\341\314\315&\207" [put pascal-mode font-lock-defaults (pascal-font-lock-keywords nil t) custom-declare-variable pascal-indent-level funcall function #[0 "\300\207" [3] 1 "\n\n(fn)"] "Indentation of Pascal statements with respect to containing block." :type integer :group pascal pascal-case-indent #[0 "\300\207" [2] 1 "\n\n(fn)"] "Indentation for case statements." pascal-auto-newline #[0 "\300\207" [nil] 1 "\n\n(fn)"] "Non-nil means automatically insert newlines in certain cases.\nThese include after semicolons and after the punctuation mark after an `end'." boolean pascal-indent-nested-functions #[0 "\300\207" [t] 1 "\n\n(fn)"] "Non-nil means nested functions are indented." pascal-tab-always-indent #[0 "\300\207" [t] 1 "\n\n(fn)"] "Non-nil means TAB in Pascal mode should always reindent the current line.\nIf this is nil, TAB inserts a tab if it is at the end of the line\nand follows non-whitespace text." pascal-auto-endcomments #[0 "\300\207" [t] 1 "\n\n(fn)"] "Non-nil means automatically insert comments after certain `end's.\nSpecifically, this is done after the ends of cases statements and functions.\nThe name of the function or case is included between the braces." pascal-auto-lineup #[0 "\300\207" [(all)] 1 "\n\n(fn)"] "List of contexts where auto lineup of :'s or ='s should be done.\nElements can be of type: 'paramlist', 'declaration' or 'case', which will\ndo auto lineup in parameterlist, declarations or case-statements\nrespectively. The word 'all' will do all lineups. '(case paramlist) for\ninstance will do lineup in case-statements and parameterlist, while '(all)\nwill do all lineups." (set :extra-offset 8 (const :tag "Everything" all) (const :tag "Parameter lists" paramlist) (const :tag "Declarations" declaration) (const :tag "Case statements" case))] 8) #@202 If non-nil, `pascal-complete-word' tries all possible completions. Repeated use of \[pascal-complete-word] then shows all completions in turn, instead of displaying a list of all possible completions. (defvar pascal-toggle-completions nil (#$ . 6797)) (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\210\304\316\306\307\317DD\320\312\321\314\315&\210\304\322\306\307\323DD\324\312\325\314\315&\207" [make-obsolete-variable pascal-toggle-completions completion-cycle-threshold "24.1" custom-declare-variable pascal-type-keywords funcall function #[0 "\300\207" [("array" "file" "packed" "char" "integer" "real" "string" "record")] 1 "\n\n(fn)"] "Keywords for types used when completing a word in a declaration or parmlist.\nThese include integer, real, char, etc.\nThe types defined within the Pascal program\nare handled in another way, and should not be added to this list." :type (repeat (string :tag "Keyword")) :group pascal pascal-start-keywords #[0 "\300\207" [("begin" "end" "function" "procedure" "repeat" "until" "while" "read" "readln" "reset" "rewrite" "write" "writeln")] 1 "\n\n(fn)"] "Keywords to complete when standing at the first word of a statement.\nThese are keywords such as begin, repeat, until, readln.\nThe procedures and variables defined within the Pascal program\nare handled in another way, and should not be added to this list." (repeat (string :tag "Keyword")) pascal-separator-keywords #[0 "\300\207" [("downto" "else" "mod" "div" "then")] 1 "\n\n(fn)"] "Keywords to complete when NOT standing at the first word of a statement.\nThese are keywords such as downto, else, mod, then.\nVariables and function names defined within the Pascal program\nare handled in another way, and should not be added to this list." (repeat (string :tag "Keyword"))] 8) (defalias 'pascal-declaration-end #[0 "\300\211\301V\2055 \302\303\304\305!\306#\2055 \300\224\203 \211T\262\202 \305\224\203) \211S\262\202 \307\310!\203 \301\262\202 \207" [1 0 re-search-forward "[:=]\\|\\(\\<record\\>\\)\\|\\(\\<end\\>\\)" point-at-eol 2 t looking-at "[^(\n]+)"] 5 "\n\n(fn)"]) (defalias 'pascal-declaration-beg #[0 "\300\211\301V\2034 \302\303\304\301!\305#\2034 \300\224\203 \301\262\202 \306\224\203( \211S\262\202 \307\224\203 \211T\262\202 \211\301U\207" [1 0 re-search-backward "[:=]\\|\\<\\(type\\|var\\|label\\|const\\)\\>\\|\\(\\<record\\>\\)\\|\\(\\<end\\>\\)" point-at-bol t 2 3] 5 "\n\n(fn)"]) (defalias 'pascal-within-string #[0 "\300\301\302 `\"8\207" [3 parse-partial-sexp point-at-bol] 4 "\n\n(fn)"]) (byte-code "\300\301\302\303#\210\304\305N\204 \300\304\305\306\307!#\210\310\311!\204 \300\311\312\313#\210\300\207" [put pascal-within-string byte-optimizer byte-compile-inline-expand pascal-mode-hook variable-documentation purecopy "Hook run when entering Pascal mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp pascal-mode-map definition-name pascal-mode] 5) (defvar pascal-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\305\306!\204 \302\306\307\310#\210\300\207" [pascal-mode-map variable-documentation put purecopy "Keymap for `pascal-mode'." boundp pascal-mode-syntax-table definition-name pascal-mode] 5) (defvar pascal-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [pascal-mode-syntax-table variable-documentation put purecopy "Syntax table for `pascal-mode'." pascal-mode-abbrev-table definition-name pascal-mode] 5) (defvar pascal-mode-abbrev-table (progn (define-abbrev-table 'pascal-mode-abbrev-table nil) pascal-mode-abbrev-table)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [pascal-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `pascal-mode'." pascal-mode derived-mode-parent prog-mode] 5) #@2051 Major mode for editing Pascal code. \<pascal-mode-map> TAB indents for Pascal code. Delete converts tabs to spaces as it moves back. \[completion-at-point] completes the word around current point with respect to position in code \[completion-help-at-point] 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-mode] - Enter `pascal-outline-mode'. 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 semicolons and the punctuation mark after an end. `pascal-indent-nested-functions' (default t) Non-nil means nested functions are indented. `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 should 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. (fn) (defalias 'pascal-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204'