;;; compiled by eric@geech.gnu.ai.mit.edu on Mon Mar 22 13:43:40 1993
;;; from file /gd/gnu/emacs/19.0/lisp/scheme.el
;;; emacs version 19.0.506.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defvar scheme-mode-syntax-table nil "\
")
(byte-code "„À ÁÃ Ä!ˆ\nÅWƒ Æ\nÇ\"ˆ\nT‰‚ ÈÈÉXƒ3 Æ\nÊ\"ˆ\nT‰‚\" ËËÌXƒG Æ\nÊ\"ˆ\nT‰‚6 ÍÍÎXƒ[ Æ\nÊ\"ˆ\nT‰‚J ÆÏÐ\"ˆÆÑÒ\"ˆÆÓÐ\"ˆÆÔÐ\"ˆÆÕÐ\"ˆÆÖ×\"ˆÆØÙ\"ˆÆÚÛ\"ˆÆÜÝ\"ˆÆÞß\"ˆÆàá\"ˆÆâã\"ˆÆäå\"ˆÆæç\"ˆÆèé\"ˆÆêé\"ˆÆëì\"ˆÆíì\"ˆÆîï\"ˆÆðñ\"ˆ)Á‡" [scheme-mode-syntax-table 0 i make-syntax-table set-syntax-table 256 modify-syntax-entry "_   " 48 57 "w   " 65 90 97 122 9 "    " 10 ">   " 12 13 32 91 "(]  " 93 ")[  " 123 "(}  " 125 "){  " 124 "  23" 40 "()  " 41 ")(  " 59 "<   " 34 "\"    " 39 "  p" 96 44 "_ p" 64 35 "_ p14" 92 "\\   "] 4)
(defvar scheme-mode-abbrev-table nil "\
")
(byte-code "ÀÁÂ\"ˆÃÄMˆÅÆ!„ ÇÈÉMˆÅÊ!„ Â\n\n„- Ë \nÈ\n!ˆÂ‡" [define-abbrev-table scheme-mode-abbrev-table nil scheme-mode-variables #[nil "À	!ˆ\nÄÅ!ˆÆPÄÈ!ˆÄÉ!ˆÊ	ÄË!ˆÌÄÍ!ˆÎÄÏ!ˆÐÄÑ!ˆÒÄÓ!ˆÔÕ‰‡" [set-syntax-table scheme-mode-syntax-table scheme-mode-abbrev-table local-abbrev-table make-local-variable paragraph-start "^$\\|" page-delimiter paragraph-separate paragraph-ignore-fill-prefix t indent-line-function scheme-indent-line comment-start ";" comment-start-skip ";+[ 	]*" comment-column 40 comment-indent-function scheme-comment-indent ("" scheme-mode-line-process) mode-line-process] 2] boundp scheme-mode-line-process "" scheme-mode-commands #[(map) "À	ÂÃ#ˆÀ	ÄÅ#ˆÀ	ÆÇ#‡" [define-key map "	" scheme-indent-line "" backward-delete-char-untabify "" scheme-indent-sexp] 4] scheme-mode-map make-sparse-keymap] 3)
(fset 'scheme-mode #[nil "À ˆÁ ˆÂ ˆÃÄ!‡" [kill-all-local-variables scheme-mode-initialize scheme-mode-variables run-hooks scheme-mode-hook] 2 "\
Major mode for editing Scheme code.
Editing commands are similar to those of lisp-mode.

In addition, if an inferior Scheme process is running, some additional
commands will be defined, for evaluating expressions and controlling
the interpreter, and the state of the process will be displayed in the
modeline of all Scheme buffers.  The names of commands that interact
with the Scheme process start with \"xscheme-\".  For more information
see the documentation for xscheme-interaction-mode.

Commands:
Delete converts tabs to spaces as it moves back.
Blank lines separate paragraphs.  Semicolons start comments.
\\{scheme-mode-map}
Entry to this mode calls the value of scheme-mode-hook
if that value is non-nil." nil])
(fset (quote scheme-mode-initialize) #[nil "À	!ˆÂÄ‰‡" [use-local-map scheme-mode-map scheme-mode major-mode "Scheme" mode-name] 2])
(defvar scheme-mit-dialect t "\
If non-nil, scheme mode is specialized for MIT Scheme.
Set this to nil if you normally use another dialect.")
(fset (quote scheme-comment-indent) #[(&optional pos) "Šƒ bˆÁÂ!ƒ i‚; ÁÃ!ƒ* Ä ‰<ƒ% @‚& )‚; ÆÇ!ˆnƒ6 È‚8 iT	])‡" [pos looking-at ";;;" ";;" calculate-scheme-indent tem skip-chars-backward " 	" 0 comment-column] 3])
(defvar scheme-indent-offset nil "\
")
(defvar scheme-indent-function (quote scheme-indent-function) "\
")
(fset 'scheme-indent-line #[(&optional whole-exp) "À Á‰‰d`ZÇÈ!ˆ`ÉÊ!ˆËÌ!?…v <ƒ* @iZ‰ÈU„> Í`\"ˆjˆd\nZ`VƒK d\nZbˆ…v ÈU?…v ŠbˆÏÐ!ˆ`bˆÇÐ!ˆ`V)…v Ñ#-‡" [calculate-scheme-indent nil pos end beg shift-amt indent forward-line 0 skip-chars-forward " 	" looking-at "[ 	]*;;;" delete-region whole-exp forward-sexp 1 indent-code-rigidly] 7 "\
Indent current line as Scheme code.
With argument, indent any additional lines of the same expression
rigidly along with this one." "P"])
(fset 'calculate-scheme-indent #[(&optional parse-start) "ŠÀÁ!ˆ`Â‰‰ÃÂ‰‰	\nƒ' bˆ‚* Í ˆ`Wƒ< Î`Á#\n‚* ƒê \n@‰	ƒê 	ÁVƒê ÂÏ\n8\nA@‰Tbˆƒ† `Vƒ† ÎÁ#‰A@‰ƒ… \n)„< Tbˆ„š i‚< Î`ÁÃ$ˆÑÒ!ŠÀÓ!ˆ`)VƒÔ Î`ÁÃ$ˆ`U„Î ÔÓ!ˆÎ`ÁÃ$ˆÕ ˆ‚< bˆÀÁ!ˆÎ`ÁÃ$ˆÕ ˆ‚< ƒñ iÖ×\n\"@ƒbˆØÙ!ˆi‚DÚ!ƒƒbˆi\\‚D„DÜÝ!ƒAƒA„A\n\"‰„Di.	‡" [forward-line 0 nil t first-sexp-list-p containing-sexp last-sexp retry desired-indent paren-depth state indent-point parse-start beginning-of-defun parse-partial-sexp 2 peek looking-at "\\s(" 1 forward-sexp backward-prefix-chars nthcdr 3 skip-chars-forward " 	" integerp scheme-indent-offset boundp scheme-indent-function] 9 "\
Return appropriate indentation for current line as scheme 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 scheme-indent-function) #[(indent-point state) "iŠ	A@TbˆÂÃ!ˆ`	A@U?…m ÄÅÆ!ˆ`ÇÈ!ˆ`\"É\nÌ!Í!ÎN\nÏ\n!ƒF Ð\n	#‚l \nƒT \n	\"‚l GÒV…l ÓÔÒOÕ\"…l Ö	\"**‡" [normal-indent state re-search-forward "\\sw\\|\\s_" buffer-substring forward-char -1 forward-sexp 1 nil method function downcase intern-soft scheme-indent-function integerp scheme-indent-specform indent-point 3 string-equal 0 "def" scheme-indent-defform] 4])
(defvar scheme-body-indent 2 "\
")
(byte-code "ÀÁMˆÂÃMˆÄÅMˆÆÇMˆÈÉMˆÊËÌÍ#ˆÊÎÌÏ#ˆÊÐÌÍ#ˆÊÑÌÒ#ˆÊÓÌÏ#ˆÊÔÌÈ#ˆÊÕÌÏ#ˆÊÖÌÏ#ˆÊ×ÌÍ#ˆÊØÌÏ#ˆÊÙÌÏ#ˆÊÚÌÏ#ˆÊÛÌÏ#ˆÊÜÌÏ#ˆÊÝÌÏ#ˆƒQÊßÌÏ#ˆÊàÌÏ#ˆÊáÌÏ#ˆÊâÌÏ#ˆÊãÌÏ#ˆÊäÌÍ#ˆÊåÌÏ#ˆÊæÌÏ#ˆÊçÌÏ#ˆÊèÌÍ#ˆÊéÌÏ#ˆÊêÌÒ#ˆÊëÌÏ#ˆÊìÌÏ#ˆÊíÌÏ#ˆÊîÌÏ#ˆÊïÌÏ#ˆÊðÌÏ#ˆÊñÌÏ#ˆÊòÌÏ#ˆÊóÌÏ#ˆÊôÌÏ#ˆÊõÌÏ#ˆÊöÌÏ#ˆÊ÷ÌÏ#ˆÊøÌÏ#ˆÊùÌÏ#ˆÊúÌÏ#ˆÊûÌÏ#ˆÊüÌÏ#ˆÊýÌÏ#ˆÊþÌÏ#ˆÊÿÌÏ#ˆÊ@ ÌÏ#ˆÊA ÌÏ#ˆÊB ÌÏ#ˆÀ‡" [scheme-indent-specform #[(count state indent-point) "A@	Â‰‰bˆi\\ÈÉ!ˆÊÉ!ˆË`ÉÍ$ˆ`Wƒ3 ÂÎÏ„% 	ÐVƒG Ñ‰\\!\\D‚` 	ÐUƒ^ ÐU„Z Xƒ^ ‚` ,‡" [state count nil containing-form-column body-indent i containing-form-start scheme-body-indent forward-char 1 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] scheme-indent-defform #[(state indent-point) "A@bˆÁÂ!ˆ`AA@V… A@bˆi\\‡" [state forward-line 1 scheme-body-indent] 2] would-be-symbol #[(string) "À	ÂÃOÄ\"?‡" [string-equal string 0 1 "("] 4] next-sexp-as-string #[nil "ÀÁ!ˆ`ÃÁ!ˆÄ`\n\")‡" [forward-sexp 1 the-end backward-sexp buffer-substring] 3] scheme-let-indent #[(state indent-point) "ÀÁ!ˆÂÃ!ƒ ÄÅ#‡ÄÈ#‡" [skip-chars-forward " 	" looking-at "[a-zA-Z0-9+-*/?!@$%^&_:~]" scheme-indent-specform 2 state indent-point 1] 4] put begin scheme-indent-function 0 case 1 delay do 2 lambda let let* letrec sequence call-with-input-file with-input-from-file with-input-from-port call-with-output-file with-output-to-file with-output-to-port scheme-mit-dialect fluid-let in-package let-syntax local-declare macro make-environment named-lambda using-syntax with-input-from-string with-output-to-string with-values syntax-table-define list-transform-positive list-transform-negative list-search-positive list-search-negative access-components assignment-components combination-components comment-components conditional-components disjunction-components declaration-components definition-components delay-components in-package-components lambda-components lambda-components* lambda-components** open-block-components pathname-components procedure-components sequence-components unassigned\?-components unbound\?-components variable-components] 4)
(fset 'scheme-indent-sexp #[nil "ÀCÁÀ‰‰‰‰ŠÉÊ!ˆ)ŠÀ?…À„u m‰„u Í`Î ˆ`À‰%‰@ÏÐ\"@ƒW Ñ ˆÎ ˆÒÏÐ\"À\"ˆÏÓ\"@ƒn ÔÊ!ˆÒÏÕ\"À\"ˆ‚' Ö‰ƒ, ÁX‰„ Vƒ” AS‰‚€ Wƒ« ÀBT‰‚– ÔÊ!ˆ`×Ø!ˆm„ ÙÚ!„ @ƒÕ @ÁYƒÕ @‚Û@…à @[!Ý!ƒö Ò‰\"ˆ‚ÒA@[\"ˆ@)i\nU„ Þ`\"ˆ\njˆ‚ .‡" [nil 0 this-indent state inner-loop-done outer-loop-done bol next-depth indent-stack forward-sexp 1 last-depth innerloop-done parse-partial-sexp end-of-line nthcdr 4 indent-for-comment setcar 3 forward-line 5 t skip-chars-forward " 	" looking-at "[;\n]" calculate-scheme-indent val integerp delete-region] 8 "\
Indent each line of the list starting just after point." nil])
(provide (quote scheme))
