;ELC   
;;; Compiled by rms@psilocin.gnu.org on Mon Dec 22 01:22:50 1997
;;; from file /gd/gnu/emacs/lisp/progmodes/prolog.el
;;; in Emacs version 20.2.83.1
;;; with bytecomp version 2.35
;;; with all optimizations.
;;; This file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`prolog.el' was compiled for Emacs 19.29 or later"))


(byte-code "ÀÁ!„ ÂÁBÀÄ!„ ÂÄBÀÅ!„  ÂÅBÆÇÂÈ	Ê%‡" [boundp prolog-mode-syntax-table nil current-load-list prolog-mode-abbrev-table prolog-mode-map custom-declare-group prolog "Major mode for editing and running Prolog under Emacs" :group languages] 6)
#@66 *Program name for invoking an inferior Prolog with `run-prolog'.
(custom-declare-variable 'prolog-program-name '"prolog" '(#$ . -797) :type 'string :group 'prolog)
#@55 *(Re)Consult mode (for C-Prolog and Quintus Prolog). 
(custom-declare-variable 'prolog-consult-string '"reconsult(user).\n" '(#$ . -967) :type 'string :group 'prolog)
#@37 *Compile mode (for Quintus Prolog).
(custom-declare-variable 'prolog-compile-string '"compile(user).\n" '(#$ . -1140) :type 'string :group 'prolog)
#@101 *String that represents end of file for prolog.
nil means send actual operating system end of file.
(custom-declare-variable 'prolog-eof-string '"end_of_file.\n" '(#$ . -1295) :type 'string :group 'prolog)
#@41 Level of indentation in Prolog buffers.
(custom-declare-variable 'prolog-indent-width '4 '(#$ . 1507) :type 'integer :group 'prolog)
(byte-code "„R Á ÃÄÅ\n#ˆÃÆÇ\n#ˆÃÈÉ\n#ˆÃÊÉ\n#ˆÃËÉ\n#ˆÃÌÉ\n#ˆÃÍÉ\n#ˆÃÎÏ\n#ˆÃÐÑ\n#ˆÃÒÉ\n#ˆÃÓÉ\n#ˆÃÔÕ\n#ˆ\n)Ö×Ø\"‡" [prolog-mode-syntax-table make-syntax-table table modify-syntax-entry 95 "w" 92 "\\" 47 "." 42 43 45 61 37 "<" 10 ">" 60 62 39 "\"" define-abbrev-table prolog-mode-abbrev-table nil] 4)
(defalias 'prolog-mode-variables #[nil "À	!ˆ\nÄÅ!ˆÆPÄÈ!ˆÄÉ!ˆÊ	ÄË!ˆÌÄÍ!ˆÎÄÏ!ˆÐÄÑ!ˆÒÄÓ!ˆÔÄÕ!ˆÖ‰‡" [set-syntax-table prolog-mode-syntax-table prolog-mode-abbrev-table local-abbrev-table make-local-variable paragraph-start "%%\\|$\\|" page-delimiter paragraph-separate paragraph-ignore-fill-prefix t imenu-generic-expression "^[a-z][a-zA-Z0-9_]+" indent-line-function prolog-indent-line comment-start "%" comment-start-skip "%+ *" comment-column 48 comment-indent-function prolog-comment-indent] 2])
(defalias 'prolog-mode-commands #[(map) "À	ÂÃ#ˆÀ	ÄÅ#‡" [define-key map "	" prolog-indent-line "" prolog-consult-region] 4])
(byte-code "„ Á Â!ˆÁ‡" [prolog-mode-map make-sparse-keymap prolog-mode-commands] 2)
#@228 Major mode for editing Prolog code for Prologs.
Blank lines and `%%...' separate paragraphs.  `%'s start comments.
Commands:
\{prolog-mode-map}
Entry to this mode calls the value of `prolog-mode-hook'
if that value is non-nil.
(defalias 'prolog-mode #[nil "À ˆÁ\n!ˆÃÅÇ ˆÈÉ!‡" [kill-all-local-variables use-local-map prolog-mode-map prolog-mode major-mode "Prolog" mode-name prolog-mode-variables run-hooks prolog-mode-hook] 2 (#$ . 2677) nil])
#@138 Indent current line as Prolog code.
With argument, indent any additional lines of the same clause
rigidly along with this one (not yet).
(defalias 'prolog-indent-line #[(&optional whole-exp) "À d`ZÁÅyˆ`ÆÁwˆ\fiZÅU„! \n`|ˆ\fjˆdZ`V…- dZb+‡" [prolog-indent-level nil beg pos indent 0 " 	"] 3 (#$ . 3131) "p"])
#@35 Compute prolog indentation level.
(defalias 'prolog-indent-level #[nil "ŠÀyˆÁÂwˆÃÄ!ƒ À‚á ÃÅ!ƒ ‚á oƒ% À‚á ÇÂ‰‰	\nÃÌ!ƒ= Ç‚@ Âƒm ÍyˆÀyˆoƒV Â‰‚B ÁÂwˆÃÅ!„@ ÃÎ!„@ Â‰„E oƒw À\n‚z i\nÃÏ!ƒ… \n‚à ÃÐ!ƒ‘ Ç	‚” Â	Ñ ˆo„ž ÍuˆÃÒ!ƒ¿ 	ƒ· ÃÓ!ƒ· \n\\‚à \n]‚à ÃÖ!ƒÊ ‚à „Õ Ã×!ƒß \nZÀ]‚à À,)‡" [0 " 	" nil looking-at "%%%" "%[^%]" comment-column t less more ind empty ")" -1 "\n" "%%[^%]" "(" end-of-prolog-clause "[,(;>]" "[^,]" prolog-indent-width tab-width "-" "[^.]"] 5 (#$ . 3449)])
#@35 Go to end of clause in this line.
(defalias 'end-of-prolog-clause #[nil "ÀyˆŠÁˆ`)Ã\f\nÅ#ƒ À”bˆÆÁx)‡" [0 nil eolpos re-search-forward comment-start-skip move " 	"] 4 (#$ . 3958)])
#@37 Compute prolog comment indentation.
(defalias 'prolog-comment-indent #[nil "ÀÁ!ƒ Â‡ÀÃ!ƒ Ä ‡ŠÅÆxˆinƒ Â‚  Ç\\])‡" [looking-at "%%%" 0 "%%" prolog-indent-level " 	" nil 1 comment-column] 2 (#$ . 4146)])
(byte-code "ÀÁ!„ ÂÁBÂ‡" [boundp inferior-prolog-mode-map nil current-load-list] 2)
#@1013 Major mode for interacting with an inferior Prolog process.

The following commands are available:
\{inferior-prolog-mode-map}

Entry to this mode calls the value of `prolog-mode-hook' with no arguments,
if that value is non-nil.  Likewise with the value of `comint-mode-hook'.
`prolog-mode-hook' is called after `comint-mode-hook'.

You can send text to the inferior Prolog from other buffers
using the commands `send-region', `send-string' and \[prolog-consult-region].

Commands:
Tab indents for Prolog; with argument, shifts rest
 of expression rigidly with the current line.
Paragraphs are separated only by blank lines and '%%'.
'%'s start comments.

Return at end of buffer sends line as input.
Return not at end copies rest of line to end and sends it.
\[comint-kill-input] and \[backward-kill-word] are kill commands, imitating normal Unix input editing.
\[comint-interrupt-subjob] interrupts the shell or its current subjob if any.
\[comint-stop-subjob] stops. \[comint-quit-subjob] sends quit signal.
(defalias 'inferior-prolog-mode #[nil "ÀÁ!ˆÂ ˆÃÅÇÉ ˆ\n„\" Ë\f!\nÍ\n!ˆÎ\n!ˆÏÐ!‡" [require comint comint-mode inferior-prolog-mode major-mode "Inferior Prolog" mode-name "^| [ ?][- ] *" comint-prompt-regexp prolog-mode-variables inferior-prolog-mode-map copy-keymap comint-mode-map prolog-mode-commands use-local-map run-hooks prolog-mode-hook] 2 (#$ . 4446) nil])
#@71 Run an inferior Prolog process, input and output via buffer *prolog*.
(defalias 'run-prolog #[nil "ÀÁ!ˆÂÃÄ\"!ˆÆ ‡" [require comint switch-to-buffer make-comint "prolog" prolog-program-name inferior-prolog-mode] 4 (#$ . 5837) nil])
#@144 Send the region to the Prolog process made by "M-x run-prolog".
If COMPILE (prefix arg) is not nil, use compile mode rather than consult mode.
(defalias 'prolog-consult-region #[(compile beg end) "Šƒ ÁÂ\"ˆ‚ ÁÂ\f\"ˆÅÂ#ˆÁÂÈ\"ˆ	ƒ, ÁÂ	\"‚/ ÊÂ!)‡" [compile send-string "prolog" prolog-compile-string prolog-consult-string send-region beg end "\n" prolog-eof-string process-send-eof] 4 (#$ . 6076) "P\nr"])
#@151 Send the region to the inferior Prolog, and switch to *prolog* buffer.
If COMPILE (prefix arg) is not nil, use compile mode rather than consult mode.
(defalias 'prolog-consult-region-and-go #[(compile beg end) "À	\n#ˆÄÅ!‡" [prolog-consult-region compile beg end switch-to-buffer "*prolog*"] 4 (#$ . 6494) "P\nr"])
(provide 'prolog)
