                           (3 'factor-font-lock-word)
                           (4 'factor-font-lock-invalid-syntax nil t))
     (,factor-declaration-words-regex . 'factor-font-lock-comment)
-    (,factor-word-definition-regex 2 'factor-font-lock-word)
+    (,factor-word-definition-regex (1 'factor-font-lock-parsing-word)
+                                   (2 'factor-font-lock-word))
     (,factor-alias-regex (1 'factor-font-lock-parsing-word)
                          (2 'factor-font-lock-word)
                          (3 'factor-font-lock-word))
+    (,factor-qualified-with-regex (1 'factor-font-lock-parsing-word)
+                                  (2 'factor-font-lock-vocabulary-name)
+                                  (3 'factor-font-lock-word))
     (,factor-int-constant-def-regex 2 'factor-font-lock-constant)
     (,factor-integer-regex . 'factor-font-lock-number)
     (,factor-float-regex . 'factor-font-lock-number)

    "B" "BEFORE:"
    "C-GLOBAL:" "C-TYPE:" "CHAR:" "COLOR:" "COM-INTERFACE:"
    "CONSULT:" "call-next-method"
    "DEFER:"
    "EBNF:" ";EBNF" "ENUM:" "ERROR:"
    "FOREIGN-ATOMIC-TYPE:" "FOREIGN-ENUM-TYPE:" "FOREIGN-RECORD-TYPE:" "FUNCTION-ALIAS:"
    "GAME:" "GENERIC#" "GENERIC:" "GIR:"
    "GLSL-SHADER:" "GLSL-PROGRAM:"
    "HINTS:" "HOOK:"
    "initial:" "INTERSECTION:" "IMPLEMENT-STRUCTS:"
    "M:" "M::" "MACRO:" "MACRO::" "MATH:"
    "MEMO:" "MEMO:" "METHOD:" "MIXIN:"
    "NAN:"
    "POSTPONE:" "PRIMITIVE:" "PRIVATE>" "PROTOCOL:" "PROVIDE:"
    "read-only" "REQUIRE:"  "REQUIRES:"
    "SINGLETON:" "SINGLETONS:" "SLOT:" "SPECIALIZED-ARRAY:"
    "SPECIALIZED-ARRAYS:" "STRING:" "SYNTAX:"

  "\\_<\"[^>]\\([^\"\n]\\|\\\\\"\\)*\n")

(defconst factor-word-definition-regex
  (concat
   (format "\\_<\\(\\(?:%s\\)?[:#]\\)"
           (regexp-opt
            '(":" "GENERIC" "DEFER" "HOOK" "MACRO" "MATH" "POSTPONE"
              "PRIMITIVE" "SYNTAX" "TYPED" "TYPED:")))
   ws+ symbol))

;; [parsing-word] [vocab-word]
(defconst factor-vocab-ref-regex
  (syntax-and-1-symbol '("IN" "USE" "QUALIFIED")))

(defconst factor-using-lines-regex
  (concat (syntax-begin '("USING")) ws+ symbols-to-semicolon))
