
(provide (quote lisp-mode))

(defvar lisp-mode-tab 3)

(defvar lisp-mode-auto-indent nil)

(setq symbol-word-regexps ["[^][()?'\"#; ]" "[][()?'\"#; ]|$"])

(setq lisp-mode-keymap (make-keylist) lisp-mode-esc-keymap (make-keylist))

(bind-keys lisp-mode-keymap "return" (quote lisp-return) "shift-return" (quote split-line) "ctrl-return" (quote eval-insert-paragraph) "tab" (quote lisp-tab) "meta-tab" (quote goto-next-tab) "esc" (quote (setq next-keymap-path (quote (lisp-mode-esc-keymap esc-keymap)))))

(bind-keys lisp-mode-esc-keymap "ctrl-x" (quote eval-print-paragraph))

(defun lisp-mode nil (lisp-code "\tH#K%†&‡ˆF&‰" [eval-hook lisp-mode-hook "lisp-mode" mode-name lisp-mode-keymap keymap-path lisp-mode-kill major-mode-kill lisp-mode-tab screen-tab] 2))

(defun lisp-mode-kill nil (lisp-code "\n\"IF#" [delq lisp-mode-keymap keymap-path mode-name] 3))

(defun eval-paragraph nil (lisp-code "\tHI²\tU" [goto prev-paragraph read] 2))

(defun eval-insert-paragraph nil (lisp-code "I²" [format "\n%S\n\n" eval-paragraph] 4))

(defun eval-print-paragraph nil (lisp-code "J\n" [prin1 eval-paragraph] 3))

(defun lisp-return nil (lisp-code "Hþ€˜ü€“\tû€˜†\t" [split-line lisp-mode-auto-indent empty-line-p goto lisp-indent-pos-empty set-indent-pos lisp-indent-pos] 2))

(defun lisp-tab nil (lisp-code "ü€Ž\t\tû€¹\t\tF&†H†dü€§†\tû€¹‡dü€¸‡\tû€¹I" [empty-line-p goto lisp-indent-pos-empty cursor-pos set-indent-pos lisp-indent-pos tmp line-end] 3))

(defun lisp-indent-pos (&optional line-pos) (lisp-code "\tF!HD\t3\tÿ€Ÿ†\nþ€Ÿ‡ˆ\nHE" [line-start line-pos lisp-indent-pos-empty ind-pos empty-line-p regexp-match-line "^ *;;;" set-pos-col 1] 3))

(defun lisp-indent-pos-empty (&optional line-pos) (lisp-code "\tF!HD\t\n5†‡\nþ€¥\nÿ€¡ˆHû€ŽHD‰\t6Š‹ŠŒ\t\nHŽ‘’\t\nŠ\nEE" [line-start line-pos prev-line 1 dup-pos anchor-pos regexp-match-line "^ *($|;)" return indent-pos ind-pos set-pos-line pos-line next-tab balance-brackets "(" ")" copy-area line-end] 8))
