   '("Int" "add" "mul" "sub" "div")
   "Primitives of PTS, that is, reserved words with the same
   syntax as function calls. ")
+
+(defvar pts-reserved-words
+  (append pts-keywords pts-primitives)
+  "Reserved words of PTS.")
+
+(defvar pts-reserved-words-regexp
+  (concat "^\\(?:\\*+\\)\\|" (regexp-opt pts-reserved-words) "$")
+  "Regular expression to match PTS reserved words.")
 
 (defvar pts-interpunctuation
   '(?\. ?\: ?\; ?\=)

                          relative-down))))
    (compile command)))

(define-derived-mode pts-mode fundamental-mode "pts"
  "Major mode for editing (literate) pts files."
  (pts-setup-fontlock)
  (pts-setup-syntax-table))

(define-key pts-mode-map "\C-c\C-l" 'pts-process-file)


  (modify-syntax-entry ?\/ "w 14")
  (modify-syntax-entry ?\* "w 23"))

(defun pts-setup-tags ()
  (put 'pts-mode 'find-tag-default-function 'pts-find-tag-default))

(defun pts-module-name ()
  "Find the name of the PTS module in the current buffer.
Returns nil if no module name is found."
