     (,factor-constant-words-regex . 'factor-font-lock-constant)
     (,factor-parsing-words-regex . 'factor-font-lock-parsing-word)))
 
-+;; Handling of multi-line constructs
+(defun factor-font-lock-extend-region ()
+  (eval-when-compile (defvar font-lock-beg) (defvar font-lock-end))
+  (save-excursion
+    (goto-char font-lock-beg)
+    (let ((found (or (re-search-backward "\n\n" nil t) (point-min))))
+      (goto-char font-lock-end)
+      (when (re-search-forward "\n\n" nil t)
+        (beginning-of-line)
+        (setq font-lock-end (point)))
+      (setq font-lock-beg found))))
 
 ;;; Source code analysis:
 

  (factor-second-word-regex
   '("IN:" "USE:" "FROM:" "EXCLUDE:" "QUALIFIED:" "QUALIFIED-WITH:")))

(defconst factor-using-lines-regex "^\\(USING\\):[ \n]+\\([^;]+\\);")

(defconst factor-int-constant-def-regex
  (factor-second-word-regex '("ALIEN:" "CHAR:" "NAN:")))

  '(":" "::" ";" "&:" "<<" "<PRIVATE" ">>"
    "ABOUT:" "AFTER:" "ALIAS:" "ALIEN:" "ARTICLE:"
    "B" "BEFORE:"
    "C:" "CALLBACK:" "C-GLOBAL:" "C-TYPE:" "CHAR:" "COLOR:" "COM-INTERFACE:" "CONSTANT:"
    "CONSULT:" "call-next-method"
    "DEFER:" "DESTRUCTOR:"
    "EBNF:" ";EBNF" "ENUM:" "ERROR:" "EXCLUDE:"
