home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Text / Emacs-1.12d folder / lisp / fortran.elc < prev    next >
Encoding:
Text File  |  1993-11-09  |  20.4 KB  |  243 lines  |  [dELC/EMAC]

  1.  
  2. (defvar fortran-do-indent 3 "\
  3. *Extra indentation applied to `do' blocks.")
  4.  
  5. (defvar fortran-if-indent 3 "\
  6. *Extra indentation applied to `if' blocks.")
  7.  
  8. (defvar fortran-continuation-indent 5 "\
  9. *Extra indentation applied to `continuation' lines.")
  10.  
  11. (defvar fortran-comment-indent-style (quote fixed) "\
  12. *nil forces comment lines not to be touched,
  13. 'fixed produces fixed comment indentation to comment-column,
  14. and 'relative indents to current fortran indentation plus comment-column.")
  15.  
  16. (defvar fortran-comment-line-column 6 "\
  17. *Indentation for text in comment lines.")
  18.  
  19. (defvar comment-line-start nil "\
  20. *Delimiter inserted to start new full-line comment.")
  21.  
  22. (defvar comment-line-start-skip nil "\
  23. *Regexp to match the start of a full-line comment.")
  24.  
  25. (defvar fortran-minimum-statement-indent 6 "\
  26. *Minimum indentation for fortran statements.")
  27.  
  28. (defvar fortran-comment-indent-char 32 "\
  29. *Character to be inserted for Fortran comment indentation.
  30. Normally a space.")
  31.  
  32. (defvar fortran-line-number-indent 1 "\
  33. *Maximum indentation for Fortran line numbers.
  34. 5 means right-justify them within their five-column field.")
  35.  
  36. (defvar fortran-check-all-num-for-matching-do nil "\
  37. *Non-nil causes all numbered lines to be treated as possible do-loop ends.")
  38.  
  39. (defvar fortran-continuation-char 36 "\
  40. *Character which is inserted in column 5 by \\[fortran-split-line]
  41. to begin a continuation line.  Normally $.")
  42.  
  43. (defvar fortran-comment-region "c$$$" "\
  44. *String inserted by \\[fortran-comment-region] at start of each line in region.")
  45.  
  46. (defvar fortran-electric-line-number t "\
  47. *Non-nil causes line number digits to be moved to the correct column as typed.")
  48.  
  49. (defvar fortran-startup-message t "\
  50. *Non-nil displays a startup message when fortran-mode is first called.")
  51.  
  52. (defvar fortran-column-ruler (concat "0   4 6  10        20        30        40        50        60        70
  53. " "[   ]|{   |    |    |    |    |    |    |    |    |    |    |    |    |}
  54. ") "*String displayed above current line by \\[fortran-column-ruler].")
  55.  
  56. (defconst fortran-mode-version "1.21")
  57.  
  58. (defvar fortran-mode-syntax-table nil "\
  59. Syntax table in use in fortran-mode buffers.")
  60.  
  61. (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))
  62.  
  63. (defvar fortran-mode-map nil "\
  64. Keymap used in fortran mode.")
  65.  
  66. (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 "
  67. " (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)))
  68.  
  69. (defvar fortran-mode-abbrev-table nil)
  70.  
  71. (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)))
  72.  
  73. (defun fortran-mode nil "\
  74. Major mode for editing fortran code.
  75. Tab indents the current fortran line correctly. 
  76. `do' statements must not share a common `continue'.
  77.  
  78. Type `;?' or `;\\[help-command]' to display a list of built-in abbrevs for Fortran keywords.
  79.  
  80. Variables controlling indentation style and extra features:
  81.  
  82.  comment-start
  83.     Normally nil in Fortran mode.  If you want to use comments
  84.     starting with `!', set this to the string \"!\".
  85.  fortran-do-indent
  86.     Extra indentation within do blocks.  (default 3)
  87.  fortran-if-indent
  88.     Extra indentation within if blocks.  (default 3)
  89.  fortran-continuation-indent
  90.     Extra indentation appled to continuation statements.  (default 5)
  91.  fortran-comment-line-column
  92.     Amount of indentation for text within full-line comments. (default 6)
  93.  fortran-comment-indent-style
  94.     nil    means don't change indentation of text in full-line comments,
  95.     fixed  means indent that text at column fortran-comment-line-column
  96.     relative  means indent at fortran-comment-line-column beyond the
  97.            indentation for a line of code.
  98.     Default value is fixed.
  99.  fortran-comment-indent-char
  100.     Character to be inserted instead of space for full-line comment
  101.     indentation.  (default is a space)
  102.  fortran-minimum-statement-indent
  103.     Minimum indentation for fortran statements. (default 6)
  104.  fortran-line-number-indent
  105.     Maximum indentation for line numbers.  A line number will get
  106.     less than this much indentation if necessary to avoid reaching
  107.     column 5.  (default 1)
  108.  fortran-check-all-num-for-matching-do
  109.     Non-nil causes all numbered lines to be treated as possible 'continue'
  110.     statements.  (default nil)
  111.  fortran-continuation-char
  112.     character to be inserted in column 5 of a continuation line.
  113.     (default $)
  114.  fortran-comment-region
  115.     String inserted by \\[fortran-comment-region] at start of each line in 
  116.     region.  (default \"c$$$\")
  117.  fortran-electric-line-number
  118.     Non-nil causes line number digits to be moved to the correct column 
  119.     as typed.  (default t)
  120.  fortran-startup-message
  121.     Set to nil to inhibit message first time fortran-mode is used.
  122.  
  123. Turning on Fortran mode calls the value of the variable fortran-mode-hook 
  124. with no args, if that value is non-nil.
  125. \\{fortran-mode-map}" (interactive) (byte-code "¬à” àÖ
  126. ‘’    \"à¬âà âà÷
  127. !à◊Δ!àÿâà◊«!àŸâà◊»!à⁄âà◊…!à€â    à◊ !à‹â
  128. à◊À!à¬â à◊Ã!àÕâ à◊Œ!àÕâà◊œ!à¬âà›!àfiâàflâà‡·!á" [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*][^     
  129. ]*[     ]*" "c" "![     ]*" use-local-map "Fortran" fortran-mode run-hooks fortran-mode-hook] 15))
  130.  
  131. (defun fortran-comment-hook nil (byte-code "䡬!à√i\\])á" [comment-column skip-chars-backward "     " 1] 3))
  132.  
  133. (defun fortran-indent-comment nil "\
  134. Align or create comment on current line.
  135. Existing comments of all types are recognized and aligned.
  136. If the line has no comment, a side-by-side comment is inserted and aligned
  137. if the value of  comment-start  is not nil.
  138. Otherwise, a separate-line comment is inserted, on this line
  139. or on a new line inserted before this line if this line is not blank." (interactive) (byte-code "Δà« à»!É… Çf     äÀ à`)¬#É\"àÇf Ö*»Õ!?É<À àŒ àœ jà cÇf»Õ!ÉGŒ ÇP« à–cà—“!à cà”
  140. ;É`
  141. ‘HÇa
  142. ’ iZ\"á" [comment-line-start-skip comment-start-skip t comment-start comment-line-start fortran-comment-indent-char nil beginning-of-line looking-at fortran-indent-line re-search-forward end-of-line indent-for-comment "^[     ]*$" delete-horizontal-space fortran-comment-hook "
  143. " forward-char -1 insert-char 0 calculate-fortran-indent] 19))
  144.  
  145. (defun fortran-comment-region (beg-region end-region arg) "\
  146. Comments every line in the region.
  147. Puts fortran-comment-region at the beginning of every line in the region. 
  148. BEG-REGION and END-REGION are args which specify the region boundaries. 
  149. With non-nil ARG, uncomments the region." (interactive "*r
  150. P") (byte-code "«à» …  
  151. \"à bàÀ à ?É2
  152. càÃÕ!ŒUÖ&`WÖ/
  153. càÇÇeœ
  154. !–!ÖD—`“Œ!\"àÃÕ!ŒUÖP`WÖd–!Ö`—`“Œ!\"àÇE)à    bà «\"à     «\"*á" [end-region-mark save-point end-region beg-region arg fortran-comment-region com nil make-marker point-marker set-marker beginning-of-line forward-line 1 0 regexp-quote looking-at delete-region match-end] 17))
  155.  
  156. (defun fortran-abbrev-start nil "\
  157. Typing \";\\[help-command]\" or \";?\" lists all the fortran abbrevs. 
  158. Any other key combination is executed normally." (interactive) (byte-code "ƒàƒ    càrâ≈UÜ
  159. UÉΔ Çâ)á" [c last-command-char help-char unread-command-char nil 63 fortran-abbrev-help] 3))
  160.  
  161. (defun fortran-abbrev-help nil "\
  162. List the currently defined abbrevs in Fortran mode." (interactive) (byte-code "¡à¬√!àƒ≈!àΔ«\"଻!á" [fortran-mode-abbrev-table nil message "Listing abbrev table..." require abbrevlist list-one-abbrev-table "*Help*" "Listing abbrev table...done"] 5))
  163.  
  164. (defun fortran-column-ruler nil "\
  165. Inserts a column ruler momentarily above current line, till next keystroke.
  166. The ruler is defined by the value of fortran-column-ruler.
  167. The key typed is executed unless it is SPC." (interactive) (byte-code "¡à¬ä√ à`)¡ƒ$á" [fortran-column-ruler nil momentary-string-display beginning-of-line "Type SPC or any command to erase ruler."] 6))
  168.  
  169. (defun fortran-window-create nil "\
  170. Makes the window 72 columns wide." (interactive) (byte-code "¬à√ƒ≈!)àΔ«!à»…¡\"à À !á" [window-min-width t nil 2 split-window-horizontally 73 other-window 1 switch-to-buffer " fortran-window-extra" select-window previous-window] 6))
  171.  
  172. (defun fortran-split-line nil "\
  173. Break line at point and insert continuation marker and alignment." (interactive) (byte-code "√àƒ àä≈ àΔ!)É«»    …#Ç« 
  174. \"àÀ á" [comment-line-start-skip comment-line-start fortran-continuation-char nil delete-horizontal-space beginning-of-line looking-at insert "
  175. " " " "
  176.  " fortran-indent-line] 7))
  177.  
  178. (defun delete-horizontal-regexp (chars) "\
  179. Delete all characters in CHARS around point.
  180. CHARS is like the inside of a [...] in a regular expression
  181. except that ] is never special and  quotes ^, - or ." (interactive "*s") (byte-code "¡à¬!à√`ƒ!à`\"á" [chars nil skip-chars-backward delete-region skip-chars-forward] 5))
  182.  
  183. (defun fortran-electric-line-number (arg) "\
  184. Self insert, but if part of a Fortran line number indent it automatically.
  185. Auto-indent does not happen if a numeric arg is used." (interactive "P") (byte-code "ƒàÜ    ?É≈!Ç4äΔ«ä» à`)¬#)Ü#… !É+ cÇ4ÀÃ!à càÕ á" [arg fortran-electric-line-number t last-command-char nil self-insert-command re-search-backward "[^     0-9]" beginning-of-line looking-at "[0-9]" skip-chars-backward "     " fortran-indent-line] 7))
  186.  
  187. (defun beginning-of-fortran-subprogram nil "\
  188. Moves point to the beginning of the current fortran subprogram." (interactive) (byte-code "¬à¡√ƒ!à≈Δ¬«#à»Δ!Ö… !)á" [case-fold-search t nil beginning-of-line -1 re-search-backward "^[     0-9]*end\\b[     ]*[^     =(a-z]" move looking-at forward-line 1] 5))
  189.  
  190. (defun end-of-fortran-subprogram nil "\
  191. Moves point to the end of the current fortran subprogram." (interactive) (byte-code "¬à¡√ƒ!à≈Δ¬«#à»…!bà À!)á" [case-fold-search t nil beginning-of-line 2 re-search-forward "^[     0-9]*end\\b[     ]*[^     =(a-z]" move match-beginning 0 forward-line 1] 5))
  192.  
  193. (defun mark-fortran-subprogram nil "\
  194. Put mark at end of fortran subprogram, point at beginning. 
  195. The marks are pushed." (interactive) (byte-code "¿à¡ à¬`!à√ á" [nil end-of-fortran-subprogram push-mark beginning-of-fortran-subprogram] 4))
  196.  
  197. (defun fortran-previous-statement nil "\
  198. Moves point to beginning of the previous fortran statement.
  199. Returns 'first-statement if that statement is the first
  200. non-comment Fortran statement in the file, and nil otherwise." (interactive) (byte-code "≈à≈≈Δ à«»… 
  201. !!P!Ü«À!âàÃÕ!ŒUâÖ<« !Ü<«œ!Ü<«À!Ü<«» P!ÖD≈àÇà    ÖK?ÉT–—!Çc    É]“ Çc?Öc”*á" [not-first-statement continue-test fortran-continuation-char comment-line-start-skip comment-start-skip nil beginning-of-line looking-at "[     ]*" regexp-quote char-to-string "     [^ 0
  202. ]" forward-line -1 0 "[     ]*$" message "Incomplete continuation statement." fortran-previous-statement first-statement] 13))
  203.  
  204. (defun fortran-next-statement nil "\
  205. Moves point to beginning of the next fortran statement.
  206.  Returns 'last-statement if that statement is the last
  207.  non-comment Fortran statement in the file, and nil otherwise." (interactive) (byte-code "√à√ƒ à≈Δ!«UâÖ(»    !Ü(»…!Ü(» !Ü(»À
  208. P!Ö0√àÇà?Ö7Ã)á" [not-last-statement comment-line-start-skip comment-start-skip nil beginning-of-line forward-line 1 0 looking-at "[     ]*$" "     [^ 0
  209. ]" "[     ]*" last-statement] 8))
  210.  
  211. (defun fortran-indent-line nil "\
  212. Indents current fortran line based on its contents and on previous lines." (interactive) (byte-code "√àƒ ä≈ àΔ U?Ü«»`…\\¡#Ö  ?É'À!Ç9≈ à«
  213. äàà`)Õ#Ö9Œ )àiWÖDœ!)á" [cfi t comment-start-skip nil calculate-fortran-indent beginning-of-line fortran-current-line-indentation re-search-forward "^[     ]*[0-9]+" 4 fortran-line-number-indented-correctly-p fortran-indent-to-column end-of-line move fortran-indent-comment move-to-column] 12))
  214.  
  215. (defun fortran-indent-subprogram nil "\
  216. Properly indents the Fortran subprogram which contains point." (interactive) (byte-code "¿àä¡ à¬√!àƒ`≈ ¿#)à¬Δ!á" [nil mark-fortran-subprogram message "Indenting subprogram..." indent-region mark "Indenting subprogram...done."] 7))
  217.  
  218. (defun calculate-fortran-indent nil "\
  219. Calculates the fortran indent column based on previous lines." (byte-code "ŒŒ√䜠âà    É âÇ`eUÉ\" âÇ&– âà—“!à”‘!Éd”’!ÜXŒ÷◊!ÿUÖM”Ÿ!ÖM”⁄!â?ÖUŒàÇ9à
  220. )Öa\\âÇ”€!És\\âÇ”‹!Ö\\â)àä› à”fi!Ü?”!É∞    fl=É¢
  221. \\âÇ≠    ‡=Ö≠
  222. âÇ?”·‚„ !!P!Ü¿”‰!Éà \\âÇ?    Ü?
  223. Ö›”Â!֛ʠÉÈZâÇ?—“!à”Á!ɸZâÇ?”€!É ZâÇ?”Ë!ÖÊ ÉZâÇ?”È!É.ZâÇ?”Í!Ö8 U?Ö?ÎÏ \")à ]+á" [icol first-statement case-fold-search t fortran-minimum-statement-indent then-test fortran-if-indent fortran-do-indent comment-line-start-skip fortran-comment-indent-style fortran-comment-line-column fortran-continuation-char fortran-continuation-indent fortran-check-all-num-for-matching-do nil fortran-previous-statement fortran-current-line-indentation skip-chars-forward "     0-9" looking-at "if[     ]*(" ".*)[     ]*then\\b[     ]*[^     (=a-z0-9]" forward-line 1 0 "     [^ 0]" ".*then\\b[     ]*[^     (=a-z0-9]" "\\(else\\|elseif\\)\\b" "do\\b" beginning-of-line "[     ]*$" relative fixed "[     ]*" regexp-quote char-to-string "     [^ 0
  224. ]" "[     ]*[0-9]+" fortran-check-for-matching-do "end[     ]*if\\b" "continue\\b" "end[     ]*do\\b" "end\\b[     ]*[^     =(a-z]" message "Warning: `end' not in column %d.  Probably an unclosed block."] 29))
  225.  
  226. (defun fortran-current-line-indentation nil "\
  227. Indentation of current line, ignoring Fortran line number or continuation.
  228. This is the column position of the first non-whitespace character
  229. aside from the line number and/or column 5 line-continuation character.
  230. For comment lines, returns indentation of the first
  231. non-indentation text within the comment." (byte-code "ä√ àƒ!É ≈Δ!bà«    ;É    Ç»    !!Ç0ƒ…!É-≈Δ!bÇ0 À!à«Ã!ài)á" [comment-line-start-skip fortran-comment-indent-char t beginning-of-line looking-at match-end 0 skip-chars-forward char-to-string "     [^ 0
  232. ]" move-to-column 5 "     "] 10))
  233.  
  234. (defun fortran-indent-to-column (col) "\
  235. Indents current line with spaces to column COL.
  236. notes: 1) A non-zero/non-blank character in column 5 indicates a continuation
  237.           line, and this continuation character is retained on indentation;
  238.        2) If fortran-continuation-char is the first non-whitespace character,
  239.           this is a continuation line;
  240.        3) A non-continuation line which has a number as the first
  241.           non-whitespace character is a numbered line." (byte-code "ä  àÀ!É2    Ö/ ;É ÃHÇ ÕÃ!bàŒœ–
  242. !P!à—
  243. iZ\")Ç£À“!É>”‘!Ç{’ àmÜ{g
  244. UÉT÷jà”◊!Ç{Àÿ!Ö{÷ÕÃ!`ZZÃWÉpŸ⁄!Çv^j)à€‹!à’ à jà›äfi à`)…#Ö£flÃ!bài‡ U?Ö£’ à‡ j)á" [comment-line-start-skip fortran-comment-indent-style char fortran-comment-indent-char col fortran-continuation-char extra-space fortran-line-number-indent comment-start-skip t beginning-of-line looking-at 0 match-end delete-horizontal-regexp "     " char-to-string insert-char "     [^ 0
  245. ]" forward-char 6 delete-horizontal-space 5 1 "[0-9]+" message "Warning: line number exceeds 5-digit limit." skip-chars-forward "0-9" re-search-forward end-of-line match-beginning fortran-comment-hook] 22))
  246.  
  247. (defun fortran-line-number-indented-correctly-p nil "\
  248. Return t if current line's line number is correctly indente.
  249. Do not call if there is no line number." (byte-code "ä¡ à¬√!àiXÖiUܬƒ!ài≈U)á" [fortran-line-number-indent beginning-of-line skip-chars-forward "     " "0-9" 5] 5))
  250.  
  251. (defun fortran-check-for-matching-do nil "\
  252. When called from a numbered statement, returns t
  253.  if matching 'do' is found, and nil otherwise." (byte-code "√¬䃠à≈Δ!Ö7«»!à«…!à `«À!à`\"âàƒ àÃÕŒœ–%√¬#Ö7≈—P!)*á" [charnum case-fold-search t nil beginning-of-line looking-at "[     ]*[0-9]+" skip-chars-forward "     " "0" buffer-substring "0-9" re-search-backward concat "\\(^[     0-9]*end\\b[     ]*[^     =(a-z]\\)\\|\\(^[     0-9]*do[     ]*0*" "\\b\\)\\|\\(^[     ]*0*" "\\b\\)" "^[     0-9]*do[     ]*0*"] 14))
  254.