360 |
(list |
(list |
361 |
;; Special highlighting of "module procedure foo-list" |
;; Special highlighting of "module procedure foo-list" |
362 |
'("\\<\\(module[ \t]*procedure\\)\\>" (1 font-lock-keyword-face)) |
'("\\<\\(module[ \t]*procedure\\)\\>" (1 font-lock-keyword-face)) |
363 |
'("\\<\\(end[ \t]*\\(program\\|module\\|function\\|subroutine\\|type\\)\\)\\>[ \t]*\\(\\sw+\\)?" |
'("\\<\\(end[ \t]*\\(program\\|module\\|function\\|subroutine\\)\\)\\>[ \t]*\\(\\sw+\\)?" |
364 |
(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)) |
365 |
'("\\<\\(program\\|type\\|call\\|module\\|subroutine\\|function\\|use\\)\\>[ \t]*\\(\\sw+\\)?" |
'("\\<\\(program\\|call\\|module\\|subroutine\\|function\\|use\\)\\>[ \t]*\\(\\sw+\\)?" |
366 |
(1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) |
(1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) |
367 |
;; Highlight definition of new type |
;; Highlight definition of derived type. |
368 |
;;; '("\\<\\(type\\)[ \t]*\\(.*::[ \t]*\\|[ \t]+\\)\\(\\sw+\\)" |
'("\\<\\(\\(?:end[ \t]*\\)?type\\)\\>\\([^()\n]*::\\)?[ \t]*\\(\\sw+\\)" |
369 |
;;; (1 font-lock-keyword-face) (3 font-lock-function-name-face)) |
(1 font-lock-keyword-face) (3 font-lock-function-name-face)) |
370 |
"\\<\\(\\(end[ \t]*\\)?\\(interface\\|block[ \t]*data\\)\\|contains\\)\\>") |
"\\<\\(\\(end[ \t]*\\)?\\(interface\\|block[ \t]*data\\)\\|contains\\)\\>") |
371 |
"This does fairly subdued highlighting of comments and function calls.") |
"This does fairly subdued highlighting of comments and function calls.") |
372 |
|
|
382 |
'("^[ \t0-9]*\\(\\(\\sw+\\)[ \t]*:[ \t]*\\)?\\(\\(if\\|do\\([ \t]*while\\)?\\|select[ \t]*case\\|where\\|forall\\)\\)\\>" |
'("^[ \t0-9]*\\(\\(\\sw+\\)[ \t]*:[ \t]*\\)?\\(\\(if\\|do\\([ \t]*while\\)?\\|select[ \t]*case\\|where\\|forall\\)\\)\\>" |
383 |
(2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) |
(2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) |
384 |
;; implicit declaration |
;; implicit declaration |
385 |
'("\\<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|logical\\|type[ \t]*(\\sw+)\\|none\\)\\>" (1 font-lock-keyword-face) (2 font-lock-type-face)) |
'("\\<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|logical\\|type[ \t]*(\\sw+)\\|none\\)[ \t]*" (1 font-lock-keyword-face) (2 font-lock-type-face)) |
386 |
'("\\<\\(namelist\\|common\\)[ \t]*\/\\(\\sw+\\)?\/" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
'("\\<\\(namelist\\|common\\)[ \t]*\/\\(\\sw+\\)?\/" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
387 |
"\\<else\\([ \t]*if\\|where\\)?\\>" |
"\\<else\\([ \t]*if\\|where\\)?\\>" |
388 |
"\\<\\(then\\|continue\\|format\\|include\\|stop\\|return\\)\\>" |
"\\<\\(then\\|continue\\|format\\|include\\|stop\\|return\\)\\>" |
646 |
(defconst f90-end-type-re |
(defconst f90-end-type-re |
647 |
"end[ \t]*\\(type\\|interface\\|block[ \t]*data\\)") |
"end[ \t]*\\(type\\|interface\\|block[ \t]*data\\)") |
648 |
(defconst f90-type-def-re |
(defconst f90-type-def-re |
649 |
"\\<\\(type\\)\\([^(\n]*\\)\\(::\\)?[ \t]*\\b\\(\\sw+\\)") |
"\\<\\(type\\)\\>\\([^(\n]*::\\)?[ \t]*\\(\\sw+\\)") |
650 |
(defconst f90-no-break-re "\\(\\*\\*\\|//\\|=>\\)") |
(defconst f90-no-break-re "\\(\\*\\*\\|//\\|=>\\)") |
651 |
;; A temporary position to make region operators faster |
;; A temporary position to make region operators faster |
652 |
(defvar f90-cache-position nil) |
(defvar f90-cache-position nil) |
1011 |
Name is non-nil only for type." |
Name is non-nil only for type." |
1012 |
(cond |
(cond |
1013 |
((looking-at f90-type-def-re) |
((looking-at f90-type-def-re) |
1014 |
(list (f90-match-piece 1) (f90-match-piece 4))) |
(list (f90-match-piece 1) (f90-match-piece 3))) |
1015 |
((looking-at "\\(interface\\|block[\t]*data\\)\\>") |
((looking-at "\\(interface\\|block[\t]*data\\)\\>") |
1016 |
(list (f90-match-piece 1) nil)))) |
(list (f90-match-piece 1) nil)))) |
1017 |
|
|