;;; compiled by rms@mole.gnu.ai.mit.edu on Sun May 30 00:42:50 1993
;;; from file /home/fsf/rms/e19/lisp/lisp-mode.el
;;; emacs version 19.9.0.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defvar lisp-mode-syntax-table nil "\
")
(defvar emacs-lisp-mode-syntax-table nil "\
")
(defvar lisp-mode-abbrev-table nil "\
")
(byte-code "  \nW \n#\nT\n W1 \n#\nT WF \n#\nT4 W[ \n#\nTI ################)& !&&#&#&#\"M" [emacs-lisp-mode-syntax-table 0 i make-syntax-table 48 modify-syntax-entry "_   " 58 65 91 97 123 128 32 "    " 9 10 ">   " 12 59 "<   " 96 "'   " 39 44 46 35 34 "\"    " 92 "\\   " 40 "()  " 41 ")(  " "(]  " 93 ")[  " lisp-mode-syntax-table copy-syntax-table 124 "\"   " define-abbrev-table lisp-mode-abbrev-table nil lisp-mode-variables #[(lisp-syntax) " \n!!P!	!\n!!!!!!!؉" [lisp-syntax set-syntax-table lisp-mode-syntax-table lisp-mode-abbrev-table local-abbrev-table make-local-variable paragraph-start "^$\\|" page-delimiter paragraph-separate paragraph-ignore-fill-prefix t indent-line-function lisp-indent-line indent-region-function lisp-indent-region parse-sexp-ignore-comments comment-start ";" comment-start-skip ";+ *" comment-column 40 comment-indent-function lisp-comment-indent] 2]] 5)
(defvar shared-lisp-mode-map nil "\
Keymap for commands shared by all sorts of Lisp modes.")
(byte-code "  ####" [shared-lisp-mode-map make-sparse-keymap define-key "" indent-sexp "" lisp-fill-paragraph "" backward-delete-char-untabify "	" lisp-indent-line] 4)
(defvar emacs-lisp-mode-map nil "\
Keymap for Emacs Lisp mode.
All commands in shared-lisp-mode-map are inherited by this map.")
(byte-code "  \"##" [emacs-lisp-mode-map nconc make-sparse-keymap shared-lisp-mode-map define-key "	" lisp-complete-symbol "" eval-defun] 4)
(defalias 'emacs-lisp-mode #[nil " \n!!!!" [kill-all-local-variables use-local-map emacs-lisp-mode-map set-syntax-table emacs-lisp-mode-syntax-table emacs-lisp-mode major-mode "Emacs-Lisp" mode-name lisp-mode-variables nil run-hooks emacs-lisp-mode-hook] 2 "\
Major mode for editing Lisp code to run in Emacs.
Commands:
Delete converts tabs to spaces as it moves back.
Blank lines separate paragraphs.  Semicolons start comments.
\\{emacs-lisp-mode-map}
Entry to this mode calls the value of `emacs-lisp-mode-hook'
if that value is non-nil." nil])
(defvar lisp-mode-map nil "\
Keymap for ordinary Lisp mode.
All commands in `shared-lisp-mode-map' are inherited by this map.")
(byte-code "  \"##" [lisp-mode-map nconc make-sparse-keymap shared-lisp-mode-map define-key "" lisp-send-defun "" run-lisp] 4)
(defalias 'lisp-mode #[nil " \n!!\n!!" [kill-all-local-variables use-local-map lisp-mode-map lisp-mode major-mode "Lisp" mode-name lisp-mode-variables t set-syntax-table lisp-mode-syntax-table run-hooks lisp-mode-hook] 2 "\
Major mode for editing Lisp code for Lisps other than GNU Emacs Lisp.
Commands:
Delete converts tabs to spaces as it moves back.
Blank lines separate paragraphs.  Semicolons start comments.
\\{lisp-mode-map}
Note that `run-lisp' may be used either to start an inferior Lisp job
or to switch back to an existing one.

Entry to this mode calls the value of `lisp-mode-hook'
if that value is non-nil." nil])
(defalias 'lisp-send-defun #[nil "!" [error "Process lisp does not exist"] 2 "\
Send the current defun to the Lisp process made by \\[run-lisp]." nil])
(defvar lisp-interaction-mode-map nil "\
Keymap for Lisp Interaction moe.
All commands in `shared-lisp-mode-map' are inherited by this map.")
(byte-code "  \"###" [lisp-interaction-mode-map nconc make-sparse-keymap shared-lisp-mode-map define-key "" eval-defun "	" lisp-complete-symbol "\n" eval-print-last-sexp] 4)
(defalias 'lisp-interaction-mode #[nil " \n!!!!" [kill-all-local-variables use-local-map lisp-interaction-mode-map lisp-interaction-mode major-mode "Lisp Interaction" mode-name set-syntax-table emacs-lisp-mode-syntax-table lisp-mode-variables nil run-hooks lisp-interaction-mode-hook] 2 "\
Major mode for typing and evaluating Lisp forms.
Like Lisp mode except that \\[eval-print-last-sexp] evals the Lisp expression
before point, and prints its value into the buffer, advancing point.

Commands:
Delete converts tabs to spaces as it moves back.
Paragraphs are separated only by blank lines.
Semicolons start comments.
\\{lisp-interaction-mode-map}
Entry to this mode calls the value of `lisp-interaction-mode-hook'
if that value is non-nil." nil])
(defalias 'eval-print-last-sexp #[nil "p ! )" [standard-output terpri eval-last-sexp t] 2 "\
Evaluate sexp before point; print value into current buffer." nil])
(defalias 'eval-last-sexp #[(eval-last-sexp-arg-internal) " p	 ` Ȏ\n!!e\n\"p!+!)!*" [eval-last-sexp-arg-internal t opoint standard-output prin1 syntax-table stab eval ((set-syntax-table stab)) set-syntax-table emacs-lisp-mode-syntax-table forward-sexp -1 narrow-to-region read] 5 "\
Evaluate sexp before point; print value in minibuffer.
With argument, print output into current buffer." "P"])
(defalias 'eval-defun #[(eval-defun-arg-internal) " p	 Ċ  p!)!!)" [eval-defun-arg-internal t standard-output prin1 eval end-of-defun beginning-of-defun read] 4 "\
Evaluate defun that point is in or before.
Print value in minibuffer.
With argument, insert value in current buffer after the defun." "P"])
(fset (quote lisp-comment-indent) #[nil "! i!  < @ )!n* ǂ, iT]" [looking-at "\\s<\\s<\\s<" "\\s<\\s<" calculate-lisp-indent tem skip-chars-backward " 	" 0 comment-column] 3])
(defconst lisp-indent-offset nil "\
")
(defconst lisp-indent-function (quote lisp-indent-function) "\
")
(defalias 'lisp-indent-line #[(&optional whole-exp) " d`Z!`!!% d\nZb !; !;  !Z <F @iZUZ `\"jd\nZ`Vg d\nZb U? b!`b!`V) #-" [calculate-lisp-indent nil pos end beg shift-amt indent forward-line 0 skip-chars-forward " 	" looking-at "\\s<\\s<\\s<" "\\s<" "\\s<\\s<" indent-for-comment forward-char -1 delete-region whole-exp forward-sexp 1 indent-code-rigidly] 7 "\
Indent current line as Lisp code.
With argument, indent any additional lines of the same expression
rigidly along with this one." "P"])
(defalias 'calculate-lisp-indent #[(&optional parse-start) "!`	\n$ b'  `\nW9 `\n#	'  	 	\"V 	\"	\"Tb9 `V9 \n#A@ 	)9  Tb i `$! !`)V `U !`$  b!`$ i	\" \nb!i,!bi\\,,!***\n	\",,.	" [forward-line 0 nil t containing-sexp last-sexp retry desired-indent paren-depth state indent-point parse-start beginning-of-defun parse-partial-sexp elt 2 1 peek looking-at "\\s(" forward-sexp backward-prefix-chars normal-indent 3 skip-chars-forward " 	" integerp lisp-indent-offset boundp lisp-indent-function] 8 "\
Return appropriate indentation for current line as Lisp code.
In usual case returns an integer: the column to indent to.
Can instead return a list, whose car is the column to indent to.
This means that following lines at the same level of indentation
should not necessarily be indented the same way.
The second element of the list is the buffer position
of the start of the containing expression."])
(fset (quote lisp-indent-function) #[(indent-point state) "i\n\"Tb`$\n\"> !> !`)V7 b!`$ i `!`\"!N=n v GVv \"v \n\" ! \n$  \n\"*)" [normal-indent elt state 1 parse-partial-sexp last-sexp 0 t 2 looking-at "\\sw\\|\\s_" forward-line backward-prefix-chars buffer-substring forward-sexp nil method function intern-soft lisp-indent-function defun 3 string-match "\\`def" lisp-indent-defform indent-point integerp lisp-indent-specform] 6])
(defconst lisp-body-indent 2 "\
Number of columns to indent the second line of a `(def...)' form.")
(byte-code "MM#################" [lisp-indent-specform #[(count state indent-point normal-indent) "	\"ĉbi	\\!!`$`W7 Џ) V\\ ZXT 	\\!\\D~ D~ Ui Uw U| X| ~ ," [elt state 1 count nil containing-form-column body-indent i containing-form-start lisp-body-indent forward-char forward-sexp parse-partial-sexp indent-point t (byte-code "S!`$" [count forward-sexp 1 parse-partial-sexp indent-point t] 5) ((error)) 0 * normal-indent] 6] lisp-indent-defform #[(state indent-point) "A@b!`AA@V A@bi\\" [state forward-line 1 lisp-body-indent] 2] put lambda lisp-indent-function defun autoload progn 0 prog1 1 prog2 2 save-excursion save-window-excursion save-restriction save-match-data let let* while if catch condition-case unwind-protect with-output-to-temp-buffer] 4)
(defalias 'indent-sexp #[(&optional endpos) "C``	\n!)0 `W2 ?k\n m ` `%@\n\"@j   \"\"\"@ !\"\"; ؉?  \nX \n[\"\"\nZ\n \nX !X\nV AS \nW BT !`!mX!X@@Y@I@\"@[$	!  !: \"H A@[\" @)i\nUX`\"\nj$ `U$ `$ ." [nil 0 this-indent state inner-loop-done outer-loop-done bol last-depth last-point starting-point next-depth indent-stack forward-sexp 1 endpos parse-partial-sexp end-of-line nthcdr 4 indent-for-comment setcar 3 forward-line 5 t append make-list skip-chars-forward " 	" looking-at "\\s<\\|\n" calculate-lisp-indent val integerp delete-region] 11 "\
Indent each line of the list starting just after point.
If optional arg ENDPOS is given, indent each line, stopping when
ENDPOS is encountered." nil])
(fset (quote lisp-indent-region) #[(start end) "bn l  !!\"*" [start lisp-indent-line copy-marker end endmark indent-sexp set-marker nil] 3])
(defalias 'lisp-fill-paragraph #[(&optional justify) "!! !!\"Y !C !`f=5 ! `f> ! !Y i\"!!\"P)\ne ! ي!Uv !h ! !`)!! `)\"PP	!,*" [nil comment-fill-prefix has-comment forward-line 0 looking-at "[ 	]*;[; 	]*" t buffer-substring match-beginning match-end ";\\|$" skip-chars-forward "^;\n\"\\\\?" 92 forward-char 2 (34 63) forward-sexp 1 ";+[	 ]*" make-string 32 fill-paragraph justify narrow-to-region -1 "^[ 	]*;" paragraph-start "\\|^[ 	;]*$" fill-prefix paragraph-separate] 5 "\
Like \\[fill-paragraph], but handle Emacs Lisp comments.
If any of the current line is a comment, fill the comment or the
paragraph of it that point is in, preserving the comment's indentation
and initial semicolons." "P"])
(defalias 'indent-code-rigidly #[(start end arg &optional nochange-regexp) "\nb bn `!`	%`\nWb 	\"@S \n6 \n!S  `!`\"lR \\]\")`!`	% *" [nil state end point-marker start parse-partial-sexp forward-line 1 nthcdr 3 nochange-regexp looking-at current-indentation indent delete-region skip-chars-forward " 	" indent-to 0 arg] 6 "\
Indent all lines of code, starting in the region, sideways by ARG columns.
Does not affect lines starting inside comments or strings, assuming that
the start of the region is not inside them.

Called from a program, takes args START, END, COLUMNS and NOCHANGE-REGEXP.
The last is a regexp which, if matched at the beginning of a line,
means don't indent that line." "r\np"])
(provide (quote lisp-mode))
