python-mode-hook pyrec-mode-hook icon-mode-hook awk-mode-hook
tcl-mode-hook go-mode-hook js-mode-hook javascript-mode-hook
conf-mode-hook m4-mode-hook autoconf-mode-hook autotest-mode-hook
- asm-mode-hook TeX-mode-hook LaTeX-mode-hook
+ a68-mode-hook a68-mode-hooks asm-mode-hook
+ TeX-mode-hook LaTeX-mode-hook
TeXinfo-mode-hook tex-mode-hook latex-mode-hook
texinfo-mode-hook emacs-lisp-mode-hook scheme-mode-hook
lisp-mode-hook lisp-interaction-mode-hook makefile-mode-hook
(add-hook 'smalltalk-mode-hook 'mdw-fontify-smalltalk t)
(add-hook 'smalltalk-mode-hook 'mdw-setup-smalltalk t)
+(add-hook 'a68-mode-hook 'mdw-fontify-algol-68 t)
+(add-hook 'a68-mode-hooks 'mdw-fontify-algol-68 t)
(add-hook 'dylan-mode-hook 'mdw-fontify-dylan t)
(progn
(mdw-post-config-mode-hack))
+;;;--------------------------------------------------------------------------
+;;; Algol 68 configuration.
+
+(setq a68-indent-step 2)
+
+(defun mdw-fontify-algol-68 ()
+
+ ;; Fix up the syntax table.
+ (modify-syntax-entry ?# "!" a68-mode-syntax-table)
+ (dolist (ch '(?- ?+ ?= ?< ?> ?* ?/ ?| ?&))
+ (modify-syntax-entry ch "." a68-mode-syntax-table))
+
+ (make-local-variable 'font-lock-keywords)
+
+ (let ((not-comment
+ (let ((word "COMMENT"))
+ (do ((regexp (concat "[^" (substring word 0 1) "]+")
+ (concat regexp "\\|"
+ (substring word 0 i)
+ "[^" (substring word i (1+ i)) "]"))
+ (i 1 (1+ i)))
+ ((>= i (length word)) regexp)))))
+ (setq font-lock-keywords
+ (list (list (concat "\\<COMMENT\\>"
+ "\\(" not-comment "\\)\\{0,5\\}"
+ "\\(\\'\\|\\<COMMENT\\>\\)")
+ '(0 font-lock-comment-face))
+ (list (concat "\\<CO\\>"
+ "\\([^C]+\\|C[^O]\\)\\{0,5\\}"
+ "\\($\\|\\<CO\\>\\)")
+ '(0 font-lock-comment-face))
+ (list "\\<[A-Z_]+\\>"
+ '(0 font-lock-keyword-face))
+ (list (concat "\\<"
+ "[0-9]+"
+ "\\(\\.[0-9]+\\)?"
+ "\\([eE][-+]?[0-9]+\\)?"
+ "\\>")
+ '(0 mdw-number-face))
+ (list "\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/"
+ '(0 mdw-punct-face)))))
+
+ (mdw-post-config-mode-hack))
+
;;;--------------------------------------------------------------------------
;;; REXX configuration.