;ELC ;;; compiled by leavens@popeye.cs.iastate.edu on Sun Feb 8 11:10:34 1998 ;;; from file /usr/unsup/emacs/lsl-mode.el ;;; emacs version 19.31.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.29"))) (error "`lsl-mode.el' was compiled for Emacs 19.29 or later")) #@26 Keymap used in LSL mode. (defvar lsl-mode-map nil (#$ . 471)) (byte-code "„ Á ÂÃÄ#ˆÁ‡" [lsl-mode-map make-sparse-keymap define-key "" font-lock-fontify-buffer] 4) (defalias 'lsl-vars #[nil "À ˆÁÂ!ˆÃ\fPÁÅ!ˆ\nÁÆ!ˆÇÁÈ!ˆÉÁÊ!ˆË\nÁÌ!ˆÍ\fÁÎ!ˆÏ‰‡" [kill-all-local-variables make-local-variable paragraph-start "^$\\|" page-delimiter paragraph-separate comment-start "%" comment-column 40 comment-indent-function lsl-comment-indent comment-end "" indent-line-function lsl-indent-line] 2]) #@632 Major mode for editing LSL programs. Last adapted for LSL 3.1. Blank lines separate paragraphs, comments start with '%'. M-; will place a comment at an appropriate place on the current line. Use Linefeed to do a newline and indent to the level of the previous line. Tab will place the cursor or the first non-whitespace character of the current line to the level of indentation of the previous line. C-c C-c re-colors the buffer if font lock is enabled. Entry to this mode calls the value of lsl-mode-hook if non-nil. Uses `lsl-font-lock' for font locking. See documentation on this command for information about font locking. (defalias 'lsl-mode #[nil "À ˆÁÃÅ!ˆƒÈ ˆÉÊ!‡" [lsl-vars lsl-mode major-mode "LSL" mode-name use-local-map lsl-mode-map window-system lsl-font-lock run-hooks lsl-mode-hook] 2 (#$ . 974) nil]) (defalias 'lsl-comment-indent #[nil "ÀÁxˆnƒ\n‡iT ]‡" [" " nil 0 comment-column] 2]) (defalias 'lsl-indent-line #[nil "ÀŠÂyˆÃ ˆlƒÀ‚i)Ä !)‡" [0 c -1 back-to-indentation indent-line-to] 2 nil nil]) #@45 Patterns used in font locking for LSL mode. (defvar lsl-font-lock-keywords nil (#$ . 2013)) #@96 Makes local variable `font-lock-defaults' suitable for LSL font locking. See `lsl-font-lock'. (defalias 'lsl-font-lock-defaults-create #[nil "ÀÂÄ PÆ P PÉÊQ Ì ÍQÏÑÒÓÔ ÕÖ×Õ°\nÙÚÛÜͰÙÞßàáâͰ#äå!ˆæçèéêBBëBìBBE#íBE%äî!ˆï‰.. ‡" ["À-ÖØ-ß" ISOlarge "à-öø-ÿ" ISOsmall "a-z" small "A-Z" large alphabetic "[" "0-9'_]+" idChars "\\b\\([" "\\)\\b" varid "-~=+*/|<>#$&!@?" opChar "\\(" "\\([" "]+\\)" "\\|\\(\\\\[" "\\)" "\\|\\(\\\\[<>/]\\)" "\\|[{}\\\\]" lsl_op "\\b\\(" "\\\\A\\|\\\\E\\|\\\\eq\\|\\\\neq\\|\\\\equals" "\\|\\\\forall\\|\\\\arrow\\|->\\|\\\\marker" "\\|[~=]?=" reservedsym "asserts\\|assumes\\|by\\|converts\\|else" "\\|enumeration\\|equations\\|exempting\\|for\\|forall" "\\|formulas\\|freely\\|generated\\|if\\|implies\\|includes" "\\|introduces\\|of\\|partitioned\\|sort\\|then\\|trait" "\\|tuple\\|union\\|with" reservedid make-local-variable lsl-font-lock-keywords ("%.*$" 0 (quote lsl-comment-face) t) 0 cond string-match ((match-string 0)) ((quote lsl-keyword-face)) ((t (quote lsl-operator-face))) (1 (quote lsl-keyword-face)) font-lock-defaults (lsl-font-lock-keywords nil nil)] 10 (#$ . 2111)]) #@68 Defines faces required for LSL font locking. See `lsl-font-lock'. (defalias 'lsl-faces #[nil "ÀÁ!ƒ Á ˆÂÃÄ\"ˆÂÅÆ\"ˆÂÅÇ\"ˆÂÈÉ\"‡" [fboundp font-lock-make-faces copy-face font-lock-keyword-face lsl-keyword-face font-lock-comment-face lsl-operator-face lsl-comment-face default lsl-default-face] 3 (#$ . 3260)]) #@91 Changes the current buffer's syntax table to suit LSL font locking. See `lsl-font-lock'. (defalias 'lsl-syntax #[nil "ÀÁ !ˆÂÃÄ\"ˆÂÅÄ\"ˆÂÆÄ\"ˆÂÇÄ\"ˆÂÈÉ\"ˆÂÊÉ\"ˆÂËÌ\"ˆÂÍÎ\"ˆÂÏÐ\"ˆÂÑÒ\"ˆÂÓÔ\"ˆÂÕÖ\"ˆÂ×Ö\"ˆÂØÙ\"ˆÚÛÜ\"‡" [set-syntax-table make-syntax-table modify-syntax-entry 32 " " 9 13 34 39 "w" 95 40 "()" 41 ")(" 91 "(]" 93 ")[" 123 "(}" 125 "){" 37 10 ">" mapcar #[(x) "À Â\"‡" [modify-syntax-entry x "_"] 3] "-~=+*/|<>#$&!@?\\"] 3 (#$ . 3576)]) #@1276 Allows font-lock-mode to support font locking of LSL traits on current buffer. Changes the current buffer's `font-lock-defaults' and syntax table, and adds the following faces: lsl-keyword-face for reserved keywords and syntax, lsl-operator-face for symbolic and alphanumeric operators, lsl-comment-face for comments, and lsl-default-face for ordinary code. The faces are initialised to the following font lock defaults: lsl-keyword-face font-lock-keyword-face lsl-operator-face font-lock-function-name-face lsl-comment-face font-lock-comment-face lsl-default-face To alter an attribute of a face, add a hook, for example: to change the foreground color of operators to black, add the following lines to .emacs: (add-hook 'lsl-mode-hook (lambda () (set-face-foreground 'lsl-operator-face "black"))) Note that the colors available vary from system to system. To see what colors are available on your system, call `list-colors-display' from emacs. To turn font locking on for all LSL buffers, add this to .emacs: (add-hook 'lsl-mode-hook (lambda () (if window-system (turn-on-font-lock)))) To turn font locking on or off for the current buffer, call `font-lock-mode'.  (defalias 'lsl-font-lock #[nil "ÀÁ!ˆÂ ˆÃ ˆÄ ‡" [require font-lock lsl-syntax lsl-faces lsl-font-lock-defaults-create] 2 (#$ . 4031) nil]) (provide (quote lsl-mode))