home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
emacs-18.59-src.tgz
/
emacs-18.59-src.tar
/
fsf
/
emacs18
/
lisp
/
fortran.elc
< prev
next >
Wrap
Text File
|
1996-09-28
|
21KB
|
243 lines
(defvar fortran-do-indent 3 "\
*Extra indentation applied to `do' blocks.")
(defvar fortran-if-indent 3 "\
*Extra indentation applied to `if' blocks.")
(defvar fortran-continuation-indent 5 "\
*Extra indentation applied to `continuation' lines.")
(defvar fortran-comment-indent-style (quote fixed) "\
*nil forces comment lines not to be touched,
'fixed produces fixed comment indentation to comment-column,
and 'relative indents to current fortran indentation plus comment-column.")
(defvar fortran-comment-line-column 6 "\
*Indentation for text in comment lines.")
(defvar comment-line-start nil "\
*Delimiter inserted to start new full-line comment.")
(defvar comment-line-start-skip nil "\
*Regexp to match the start of a full-line comment.")
(defvar fortran-minimum-statement-indent 6 "\
*Minimum indentation for fortran statements.")
(defvar fortran-comment-indent-char 32 "\
*Character to be inserted for Fortran comment indentation.
Normally a space.")
(defvar fortran-line-number-indent 1 "\
*Maximum indentation for Fortran line numbers.
5 means right-justify them within their five-column field.")
(defvar fortran-check-all-num-for-matching-do nil "\
*Non-nil causes all numbered lines to be treated as possible do-loop ends.")
(defvar fortran-continuation-char 36 "\
*Character which is inserted in column 5 by \\[fortran-split-line]
to begin a continuation line. Normally $.")
(defvar fortran-comment-region "c$$$" "\
*String inserted by \\[fortran-comment-region] at start of each line in region.")
(defvar fortran-electric-line-number t "\
*Non-nil causes line number digits to be moved to the correct column as typed.")
(defvar fortran-startup-message t "\
*Non-nil displays a startup message when fortran-mode is first called.")
(defvar fortran-column-ruler (concat "0 4 6 10 20 30 40 50 60 70
" "[ ]|{ | | | | | | | | | | | | |}
") "*String displayed above current line by \\[fortran-column-ruler].")
(defconst fortran-mode-version "1.21")
(defvar fortran-mode-syntax-table nil "\
Syntax table in use in fortran-mode buffers.")
(if fortran-mode-syntax-table nil (setq fortran-mode-syntax-table (make-syntax-table)) (modify-syntax-entry 59 "w" fortran-mode-syntax-table) (modify-syntax-entry 43 "." fortran-mode-syntax-table) (modify-syntax-entry 45 "." fortran-mode-syntax-table) (modify-syntax-entry 42 "." fortran-mode-syntax-table) (modify-syntax-entry 47 "." fortran-mode-syntax-table) (modify-syntax-entry 39 "\"" fortran-mode-syntax-table) (modify-syntax-entry 34 "\"" fortran-mode-syntax-table) (modify-syntax-entry 92 "/" fortran-mode-syntax-table) (modify-syntax-entry 46 "w" fortran-mode-syntax-table) (modify-syntax-entry 10 ">" fortran-mode-syntax-table))
(defvar fortran-mode-map nil "\
Keymap used in fortran mode.")
(if fortran-mode-map nil (setq fortran-mode-map (make-sparse-keymap)) (define-key fortran-mode-map ";" (quote fortran-abbrev-start)) (define-key fortran-mode-map ";" (quote fortran-comment-region)) (define-key fortran-mode-map "" (quote beginning-of-fortran-subprogram)) (define-key fortran-mode-map "" (quote end-of-fortran-subprogram)) (define-key fortran-mode-map "" (quote fortran-indent-comment)) (define-key fortran-mode-map "" (quote mark-fortran-subprogram)) (define-key fortran-mode-map "
" (quote fortran-split-line)) (define-key fortran-mode-map "" (quote fortran-indent-subprogram)) (define-key fortran-mode-map "" (quote fortran-window-create)) (define-key fortran-mode-map "" (quote fortran-column-ruler)) (define-key fortran-mode-map "" (quote fortran-previous-statement)) (define-key fortran-mode-map "" (quote fortran-next-statement)) (define-key fortran-mode-map " " (quote fortran-indent-line)) (define-key fortran-mode-map "0" (quote fortran-electric-line-number)) (define-key fortran-mode-map "1" (quote fortran-electric-line-number)) (define-key fortran-mode-map "2" (quote fortran-electric-line-number)) (define-key fortran-mode-map "3" (quote fortran-electric-line-number)) (define-key fortran-mode-map "4" (quote fortran-electric-line-number)) (define-key fortran-mode-map "5" (quote fortran-electric-line-number)) (define-key fortran-mode-map "6" (quote fortran-electric-line-number)) (define-key fortran-mode-map "7" (quote fortran-electric-line-number)) (define-key fortran-mode-map "8" (quote fortran-electric-line-number)) (define-key fortran-mode-map "9" (quote fortran-electric-line-number)))
(defvar fortran-mode-abbrev-table nil)
(if fortran-mode-abbrev-table nil (define-abbrev-table (quote fortran-mode-abbrev-table) nil) (let ((abbrevs-changed nil)) (define-abbrev fortran-mode-abbrev-table ";b" "byte" nil) (define-abbrev fortran-mode-abbrev-table ";ch" "character" nil) (define-abbrev fortran-mode-abbrev-table ";cl" "close" nil) (define-abbrev fortran-mode-abbrev-table ";c" "continue" nil) (define-abbrev fortran-mode-abbrev-table ";cm" "common" nil) (define-abbrev fortran-mode-abbrev-table ";cx" "complex" nil) (define-abbrev fortran-mode-abbrev-table ";di" "dimension" nil) (define-abbrev fortran-mode-abbrev-table ";do" "double" nil) (define-abbrev fortran-mode-abbrev-table ";dc" "double complex" nil) (define-abbrev fortran-mode-abbrev-table ";dp" "double precision" nil) (define-abbrev fortran-mode-abbrev-table ";dw" "do while" nil) (define-abbrev fortran-mode-abbrev-table ";e" "else" nil) (define-abbrev fortran-mode-abbrev-table ";ed" "enddo" nil) (define-abbrev fortran-mode-abbrev-table ";el" "elseif" nil) (define-abbrev fortran-mode-abbrev-table ";en" "endif" nil) (define-abbrev fortran-mode-abbrev-table ";eq" "equivalence" nil) (define-abbrev fortran-mode-abbrev-table ";ex" "external" nil) (define-abbrev fortran-mode-abbrev-table ";ey" "entry" nil) (define-abbrev fortran-mode-abbrev-table ";f" "format" nil) (define-abbrev fortran-mode-abbrev-table ";fu" "function" nil) (define-abbrev fortran-mode-abbrev-table ";g" "goto" nil) (define-abbrev fortran-mode-abbrev-table ";im" "implicit" nil) (define-abbrev fortran-mode-abbrev-table ";ib" "implicit byte" nil) (define-abbrev fortran-mode-abbrev-table ";ic" "implicit complex" nil) (define-abbrev fortran-mode-abbrev-table ";ich" "implicit character" nil) (define-abbrev fortran-mode-abbrev-table ";ii" "implicit integer" nil) (define-abbrev fortran-mode-abbrev-table ";il" "implicit logical" nil) (define-abbrev fortran-mode-abbrev-table ";ir" "implicit real" nil) (define-abbrev fortran-mode-abbrev-table ";inc" "include" nil) (define-abbrev fortran-mode-abbrev-table ";in" "integer" nil) (define-abbrev fortran-mode-abbrev-table ";intr" "intrinsic" nil) (define-abbrev fortran-mode-abbrev-table ";l" "logical" nil) (define-abbrev fortran-mode-abbrev-table ";op" "open" nil) (define-abbrev fortran-mode-abbrev-table ";pa" "parameter" nil) (define-abbrev fortran-mode-abbrev-table ";pr" "program" nil) (define-abbrev fortran-mode-abbrev-table ";p" "print" nil) (define-abbrev fortran-mode-abbrev-table ";re" "real" nil) (define-abbrev fortran-mode-abbrev-table ";r" "read" nil) (define-abbrev fortran-mode-abbrev-table ";rt" "return" nil) (define-abbrev fortran-mode-abbrev-table ";rw" "rewind" nil) (define-abbrev fortran-mode-abbrev-table ";s" "stop" nil) (define-abbrev fortran-mode-abbrev-table ";su" "subroutine" nil) (define-abbrev fortran-mode-abbrev-table ";ty" "type" nil) (define-abbrev fortran-mode-abbrev-table ";w" "write" nil)))
(defun fortran-mode nil "\
Major mode for editing fortran code.
Tab indents the current fortran line correctly.
`do' statements must not share a common `continue'.
Type `;?' or `;\\[help-command]' to display a list of built-in abbrevs for Fortran keywords.
Variables controlling indentation style and extra features:
comment-start
Normally nil in Fortran mode. If you want to use comments
starting with `!', set this to the string \"!\".
fortran-do-indent
Extra indentation within do blocks. (default 3)
fortran-if-indent
Extra indentation within if blocks. (default 3)
fortran-continuation-indent
Extra indentation appled to continuation statements. (default 5)
fortran-comment-line-column
Amount of indentation for text within full-line comments. (default 6)
fortran-comment-indent-style
nil means don't change indentation of text in full-line comments,
fixed means indent that text at column fortran-comment-line-column
relative means indent at fortran-comment-line-column beyond the
indentation for a line of code.
Default value is fixed.
fortran-comment-indent-char
Character to be inserted instead of space for full-line comment
indentation. (default is a space)
fortran-minimum-statement-indent
Minimum indentation for fortran statements. (default 6)
fortran-line-number-indent
Maximum indentation for line numbers. A line number will get
less than this much indentation if necessary to avoid reaching
column 5. (default 1)
fortran-check-all-num-for-matching-do
Non-nil causes all numbered lines to be treated as possible 'continue'
statements. (default nil)
fortran-continuation-char
character to be inserted in column 5 of a continuation line.
(default $)
fortran-comment-region
String inserted by \\[fortran-comment-region] at start of each line in
region. (default \"c$$$\")
fortran-electric-line-number
Non-nil causes line number digits to be moved to the correct column
as typed. (default t)
fortran-startup-message
Set to nil to inhibit message first time fortran-mode is used.
Turning on Fortran mode calls the value of the variable fortran-mode-hook
with no args, if that value is non-nil.
\\{fortran-mode-map}" (interactive) (byte-code "ÂÓ ÔÕ \"ÂÖ!×Æ!Ø×Ç!Ù×È!Ú×É!Û ×Ê!Ü
×Ë!Â×Ì!Í×Î!Í×Ï!ÂÝ!Þßàá!" [fortran-startup-message fortran-mode-version nil local-abbrev-table fortran-mode-abbrev-table fortran-mode-syntax-table indent-line-function comment-indent-hook comment-line-start-skip comment-line-start comment-start-skip comment-start require-final-newline t abbrev-all-caps indent-tabs-mode fortran-mode-map mode-name major-mode kill-all-local-variables message "Emacs Fortran mode version %s. Bugs to bug-fortran-mode@erl.mit.edu" set-syntax-table make-local-variable fortran-indent-line fortran-comment-hook "^[Cc*][^
]*[ ]*" "c" "![ ]*" use-local-map "Fortran" fortran-mode run-hooks fortran-mode-hook] 15))
(defun fortran-comment-hook nil (byte-code "ÁÂ!Ãi\\])" [comment-column skip-chars-backward " " 1] 3))
(defun fortran-indent-comment nil "\
Align or create comment on current line.
Existing comments of all types are recognized and aligned.
If the line has no comment, a side-by-side comment is inserted and aligned
if the value of comment-start is not nil.
Otherwise, a separate-line comment is inserted, on this line
or on a new line inserted before this line if this line is not blank." (interactive) (byte-code "ÆÇ È! É f Ê Ë `)Â#\" Ì f * ÈÍ!?<