%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/progmodes/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/progmodes/prolog.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@29 Prolog mode version number.
(defvar prolog-mode-version "1.22" (#$ . 408))
(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311%\210\304\312\306\313\310\314%\210\304\315\306\316\310\305%\210\304\317\306\320\310\305%\210\304\321\306\322\310\305%\210\304\323\306\324\310\305%\210\304\325\306\326\310\305%\210\327\330\331\332\333DD\334\335\336\310\305\337\340&	\210\341\330!\210\327\342\331\332\343DD\344\335\336\337\345\346\347\310\305&\210\327\350\331\332\351DD\352\310\315\337\353\354\355&	\210\327\356\331\332\357DD\360\335\336\310\315\337\361\354\362&\210\327\363\331\332\364DD\365\335\336\310\315\337\366\354\367&\210\327\370\331\332\371DD\372\335\336\310\315\337\353\354\355&\210\327\373\331\332\374DD\375\335\336\310\315\337\376&	\210\327\377\331\332\201@DD\201A\335\336\310\317\337\201B\346\347&\210\327\201C\331\332\201DDD\201E\335\336\310\317\337\201F\346\347&\210\327\201G\331\332\201HDD\201I\335\336\310\317\337\201J\346\347&\210\327\201K\331\332\201LDD\201M\335\336\310\317\337\201N\346\347&\210\327\201O\331\332\201PDD\201Q\335\336\310\317\337\201R\346\347&\210\327\201S\331\332\201TDD\201U\335\336\310\321\337\366&	\210\327\201V\331\332\201WDD\201X\335\336\310\321\337\366&	\210\327\201Y\331\332\201ZDD\201[\335\336\310\321\337\366&	\210\327\201\\\331\332\201]DD\201^\335\336\310\321\337\366&	\210\327\201_\331\332\201`DD\201a\335\336\310\321\337\366&	\210\327\201b\331\332\201cDD\201d\335\336\310\321\337\366&	\210\327\201e\331\332\201fDD\201g\335\336\310\321\337\366&	\210\327\201h\331\332\201iDD\201j\310\323\337\201k\346\347&	\207" [require comint easymenu align custom-declare-group prolog nil "Editing and running Prolog and Mercury files." :group languages prolog-faces "Prolog mode specific faces." font-lock prolog-indentation "Prolog mode indentation configuration." prolog-font-lock "Prolog mode font locking patterns." prolog-keyboard "Prolog mode keyboard flags." prolog-inferior "Inferior Prolog mode options." prolog-other "Other Prolog mode options." custom-declare-variable prolog-system funcall function #[0 "\300\207" [nil] 1] "Prolog interpreter/compiler used.\nThe value of this variable is nil or a symbol.\nIf it is a symbol, it determines default values of other configuration\nvariables with respect to properties of the specified Prolog\ninterpreter/compiler.\n\nCurrently recognized symbol values are:\neclipse - Eclipse Prolog\nmercury - Mercury\nsicstus - SICStus Prolog\nswi     - SWI Prolog\ngnu     - GNU Prolog" :version "24.1" :type (choice (const :tag "SICStus" :value sicstus) (const :tag "SWI Prolog" :value swi) (const :tag "GNU Prolog" :value gnu) (const :tag "ECLiPSe Prolog" :value eclipse) (const :tag "Default" :value nil)) make-variable-buffer-local prolog-system-version #[0 "\300\207" [((sicstus (3 . 6)) (swi (0 . 0)) (mercury (0 . 0)) (eclipse (3 . 7)) (gnu (0 . 0)))] 1] "Alist of Prolog system versions.\nThe version numbers are of the format (Major . Minor)." (repeat (list (symbol :tag "System") (cons :tag "Version numbers" (integer :tag "Major") (integer :tag "Minor")))) :risky t prolog-indent-width #[0 "\300\207" [4] 1] "The indentation width used by the editing buffer." integer :safe integerp prolog-left-indent-regexp #[0 "\300\207" [#1="\\(;\\|\\*?->\\)"] 1 #1#] "Regexp for `prolog-electric-if-then-else-flag'." regexp stringp prolog-paren-indent-p #[0 "\300\207" [nil] 1] "If non-nil, increase indentation for parenthesis expressions.\nThe second and subsequent line in a parenthesis expression other than\na compound term can either be indented `prolog-paren-indent' to the\nright (if this variable is non-nil) or in the same way as for compound\nterms (if this variable is nil, default)." boolean booleanp prolog-paren-indent #[0 "\300\207" [4] 1] "The indentation increase for parenthesis expressions.\nOnly used in ( If -> Then ; Else ) and ( Disj1 ; Disj2 ) style expressions." prolog-parse-mode #[0 "\300\207" [beg-of-clause] 1] "The parse mode used (decides from which point parsing is done).\nLegal values:\n`beg-of-line'   - starts parsing at the beginning of a line, unless the\n                  previous line ends with a backslash.  Fast, but has\n                  problems detecting multiline /* */ comments.\n`beg-of-clause' - starts parsing at the beginning of the current clause.\n                  Slow, but copes better with /* */ comments." (choice (const :value beg-of-line) (const :value beg-of-clause)) prolog-keywords #[0 "\300\207" [((eclipse ("use_module" "begin_module" "module_interface" "dynamic" "external" "export" "dbgcomp" "nodbgcomp" "compile")) (mercury ("all" "else" "end_module" "equality" "external" "fail" "func" "if" "implementation" "import_module" "include_module" "inst" "instance" "interface" "mode" "module" "not" "pragma" "pred" "some" "then" "true" "type" "typeclass" "use_module" "where")) (sicstus ("block" "dynamic" "mode" "module" "multifile" "meta_predicate" "parallel" "public" "sequential" "volatile")) (swi ("discontiguous" "dynamic" "ensure_loaded" "export" "export_list" "import" "meta_predicate" "module" "module_transparent" "multifile" "require" "use_module" "volatile")) (gnu ("built_in" "char_conversion" "discontiguous" "dynamic" "ensure_linked" "ensure_loaded" "foreign" "include" "initialization" "multifile" "op" "public" "set_prolog_flag")) (t ("dynamic" "module")))] 1] "Alist of Prolog keywords which is used for font locking of directives." (repeat (list (choice symbol sexp) (choice (repeat string) sexp))) prolog-types #[0 "\300\207" [((mercury ("char" "float" "int" "io__state" "string" "univ")) (t nil))] 1] "Alist of Prolog types used by font locking." (repeat (list (choice symbol sexp) (choice (repeat string) sexp))) prolog-mode-specificators #[0 "\300\207" [((mercury ("bound" "di" "free" "ground" "in" "mdi" "mui" "muo" "out" "ui" "uo")) (t nil))] 1] "Alist of Prolog mode specificators used by font locking." (repeat (list (choice symbol sexp) (choice (repeat string) sexp))) prolog-determinism-specificators #[0 "\300\207" [((mercury ("cc_multi" "cc_nondet" "det" "erroneous" "failure" "multi" "nondet" "semidet")) (t nil))] 1] "Alist of Prolog determinism specificators used by font locking." (repeat (list (choice symbol sexp) (choice (repeat string) sexp))) prolog-directives #[0 "\300\207" [((mercury ("^#[0-9]+")) (t nil))] 1] "Alist of Prolog source code directives used by font locking." (repeat (list (choice symbol sexp) (choice (repeat string) sexp))) prolog-electric-dot-flag #[0 "\300\207" [nil] 1] "Non-nil means make dot key electric.\nElectric dot appends newline or inserts head of a new clause.\nIf dot is pressed at the end of a line where at least one white space\nprecedes the point, it inserts a recursive call to the current predicate.\nIf dot is pressed at the beginning of an empty line, it inserts the head\nof a new clause for the current predicate.  It does not apply in strings\nand comments.\nIt does not apply in strings and comments." prolog-electric-dot-full-predicate-template #[0 "\300\207" [nil] 1] "If nil, electric dot inserts only the current predicate's name and `('\nfor recursive calls or new clause heads.  Non-nil means to also\ninsert enough commas to cover the predicate's arity and `)',\nand dot and newline for recursive calls." prolog-electric-underscore-flag #[0 "\300\207" [nil] 1] "Non-nil means make underscore key electric.\nElectric underscore replaces the current variable with underscore.\nIf underscore is pressed not on a variable then it behaves as usual." prolog-electric-if-then-else-flag #[0 "\300\207" [nil] 1] "Non-nil makes `(', `>' and `;' electric\nto automatically indent if-then-else constructs." prolog-electric-colon-flag #[0 "\300\207" [nil] 1] "Makes `:' electric (inserts `:-' on a new line).\nIf non-nil, pressing `:' at the end of a line that starts in\nthe first column (i.e., clause heads) inserts ` :-' and newline." prolog-electric-dash-flag #[0 "\300\207" [nil] 1] "Makes `-' electric (inserts a `-->' on a new line).\nIf non-nil, pressing `-' at the end of a line that starts in\nthe first column (i.e., DCG heads) inserts ` -->' and newline." prolog-old-sicstus-keys-flag #[0 "\300\207" [nil] 1] "Non-nil means old SICStus Prolog mode keybindings are used." prolog-program-name #[0 "\300\301\302\303\304\305\306!\204\307\202\306D\310\311\312\211\203&\305@!\204&\211A\262\202\211@\206,\313\262D\257\207" [((getenv "EPROLOG") (eval (getenv "EPROLOG"))) (eclipse "eclipse") (mercury nil) (sicstus "sicstus") swi executable-find "swipl" "pl" (gnu "gprolog") t ("prolog" "gprolog" "swipl" "pl") "prolog"] 10] "Alist of program names for invoking an inferior Prolog with `run-prolog'." (alist :key-type (choice symbol sexp) :value-type (group (choice string (const nil) sexp)))] 12)
(defalias 'prolog-program-name #[0 "\301!\207" [prolog-program-name prolog-find-value-by-system] 2])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315&\207" [custom-declare-variable prolog-program-switches funcall function #[0 "\300\207" [((sicstus ("-i")) (t nil))] 1] "Alist of switches given to inferior Prolog run with `run-prolog'." :version "24.1" :group prolog-inferior :type (repeat (list (choice symbol sexp) (choice (repeat string) sexp))) :risky t] 12)
(defalias 'prolog-program-switches #[0 "\301!\207" [prolog-program-switches prolog-find-value-by-system] 2])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable prolog-consult-string funcall function #[0 "\300\207" [((eclipse "[%f].") (mercury nil) (sicstus (eval (if (prolog-atleast-version '(3 . 7)) "prolog:zap_file(%m,%b,consult,%l)." "prolog:zap_file(%m,%b,consult)."))) (swi "[%f].") (gnu "[%f].") (t "reconsult(%f)."))] 1] "Alist of strings defining predicate for reconsulting.\n\nSome parts of the string are replaced:\n`%f' by the name of the consulted file (can be a temporary file)\n`%b' by the file name of the buffer to consult\n`%m' by the module name and name of the consulted file separated by colon\n`%l' by the line offset into the file.  This is 0 unless consulting a\n     region of a buffer, in which case it is the number of lines before\n     the region." :group prolog-inferior :type (alist :key-type (choice symbol sexp) :value-type (group (choice string (const nil) sexp))) :risky t] 10)
(defalias 'prolog-consult-string #[0 "\301!\207" [prolog-consult-string prolog-find-value-by-system] 2])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable prolog-compile-string funcall function #[0 "\300\207" [((eclipse "[%f].") (mercury "mmake ") (sicstus (eval (if (prolog-atleast-version '(3 . 7)) "prolog:zap_file(%m,%b,compile,%l)." "prolog:zap_file(%m,%b,compile)."))) (swi "[%f].") (t "compile(%f)."))] 1] "Alist of strings and lists defining predicate for recompilation.\n\nSome parts of the string are replaced:\n`%f' by the name of the compiled file (can be a temporary file)\n`%b' by the file name of the buffer to compile\n`%m' by the module name and name of the compiled file separated by colon\n`%l' by the line offset into the file.  This is 0 unless compiling a\n     region of a buffer, in which case it is the number of lines before\n     the region.\n\nIf `prolog-program-name' is non-nil, it is a string sent to a Prolog process.\nIf `prolog-program-name' is nil, it is an argument to the `compile' function." :group prolog-inferior :type (alist :key-type (choice symbol sexp) :value-type (group (choice string (const nil) sexp))) :risky t] 10)
(defalias 'prolog-compile-string #[0 "\301!\207" [prolog-compile-string prolog-find-value-by-system] 2])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\317\320\306\307\310\321\312\313&\207" [custom-declare-variable prolog-eof-string funcall function #[0 "\300\207" [#1="end_of_file.\n"] 1 #1#] "String or alist of strings that represent end of file for prolog.\nIf nil, send actual operating system end of file." :group prolog-inferior :type (choice string (const nil) (alist :key-type (choice symbol sexp) :value-type (group (choice string (const nil) sexp)))) :risky t prolog-prompt-regexp #[0 "\300\207" [((eclipse "^[a-zA-Z0-9()]* *\\?- \\|^\\[[a-zA-Z]* [0-9]*\\]:") (sicstus "| [ ?][- ] *") (swi "^\\(\\[[a-zA-Z]*\\] \\)?[1-9]?[0-9]*[ ]?\\?- \\|^| +") (gnu "^| \\?-") (t "^|? *\\?-"))] 1] "Alist of prompts of the prolog system command line." :version "24.1" (alist :key-type (choice symbol sexp) :value-type (group (choice string (const nil) sexp)))] 12)
(defalias 'prolog-prompt-regexp #[0 "\301!\207" [prolog-prompt-regexp prolog-find-value-by-system] 2])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\307\310\311\312\313&	\210\300\317\302\303\320DD\321\306\307\310\311\312\313&	\210\300\322\302\303\323DD\324\306\307\310\311\312\313&	\210\300\325\302\303\326DD\327\306\307\310\311\312\313&	\210\300\330\302\303\331DD\332\306\307\310\311\312\313&	\210\300\333\302\303\334DD\335\306\307\310\311\312\336&	\210\300\337\302\303\340DD\341\306\307\310\342\312\336&	\210\300\343\302\303\344DD\345\306\307\310\342\312\346&	\210\300\347\302\303\350DD\351\306\307\310\342\312\313&	\210\300\352\302\303\353DD\354\306\307\310\342\312\336&	\210\355\352\356\357#\210\300\360\302\303\361DD\362\306\307\310\342\312\336&	\210\300\363\302\303\364DD\365\306\307\310\342\312\336&	\210\355\363\366\307#\207" [custom-declare-variable prolog-debug-on-string funcall function #[0 "\300\207" [#1="debug.\n"] 1 #1#] "Predicate for enabling debug mode." :version "24.1" :group prolog-inferior :type string prolog-debug-off-string #[0 "\300\207" [#2="nodebug.\n"] 1 #2#] "Predicate for disabling debug mode." prolog-trace-on-string #[0 "\300\207" [#3="trace.\n"] 1 #3#] "Predicate for enabling tracing." prolog-trace-off-string #[0 "\300\207" [#4="notrace.\n"] 1 #4#] "Predicate for disabling tracing." prolog-zip-on-string #[0 "\300\207" [#5="zip.\n"] 1 #5#] "Predicate for enabling zip mode for SICStus." prolog-zip-off-string #[0 "\300\207" [#6="nozip.\n"] 1 #6#] "Predicate for disabling zip mode for SICStus." prolog-use-standard-consult-compile-method-flag #[0 "\300\207" [t] 1] "Non-nil means use the standard compilation method.\nOtherwise the new compilation method will be used.  This\nutilizes a special compilation buffer with the associated\nfeatures such as parsing of error messages and automatically\njumping to the source code responsible for the error.\n\nWarning: the new method is so far only experimental and\ndoes contain bugs.  The recommended setting for the novice user\nis non-nil for this variable." boolean prolog-imenu-flag #[0 "\300\207" [t] 1] "Non-nil means add a clause index menu for all prolog files." prolog-other prolog-imenu-max-lines #[0 "\300\207" [3000] 1] "The maximum number of lines of the file for imenu to be enabled.\nRelevant only when `prolog-imenu-flag' is non-nil." integer prolog-info-predicate-index #[0 "\300\207" [#7="(sicstus)Predicate Index"] 1 #7#] "The info node for the SICStus predicate index." prolog-underscore-wordchar-flag #[0 "\300\207" [nil] 1] "Non-nil means underscore (_) is a word-constituent character." make-obsolete-variable superword-mode "24.4" prolog-use-sicstus-sd #[0 "\300\207" [nil] 1] "If non-nil, use the source level debugger of SICStus 3#7 and later." prolog-char-quote-workaround #[0 "\300\207" [nil] 1] "If non-nil, declare 0 as a quote character to handle 0'<char>.\nThis is really kludgy, and unneeded (i.e. obsolete) in Emacs>=24." nil] 10)
(defvar prolog-mode-syntax-table (byte-code "\302 \303\304\203\f\305\202
\306#\210\303\307\310#\210\303\311\310#\210\303\312\310#\210\303\313\310#\210\303\314\310#\210\303\315\310#\210\303\316\317#\210	\203J\320\321!\204J\303\322\323#\210\303\324\325#\210\303\326\327#\210\303\330\331#\210\303\332\333#\210\211\207" [prolog-underscore-wordchar-flag prolog-char-quote-workaround make-syntax-table modify-syntax-entry 95 "w" "_" 43 "." 45 61 60 62 124 39 "\"" fboundp syntax-propertize-rules 48 "\\" 37 "<" 10 ">" 42 ". 23b" 47 ". 14"] 5))
#@70 Regexp specifying characters which constitute atoms without quoting.
(defconst prolog-atom-char-regexp "[[:alnum:]_$]" (#$ . 16548))
(defconst prolog-atom-regexp (format "[[:lower:]$]%s*" prolog-atom-char-regexp))
#@67 The characters used as left parentheses for the indentation code.
(defconst prolog-left-paren "[[({]" (#$ . 16768))
#@68 The characters used as right parentheses for the indentation code.
(defconst prolog-right-paren "[])}]" (#$ . 16890))
#@32 Regexp matching a quoted atom.
(defconst prolog-quoted-atom-regexp "\\(^\\|[^0-9]\\)\\('\\([^\n']\\|\\\\'\\)*'\\)" (#$ . 17014))
#@27 Regexp matching a string.
(defconst prolog-string-regexp "\\(\"\\([^\n\"]\\|\\\\\"\\)*\"\\)" (#$ . 17149))
#@67 A regexp for matching on the end delimiter of a head (e.g. ":-").
(defconst prolog-head-delimiter "\\(:-\\|\\+:\\|-:\\|\\+\\?\\|-\\?\\|-->\\)" (#$ . 17262))
#@62 Name of the output buffer for Prolog compilation/consulting.
(defvar prolog-compilation-buffer "*prolog-compilation*" (#$ . 17425))
(defvar prolog-temporary-file-name nil)
(defvar prolog-keywords-i nil)
(defvar prolog-types-i nil)
(defvar prolog-mode-specificators-i nil)
(defvar prolog-determinism-specificators-i nil)
(defvar prolog-directives-i nil)
(defvar prolog-eof-string-i nil)
(defvar prolog-help-function-i nil)
(defvar prolog-align-rules '((prolog-dcg (regexp . "\\(\\s-*\\)-->\\(\\s-*\\)") . #1=((tab-stop) (modes quote (prolog-mode)) (group 1 2))) (prolog-rule (regexp . "\\(\\s-*\\):-\\(\\s-*\\)") . #1#) (prolog-simplification (regexp . "\\(\\s-*\\)<=>\\(\\s-*\\)") . #1#) (prolog-propagation (regexp . "\\(\\s-*\\)==>\\(\\s-*\\)") . #1#)))
(require 'smie)
(defconst prolog-operator-chars "-\\\\#&*+./:<=>?@\\^`~")
(defalias 'prolog-smie-forward-token #[0 "\301d!\210\302`\303\304!\203\305u\210\202(\306w\307U\203(\310\311!\307U\203(\310\312!\307U\210`\"\207" [prolog-operator-chars forward-comment buffer-substring-no-properties looking-at "[!;]" 1 nil 0 skip-syntax-forward "w_'" "."] 4])
(defalias 'prolog-smie-backward-token #[0 "\301d[!\210\302``Sf\303>\203\304u\210\202+\305x\306U\203+\307\310!\306U\203+\307\311!\306U\210`\"\207" [prolog-operator-chars forward-comment buffer-substring-no-properties (33 59 44) -1 nil 0 skip-syntax-backward "w_'" "."] 4])
#@39 Precedence levels of infix operators.
(defconst prolog-smie-grammar '(("." -10000 -10000) ("?-" nil -1200) (":-" -1200 -1200) ("-->" -1200 -1200) ("discontiguous" nil -1150) ("dynamic" nil -1150) ("meta_predicate" nil -1150) ("module_transparent" nil -1150) ("multifile" nil -1150) ("public" nil -1150) ("|" -1105 -1105) (";" -1100 -1100) ("*->" -1050 -1050) ("->" -1050 -1050) ("," -1000 -1000) ("\\+" nil -900) ("=" -700 -700) ("\\=" -700 -700) ("=.." -700 -700) ("==" -700 -700) ("\\==" -700 -700) ("@<" -700 -700) ("@=<" -700 -700) ("@>" -700 -700) ("@>=" -700 -700) ("is" -700 -700) ("=:=" -700 -700) ("=\\=" -700 -700) ("<" -700 -700) ("=<" -700 -700) (">" -700 -700) (">=" -700 -700) (":" -600 -600) ("+" -500 -500) ("-" -500 -500) ("/\\" -500 -500) ("\\/" -500 -500) ("*" -400 -400) ("/" -400 -400) ("//" -400 -400) ("rem" -400 -400) ("mod" -400 -400) ("<<" -400 -400) (">>" -400 -400) ("**" -200 -200) ("^" -200 -200) (:smie-closer-alist (t . "."))) (#$ . 18821))
#@19 

(fn KIND TOKEN)
(defalias 'prolog-smie-rules #[514 "B\301\302\303\304\305\232\203\202P:\203-@\211\306=\203\"\307\202(\310\267\2020\311\202(\312\202(\211\313\267\202A\211\314\235\203O\315 \205\265\316\317!\205\265\320\321!\202\265\322\267\202\264\315 \205\265\323\324!\205\265\212\325\224b\210i)iZ\211X\205q\211\262\202\265`Sf\326=\205\265\212\327 \210\327 @\330\232)\205\265\320!\202\265n\203\254\212\331 \210\332\333w\210l\203\245\202\250i^)\202\265\202\265\202\265\333\262\202(A\211\334\235\203\356\316\317\311\"\205\346\212\331 \210\335\336!\210\316\317!\203\340`Sf\337=?\202\345\327 \210\315 )?\205	\202	\340\267\202 \202	 \202	 \202	\202	\333\262\202(\341\267\202' \202( \202( \202(\202(\333\262\202P\342\267\202O\311\202P \202P\211 \202P \202P \202P\202P\333\207" [prolog-indent-width #[0 "\300\207" [#1=(column . 0)] 1] #[0 "n\203\212\301 \210\302\303w\210l\203\202i^)\207\207" [prolog-indent-width smie-indent-forward-token #4=" 	" nil] 2] #[0 "`Sf\301=\205\212\302 \210\302 @\303\232)\205\304!\207" [prolog-indent-width 33 smie-indent-backward-token #3=":-" smie-rule-parent] 2] #[0 "\301 \205\302\303!\205\212\304\224b\210i)iZ\211X\205\211\262\207" [prolog-indent-width smie-rule-bolp looking-at #2=";[ 	]*\\(%\\)" 1] 3] (:elem . basic) :list-intro t #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#9=(:elem . empty-line-token) 40 #10=(:after . ".") 44)) ";" #1# #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:before 54 :after 186)) (";" "->") smie-rule-bolp smie-rule-parent-p "(" smie-rule-parent 0 #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#5=(:after . ";") 86 #6=(:after . ",") 118 #7=(:after . ":-") 145 #8=(:after . "-->") 176)) looking-at #2# 1 33 smie-indent-backward-token #3# smie-indent-forward-token #4# nil ("*->" "->") smie-backward-sexp halfsexp 40 #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#5# 245 #6# 250 #7# 255 #8# 260)) #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#5# 276 #6# 281 #7# 286 #8# 291)) #s(hash-table size 6 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#9# 307 #10# 311 #5# 316 #6# 321 #7# 326 #8# 331))] 12 (#$ . 19800)])
#@130 Return t if the version of the current prolog system is VERSION or later.
VERSION is of the format (Major . Minor)

(fn VERSION)
(defalias 'prolog-atleast-version #[257 "\301!\211@A@W\206@U\205AX\207" [prolog-system-version prolog-find-value-by-system] 6 (#$ . 22233)])
(define-abbrev-table 'prolog-mode-abbrev-table nil)
#@64 Get value from ALIST according to `prolog-system'.

(fn ALIST)
(defalias 'prolog-find-value-by-system #[257 "\206\301\302!\211\205\303\300\"\262<\203d\304\211\203^@@\262\211=\2048\211\305=\2048\211<\203W\306!\203W@A@\262<\203Q@\306=\203Q\306A@!\262\304\262\202A\262\202\266\202\202e\207" [prolog-system prolog-inferior-buffer dont-run buffer-local-value nil t eval] 6 (#$ . 22573)])
(defconst prolog-syntax-propertize-function (byte-code "\300\301!\205\302\207" [fboundp syntax-propertize-rules #[514 "b\210`W\205Y\300\301\302#\205Y\303\224\2037\303\224\303\225\212\304\305\306\224!8)?\205'\307\211\2032\310\311$\210\266\202\312\224\203H\310\312\224\312\225\311\307$\210\202\313\224\203\310\313\224\313\225\311\307$\210\202\207" [re-search-forward "\\<0\\(''?\\)\\|\\<[1-9][0-9]*\\('\\)[0-9a-zA-Z]\\|\\\\[x0-7][[:xdigit:]]*\\(\\\\\\)" t 1 8 syntax-ppss 0 (3) put-text-property syntax-table 2 3] 10 "\n\n(fn START END)"]] 2))
#@59 Set some common variables to Prolog code specific values.
(defalias 'prolog-mode-variables #[0 "\306\301!\210\306\303!\210\307\nP\306\304!\210\306\305!\210\310\306\311!\210\312	\306\313!\210\314\306\315!\210\316
\306\317!\210\320\306\321!\210\322\306\323!\210\324\325\211\203_\211@\326\327!\330P!\331J!L\210A\266\202\202E\210\332 \204m\306\333!\210\334 \306\335!\210\336\306\337!\210&\340'\341\342\343\344\345&\207" [prolog-mode-abbrev-table local-abbrev-table page-delimiter paragraph-start paragraph-separate paragraph-ignore-fill-prefix make-local-variable "[ 	]*$\\|" t normal-auto-fill-function prolog-do-auto-fill comment-start "%" comment-end "" comment-add 1 comment-start-skip "\\(?:/\\*+ *\\|%+ *\\)" parens-require-spaces nil (prolog-keywords prolog-types prolog-mode-specificators prolog-determinism-specificators prolog-directives prolog-eof-string prolog-help-function) intern symbol-name "-i" prolog-find-value-by-system prolog-program-name compile-command prolog-compile-string font-lock-defaults (prolog-font-lock-keywords nil nil ((95 . "w"))) syntax-propertize-function smie-setup prolog-smie-rules :forward-token prolog-smie-forward-token :backward-token prolog-smie-backward-token prolog-syntax-propertize-function prolog-smie-grammar] 7 (#$ . 23564)])
#@66 Define keybindings common to both Prolog modes in MAP.

(fn MAP)
(defalias 'prolog-mode-keybindings-common #[257 "\300\301\302#\210\300\303\304#\210\300\305\306#\210\300\307\310#\210\300\311\312#\210\300\313\314#\207" [define-key "?" prolog-help-on-predicate "/" prolog-help-apropos "" prolog-debug-on "" prolog-trace-on "" prolog-zip-on "
" run-prolog] 5 (#$ . 24875)])
#@54 Define keybindings for Prolog mode in MAP.

(fn MAP)
(defalias 'prolog-mode-keybindings-edit #[257 "\301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\203y\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\345#\210\301\346\347#\210\202\251\301\350\335#\210\301\351\337#\210\301\352\341#\210\301\353\354#\210\301\355\343#\210\301\356\345#\210\301\357\347#\210\301\360\361#\210\301\362\337#\210\301\363\354#\210\301\364\365#\207" [prolog-old-sicstus-keys-flag define-key "\341" prolog-beginning-of-clause "\345" prolog-end-of-clause "\361" prolog-fill-paragraph "" align "\201" prolog-beginning-of-predicate "\205" prolog-end-of-predicate "\203" prolog-mark-clause "\210" prolog-mark-predicate "" prolog-insert-predicate-template "" prolog-insert-predspec "\215" prolog-insert-next-clause "a" prolog-variables-to-anonymous "" prolog-view-predspec "" prolog-consult-predicate "c" prolog-consult-region "C" prolog-consult-buffer "" prolog-compile-predicate "k" prolog-compile-region "K" prolog-compile-buffer "" "" "" "" prolog-consult-file "p" "r" "b" "f" prolog-compile-file "" "\f" "" run-prolog] 5 (#$ . 25267)])
#@63 Define keybindings for inferior Prolog mode in MAP.

(fn MAP)
(defalias 'prolog-mode-keybindings-inferior #[257 "\300\207" ["Define keybindings for inferior Prolog mode in MAP."] 2 (#$ . 26656)])
(defvar prolog-mode-map (byte-code "\300 \301!\210\302!\210\211\207" [make-sparse-keymap prolog-mode-keybindings-common prolog-mode-keybindings-edit] 3))
#@66 List of functions to call after the prolog mode has initialized.
(defvar prolog-mode-hook nil (#$ . 27014))
(defvar prolog-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [prolog-mode-hook variable-documentation put "Hook run after entering Prolog mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp prolog-mode-map definition-name prolog-mode] 4)
(defvar prolog-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [prolog-mode-abbrev-table prolog-mode-map variable-documentation put purecopy "Keymap for `prolog-mode'." boundp prolog-mode-syntax-table definition-name prolog-mode (lambda (#1=#:def-tmp-var) (defvar prolog-mode-syntax-table #1#)) make-syntax-table "Syntax table for `prolog-mode'." (lambda (#1#) (defvar prolog-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `prolog-mode'." derived-mode-parent prog-mode] 5)
#@527 Major mode for editing Prolog code.

Blank lines and `%%...' separate paragraphs.  `%'s starts a comment
line and comments can also be enclosed in /* ... */.

If an optional argument SYSTEM is non-nil, set up mode for the given system.

To find out what version of Prolog mode you are running, enter
`\[prolog-mode-version]'.

Commands:
\{prolog-mode-map}

In addition to any hooks its parent mode `prog-mode' might have run,
this mode runs the hook `prolog-mode-hook', as the final or penultimate step
during initialization.
(defalias 'prolog-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324
\325\"\204R
/=\204R\326
\325/C#\210\327!\210\330\f!\210
/\3120\331\267\202u\332\202v\333\202v\334\202v\335\202v\336P\337 \2101\211\203\217\211@\340\341\"\210A\266\202\202}\210\342\343\344\345\307$\2102\203\246\306\346!\210\347&B&0\350=\203\273\351\352!\203\2733\203\273\353 \210\354 \210)\355\356!\207" [delay-mode-hooks major-mode mode-name prolog-mode-map prolog-mode-syntax-table prolog-mode-abbrev-table make-local-variable t prog-mode prolog-mode "Prolog" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (eclipse 101 sicstus 105 swi 109 gnu 113)) "[ECLiPSe]" "[SICStus]" "[SWI]" "[GNU]" "" prolog-mode-variables add-to-list align-rules-list add-hook post-self-insert-hook prolog-post-self-insert nil electric-indent-chars 46 sicstus prolog-atleast-version (3 . 7) prolog-enable-sicstus-sd prolog-menu run-mode-hooks prolog-mode-hook local-abbrev-table prolog-system prolog-align-rules prolog-electric-dot-flag prolog-use-sicstus-sd] 5 (#$ . 28267) nil])
(defvar mercury-mode-map (byte-code "\301 \302\"\210\211\207" [prolog-mode-map make-sparse-keymap set-keymap-parent] 4))
(defvar mercury-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [mercury-mode-hook variable-documentation put "Hook run after entering Prolog[Mercury] mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp mercury-mode-map definition-name mercury-mode] 4)
(defvar mercury-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [mercury-mode-abbrev-table mercury-mode-map variable-documentation put purecopy "Keymap for `mercury-mode'." boundp mercury-mode-syntax-table definition-name mercury-mode (lambda (#1=#:def-tmp-var) (defvar mercury-mode-syntax-table #1#)) make-syntax-table "Syntax table for `mercury-mode'." (lambda (#1#) (defvar mercury-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `mercury-mode'." derived-mode-parent prolog-mode] 5)
#@270 Major mode for editing Mercury programs.
Actually this is just customized `prolog-mode'.

In addition to any hooks its parent mode might have run,
this mode runs the hook `mercury-mode-hook', as the final or penultimate step
during initialization.

\{mercury-mode-map}
(defalias 'mercury-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324
\325\"\204R
=\204R\326
\325C#\210\327!\210\330\f!\210
\306\331!\210\332)\333\334!\207" [delay-mode-hooks major-mode mode-name mercury-mode-map mercury-mode-syntax-table mercury-mode-abbrev-table make-local-variable t prolog-mode mercury-mode "Prolog[Mercury]" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table prolog-system mercury run-mode-hooks mercury-mode-hook local-abbrev-table] 5 (#$ . 31516) nil])
(defvar prolog-inferior-mode-map (byte-code "\300 \301!\210\302!\210\303\304\305#\210\211\207" [make-sparse-keymap prolog-mode-keybindings-common prolog-mode-keybindings-inferior define-key [remap self-insert-command] prolog-inferior-self-insert-command] 5))
#@75 List of functions to call after the inferior prolog mode has initialized.
(defvar prolog-inferior-mode-hook nil (#$ . 32828))
(defvar prolog-inferior-error-regexp-alist '(("^\\(?:\\?- *\\)?\\(\\(?:ERROR\\|\\(W\\)arning\\): *\\(.*?\\):\\([1-9][0-9]*\\):\\(?:\\([0-9]*\\):\\)?\\)\\(?:$\\| \\)" 3 4 5 (2) 1) gnu))
#@67 Insert the char in the buffer or pass it directly to the process.
(defalias 'prolog-inferior-self-insert-command #[0 "\303p!\211\205\f\304\305!!\306=\203:\211\203:	\204:m\203:`=\203:\212\211\307Zb\210\310\311!)\203:\312\313\n!\"\202=\314\315!\207" [prolog-system current-prefix-arg last-command-event get-buffer-process marker-position process-mark gnu 3 looking-at " \\? " comint-send-string string call-interactively self-insert-command] 6 (#$ . 33145) nil])
(defvar prolog-inferior-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [prolog-inferior-mode-hook variable-documentation put "Hook run after entering Inferior Prolog mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp prolog-inferior-mode-map definition-name prolog-inferior-mode] 4)
(defvar prolog-inferior-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [prolog-inferior-mode-abbrev-table prolog-inferior-mode-map variable-documentation put purecopy "Keymap for `prolog-inferior-mode'." boundp prolog-inferior-mode-syntax-table definition-name prolog-inferior-mode (lambda (#1=#:def-tmp-var) (defvar prolog-inferior-mode-syntax-table #1#)) make-syntax-table "Syntax table for `prolog-inferior-mode'." (lambda (#1#) (defvar prolog-inferior-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `prolog-inferior-mode'." derived-mode-parent comint-mode] 5)
#@1363 Major mode for interacting with an inferior Prolog process.

The following commands are available:
\{prolog-inferior-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-delchar-or-maybe-eof] sends end-of-file as input.
\[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, likewise.
\[comint-quit-subjob] sends quit signal, likewise.

To find out what version of Prolog mode you are running, enter
`\[prolog-mode-version]'.

In addition to any hooks its parent mode `comint-mode' might have run,
this mode runs the hook `prolog-inferior-mode-hook', as the final or penultimate step
during initialization.
(defalias 'prolog-inferior-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324
\325\"\204R
&=\204R\326
\325&C#\210\327!\210\330\f!\210
&\331\332!\210\333'\334(\335 \210\336 )\306\337!\210\340\306\341!\210*!\342 \210\343 \210)\344\345!\207" [delay-mode-hooks major-mode mode-name prolog-inferior-mode-map prolog-inferior-mode-syntax-table prolog-inferior-mode-abbrev-table make-local-variable t comint-mode prolog-inferior-mode "Inferior Prolog" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table require compile prolog-input-filter (": %s") prolog-mode-variables prolog-prompt-regexp shell-dirstack-query "pwd." compilation-error-regexp-alist compilation-shell-minor-mode prolog-inferior-menu run-mode-hooks prolog-inferior-mode-hook local-abbrev-table comint-input-filter mode-line-process comint-prompt-regexp prolog-inferior-error-regexp-alist] 5 (#$ . 34901) nil])
#@12 

(fn STR)
(defalias 'prolog-input-filter #[257 "\300\301\"\203	\302\207\303\304!\204\305\207\211G\306U\203\302\207\300\307\"\203#\302\207\305\207" [string-match "\\`\\s *\\'" nil derived-mode-p prolog-inferior-mode t 1 "\\`[rf] *[0-9]*\\'"] 4 (#$ . 37437)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias switch-to-prolog run-prolog nil make-obsolete "24.1"] 4)
#@153 Run an inferior Prolog process, input and output via buffer *prolog*.
With prefix argument ARG, restart the Prolog process if running before.

(fn ARG)
(defalias 'run-prolog #[257 "\211\203\302\303!\203\304\303\305\"\210\302\303!\203\306\307!\210\202\310 \211\311\230\204'\312 \210\313=\203:\314\315!\203:	\203:\316 \210\317 \210\320 \207" [prolog-system prolog-use-sicstus-sd get-process "prolog" process-send-string "halt.\n" sit-for 0.1 buffer-name "*prolog*" prolog-goto-prolog-process-buffer sicstus prolog-atleast-version (3 . 7) prolog-enable-sicstus-sd prolog-mode-variables prolog-ensure-process] 4 (#$ . 37834) "P"])
#@26 

(fn &optional IGNORED)
(defalias 'prolog-inferior-guess-flavor #[256 "\303\300!\210\247\204\304!\2054\212Tb\210\305\306!\203\307\2023\305\310!\203(\311\2023\305\312!\2032\313\2023)\2119\205T\314\315\316\317#\210\205T\320 \307=\205T\303\302!\210\317\211\207" [prolog-system comint-prompt-regexp comint-process-echoes make-local-variable markerp looking-at "GNU Prolog" gnu "Welcome to SWI-Prolog\\|%.*\\<swi_" swi ".*\n" nil remove-hook comint-output-filter-functions prolog-inferior-guess-flavor t prolog-prompt-regexp] 6 (#$ . 38480)])
#@179 If Prolog process is not running, run it.
If the optional argument WAIT is non-nil, wait for Prolog prompt specified by
the variable `prolog-prompt-regexp'.

(fn &optional WAIT)
(defalias 'prolog-ensure-process #[256 "\302 \204	\303\304!\210\305\306!?\205\210r\307\306!q\210\310 \210\311\312!\203#\202&\313B\314\315\316p\302 \317\320 &\210)	\204j\321\301!\210\322p!\211\205H\323\324!!\211\204QeS\202`\211eV\203^\325S!\202`\211S\266\202\326\327\330\317\331$\210\211\205\207db\210\212\332\333\334 \335Q\317\331#)?\205\207\336\337!\210\202q)\207" [process-environment prolog-system prolog-program-name error "This Prolog system has defined no interpreter." comint-check-proc "*prolog*" get-buffer-create prolog-inferior-mode getenv "INFERIOR" "INFERIOR=yes" apply make-comint-in-buffer "prolog" nil prolog-program-switches make-local-variable get-buffer-process marker-position process-mark copy-marker add-hook comint-output-filter-functions prolog-inferior-guess-flavor t re-search-backward "\\(" prolog-prompt-regexp "\\)\\=" sit-for 0.1] 8 (#$ . 39048)])
#@27 

(fn &optional DONT-RUN)
(defalias 'prolog-inferior-buffer #[256 "\300\301!\206\211?\205\302 \210\300\301!\207" [get-buffer "*prolog*" prolog-ensure-process] 3 (#$ . 40130)])
#@81 Insert STRING into inferior Prolog buffer running PROCESS.

(fn PROCESS STRING)
(defalias 'prolog-process-insert-string #[514 "r\300!q\210`\301!U\212\301!b\210c\210\301!`\302\223\210)\211\205$\301!b\262)\207" [process-buffer process-mark nil] 6 (#$ . 40316)])
#@148 Process the region limited by START and END positions.
If COMPILEP is non-nil then use compilation, otherwise consulting.

(fn COMPILEP START END)
(defalias 'prolog-old-process-region #[771 "\301 \210\302 \303e\212b\210`)\"T\304#\210\305!\262r\306 q\210\307 \210\310\"\210)\311\312\313\314!$\"\210\315 \207" [buffer-file-name prolog-ensure-process prolog-temporary-file count-lines write-region copy-marker prolog-inferior-buffer compilation-forget-errors compilation-fake-loc process-send-string "prolog" prolog-build-prolog-command prolog-bsts prolog-goto-prolog-process-buffer] 12 (#$ . 40591)])
#@119 Process the predicate around point.
If COMPILEP is non-nil then use compilation, otherwise consulting.

(fn COMPILEP)
(defalias 'prolog-old-process-predicate #[257 "\300\301 \302 #\207" [prolog-old-process-region prolog-pred-start prolog-pred-end] 5 (#$ . 41211)])
#@110 Process the entire buffer.
If COMPILEP is non-nil then use compilation, otherwise consulting.

(fn COMPILEP)
(defalias 'prolog-old-process-buffer #[257 "\300ed#\207" [prolog-old-process-region] 5 (#$ . 41484)])
#@123 Process the file of the current buffer.
If COMPILEP is non-nil then use compilation, otherwise consulting.

(fn COMPILEP)
(defalias 'prolog-old-process-file #[257 "\301 \210\302 \210r\303 q\210\304 \210)\305\306\307\310!#\"\210\311 \207" [buffer-file-name save-some-buffers prolog-ensure-process prolog-inferior-buffer compilation-forget-errors process-send-string "prolog" prolog-build-prolog-command prolog-bsts prolog-goto-prolog-process-buffer] 8 (#$ . 41703)])
#@33 Consult file of current buffer.
(defalias 'prolog-consult-file #[0 "\203\301\302!\207\303\302!\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-file nil prolog-consult-compile-file] 2 (#$ . 42178) nil])
#@17 Consult buffer.
(defalias 'prolog-consult-buffer #[0 "\203\301\302!\207\303\302!\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-buffer nil prolog-consult-compile-buffer] 2 (#$ . 42414) nil])
#@51 Consult region between BEG and END.

(fn BEG END)
(defalias 'prolog-consult-region #[514 "\203\n\301\302#\207\303\302#\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-region nil prolog-consult-compile-region] 6 (#$ . 42640) "r"])
#@45 Consult the predicate around current point.
(defalias 'prolog-consult-predicate #[0 "\203\301\302!\207\303\302!\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-predicate nil prolog-consult-compile-predicate] 2 (#$ . 42907) nil])
#@33 Compile file of current buffer.
(defalias 'prolog-compile-file #[0 "\203\301\302!\207\303\302!\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-file t prolog-consult-compile-file] 2 (#$ . 43170) nil])
#@17 Compile buffer.
(defalias 'prolog-compile-buffer #[0 "\203\301\302!\207\303\302!\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-buffer t prolog-consult-compile-buffer] 2 (#$ . 43404) nil])
#@51 Compile region between BEG and END.

(fn BEG END)
(defalias 'prolog-compile-region #[514 "\203\n\301\302#\207\303\302#\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-region t prolog-consult-compile-region] 6 (#$ . 43628) "r"])
#@45 Compile the predicate around current point.
(defalias 'prolog-compile-predicate #[0 "\203\301\302!\207\303\302!\207" [prolog-use-standard-consult-compile-method-flag prolog-old-process-predicate t prolog-consult-compile-predicate] 2 (#$ . 43893) nil])
#@105 Select Prolog module name appropriate for current buffer.
Bases decision on buffer contents (-*- line).
(defalias 'prolog-buffer-module #[0 "\301\211\212eb\210\302\301w\210\303\304\305 \306#\205Z\302\301w\210`\262\303\304\305 \306#\205Z\307u\210\302\301x\210`\262b\210\306\303\310\306#)\205Z\302\301w\210`\262\303\311\306#\203P\312u\210\202S\211b\210\302\301x\210`{)\207" [case-fold-search nil " 	" search-forward "-*-" line-end-position t -3 "module:" ";" -1] 6 (#$ . 44155)])
#@174 Make Prolog command for FILE compilation/consulting.
If COMPILEP is non-nil, consider compilation, otherwise consulting.

(fn COMPILEP FILE BUFFERNAME &optional FIRST-LINE)
(defalias 'prolog-build-prolog-command #[1027 "\203	\300 \202\301 \302 \303\304!\303Q\205\303\303Q\203'\211\305Q\202(\306\211\2035S\2026\307	\204?\310\311!\210\312\313\"\204N\303\n\303Q\262\n\312\314	\"\203p\315\307\211\224#\262\315\307\225\"\262Q\262\202N\312\316	\"\203\223\315\307\211\224#\262\315\307\225\"\262Q\262\202p\312\317	\"\203\266\315\307\211\224#\262\315\307\225\"\262\nQ\262\202\223\312\320	\"\203\333\315\307\211\224#\262\315\307\225\"\262\321\322\"Q\262\202\266\323P\207" [prolog-compile-string prolog-consult-string prolog-buffer-module "'" prolog-bsts ":" nil 0 error "The buffer is not saved" string-match "\\`'.*'\\'" "%m" substring "%f" "%b" "%l" format "%d" "\n"] 16 (#$ . 44653)])
#@87 Non-nil means that a prolog task (i.e. a consultation or compilation job)
is running.
(defvar prolog-process-flag nil (#$ . 45619))
#@59 Hold the unprocessed output from the current prolog task.
(defvar prolog-consult-compile-output "" (#$ . 45757))
#@88 The number of the first line of the file to consult/compile.
Used for temporary files.
(defvar prolog-consult-compile-first-line 1 (#$ . 45876))
#@56 The file to compile/consult (can be a temporary file).
(defvar prolog-consult-compile-file nil (#$ . 46027))
#@49 The file name of the buffer to compile/consult.
(defvar prolog-consult-compile-real-file nil (#$ . 46142))
#@383 Consult/compile FILE.
If COMPILEP is non-nil, perform compilation, otherwise perform CONSULTING.
COMMAND is a string described by the variables `prolog-consult-string'
and `prolog-compile-string'.
Optional argument FIRST-LINE is the number of the first line in the compiled
region.

This function must be called from the source code buffer.

(fn COMPILEP FILE &optional FIRST-LINE)
(defalias 'prolog-consult-compile #[770 "\203\306\307!\210\310\311!\210\312	!\n\313$\314\315!rq\210ed|\210\316 \210\317\303!\210\320\f\321=\2037\317\305!\210\322\3230\324\261\210)\325!\210\311\3261\203RS\202S\32723\n\230?\205`4rq\210db\210\330\331\332\327\333\334\335!\336\"\337$\332\340\341\334\335!\342\"\343\344%B\262\345\323$\210\346\315\"\210\203\253\347\350\"\203\253\351\352!\210\314\315!\204\220\323\211\204\224\203\264\353\202\265\354c\210\211\355\356!\345\"\211\356!=?\205\313\357\"\266\202)\207" [prolog-process-flag prolog-compilation-buffer buffer-file-name font-lock-defaults prolog-system compilation-parse-errors-function error "Another Prolog task is running." prolog-ensure-process t get-buffer-create prolog-build-prolog-command get-process "prolog" compilation-mode make-local-variable (prolog-font-lock-keywords nil nil ((95 . "w"))) sicstus prolog-parse-sicstus-compilation-errors nil "\n" display-buffer "" 0 advice--add-function :override make-byte-code "\301\300!\207" vconcat vector [process-filter] 2 257 "\301\300\"\207" [set-process-filter] 4 "\n\n(fn GV--VAL)" prolog-consult-compile-filter process-send-string accept-process-output 10 sit-for 0.1 "\nCompilation finished.\n" "\nConsulted.\n" advice--remove-function process-filter set-process-filter buffer-read-only prolog-consult-compile-output prolog-consult-compile-first-line prolog-consult-compile-file prolog-consult-compile-real-file] 18 (#$ . 46256)])
#@180 Parse the prolog compilation buffer for errors.
Argument LIMIT is a buffer position limiting searching.
For use with the `compilation-parse-errors-function' variable.

(fn LIMIT)
(defalias 'prolog-parse-sicstus-compilation-errors #[257 "\301\302\303!\210\301\211\211\211\304\305\306#\205N\307\310\311!!\262\212\304\312\306#\210\310\311!\262)\313\314\"\203;\310\315\"\262\310\311\"\262\212\316 \210\317 )DDBB\202\n\207" [compilation-error-list nil message "Parsing SICStus error messages..." re-search-backward "{\\([a-zA-Z ]* ERROR\\|Warning\\):.* in line[s ]*\\([0-9]+\\)" t string-to-number match-string 2 "{\\(consulting\\|compiling\\|processing\\) \\(.*\\)\\.\\.\\.}" string-match "\\(.*/\\)\\([^/]*\\)$" 1 beginning-of-line point-marker] 9 (#$ . 48140)])
#@116 Filter function for Prolog compilation PROCESS.
Argument OUTPUT is a name of the output file.

(fn PROCESS OUTPUT)
(defalias 'prolog-consult-compile-filter #[514 "P\306	\203\261\307\262\n\310=\203\311\312\"\204#\313\262\311\314\"\203\261\315\316\"\262\317G\"\n\310=\203N\211\307=\203N\320!\321P\322\"\210P\262\210\202\253\n\323\267\202\253\203\253\311\324\"\203\253\325\326\327\315\330\"\f\331\315\332\n\"!\\\f\331\315\333\"!\\%\334\211$\262\202\253\203\253\311\326\335
\"\"\203\253\325\326\336\315\330\"\f\331\315\332\n\"!\\$\334\211$\262c\210\202\210\311\337 \"\205\275\306\211\207" [prolog-consult-compile-output prolog-process-flag prolog-system prolog-consult-compile-real-file prolog-consult-compile-first-line prolog-consult-compile-file nil trace sicstus string-match "^[ 	]*[0-9]+[ 	]*[0-9]+[ 	]*Call:.*? " normal "^.*\n" match-string 0 substring read-string "\n" process-send-string #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 84 swi 132)) "\\({.*:.* in line[s ]*\\)\\([0-9]+\\)-\\([0-9]+\\)" replace-match format "Added by Emacs: {processing %s...}\n%s%d-%d" 1 string-to-number 2 3 t "%s\\([ 	]*:[ 	]*\\)\\([0-9]+\\)" "%s%s%d" prolog-prompt-regexp] 14 (#$ . 48927)])
#@108 Consult/compile file of current buffer.
If COMPILEP is non-nil, compile, otherwise consult.

(fn COMPILEP)
(defalias 'prolog-consult-compile-file #[257 "\211\203\301 \210\302\"\202\303ed#\207" [buffer-file-name save-some-buffers prolog-consult-compile prolog-consult-compile-region] 6 (#$ . 50218)])
#@100 Consult/compile current buffer.
If COMPILEP is non-nil, compile, otherwise consult.

(fn COMPILEP)
(defalias 'prolog-consult-compile-buffer #[257 "\300ed#\207" [prolog-consult-compile-region] 5 (#$ . 50533)])
#@120 Consult/compile region between BEG and END.
If COMPILEP is non-nil, compile, otherwise consult.

(fn COMPILEP BEG END)
(defalias 'prolog-consult-compile-region #[771 "\300\301 !\302\303\"\304\305\306%\210\304\307\305\310\306%\210\311n\203$T\202%#\210\312!\207" [prolog-bsts prolog-temporary-file count-lines 1 write-region nil no-message "\n" t prolog-consult-compile delete-file] 11 (#$ . 50750)])
#@120 Consult/compile the predicate around current point.
If COMPILEP is non-nil, compile, otherwise consult.

(fn COMPILEP)
(defalias 'prolog-consult-compile-predicate #[257 "\300\301 \302 #\207" [prolog-consult-compile-region prolog-pred-start prolog-pred-end] 5 (#$ . 51168)])
#@117 Find SICStus objects method name for font lock.
Argument BOUND is a buffer position limiting searching.

(fn BOUND)
(defalias 'prolog-font-lock-object-matcher #[257 "\302\211\211\204<\303\304\305#\203<\303\306\305#\204\303\307\305#\204\303\310\305#\203/\303\311\305#\204\303\312\313	\"\305#\262\202)\211\207" [case-fold-search prolog-atom-regexp nil re-search-forward "\\(::[ 	\n]*{\\|&\\)[ 	]*" t "\\=\n[ 	]*" "\\=%.*" "\\=/\\*" "\\*/[ 	]*" format "\\=\\(%s\\)"] 6 (#$ . 51450)])
#@17 

(fn FACENAME)
(defalias 'prolog-face-name-p #[257 "\211\300 >\207" [face-list] 3 (#$ . 51956)])
(put 'prolog-face-name-p 'byte-optimizer 'byte-compile-inline-expand)
#@58 Set up font lock keywords for the current Prolog system.
(defalias 'prolog-font-lock-keywords #[0 "\306\307!\210\310\311\312\313\314\315%\210\310\316\317\320\314\315%\210\310\321\322\323\314\315%\210\310\324\325\326\314\315%\210\310\305\327\326\314\315%\210\330\331\211\332 >\262\203;\331\202<\324!\210\333\334\211\332 >\262\203M\334\202N\305!\210\335\311!\210\336\316!\210\337\321!\210\340\341\"\342	E\340\343\"\342	E\344\n\345=\203u\346\202v\347\350\351E\352\340\353\211#\350	\354F\n\345=\203\227\355\356!\357\356\f!\360\260\202\235\361\356!\360Q\342
E\n\362=\205\247\363\n\345=\205\265\356@\364\"\350\365E\n\345=\205\303\356A\364\"\350\366E\n\345=\205\321\356B\364\"\350\324E\367 \350\351E\n\370\267\202\344\371\202\345\372\202\345\373\n\374\267\202\363\375\202\364\376\202\364\373\n\377\267\202\201D\202\201E\202\373\n\201F\267\202\201G\202\201H\202\373\n\201I\267\2020\201J\2021\201K\2021\373\n\201L\267\202E\201M\202F\201N\202F\373\n\201O\267\202Z\201P\202[\201Q\202[\373\n\362=\203g\201R\202h\373\n\362=\203t\201S\202u\373\201T\373C\201U\267\202\303\257\202\304\257\202\304\257\202\304\373\"\207" [prolog-atom-regexp font-lock-function-name-face prolog-system prolog-keywords-i prolog-determinism-specificators-i prolog-builtin-face require font-lock custom-declare-face prolog-redo-face ((((class grayscale)) (:italic t)) (((class color)) (:foreground "darkorchid")) (t (:italic t))) "Prolog mode face for highlighting redo trace lines." :group prolog-faces prolog-exit-face ((((class grayscale)) (:underline t)) (((class color) (background dark)) (:foreground "green")) (((class color) (background light)) (:foreground "ForestGreen")) (t (:underline t))) "Prolog mode face for highlighting exit trace lines." prolog-exception-face ((((class grayscale)) (:bold t :italic t :underline t)) (((class color)) (:bold t :foreground "black" :background "Khaki")) (t (:bold t :italic t :underline t))) "Prolog mode face for highlighting exception trace lines." prolog-warning-face ((((class grayscale)) (:underline t)) (((class color) (background dark)) (:foreground "blue")) (((class color) (background light)) (:foreground "MidnightBlue")) (t (:underline t))) "Face name to use for compiler warnings." ((((class color) (background light)) (:foreground "Purple")) (((class color) (background dark)) (:foreground "Cyan")) (((class grayscale) (background light)) :foreground "LightGray" :bold t) (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) (t (:bold t))) (lambda (#1=#:def-tmp-var) (defvar prolog-warning-face #1# "Face name to use for built in predicates.")) font-lock-warning-face face-list (lambda (#1#) (defvar prolog-builtin-face #1# "Face name to use for built in predicates.")) font-lock-builtin-face (lambda (#1#) (defvar prolog-redo-face #1# "Face name to use for redo trace lines.")) (lambda (#1#) (defvar prolog-exit-face #1# "Face name to use for exit trace lines.")) (lambda (#1#) (defvar prolog-exception-face #1# "Face name to use for exception trace lines.")) format "^\\(%s\\)\\((\\|[ 	]*:-\\)" 1 "\\.[ 	]*\\(%s\\)" ("\\<\\([_A-Z][a-zA-Z0-9_]*\\)" 1 font-lock-variable-name-face) mercury "[][}{;|]\\|\\\\[+=]\\|<?=>?" "[][}{!;|]\\|\\*->" 0 font-lock-keyword-face ("[^-*]\\(->\\)" 1 font-lock-keyword-face) "\\<\\(%s:\\|\\)%s/[0-9]+" prepend "\\<\\(" regexp-opt "\\|" "\\)\\>" "^[?:]- *\\(" sicstus (prolog-font-lock-object-matcher 1 font-lock-function-name-face) words font-lock-type-face font-lock-constant-face prolog-prompt-regexp #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 220 swi 224)) ("[ 	]*[0-9]+[ 	]+[0-9]+[ 	]*\\(Exit\\):" 1 prolog-exit-face) ("[ 	]*\\(Exit\\):[ 	]*([ 	0-9]*)" 1 prolog-exit-face) nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 235 swi 239)) ("[ 	]*[0-9]+[ 	]+[0-9]+[ 	]*\\(Fail\\):" 1 prolog-warning-face) ("[ 	]*\\(Fail\\):[ 	]*([ 	0-9]*)" 1 prolog-warning-face) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 250 swi 256)) prolog-types-i prolog-mode-specificators-i prolog-directives-i major-mode ("[ 	]*[0-9]+[ 	]+[0-9]+[ 	]*\\(Redo\\):" 1 prolog-redo-face) ("[ 	]*\\(Redo\\):[ 	]*([ 	0-9]*)" 1 prolog-redo-face) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 271 swi 277)) ("[ 	]*[0-9]+[ 	]+[0-9]+[ 	]*\\(Call\\):" 1 font-lock-function-name-face) ("[ 	]*\\(Call\\):[ 	]*([ 	0-9]*)" 1 font-lock-function-name-face) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 292 swi 298)) ("[ 	]*[0-9]+[ 	]+[0-9]+[ 	]*\\(Exception\\):" 1 prolog-exception-face) ("[ 	]*\\(Exception\\):[ 	]*([ 	0-9]*)" 1 prolog-exception-face) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 313 swi 319)) ("{\\([A-Z]* ?ERROR:\\)" 1 prolog-exception-face prepend) ("^[[]\\(WARNING:\\)" 1 prolog-builtin-face prepend) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sicstus 334 swi 340)) ("{\\([A-Z]* ?ERROR:.*\\)}[ 	]*$" 1 font-lock-comment-face append) ("^[[]WARNING:[^]]*[]]$" 0 font-lock-comment-face append) ("^[A-Z ]*[A-Z]+:" 0 prolog-warning-face) ("\\({ ?\\(Warning\\|WARNING\\) ?:.*}\\)[ 	]*$" 2 prolog-warning-face prepend) delq #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (prolog-mode 386 prolog-inferior-mode 413 compilation-mode 440))] 34 (#$ . 52130)])
#@59 Return the column of the last unmatched left parenthesis.
(defalias 'prolog-find-unmatched-paren #[0 "\212\300 A@\206	eb\210i)\207" [syntax-ppss] 1 (#$ . 57744)])
#@120 Return the parenthesis balance of the current line.
A return value of N means N more left parentheses than right ones.
(defalias 'prolog-paren-balance #[0 "\212\300\301 \302 \"@)\207" [parse-partial-sexp line-beginning-position line-end-position] 3 (#$ . 57915)])
#@203 Insert spaces after the opening parenthesis, "then" (->) and "else" (;) branches.
Spaces are inserted if all preceding objects on the line are
whitespace characters, parentheses, or then/else branches.
(defalias 'prolog-electric--if-then-else #[0 "\205V\212\303	P`\304\305 \210\306\304w\210\307!\203!\310\225U\203!\311 \210\307!\203E\310\225b\210\312 \n\\\262`\306\304w\210\211`|\266\211j\210\306\304w\210\202!\266)\212\313u\210\307\314!)\205V\306\304w\207" [prolog-electric-if-then-else-flag prolog-left-indent-regexp prolog-paren-indent "(\\|" nil beginning-of-line " 	" looking-at 0 indent-according-to-mode prolog-find-unmatched-paren -2 "\\s ;\\|\\s (\\|->"] 6 (#$ . 58186)])
#@294 Return the current comment limits plus the comment type (block or line).
The comment limits are the range of a block comment or the range that
contains all adjacent line comments (i.e. all comments that starts in
the same column with no empty lines or non-whitespace characters
between them).
(defalias 'prolog-comment-limits #[0 "`\300\211\211\211\211\214~\210\301 \262\302 \262\212\303 \210\304\305\306#\203!\307\202\"\310\262\310=\203ob\210\311\312!\2036\313u\210\311\314!\203P`eV\203P\315u\203P\311\316!\203P\317u\210\212\320\321\300\306#)\205\212\320\321!\210`)\322\323\300\306#\206jdE\202`S\262\211\262\3241b\210\311\305!\203i\300`\262\262\303 \210\315y\211\262\325U\203\257\304\326\301 \306#\203\257TiU\203\257`S\262\202\216\211\325U\203\270\317y\210\315y\211\262\325U\203\326\322\305\301 \306#\203\326TiU\203\326`S\262\211\325U\203\337\317y\210b\210\303 \210\317y\325U\203\304\326\301 \306#\203TiU\203\301 \262\202\346E\266\202\202E0\202\210E*\207" [nil line-end-position line-beginning-position beginning-of-line search-forward-regexp "%" t line block looking-at "/\\*" 2 "\\*" -1 "/" 1 search-backward "/*" search-forward "*/" (error) 0 "^[ 	]*%"] 12 (#$ . 58887)])
(defalias 'prolog-guess-fill-prefix #[0 "\212\300\210\301\302 8)\205n\303 \211@\3048\300\211\212\300\210`\262\305 \210`\262\306=\203KV\203K\212\307\310\311#)\204Kb\210\307\312\311#\210\313`{\314\315#\202k\307\316\311#\203]\313`{\317\315#\202k\305 \210\307\320\311#\205k`{)\266\205\207" [nil 4 syntax-ppss prolog-comment-limits 2 beginning-of-line line search-forward-regexp "^[ 	]*%" t "%+[ 	]*" prolog-replace-in-string "[^ 	%]" " " "^[ 	]*\\(%+\\|\\*+\\|/\\*+\\)[ 	]*" "/" "^[ 	]+"] 9])
#@43 Fill paragraph comment at or after point.
(defalias 'prolog-fill-paragraph #[0 "\301 \3028\211\303=\203\304 \305\306!)\202N\212\214\212\307 \210o\204\"\306y\210\310\311\312\303!\"\2030\313 d}\210)\212\314 \210\315y\210\310\316\312\303!\"\203Fe\317 }\210)\304 \305\306!+\207" [fill-prefix prolog-comment-limits 2 line prolog-guess-fill-prefix fill-paragraph nil backward-paragraph string-match "^/\\*[^a-zA-Z]*$" thing-at-point point-at-eol forward-paragraph -1 "^[^a-zA-Z]*\\*/$" point-at-bol] 6 (#$ . 60652) nil])
#@126 Carry out Auto Fill for Prolog mode.
In effect it sets the `fill-prefix' when inside comments and then calls
`do-auto-fill'.
(defalias 'prolog-do-auto-fill #[0 "\301 \302 )\207" [fill-prefix prolog-guess-fill-prefix do-auto-fill] 1 (#$ . 61183)])
(byte-code "\300\301\302\303!\203\f\303\202
\304\"\207" [defalias prolog-replace-in-string fboundp replace-in-string #[1027 "\300\301%\207" [replace-regexp-in-string nil] 10 "\n\n(fn STR REGEXP NEWTEXT &optional LITERAL)"]] 4)
#@69 Alist for the name of the function for finding help on a predicate.
(defvar prolog-help-function '((mercury nil) (eclipse prolog-help-online) (sicstus prolog-find-documentation) (swi prolog-help-online) (t prolog-help-online)) (#$ . 61671))
(put 'prolog-help-function 'risky-local-variable t)
#@46 Invoke online help on the atom under cursor.
(defalias 'prolog-help-on-predicate #[0 "\301=\203	\301 \207\302 \303\304\305\203\306\307Q\202\310\"\311\211$\203)!\202,\312\313!\207" [prolog-help-function-i prolog-find-documentation prolog-atom-under-point read-string format "Help on predicate%s: " " (default " ")" "" nil error "Sorry, no help method defined for this Prolog system."] 7 (#$ . 61970) nil])
(autoload 'Info-goto-node "info" nil t)
#@18 

(fn PREDICATE)
(defalias 'prolog-help-info #[257 "p\301\302\303!\304Q\305\301!\210\306!\210\307\301\310#\204\311\312\"\210`\262\307\301\310#\203Y\313\301\307\301\310#\2039T\262\202*b\210\314\315\301\310#\210\316\317!\210\320\321\322\"\323\"\262\324!Sy\266\202_\314\315\301\310#\210\325 \210\307\326\303!P\301\310#\210\327 \210\316\317!\210\305!\207" [prolog-info-predicate-index nil "^\\* " regexp-quote " */" pop-to-buffer Info-goto-node re-search-forward t error "Help on predicate `%s' not found." 2 re-search-backward "[^ /]" recenter 0 read-string format "Several matches, choose (1-%d): " "1" string-to-number Info-follow-nearest-node "^`" beginning-of-line] 10 (#$ . 62435)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias prolog-Info-follow-nearest-node Info-follow-nearest-node nil make-obsolete "27.1"] 4)
#@18 

(fn PREDICATE)
(defalias 'prolog-help-online #[257 "\300 \210\301\302\303\304Q\"\210\305\306!\207" [prolog-ensure-process process-send-string "prolog" "help(" ").\n" display-buffer "*prolog*"] 6 (#$ . 63301)])
#@121 Find Prolog apropos on given STRING.
This function is only available when `prolog-system' is set to `swi'.

(fn STRING)
(defalias 'prolog-help-apropos #[257 "\301=\203\302 \210\303\304\305\306Q\"\210\307\310!\207\311\312!\207" [prolog-system swi prolog-ensure-process process-send-string "prolog" "apropos(" ").\n" display-buffer "*prolog*" error "Sorry, no Prolog apropos available for this Prolog system."] 6 (#$ . 63521) "sApropos: "])
#@45 Return the atom under or left to the point.
(defalias 'prolog-atom-under-point #[0 "\212\300\301\302P\301w\210\301x\210\302P\301x\210`\262\302P\301w\210\303`\"\266\202)\207" ["[](){},. 	\n" nil "^" buffer-substring-no-properties] 5 (#$ . 63970)])
#@65 Go to the Info node for a predicate in the SICStus Info manual.
(defalias 'prolog-find-documentation #[0 "\300 \301!\207" [prolog-read-predicate prolog-goto-predicate-info] 3 (#$ . 64229) nil])
#@89 Alist with all builtin predicates.
Only for internal use by `prolog-find-documentation'
(defvar prolog-info-alist nil (#$ . 64430))
#@73 Go to the info page for PREDICATE, which is a PredSpec.

(fn PREDICATE)
(defalias 'prolog-goto-predicate-info #[257 "\302\303\"\210p\304\305\"\306\304\307\"!\310\311!\210\312!\210\312\313	\"A@!\210\314\315!\316#\210\317\320!\210\310!\207" [prolog-info-predicate-index prolog-info-alist string-match "\\(.*\\)/\\([0-9]+\\).*$" match-string 1 string-to-number 2 pop-to-buffer nil Info-goto-node assoc prolog-find-term regexp-quote "^`" recenter 0] 8 (#$ . 64568) nil])
#@109 Read a PredSpec from the user.
Returned value is a string "FUNCTOR/ARITY".
Interaction supports completion.
(defalias 'prolog-read-predicate #[0 "\301 \204	\302 \210\303\"\304=\203\304\262\305G\306U\203!\307\202%\310\311Q\304\312\304\211&\207" [prolog-info-alist prolog-atom-under-point prolog-build-info-alist try-completion nil completing-read 0 "Help on predicate: " "Help on predicate (default " "): " t] 9 (#$ . 65050)])
#@320 Build an alist of all builtins and library predicates.
Each element is of the form ("NAME/ARITY" . (INFO-NODE1 INFO-NODE2 ...)).
Typically there is just one Info node associated with each name
If an optional argument VERBOSE is non-nil, print messages at the beginning
and end of list building.

(fn &optional VERBOSE)
(defalias 'prolog-build-info-alist #[256 "\211\203\302\303!\210\304\305\304B\212\306 \307\310\311\312\313!\314\"\315$\216\316 \203%\317\320 !\210\306 \307\310\311\312\313!\321\"\315$\216\322 \210)\210\323!\210eb\210\324\325\304\326#\203\213\327\330!\331\327\315!!\327\332!\333\334$\304\335 \210\324\336!\210\327\330!\262@\232\203yAB\241\210\202\206CB\262B\262\266\202?\237)\262)\266\202\211\205\233\302\337!\207" [prolog-info-predicate-index prolog-info-alist message "Building info alist..." nil "" current-window-configuration make-byte-code 0 "\301\300!\207" vconcat vector [set-window-configuration] 2 active-minibuffer-window select-window next-window [set-window-configuration] info Info-goto-node re-search-forward "^\\* \\(.+\\)/\\([0-9]+\\)\\([^\n:*]*\\):" t match-string 1 string-to-number 3 format "%s/%d%s" beginning-of-line ":[ 	]*\\([^:]+\\).$" "Building info alist... done."] 12 (#$ . 65498)])
#@55 Change backslashes to slashes in STRING.

(fn STRING)
(defalias 'prolog-bsts #[257 "\300!G\301\211W\203!\302H\303\"\203\304I\210\211T\262\202\207" [copy-sequence 0 char-equal 92 47] 7 (#$ . 66767)])
#@43 Make temporary file name for compilation.
(defalias 'prolog-temporary-file #[0 "\203\301\302\303\303\304%\210\207\305\306\303\307#\211\207" [prolog-temporary-file-name write-region "" nil silent make-temp-file "prolcomp" ".pl"] 6 (#$ . 66986)])
#@56 Switch to the prolog process buffer and go to its end.
(defalias 'prolog-goto-prolog-process-buffer #[0 "\300\301!\210db\207" [switch-to-buffer-other-window "*prolog*"] 2 (#$ . 67243)])
#@72 Enable the source level debugging facilities of SICStus 3.7 and later.
(defalias 'prolog-enable-sicstus-sd #[0 "\301\302!\210\303\304\305\"\210?\205\306\307!\203\305 \210\310\211\207" [prolog-use-sicstus-sd require pltrace add-hook prolog-inferior-mode-hook pltrace-on get-buffer "*prolog*" t] 3 (#$ . 67435) nil])
#@73 Disable the source level debugging facilities of SICStus 3.7 and later.
(defalias 'prolog-disable-sicstus-sd #[0 "\301\302!\210\303\304\305\306\"\210\307\310!\205\311 \207" [prolog-use-sicstus-sd require pltrace nil remove-hook prolog-inferior-mode-hook pltrace-on get-buffer "*prolog*" pltrace-off] 3 (#$ . 67762) nil])
#@72 Toggle the source level debugging facilities of SICStus 3.7 and later.
(defalias 'prolog-toggle-sicstus-sd #[0 "\203\301 \207\302 \207" [prolog-use-sicstus-sd prolog-disable-sicstus-sd prolog-enable-sicstus-sd] 1 (#$ . 68092) nil])
#@104 Enable debugging.
When called with prefix argument ARG, disable debugging instead.

(fn &optional ARG)
(defalias 'prolog-debug-on #[256 "\211\203\301 \207\302\303\304!\"\210\305\304\"\207" [prolog-debug-on-string prolog-debug-off prolog-process-insert-string get-process "prolog" process-send-string] 4 (#$ . 68334) "P"])
#@20 Disable debugging.
(defalias 'prolog-debug-off #[0 "\301\302\303!\"\210\304\303\"\207" [prolog-debug-off-string prolog-process-insert-string get-process "prolog" process-send-string] 3 (#$ . 68666) nil])
#@100 Enable tracing.
When called with prefix argument ARG, disable tracing instead.

(fn &optional ARG)
(defalias 'prolog-trace-on #[256 "\211\203\301 \207\302\303\304!\"\210\305\304\"\207" [prolog-trace-on-string prolog-trace-off prolog-process-insert-string get-process "prolog" process-send-string] 4 (#$ . 68879) "P"])
#@18 Disable tracing.
(defalias 'prolog-trace-off #[0 "\301\302\303!\"\210\304\303\"\207" [prolog-trace-off-string prolog-process-insert-string get-process "prolog" process-send-string] 3 (#$ . 69207) nil])
#@128 Enable zipping (for SICStus 3.7 and later).
When called with prefix argument ARG, disable zipping instead.

(fn &optional ARG)
(defalias 'prolog-zip-on #[256 "\302=\203\f\303\304!\204\305\306!\210\211\203\307 \207\310\311\312!	\"\210\313\312	\"\207" [prolog-system prolog-zip-on-string sicstus prolog-atleast-version (3 . 7) error "Only works for SICStus 3.7 and later" prolog-zip-off prolog-process-insert-string get-process "prolog" process-send-string] 4 (#$ . 69418) "P"])
#@46 Disable zipping (for SICStus 3.7 and later).
(defalias 'prolog-zip-off #[0 "\301\302\303!\"\210\304\303\"\207" [prolog-zip-off-string prolog-process-insert-string get-process "prolog" process-send-string] 3 (#$ . 69907) nil])
(defalias 'prolog-get-predspec #[0 "\212\301 \302 @\303\232\206\304\305 8?\2052\306=\203*\211\203*\307\310@A@$\2022\307\311@A@#\266\202)\207" [prolog-system prolog-clause-info prolog-in-object "" 4 syntax-ppss sicstus format "%s::%s/%d" "%s/%d"] 7])
(byte-code "\300\301!\204\302\301\303\"\210\300\207" [fboundp match-string defalias #[513 "\224\205\211\203\300\224\225#\207\224\225{\207" [substring] 6 "Return string of text matched by last search.\nNUM specifies which parenthesized expression in the last regexp.\n Value is nil if NUMth pair didn't match, or there were less than NUM pairs.\nZero means the entire text matched by the whole regexp or whole string.\nSTRING should be given if the last search was by `string-match' on STRING.\n\n(fn NUM &optional STRING)"]] 3)
#@73 Return the starting point of the first clause of the current predicate.
(defalias 'prolog-pred-start #[0 "\212\302 b\210\303\304!\204\\\303\305!\204\\\306 \211@A@`\307\310\311#\312\313#\2034\306 A@U\2034`\262\202	\314=\203W\315 b\210`=\204W\303\310\316\"!\203W`\262\315 b\210\202>\266\203\202]`)\207" [prolog-head-delimiter prolog-system prolog-clause-start looking-at "[:?]-" "[ 	]*[%/]" prolog-clause-info re-search-backward format "^%s\\([(\\.]\\| *%s\\)" nil t mercury prolog-beginning-of-clause ":-[ 	]*\\(pred\\|mode\\)[ 	]+%s"] 9 (#$ . 70944)])
#@77 Return the position at the end of the last clause of the current predicate.
(defalias 'prolog-pred-end #[0 "\212\303 b\210\304 b\210\305 \211@A@\306\307`\310\311!\203F\312=\203<\310\313\314	\"!\203<\315\316\224\316\225\"\262\317\313\320\"\306\307#\2040\303 b\210`\262\202y\203y\317\313\321\n#\306\307#\203y\305 A@U\203y`\262\303 \262Y\203s\306\262\202F\211b\210\202F\266\205)\207" [prolog-system prolog-atom-regexp prolog-head-delimiter prolog-clause-end prolog-clause-start prolog-clause-info nil t looking-at "[:?]-" mercury format ":-[ 	]*\\(pred\\|mode\\)[ 	]+\\(\\(?:%s\\)+\\)" buffer-substring-no-properties 2 re-search-forward "\n*\\(:-[ 	]*\\(pred\\|mode\\)[ 	]+\\)?%s[( 	]" "^%s\\([(\\.]\\| *%s\\)"] 11 (#$ . 71521)])
#@229 Return the position at the start of the head of the current clause.
If NOTALLOWMETHODS is non-nil then do not match on methods in
objects (relevant only if `prolog-system' is set to `sicstus').

(fn &optional NOT-ALLOW-METHODS)
(defalias 'prolog-clause-start #[256 "\212\303e\304\210\2041\305=\2031\306 \2031\203j\307\310e\303#\203j\311 \312Y\203`\262\304\262\202\203j\304\307\313\304\303#)\203j\311 \211\312V\203Q`\262\304\262\202f\211\312U\203f\314\315\316\n\"!\203f`\262\304\262\210\2021\262)\207" [prolog-system case-fold-search prolog-head-delimiter t nil sicstus prolog-in-object re-search-backward "^[ 	]+[a-z$].*\\(:-\\|&\\|:: {\\)" prolog-paren-balance 0 "^\\([[:lower:]$']\\|[:?]-\\)" looking-at format ".*\\(\\.\\|%s\\|!,\\)[ 	]*\\(%%.*\\|\\)$"] 8 (#$ . 72281)])
#@215 Return the position at the end of the current clause.
If NOTALLOWMETHODS is non-nil then do not match on methods in
objects (relevant only if `prolog-system' is set to `sicstus').

(fn &optional NOT-ALLOW-METHODS)
(defalias 'prolog-clause-end #[256 "\212\303 \210\304\204\305=\203\306 \203\307\310	\n#\202!\307\311	\n#\312\313#\203>\314\315 8\203:m\204:\312u\210\316 \202?`\202?`)\207" [prolog-system prolog-quoted-atom-regexp prolog-string-regexp beginning-of-line re-search-forward sicstus prolog-in-object format "^\\(%s\\|%s\\|[^\n'\"%%]\\)*&[ 	]*\\(\\|%%.*\\)$\\|[ 	]*}" "^\\(%s\\|%s\\|[^\n'\"%%]\\)*\\.[ 	]*\\(\\|%%.*\\)$" nil t 8 syntax-ppss prolog-clause-end] 6 (#$ . 73091)])
#@52 Return a (name arity) list for the current clause.
(defalias 'prolog-clause-info #[0 "\212\302 b\210`\303!\203\304\305w\210\211`{\202\306\307\303	!\203L\212\310 \210`)\311\262\311u\210\312\305w\210`W\203K\303\313!\203DT\262\311u\210\202*\314\311!\210\202*\210D\266\203)\207" [prolog-atom-char-regexp prolog-left-paren prolog-clause-start looking-at "^ (." nil "" 0 forward-list 1 "^[({,'\"" "," forward-sexp] 6 (#$ . 73796)])
#@72 Return object name if the point is inside a SICStus object definition.
(defalias 'prolog-in-object #[0 "\212\212\300 \210\301\302!)\203\303\304!\202#\305\306\307\310#\205#\301\302!\205#\303\304!)\207" [beginning-of-line looking-at "\\([^\n ]+\\)[ 	]*::[ 	]*{" match-string 1 re-search-backward "^[a-z$'}]" nil t] 4 (#$ . 74244)])
#@106 Move to the beginning of current clause.
If already at the beginning of clause, move to previous clause.
(defalias 'prolog-beginning-of-clause #[0 "`\300 \211Y\203\301V\203Sb\210\300 b\202\211b\210\302\303w\207" [prolog-clause-start 1 " 	" nil] 4 (#$ . 74586) nil])
#@82 Move to the end of clause.
If already at the end of clause, move to next clause.
(defalias 'prolog-end-of-clause #[0 "`\300 \211X\203\211d=\204Tb\210\300 b\202\211b\207" [prolog-clause-end] 4 (#$ . 74867) nil])
#@128 Go to the nearest beginning of predicate before current point.
Return the final point or nil if no such a beginning was found.
(defalias 'prolog-beginning-of-predicate #[0 "`\300 \211\205+U\203'o?\205+\211b\210\301u\210\300 \262\211\205+\211b\210`\202+\211b\210`\207" [prolog-pred-start -1] 4 (#$ . 75093) nil])
#@41 Go to the end of the current predicate.
(defalias 'prolog-end-of-predicate #[0 "`\300 b\210\211`U\205\301y\210\302 \207" [prolog-pred-end 1 prolog-end-of-predicate] 3 (#$ . 75419) nil])
#@48 Insert the predspec for the current predicate.
(defalias 'prolog-insert-predspec #[0 "\300 \211@A@\301\302#c\207" [prolog-clause-info format "%s/%d"] 7 (#$ . 75613) nil])
#@48 Insert the predspec for the current predicate.
(defalias 'prolog-view-predspec #[0 "\300 \211@A@\301\302#\207" [prolog-clause-info message "%s/%d"] 7 (#$ . 75793) nil])
#@45 Insert the template for the current clause.
(defalias 'prolog-insert-predicate-template #[0 "\301\302\303 \211@A@c\210\211\304V\2051\305c\210\2051`\262W\203,\306c\210T\262\202\307c\210b\207" [prolog-electric-dot-full-predicate-template 1 nil prolog-clause-info 0 "(" "," ")"] 7 (#$ . 75971) nil])
#@52 Insert newline and the name of the current clause.
(defalias 'prolog-insert-next-clause #[0 "\300c\210\301 \207" ["\n" prolog-insert-predicate-template] 1 (#$ . 76288) nil])
#@157 Insert a modeline for module specification.
This line should be first in the buffer.
The module name should be written manually just before the semi-colon.
(defalias 'prolog-insert-module-modeline #[0 "\300c\210\301u\207" ["%%% -*- Module: ; -*-\n" -6] 1 (#$ . 76469) nil])
(byte-code "\300\301\302\303!\203\f\303\202
\304\"\207" [defalias prolog-uncomment-region fboundp uncomment-region #[514 "\300\301#\207" [comment-region -1] 6 "Uncomment the region between BEG and END.\n\n(fn BEG END)" "r"]] 4)
#@31 Indent the current predicate.
(defalias 'prolog-indent-predicate #[0 "\300\301 \302 \303#\207" [indent-region prolog-pred-start prolog-pred-end nil] 4 (#$ . 76981) nil])
#@27 Indent the entire buffer.
(defalias 'prolog-indent-buffer #[0 "\300ed\301#\207" [indent-region nil] 4 (#$ . 77157) nil])
#@69 Put mark at the end of this clause and move point to the beginning.
(defalias 'prolog-mark-clause #[0 "`\300 b\210\301y\210\302 \210\303`!\210\211b\210\304 b\207" [prolog-clause-end 1 beginning-of-line set-mark prolog-clause-start] 3 (#$ . 77284) nil])
#@72 Put mark at the end of this predicate and move point to the beginning.
(defalias 'prolog-mark-predicate #[0 "\300 b\210`\301y\210\302 \210\303`!\210\211b\210\304 b\207" [prolog-pred-end 1 beginning-of-line set-mark prolog-pred-start] 3 (#$ . 77543) nil])
#@232 If `prolog-electric-colon-flag' is non-nil, insert the electric `:' construct.
That is, insert space (if appropriate), `:-' and newline if colon is pressed
at the end of a line that starts in the first column (i.e., clause heads).
(defalias 'prolog-electric--colon #[0 "\2058`Sf\302=\2058	?\2058l\2058\303 f\304>?\2058`S\206$`Sf\305>\2043\212\306u\210\307c\210)\310c\210\311 \207" [prolog-electric-colon-flag current-prefix-arg 58 line-beginning-position (32 9 37) (32 9) -1 " " "-\n" indent-according-to-mode] 2 (#$ . 77805)])
#@228 If `prolog-electric-dash-flag' is non-nil, insert the electric `-' construct.
that is, insert space (if appropriate), `-->' and newline if dash is pressed
at the end of a line that starts in the first column (i.e., DCG heads).
(defalias 'prolog-electric--dash #[0 "\2058`Sf\302=\2058	?\2058l\2058\303 f\304>?\2058`S\206$`Sf\305>\2043\212\306u\210\307c\210)\310c\210\311 \207" [prolog-electric-dash-flag current-prefix-arg 45 line-beginning-position (32 9 37) (32 9) -1 " " "->\n" indent-according-to-mode] 2 (#$ . 78348)])
#@315 Make dot electric, if `prolog-electric-dot-flag' is non-nil.
When invoked at the end of nonempty line, insert dot and newline.
When invoked at the end of an empty line, insert a recursive call to
the current predicate.
When invoked at the beginning of line, insert a head of a new clause
of the current predicate.
(defalias 'prolog-electric--dot #[0 "?\206E`Sf\303=?\206E	\206E\304\305 8\206E\212\306u\210\307\310x\210\311\310x\312Vn\2068`Sfz\2036\313\2027\314>\262)?\206E\305 @\312U??\205{\212\306u\210n)\203Z`S`|\210\315 \207\212\316 \210\317\320!)\203y`S`|\210\315 \210\n\205{\212\310\210\321c)\207\322c\207" [prolog-electric-dot-flag current-prefix-arg prolog-electric-dot-full-predicate-template 46 8 syntax-ppss -1 " 	" nil "0-9" 0 (119 95) (41 119 95) prolog-insert-predicate-template beginning-of-line looking-at "[ 	]+\\.$" ".\n" "\n"] 3 (#$ . 78886)])
#@212 Replace variable with an underscore.
If `prolog-electric-underscore-flag' is non-nil and the point is
on a variable then replace the variable with underscore and skip
the following comma and whitespace, if any.
(defalias 'prolog-electric--underscore #[0 "\205*\302\303\304 8?\205)`Sf\305=\205)\212\306\302x\210\307\310!)\205)\311\312!\210\313\302w)\207" [prolog-electric-underscore-flag case-fold-search nil 8 syntax-ppss 95 "[:alpha:]_" looking-at "\\_<[_[:upper:]][[:alnum:]_]*\\_>" replace-match "_" ", 	\n"] 2 (#$ . 79771)])
(defalias 'prolog-post-self-insert #[0 "\301\267\202\302 \207\303 \207\304 \207\305 \207\306 \207\307\207" [last-command-event #s(hash-table size 7 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (95 6 45 9 58 12 62 15 59 15 40 15 46 18)) prolog-electric--underscore prolog-electric--dash prolog-electric--colon prolog-electric--if-then-else prolog-electric--dot nil] 2])
#@216 Go to the position at the start of the next occurrence of a term.
The term is specified with FUNCTOR and ARITY.  The optional argument
PREFIX is the prefix of the search regexp.

(fn FUNCTOR ARITY &optional PREFIX)
(defalias 'prolog-find-term #[770 "\211\204\300\202	\211\211P\301\302U\203\303P\262\2027\304P\262\211W\2032\305P\262\211T\262\202 \306P\262\307\310\311#\203E\302\224b\202H\312\313!\207" ["\\<" 1 0 "\\>" "(" ".+," ".+)" re-search-forward nil t error "Term not found"] 10 (#$ . 80705)])
#@88 Replace all variables within a region BEG to END by anonymous variables.

(fn BEG END)
(defalias 'prolog-variables-to-anonymous #[514 "\212\301\211b\210\302\303\304#\205\305\306!\210\307u\210\202*\207" [case-fold-search nil re-search-backward "\\<[A-Z_][a-zA-Z_0-9]*\\>" t replace-match "_" -1] 6 (#$ . 81234) "r"])
#@32 Help menu for the Prolog mode.
(defvar prolog-menu-help nil (#$ . 81562))
(byte-code "\302\303	D\304\305$\207" [prolog-mode-map prolog-inferior-mode-map easy-menu-do-define prolog-menu-help "Help menu for the Prolog mode." ("Prolog-help" ["On predicate" prolog-help-on-predicate prolog-help-function-i] ["Apropos" prolog-help-apropos (eq prolog-system 'swi)] "---" ["Describe mode" describe-mode t])] 5)
#@59 Runtime Prolog commands available from the editing buffer
(defvar prolog-edit-menu-runtime nil (#$ . 81973))
(easy-menu-do-define 'prolog-edit-menu-runtime prolog-mode-map "Runtime Prolog commands available from the editing buffer" '("System" :label (cond ((eq prolog-system 'eclipse) "ECLiPSe") ((eq prolog-system 'mercury) "Mercury") (t "System")) ["Consult file" prolog-consult-file :included (not (eq prolog-system 'mercury))] ["Consult buffer" prolog-consult-buffer :included (not (eq prolog-system 'mercury))] ["Consult region" prolog-consult-region :active (use-region-p) :included (not (eq prolog-system 'mercury))] ["Consult predicate" prolog-consult-predicate :included (not (eq prolog-system 'mercury))] ["---" nil :included (eq prolog-system 'sicstus)] ["Compile file" prolog-compile-file :included (eq prolog-system 'sicstus)] ["Compile buffer" prolog-compile-buffer :included (eq prolog-system 'sicstus)] ["Compile region" prolog-compile-region :active (use-region-p) :included (eq prolog-system 'sicstus)] ["Compile predicate" prolog-compile-predicate :included (eq prolog-system 'sicstus)] ["---" nil :included (not (eq prolog-system 'mercury))] ["Debug" prolog-debug-on :included (not (eq prolog-system 'mercury))] ["Debug off" prolog-debug-off :included (not (memq prolog-system '(mercury sicstus)))] ["Trace" prolog-trace-on :included (not (eq prolog-system 'mercury))] ["Trace off" prolog-trace-off :included (not (memq prolog-system '(mercury sicstus)))] ["Zip" prolog-zip-on :included (and (eq prolog-system 'sicstus) (prolog-atleast-version '(3 . 7)))] ["All debug off" prolog-debug-off :included (eq prolog-system 'sicstus)] ["Source level debugging" prolog-toggle-sicstus-sd :included (and (eq prolog-system 'sicstus) (prolog-atleast-version '(3 . 7))) :style toggle :selected prolog-use-sicstus-sd] "---" ["Run" run-prolog :suffix (cond ((eq prolog-system 'eclipse) "ECLiPSe") ((eq prolog-system 'mercury) "Mercury") (t "Prolog"))]))
#@40 Commands for Prolog code manipulation.
(defvar prolog-edit-menu-insert-move nil (#$ . 83939))
(easy-menu-do-define 'prolog-edit-menu-insert-move prolog-mode-map "Commands for Prolog code manipulation." '("Prolog" ["Comment region" comment-region (use-region-p)] ["Uncomment region" prolog-uncomment-region (use-region-p)] ["Add comment/move to comment" indent-for-comment t] ["Convert variables in region to '_'" prolog-variables-to-anonymous :active (use-region-p) :included (not (eq prolog-system 'mercury))] "---" ["Insert predicate template" prolog-insert-predicate-template t] ["Insert next clause head" prolog-insert-next-clause t] ["Insert predicate spec" prolog-insert-predspec t] ["Insert module modeline" prolog-insert-module-modeline t] "---" ["Beginning of clause" prolog-beginning-of-clause t] ["End of clause" prolog-end-of-clause t] ["Beginning of predicate" prolog-beginning-of-predicate t] ["End of predicate" prolog-end-of-predicate t] "---" ["Indent line" indent-according-to-mode t] ["Indent region" indent-region (use-region-p)] ["Indent predicate" prolog-indent-predicate t] ["Indent buffer" prolog-indent-buffer t] ["Align region" align (use-region-p)] "---" ["Mark clause" prolog-mark-clause t] ["Mark predicate" prolog-mark-predicate t] ["Mark paragraph" mark-paragraph t]))
#@47 Add the menus for the Prolog editing buffers.
(defalias 'prolog-menu #[0 "\306!\210\306	!\210\307\302!\210\310\307\303!\210\311\307\304!\210\312
\203,\313ed\"W\203,\314\315!\210\306!\207" [prolog-edit-menu-insert-move prolog-edit-menu-runtime imenu-create-index-function imenu-prev-index-position-function imenu-extract-index-name-function prolog-imenu-flag easy-menu-add make-local-variable imenu-default-create-index-function prolog-beginning-of-predicate prolog-get-predspec count-lines imenu-add-to-menubar "Predicates" prolog-imenu-max-lines prolog-menu-help] 3 (#$ . 85245)])
#@38 Menu for the inferior Prolog buffer.
(defvar prolog-inferior-menu-all nil (#$ . 85843))
(easy-menu-do-define 'prolog-inferior-menu-all prolog-inferior-mode-map "Menu for the inferior Prolog buffer." '("Prolog" :label (cond ((eq prolog-system 'eclipse) "ECLiPSe") ((eq prolog-system 'mercury) "Mercury") (t "Prolog")) ["---" nil :included (not (eq prolog-system 'mercury))] ["Debug" prolog-debug-on :included (not (eq prolog-system 'mercury))] ["Debug off" prolog-debug-off :included (not (memq prolog-system '(mercury sicstus)))] ["Trace" prolog-trace-on :included (not (eq prolog-system 'mercury))] ["Trace off" prolog-trace-off :included (not (memq prolog-system '(mercury sicstus)))] ["Zip" prolog-zip-on :included (and (eq prolog-system 'sicstus) (prolog-atleast-version '(3 . 7)))] ["All debug off" prolog-debug-off :included (eq prolog-system 'sicstus)] ["Source level debugging" prolog-toggle-sicstus-sd :included (and (eq prolog-system 'sicstus) (prolog-atleast-version '(3 . 7))) :style toggle :selected prolog-use-sicstus-sd] "---" ["Interrupt Prolog" comint-interrupt-subjob t] ["Quit Prolog" comint-quit-subjob t] ["Kill Prolog" comint-kill-subjob t]))
#@151 Create the menus for the Prolog inferior buffer.
This menu is dynamically created because one may change systems during
the life of an Emacs session.
(defalias 'prolog-inferior-menu #[0 "\302!\210\302	!\207" [prolog-inferior-menu-all prolog-menu-help easy-menu-add] 2 (#$ . 87015)])
#@60 Echo the current version of Prolog mode in the minibuffer.
(defalias 'prolog-mode-version #[0 "\301\302\"\207" [prolog-mode-version message "Using Prolog mode version %s"] 3 (#$ . 87305) nil])
(provide 'prolog)

Zerion Mini Shell 1.0