fortran.elc 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. (defvar fortran-do-indent 3 "\
  2. *Extra indentation applied to `do' blocks.")
  3. (defvar fortran-if-indent 3 "\
  4. *Extra indentation applied to `if' blocks.")
  5. (defvar fortran-continuation-indent 5 "\
  6. *Extra indentation applied to `continuation' lines.")
  7. (defvar fortran-comment-indent-style (quote fixed) "\
  8. *nil forces comment lines not to be touched,
  9. 'fixed produces fixed comment indentation to comment-column,
  10. and 'relative indents to current fortran indentation plus comment-column.")
  11. (defvar fortran-comment-line-column 6 "\
  12. *Indentation for text in comment lines.")
  13. (defvar comment-line-start nil "\
  14. *Delimiter inserted to start new full-line comment.")
  15. (defvar comment-line-start-skip nil "\
  16. *Regexp to match the start of a full-line comment.")
  17. (defvar fortran-minimum-statement-indent 6 "\
  18. *Minimum indentation for fortran statements.")
  19. (defvar fortran-comment-indent-char 32 "\
  20. *Character to be inserted for Fortran comment indentation.
  21. Normally a space.")
  22. (defvar fortran-line-number-indent 1 "\
  23. *Maximum indentation for Fortran line numbers.
  24. 5 means right-justify them within their five-column field.")
  25. (defvar fortran-check-all-num-for-matching-do nil "\
  26. *Non-nil causes all numbered lines to be treated as possible do-loop ends.")
  27. (defvar fortran-continuation-char 36 "\
  28. *Character which is inserted in column 5 by \\[fortran-split-line]
  29. to begin a continuation line. Normally $.")
  30. (defvar fortran-comment-region "c$$$" "\
  31. *String inserted by \\[fortran-comment-region] at start of each line in region.")
  32. (defvar fortran-electric-line-number t "\
  33. *Non-nil causes line number digits to be moved to the correct column as typed.")
  34. (defvar fortran-startup-message t "\
  35. *Non-nil displays a startup message when fortran-mode is first called.")
  36. (defvar fortran-column-ruler (concat "0 4 6 10 20 30 40 50 60 70
  37. " "[ ]|{ | | | | | | | | | | | | |}
  38. ") "*String displayed above current line by \\[fortran-column-ruler].")
  39. (defconst fortran-mode-version "1.21")
  40. (defvar fortran-mode-syntax-table nil "\
  41. Syntax table in use in fortran-mode buffers.")
  42. (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))
  43. (defvar fortran-mode-map nil "\
  44. Keymap used in fortran mode.")
  45. (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 "
  46. " (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)))
  47. (defvar fortran-mode-abbrev-table nil)
  48. (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)))
  49. (defun fortran-mode nil "\
  50. Major mode for editing fortran code.
  51. Tab indents the current fortran line correctly.
  52. `do' statements must not share a common `continue'.
  53. Type `;?' or `;\\[help-command]' to display a list of built-in abbrevs for Fortran keywords.
  54. Variables controlling indentation style and extra features:
  55. comment-start
  56. Normally nil in Fortran mode. If you want to use comments
  57. starting with `!', set this to the string \"!\".
  58. fortran-do-indent
  59. Extra indentation within do blocks. (default 3)
  60. fortran-if-indent
  61. Extra indentation within if blocks. (default 3)
  62. fortran-continuation-indent
  63. Extra indentation appled to continuation statements. (default 5)
  64. fortran-comment-line-column
  65. Amount of indentation for text within full-line comments. (default 6)
  66. fortran-comment-indent-style
  67. nil means don't change indentation of text in full-line comments,
  68. fixed means indent that text at column fortran-comment-line-column
  69. relative means indent at fortran-comment-line-column beyond the
  70. indentation for a line of code.
  71. Default value is fixed.
  72. fortran-comment-indent-char
  73. Character to be inserted instead of space for full-line comment
  74. indentation. (default SPC)
  75. fortran-minimum-statement-indent
  76. Minimum indentation for fortran statements. (default 6)
  77. fortran-line-number-indent
  78. Maximum indentation for line numbers. A line number will get
  79. less than this much indentation if necessary to avoid reaching
  80. column 5. (default 1)
  81. fortran-check-all-num-for-matching-do
  82. Non-nil causes all numbered lines to be treated as possible 'continue'
  83. statements. (default nil)
  84. fortran-continuation-char
  85. character to be inserted in column 5 of a continuation line.
  86. (default $)
  87. fortran-comment-region
  88. String inserted by \\[fortran-comment-region] at start of each line in
  89. region. (default \"c$$$\")
  90. fortran-electric-line-number
  91. Non-nil causes line number digits to be moved to the correct column
  92. as typed. (default t)
  93. fortran-startup-message
  94. Set to nil to inhibit message first time fortran-mode is used.
  95. Turning on Fortran mode calls the value of the variable fortran-mode-hook
  96. with no args, if that value is non-nil.
  97. \\{fortran-mode-map}" (interactive) (byte-code "ÂˆÓ ˆƒÔÕ \"‚ˆ‰ˆ ‰ˆÖ !ˆ×Æ!ˆØ‰ˆ×Ç!ˆÙ‰ˆ×È!ˆÚ‰ˆ×É!ˆÛ‰ ˆ×Ê!ˆÜ‰
  98. ˆ×Ë!ˆÂ‰ ˆ×Ì!ˆÍ‰ ˆ×Î!ˆÍ‰ˆ×Ï!ˆÂ‰ˆÝ!ˆÞ‰ˆß‰ˆàá!‡" [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 mit-erl!bug-fortran-mode" set-syntax-table make-local-variable fortran-indent-line fortran-comment-hook "^[Cc*][^
  99. ]*[ ]*" "c" "![ ]*" use-local-map "Fortran" fortran-mode run-hooks fortran-mode-hook] 15))
  100. (defun fortran-comment-hook nil (byte-code "ŠÁÂ!ˆÃi\\])‡" [comment-column skip-chars-backward " " 1] 3))
  101. (defun fortran-indent-comment nil "\
  102. Align or create comment on current line.
  103. Existing comments of all types are recognized and aligned.
  104. If the line has no comment, a side-by-side comment is inserted and aligned
  105. if the value of comment-start is not nil.
  106. Otherwise, a separate-line comment is inserted, on this line
  107. or on a new line inserted before this line if this line is not blank." (interactive) (byte-code "ÆˆÇ ˆÈ!ƒÉ ‚jÊ ŠË ˆ`)Â#ƒ\"Ì ‚j …*ÈÍ!?ƒ<Ë ˆÎ ˆÏ jˆ c‚jÂ…jÈÍ!ƒKÎ ‚TÇ ˆÐcˆÑÒ!ˆ cˆÓ ;ƒd ÔH‚e Õ 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 "
  108. " forward-char -1 insert-char 0 calculate-fortran-indent] 19))
  109. (defun fortran-comment-region (beg-region end-region arg) "\
  110. Comments every line in the region.
  111. Puts fortran-comment-region at the beginning of every line in the region.
  112. BEG-REGION and END-REGION are args which specify the region boundaries.
  113. With non-nil ARG, uncomments the region." (interactive "*r
  114. P") (byte-code "ÇˆÈ É Ê
  115. \"ˆ bˆË ˆ ?ƒ2 cˆÌÍ!ÎU…&`W…/ cˆ‚‚mÏ !Ð!ƒGÑ`ÒÎ!\"‚HLjÌÍ!ÎU…T`W…lÐ!ƒgÑ`ÒÎ!\"‚hLj‚I)ˆ 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))
  116. (defun fortran-abbrev-start nil "\
  117. Typing \";\\[help-command]\" or \";?\" lists all the fortran abbrevs.
  118. Any other key combination is executed normally." (interactive) (byte-code "ĈÄ cˆr‰ÅU†
  119. UƒÆ ‚‰)‡" [c last-command-char help-char unread-command-char nil 63 fortran-abbrev-help] 3))
  120. (defun fortran-abbrev-help nil "\
  121. 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))
  122. (defun fortran-column-ruler nil "\
  123. Inserts a column ruler momentarily above current line, till next keystroke.
  124. The ruler is defined by the value of fortran-column-ruler.
  125. 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))
  126. (defun fortran-window-create nil "\
  127. 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))
  128. (defun fortran-split-line nil "\
  129. Break line at point and insert continuation marker and alignment." (interactive) (byte-code "ÃˆÄ ˆŠÅ ˆÆ!)ƒÇÈ É#‚ÇÈ
  130. \"ˆÊ ‡" [comment-line-start-skip comment-line-start fortran-continuation-char nil delete-horizontal-space beginning-of-line looking-at insert 10 32 fortran-indent-line] 7))
  131. (defun delete-horizontal-regexp (chars) "\
  132. Delete all characters in CHARS around point.
  133. CHARS is like the inside of a [...] in a regular expression
  134. except that ] is never special and quotes ^, - or ." (interactive "*s") (byte-code "ÁˆÂ!ˆÃ`Ä!ˆ`\"‡" [chars nil skip-chars-backward delete-region skip-chars-forward] 5))
  135. (defun fortran-electric-line-number (arg) "\
  136. Self insert, but if part of a Fortran line number indent it automatically.
  137. 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))
  138. (defun beginning-of-fortran-subprogram nil "\
  139. 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))
  140. (defun end-of-fortran-subprogram nil "\
  141. 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))
  142. (defun mark-fortran-subprogram nil "\
  143. Put mark at end of fortran subprogram, point at beginning.
  144. The marks are pushed." (interactive) (byte-code "ÀˆÁ ˆÂ`!ˆÃ ‡" [nil end-of-fortran-subprogram push-mark beginning-of-fortran-subprogram] 4))
  145. (defun fortran-previous-statement nil "\
  146. Moves point to beginning of the previous fortran statement.
  147. Returns 'first-statement if that statement is the first
  148. non-comment Fortran statement in the file, and nil otherwise." (interactive) (byte-code "ňÅÅÆ ˆÇÈÉÊ
  149. !!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
  150. ]" forward-line -1 0 "[ ]*$" message "Incomplete continuation statement." fortran-previous-statement first-statement] 13))
  151. (defun fortran-next-statement nil "\
  152. Moves point to beginning of the next fortran statement.
  153. Returns 'last-statement if that statement is the last
  154. non-comment Fortran statement in the file, and nil otherwise." (interactive) (byte-code "ÈÃÄ ˆÅÆ!ÇU‰…(È !†(ÈÉ!†(ÈÊ!†(ÈË
  155. P!…0È‚ˆ?ƒ:Ì‚;Ã)‡" [not-last-statement comment-line-start-skip comment-start-skip nil beginning-of-line forward-line 1 0 looking-at "[ ]*$" " [^ 0
  156. ]" "[ ]*" last-statement] 8))
  157. (defun fortran-indent-line nil "\
  158. Indents current fortran line based on its contents and on previous lines." (interactive) (byte-code "ÃˆÄ ŠÅ ˆÆ U?†ÇÈ`É\\Á#…Ê ?ƒ'Ë!‚=Å ˆÇ
  159. ŠÌ ˆ`)Í#ƒ<Î ‚=Ã)ˆiWƒKÏ!‚LÃ)‡" [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))
  160. (defun fortran-indent-subprogram nil "\
  161. 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))
  162. (defun calculate-fortran-indent nil "\
  163. Calculates the fortran indent column based on previous lines." (byte-code "ÎÎÃŠÏ ‰ˆ ƒ ‰‚ƒ`eUƒ\" ‰‚&Ð ‰ˆÑÒ!ˆÓÔ!ƒhÓÕ!†XÎÖ×!ØU…MÓÙ!…MÓÚ!‰?…UΈ‚9ˆ )ƒd\\‰‚e΂ƒÓÛ!ƒw\\‰‚ƒÓÜ!…ƒ\\‰)ˆŠÝ ˆÓÞ!†GÓ!ƒ´ ß=ƒ¦
  164. \\‰‚± à=…±
  165. ‰‚GÓáâã !!P!†ÄÓä!ƒÐ \\‰‚G †G …áÓå!…áæ ƒíZ‰‚GÃ…GÑÒ!ˆÓç!ƒZ‰‚GÓÛ!ƒZ‰‚GÓè!…æ ƒ'Z‰‚GÓé!ƒ6Z‰‚GÓê!…@ U?…Gëì \")ˆ ]+‡" [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
  166. ]" "[ ]*[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))
  167. (defun fortran-current-line-indentation nil "\
  168. Indentation of current line, ignoring Fortran line number or continuation.
  169. This is the column position of the first non-whitespace character
  170. aside from the line number and/or column 5 line-continuation character.
  171. For comment lines, returns indentation of the first
  172. non-indentation text within the comment." (byte-code "ŠÃ ˆÄ!ƒ ÅÆ!bˆÇ ;ƒ ‚È !!‚4ÄÉ!ƒ-ÅÆ!b‚4Â…4ÊË!ˆÇÌ!ˆ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
  173. ]" move-to-column 5 " "] 10))
  174. (defun fortran-indent-to-column (col) "\
  175. Indents current line with spaces to column COL.
  176. notes: 1) A non-zero/non-blank character in column 5 indicates a continuation
  177. line, and this continuation character is retained on indentation;
  178. 2) If fortran-continuation-char is the first non-whitespace character,
  179. this is a continuation line;
  180. 3) A non-continuation line which has a number as the first
  181. non-whitespace character is a numbered line." (byte-code "ŠÊ ˆË!ƒ6 ƒ2 ;ƒ ÌH‚ ÍÌ!bˆÎÏÐ
  182. !P!ˆÑ
  183. iZ\")‚3Ò‚¯ËÓ!ƒBÔÕ!‚Ö ˆm†g UƒX×jˆÔØ!‚ËÙ!…×ÍÌ!`ZZÌWƒtÚÛ!‚z^j)ˆÜÝ!ˆÖ ˆ jˆÞŠß ˆ`)É#ƒ®àÌ!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 nil " [^ 0
  184. ]" 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))
  185. (defun fortran-line-number-indented-correctly-p nil "\
  186. Return t if current line's line number is correctly indente.
  187. 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))
  188. (defun fortran-check-for-matching-do nil "\
  189. When called from a numbered statement, returns t
  190. if matching 'do' is found, and nil otherwise." (byte-code "ÃÂŠÄ ˆÅÆ!ƒ:ÇÈ!ˆÇÉ!ˆÊ`ÇË!ˆ`\"‰ˆÄ ˆÌÍÎÏÐ%ÃÂ#…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))