Function: f90-looking-at-type-like

f90-looking-at-type-like is a byte-compiled function defined in f90.el.gz.

Signature

(f90-looking-at-type-like)

Documentation

Return (KIND NAME) if a type/enum/interface/block-data starts after point.

NAME is non-nil only for type and certain interfaces.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/f90.el.gz
(defsubst f90-looking-at-type-like ()
  "Return (KIND NAME) if a type/enum/interface/block-data starts after point.
NAME is non-nil only for type and certain interfaces."
  (cond
   ((save-excursion
      (and (looking-at "\\_<type\\_>[ \t]*")
           (goto-char (match-end 0))
           (not (looking-at "\\(is\\_>\\|(\\)"))
           (or (looking-at "\\(\\(?:\\sw\\|\\s_\\)+\\)")
               (re-search-forward "[ \t]*::[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)"
                                  (line-end-position) t))))
    (list "type" (match-string 1)))
;;;    ((and (not (looking-at f90-typeis-re))
;;;          (looking-at f90-type-def-re))
;;;     (list (match-string 1) (match-string 2)))
   ((looking-at "\\_<\\(interface\\)\\_>[ \t]*")
    (list (match-string 1)
          (save-excursion
            (goto-char (match-end 0))
            (if (or (looking-at "\\(operator\\|assignment\\|read\\|\
write\\)[ \t]*([^)\n]*)")
                    (looking-at "\\(?:\\sw\\|\\s_\\)+"))
                (match-string 0)))))
   ((looking-at "\\(enum\\|block[ \t]*data\\)\\_>")
    (list (match-string 1) nil))
   ((looking-at "abstract[ \t]*\\(interface\\)\\_>")
    (list (match-string 1) nil))))