home *** CD-ROM | disk | FTP | other *** search
Wrap
(provide (quote mim-mode)) (autoload (quote fast-syntax-check-mim) "mim-syntax" "\ Checks Mim syntax quickly. Answers correct or incorrect, cannot point out the error context." t) (autoload (quote slow-syntax-check-mim) "mim-syntax" "\ Check Mim syntax slowly. Points out the context of the error, if the syntax is incorrect." t) (defvar mim-mode-hysterical-bindings t "\ *Non-nil means bind list manipulation commands to Meta keys as well as Control-Meta keys for historical reasons. Otherwise, only the latter keys are bound.") (defvar mim-mode-map nil) (defvar mim-mode-syntax-table nil) (if mim-mode-syntax-table nil (let ((i -1)) (setq mim-mode-syntax-table (make-syntax-table)) (while (< i 32) (modify-syntax-entry (setq i (1+ i)) " " mim-mode-syntax-table)) (while (< i 127) (modify-syntax-entry (setq i (1+ i)) "_ " mim-mode-syntax-table)) (setq i (1- 97)) (while (< i 122) (modify-syntax-entry (setq i (1+ i)) "w " mim-mode-syntax-table)) (setq i (1- 65)) (while (< i 90) (modify-syntax-entry (setq i (1+ i)) "w " mim-mode-syntax-table)) (setq i (1- 48)) (while (< i 57) (modify-syntax-entry (setq i (1+ i)) "w " mim-mode-syntax-table)) (modify-syntax-entry 58 " " mim-mode-syntax-table) (modify-syntax-entry 44 "' " mim-mode-syntax-table) (modify-syntax-entry 46 "' " mim-mode-syntax-table) (modify-syntax-entry 39 "' " mim-mode-syntax-table) (modify-syntax-entry 96 "' " mim-mode-syntax-table) (modify-syntax-entry 126 "' " mim-mode-syntax-table) (modify-syntax-entry 59 "' " mim-mode-syntax-table) (modify-syntax-entry 35 "' " mim-mode-syntax-table) (modify-syntax-entry 37 "' " mim-mode-syntax-table) (modify-syntax-entry 33 "' " mim-mode-syntax-table) (modify-syntax-entry 34 "\" " mim-mode-syntax-table) (modify-syntax-entry 92 "\\ " mim-mode-syntax-table) (modify-syntax-entry 40 "() " mim-mode-syntax-table) (modify-syntax-entry 60 "(> " mim-mode-syntax-table) (modify-syntax-entry 123 "(} " mim-mode-syntax-table) (modify-syntax-entry 91 "(] " mim-mode-syntax-table) (modify-syntax-entry 41 ")( " mim-mode-syntax-table) (modify-syntax-entry 62 ")< " mim-mode-syntax-table) (modify-syntax-entry 125 "){ " mim-mode-syntax-table) (modify-syntax-entry 93 ")[ " mim-mode-syntax-table))) (defconst mim-whitespace " - ") (defvar mim-mode-hook nil "\ *User function run after mim mode initialization. Usage: (setq mim-mode-hook '(lambda () ... your init forms ...)).") (define-abbrev-table (quote mim-mode-abbrev-table) nil) (defconst indent-mim-hook (quote indent-mim-hook) "\ Controls (via properties) indenting of special forms. (put 'FOO 'indent-mim-hook n), integer n, means lines inside <FOO ...> will be indented n spaces from start of form. (put 'FOO 'indent-mim-hook 'DEFINE) is like above but means use value of mim-body-indent as offset from start of form. (put 'FOO 'indent-mim-hook <cons>) where <cons> is a list or pointted list of integers, means indent each form in <FOO ...> by the amount specified in <cons>. When <cons> is exhausted, indent remaining forms by mim-body-indent unless <cons> is a pointted list, in which case the last cdr is used. Confused? Here is an example: (put 'FROBIT 'indent-mim-hook '(4 2 . 1)) <FROBIT <CHOMP-IT> <CHOMP-SOME-MORE> <DIGEST> <BELCH> ...> Finally, the property can be a function name (read the code).") (defvar indent-mim-comment t "\ *Non-nil means indent string comments.") (defvar mim-body-indent 2 "\ *Amount to indent in special forms which have DEFINE property on indent-mim-hook.") (defvar indent-mim-arglist t "\ *nil means indent arglists like ordinary lists. t means strings stack under start of arglist and variables stack to right of them. Otherwise, strings stack under last string (or start of arglist if none) and variables stack to right of them. Examples (for values 'stack, t, nil): (FOO \"OPT\" BAR (FOO \"OPT\" BAR (FOO \"OPT\" BAR BAZ MUMBLE BAZ MUMBLE BAZ MUMBLE \"AUX\" \"AUX\" \"AUX\" BLETCH ... BLETCH ... BLETCH ...") (put (quote DEFINE) (quote indent-mim-hook) (quote DEFINE)) (put (quote DEFMAC) (quote indent-mim-hook) (quote DEFINE)) (put (quote BIND) (quote indent-mim-hook) (quote DEFINE)) (put (quote PROG) (quote indent-mim-hook) (quote DEFINE)) (put (quote REPEAT) (quote indent-mim-hook) (quote DEFINE)) (put (quote CASE) (quote indent-mim-hook) (quote DEFINE)) (put (quote FUNCTION) (quote indent-mim-hook) (quote DEFINE)) (put (quote MAPF) (quote indent-mim-hook) (quote DEFINE)) (put (quote MAPR) (quote indent-mim-hook) (quote DEFINE)) (put (quote UNWIND) (quote indent-mim-hook) (cons (* 2 mim-body-indent) mim-body-indent)) (defvar mim-down-parens-only t "\ *nil means treat ADECLs and ATOM trailers like structures when moving down a level of structure.") (defvar mim-stop-for-slop t "\ *Non-nil means {next previous}-mim-object consider any non-whitespace character in column 0 to be a toplevel object, otherwise only open paren syntax characters will be considered.") (fset (quote mdl-mode) (quote mim-mode)) (defun mim-mode nil "\ Major mode for editing Mim (MDL in MDL) code. Commands: If value of mim-mode-hysterical-bindings is non-nil, then following commands are assigned to escape keys as well (e.g. M-f = M-C-f). The default action is bind the escape keys. Tab Indents the current line as MDL code. Delete Converts tabs to spaces as it moves back. M-C-f Move forward over next mim object. M-C-b Move backward over previous mim object. M-C-p Move to beginning of previous toplevel mim object. M-C-n Move to the beginning of the next toplevel mim object. M-C-a Move to the top of surrounding toplevel mim form. M-C-e Move to the end of surrounding toplevel mim form. M-C-u Move up a level of mim structure backwards. M-C-d Move down a level of mim structure forwards. M-C-t Transpose mim objects on either side of point. M-C-k Kill next mim object. M-C-h Place mark at end of next mim object. M-C-o Insert a newline before current line and indent. M-Delete Kill previous mim object. M-^ Join current line to previous line. M-\\ Delete whitespace around point. M-; Move to existing comment or insert empty comment if none. M-Tab Indent following mim object and all contained lines. Other Commands: Use \\[describe-function] to obtain documentation. replace-in-mim-object find-mim-definition fast-syntax-check-mim slow-syntax-check-mim backward-down-mim-object forward-up-mim-object Variables: Use \\[describe-variable] to obtain documentation. mim-mode-hook indent-mim-comment indent-mim-arglist indent-mim-hook mim-body-indent mim-down-parens-only mim-stop-for-slop mim-mode-hysterical-bindings Entry to this mode calls the value of mim-mode-hook if non-nil." (interactive) (byte-code "ÂÕ ?
ù Ö ×ØÙ#×ÚÛ#×ÜÝ#×Þß#×àá#×âã#×äå#×æç#×èé#×êë#×ìí#×îï#×ðñ#×òó#×ôõ#×ö÷#×øù#×úû#×üý#×þÿ#×@ Û# ? Âù ×A B #×C Ù#×D Ý#×E ß#×F á#×G ã#×H å#×I ç#×J é#×K í#×L ï#×M ñ#N !O !P Ä!Q PP Æ!P Ç!ÈP É!R P Ê!R P Ë!S P Ì!T P Í!U P Î!ÿP Ï!ÂP Ð!ÈV W X Y !" [mim-mode-map mim-mode-hysterical-bindings nil mim-mode-syntax-table paragraph-start page-delimiter paragraph-separate paragraph-ignore-fill-prefix t comment-start comment-start-skip comment-end comment-column comment-indent-hook indent-line-function blink-matching-paren-distance indent-tabs-mode local-abbrev-table mim-mode-abbrev-table major-mode mode-name kill-all-local-variables make-sparse-keymap define-key "" open-mim-line "" indent-mim-object "" previous-mim-object "" next-mim-object "" beginning-of-DEFINE "" end-of-DEFINE "" transpose-mim-objects "" backward-up-mim-object "" forward-down-mim-object "" mark-mim-object "" forward-kill-mim-object "" forward-mim-object "" backward-mim-object "^" raise-mim-line "\\" fixup-whitespace "" backward-delete-char-untabify "" backward-kill-mim-object " " newline-and-mim-indent "" begin-mim-comment " " indent-mim-line " " "!" line-to-top-of-window "o" "p" "n" "a" "e" "t" "u" "d" "k" "f" "b" use-local-map set-syntax-table make-local-variable "^$\\|" ";\"" "\"" 40 indent-mim-comment mim-mode "Mim" run-hooks mim-mode-hook] 50)) (defun line-to-top-of-window nil "\ Move current line to top of window." (interactive) (byte-code "ÀÁÂ!" [nil recenter 0] 2)) (defun forward-mim-object (arg) "\ Move forward across Mim object. With ARG, move forward that many objects." (interactive "p") (byte-code "ÂÃ!ÄU Å Æ! ÇÁ\" Ç!" [arg t nil abs 1 inside-atom-p forward-sexp forward-mim-objects] 6)) (defun inside-atom-p nil (byte-code "hgÂ!ÃU Â!ÄU ÅU
- Â !ÃU- Â !ÄU- ÅU*" [c1 c2 char-syntax 119 95 33] 6)) (defun forward-mim-objects (arg &optional skip-bracket-p) (byte-code "Â !ÃÄÅ`Æ!U
Ç[!)" [direction arg sign conditions (byte-code "ÂÃ\"
Ä !Å !?
Z " [arg direction /= 0 forward-sexp inside-adecl-or-trailer-p] 6) ((error (byte-code "? ÃÄ A\" Å !` \\b" [skip-bracket-p conditions direction signal error skip-mim-whitespace] 4))) buffer-end skip-mim-whitespace] 4)) (defun backward-mim-object (&optional arg) "\ Move backward across Mim object. With ARG, move backward that many objects." (interactive "p") (byte-code "ÁÂ [ Ã!" [arg nil forward-mim-object -1] 2)) (defun mark-mim-object (&optional arg) "\ Mark following Mim object. With ARG, mark that many following (preceding, ARG < 0) objects." (interactive "p") (byte-code "ÁÂÃ