;ELC   
;;; compiled by cline@apl.fox.cs.cmu.edu on Thu Nov 21 20:44:58 1996
;;; from file /afs/cs/user/cline/lib/emacs/sml/sml-font.el
;;; emacs version 19.27.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "`/afs/cs/user/cline/lib/emacs/sml/sml-font.el' was compiled for Emacs 19"))

(require (quote font-lock))
(defvar sml-font-lock-auto-on t "\
*If non-nil, turn on font-lock unconditionally for every SML buffer.")
(defvar sml-font-lock-extra-keywords nil "\
*List of regexps to fontify as additional SML keywords.

For example, to add `xfun', `xfn', `special', and `=>', the value could be

	(\"\\=\\=\\=\\\\=\\=\\=\\<xfu?n\\\\|special\\\\>\" \"=>\")

The word delimiters in the first pattern prevent spurious highlighting
of keywords embedded inside other words (e.g., we don't want the tail of
`myxfun' to be highlighted).  You cannot use word delimiters with
symbolic patterns, however, because only alphanumerics are defined as
Emacs word constituents.  The second pattern would match the tail of a
symbolic identifier such as `==>', which might not be what you want.")
(defvar sml-font-lock-standard-keywords "\\<\\(a\\(bst\\(raction\\|ype\\)\\|nd\\(\\|also\\)\\|s\\)\\|case\\|d\\(atatype\\|o\\)\\|e\\(lse\\|nd\\|qtype\\|xception\\)\\|f\\(n\\|un\\(\\|ctor\\)\\)\\|handle\\|i\\([fn]\\|nfixr?\\|nclude\\)\\|l\\(et\\|ocal\\)\\|nonfix\\|o\\([fp]\\|pen\\|relse\\|verload\\)\\|r\\(aise\\|ec\\)\\|s\\(haring\\|ig\\(\\|nature\\)\\|truct\\(\\|ure\\)\\)\\|t\\(hen\\|ype\\)\\|val\\|w\\(hile\\|ith\\(\\|type\\)\\)\\)\\>" "\
Regexp matching standard SML keywords.")
(defvar sml-font-lock-all nil "\
Font-lock matchers for SML.")
(defalias 'sml-font-lock-setup #[nil "! \n CCEC#\n' !* \f)2  " [boundp font-lock-defaults new-font-lock sml-font-lock-all append sml-font-comments-and-strings sml-font-lock-extra-keywords sml-font-lock-standard-keywords 1 font-lock-keyword-face make-local-variable (sml-font-lock-all t) font-lock-keywords sml-font-lock-auto-on turn-on-font-lock] 6 "\
Set buffer-local font-lock variables and possibly turn on font-lock."])
(add-hook (quote sml-mode-hook) (quote sml-font-lock-setup))
(defvar sml-font-cache (quote ((0 . normal))) "\
List of (POSITION . STATE) pairs for an SML buffer.
The STATE is either `normal', `comment', or `string'.  The POSITION is
immediately after the token that caused the state change.")
(make-variable-buffer-local (quote sml-font-cache))
(defalias 'sml-font-comments-and-strings #[(limit) "`\fW  @@V A @@@A\nb	=Z \f#> \fb ʔL `BB ̔ `BB 	= V \f# ʔ \\e ̔c Ze V) \fb `BB\nZ`$ 	= \f# ʔ ʔ `BB \fb\nZ`$` +" [nil class last beg limit sml-font-cache normal re-search-forward "\\((\\*\\)\\|\\(\"\\)" t 1 comment 2 string nest 0 "\\((\\*\\)\\|\\(\\*)\\)" put-text-property face font-lock-comment-face "\\(\"\\)\\|\\(\\\\\\s-*\\\\\\)\\|\\(\\\\\"\\)" font-lock-string-face] 6 "\
Fontify SML comments and strings up to LIMIT.
Handles nested comments and SML's escapes for breaking a string over lines.
Uses sml-font-cache to maintain the fontification state over the buffer."])
(provide (quote sml-font))
