(defconst e2-keywords '("func" "end" "if" "then" "else" "while" "do" "return" "var" "and" "or" "as")) (defconst e2-types '("int" "real")) (defvar e2-font-lock-keywords `((,(regexp-opt e2-keywords 'words) . font-lock-keyword-face) (,(regexp-opt e2-types 'words) . font-lock-type-face) ("#.*$" . font-lock-comment-face) ("'.'" . font-lock-string-face))) ;;;###autoload (define-derived-mode e2-mode prog-mode "E2" "Major mode for editing programs in E2." (setq-local comment-start "#") (setq-local comment-end "") (setq font-lock-defaults '(e2-font-lock-keywords))) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.e2\\'" . e2-mode)) (provide 'e2-mode)