340 |
;; Special highlighting of "module procedure". |
;; Special highlighting of "module procedure". |
341 |
'("\\<\\(module[ \t]*procedure\\)\\>" (1 font-lock-keyword-face)) |
'("\\<\\(module[ \t]*procedure\\)\\>" (1 font-lock-keyword-face)) |
342 |
;; Highlight declaration of derived type. |
;; Highlight declaration of derived type. |
343 |
;;; '("\\<\\(type\\)[ \t]*\\(.*::[ \t]*\\|[ \t]+\\)\\(\\sw+\\)" |
'("\\<\\(\\(?:end[ \t]*\\)?type\\)\\>[ \t]*\\([^()\n]*::[ \t]*\\)?\ |
344 |
;;; (1 font-lock-keyword-face) (3 font-lock-function-name-face)) |
\\(\\sw+\\)" |
345 |
|
(1 font-lock-keyword-face) (3 font-lock-function-name-face)) |
346 |
;; Other functions and declarations. |
;; Other functions and declarations. |
347 |
'("\\<\\(\\(?:end[ \t]*\\)?\\(program\\|module\\|function\\|\ |
'("\\<\\(\\(?:end[ \t]*\\)?\\(program\\|module\\|function\\|\ |
348 |
subroutine\\|type\\)\\|use\\|call\\)\\>[ \t]*\\(\\sw+\\)?" |
subroutine\\)\\|use\\|call\\)\\>[ \t]*\\(\\sw+\\)?" |
349 |
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) |
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) |
350 |
"\\<\\(\\(end[ \t]*\\)?\\(interface\\|block[ \t]*data\\)\\|contains\\)\\>") |
"\\<\\(\\(end[ \t]*\\)?\\(interface\\|block[ \t]*data\\)\\|contains\\)\\>") |
351 |
"This does fairly subdued highlighting of comments and function calls.") |
"This does fairly subdued highlighting of comments and function calls.") |
367 |
(2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) |
(2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) |
368 |
;; Implicit declaration. |
;; Implicit declaration. |
369 |
'("\\<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\ |
'("\\<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\ |
370 |
\\|logical\\|type[ \t]*(\\sw+)\\|none\\)\\>" |
\\|logical\\|type[ \t]*(\\sw+)\\|none\\)[ \t]*" |
371 |
(1 font-lock-keyword-face) (2 font-lock-type-face)) |
(1 font-lock-keyword-face) (2 font-lock-type-face)) |
372 |
'("\\<\\(namelist\\|common\\)[ \t]*\/\\(\\sw+\\)?\/" |
'("\\<\\(namelist\\|common\\)[ \t]*\/\\(\\sw+\\)?\/" |
373 |
(1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
(1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
633 |
"Regexp matching the end of a TYPE, INTERFACE, BLOCK DATA section.") |
"Regexp matching the end of a TYPE, INTERFACE, BLOCK DATA section.") |
634 |
|
|
635 |
(defconst f90-type-def-re |
(defconst f90-type-def-re |
636 |
"\\<\\(type\\)[ \t]+\\(\\sw+\\)\\>" |
"\\<\\(type\\)\\>[ \t]*\\(?:[^()\n]*::[ \t]*\\)?\\(\\sw+\\)" |
637 |
"Regexp matching the definition of a derived type.") |
"Regexp matching the definition of a derived type.") |
638 |
|
|
639 |
(defconst f90-no-break-re |
(defconst f90-no-break-re |