403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/progmodes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/progmodes/prolog.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



#@29 Prolog mode version number.
(defvar prolog-mode-version "1.22" (#$ . 84))
(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310%\210\303\311\305\312\307\313%\210\303\314\305\315\307\304%\210\303\316\305\317\307\304%\210\303\320\305\321\307\304%\210\303\322\305\323\307\304%\210\303\324\305\325\307\304%\210\326\327\330\331\332DD\333\334\335\307\304\336\337&	\210\340\327!\210\326\341\330\331\342DD\343\334\335\336\344\345\346\307\304&\210\326\347\330\331\350DD\351\307\314\336\352\353\354&	\210\326\355\330\331\356DD\357\334\335\307\314\336\360\353\361&\210\326\362\330\331\363DD\364\334\335\307\314\336\365\353\366&\210\326\367\330\331\370DD\371\334\335\307\314\336\352\353\354&\210\326\372\330\331\373DD\374\334\335\307\314\336\375&	\210\326\376\330\331\377DD\201@\334\335\307\316\336\201A\345\346&\210\326\201B\330\331\201CDD\201D\334\335\307\316\336\201E\345\346&\210\326\201F\330\331\201GDD\201H\334\335\307\316\336\201I\345\346&\210\326\201J\330\331\201KDD\201L\334\335\307\316\336\201M\345\346&\210\326\201N\330\331\201ODD\201P\334\335\307\316\336\201Q\345\346&\210\326\201R\330\331\201SDD\201T\334\335\307\320\336\365&	\210\326\201U\330\331\201VDD\201W\334\335\307\320\336\365&	\210\326\201X\330\331\201YDD\201Z\334\335\307\320\336\365&	\210\326\201[\330\331\201\\DD\201]\334\335\307\320\336\365&	\210\326\201^\330\331\201_DD\201`\334\335\307\320\336\365&	\210\326\201a\330\331\201bDD\201c\334\335\307\320\336\365&	\210\326\201d\330\331\201eDD\201f\334\335\307\320\336\365&	\210\326\201g\330\331\201hDD\201i\307\322\336\201j\345\346&	\207" [require comint 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 #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 #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 #1#] "The indentation width used by the editing buffer." integer :safe integerp prolog-left-indent-regexp #[0 "\300\207" ["\\(;\\|\\*?->\\)"] 1 #1#] "Regexp for `prolog-electric-if-then-else-flag'." regexp stringp prolog-paren-indent-p #[0 "\300\207" [nil] 1 #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 #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 #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 #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 #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 #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 #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 #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 #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 #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 #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 #1#] "Non-nil makes `(', `>' and `;' electric\nto automatically indent if-then-else constructs." prolog-electric-colon-flag #[0 "\300\207" [nil] 1 #1#] "Non-nil means make `:' 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 #1#] "Non-nil means make `-' 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 #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 #1#] "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" ["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 #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" ["debug.\n"] 1 #1=""] "Predicate for enabling debug mode." :version "24.1" :group prolog-inferior :type string prolog-debug-off-string #[0 "\300\207" ["nodebug.\n"] 1 #1#] "Predicate for disabling debug mode." prolog-trace-on-string #[0 "\300\207" ["trace.\n"] 1 #1#] "Predicate for enabling tracing." prolog-trace-off-string #[0 "\300\207" ["notrace.\n"] 1 #1#] "Predicate for disabling tracing." prolog-zip-on-string #[0 "\300\207" ["zip.\n"] 1 #1#] "Predicate for enabling zip mode for SICStus." prolog-zip-off-string #[0 "\300\207" ["nozip.\n"] 1 #1#] "Predicate for disabling zip mode for SICStus." prolog-use-standard-consult-compile-method-flag #[0 "\300\207" [t] 1 #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 #1#] "Non-nil means add a clause index menu for all prolog files." prolog-other prolog-imenu-max-lines #[0 "\300\207" [3000] 1 #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" ["(sicstus)Predicate Index"] 1 #1#] "The info node for the SICStus predicate index." prolog-underscore-wordchar-flag #[0 "\300\207" [nil] 1 #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 #1#] "If non-nil, use the source level debugger of SICStus 3#7 and later." prolog-char-quote-workaround #[0 "\300\207" [nil] 1 #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 "\301 \302\303\203\f\304\202
\305#\210\302\306\307#\210\302\310\307#\210\302\311\307#\210\302\312\307#\210\302\313\307#\210\302\314\307#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\207" [prolog-underscore-wordchar-flag make-syntax-table modify-syntax-entry 95 "w" "_" 43 "." 45 61 60 62 124 39 "\"" 37 "<" 10 ">" 42 ". 23b" 47 ". 14"] 5))
#@70 Regexp specifying characters which constitute atoms without quoting.
(defconst prolog-atom-char-regexp "[[:alnum:]_$]" (#$ . 16204))
(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 "[[({]" (#$ . 16424))
#@68 The characters used as right parentheses for the indentation code.
(defconst prolog-right-paren "[])}]" (#$ . 16546))
#@32 Regexp matching a quoted atom.
(defconst prolog-quoted-atom-regexp "\\(^\\|[^0-9]\\)\\('\\([^\n']\\|\\\\'\\)*'\\)" (#$ . 16670))
#@27 Regexp matching a string.
(defconst prolog-string-regexp "\\(\"\\([^\n\"]\\|\\\\\"\\)*\"\\)" (#$ . 16805))
#@67 A regexp for matching on the end delimiter of a head (e.g. ":-").
(defconst prolog-head-delimiter "\\(:-\\|\\+:\\|-:\\|\\+\\?\\|-\\?\\|-->\\)" (#$ . 16918))
#@62 Name of the output buffer for Prolog compilation/consulting.
(defvar prolog-compilation-buffer "*prolog-compilation*" (#$ . 17081))
(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 . "."))) (#$ . 18477))
#@19 

(fn KIND TOKEN)
(defalias 'prolog-smie-rules #[514 "\301\302\303\304B\211\305\232\203\207\211:\203\370\211\242\211\306=\203\307\207\310\267\202)\311\207 \207\211\312\267\202\337\243\211\313\235\203F\314 \205k\315\316!\205k\317\320!\207\321\267\202W \207 \207 \207\207\211\313\235\205k\314 \205k\315\316!\205k\317\320!\207\243\211\322\235\203\236\315\316\311\"\205\230\212\323 \210\324\325!\210\315\316!\203\222`Sf\326=?\202\227\327 \210\314 )?\205\336\207\330\267\202\257 \207 \207 \207\207\211\322\235\205\336\315\316\311\"\205\331\212\323 \210\324\325!\210\315\316!\203\323`Sf\326=?\202\330\327 \210\314 )?\205\336\207\331\267\202\360 \207 \207 \207\207\211\306=\205\367\307\207\211\332\267\202\311\207 \207 \207 \207 \207\207\211:\205\"\211\242\211\306=\203\307\202 \333\267\202.\311\202  \202 \211\334\267\202\243\211\313\235\203M\314 \205z\315\316!\205z\317\320!\202z\335\267\202f \202z \202z \202z\202z\211\313\235\205z\314 \205z\315\316!\205z\317\320!\262\202 \243\211\322\235\203\263\315\316\311\"\205\253\212\323 \210\324\325!\210\315\316!\203\245`Sf\326=?\202\252\327 \210\314 )?\205\373\202\373\336\267\202\314 \202\373 \202\373 \202\373\202\373\211\322\235\205\373\315\316\311\"\205\366\212\323 \210\324\325!\210\315\316!\203\360`Sf\326=?\202\365\327 \210\314 )?\205\373\262\202 \337\267\202 \202  \202  \202 \202 \211\306=\205 \307\262\207" [prolog-indent-width #[0 "\300\207" [(column . 0)] 1] #[0 "\301 \205\302\303!\205\212\304\224b\210i)iZ\211X\205\211\262\207" [prolog-indent-width smie-rule-bolp looking-at ";[ 	]*\\(%\\)" 1] 3] #[0 "`Sf\301=\205\212\302 \210\302 @\303\232)\205\304!\207" [prolog-indent-width 33 smie-indent-backward-token ":-" smie-rule-parent] 2] #[0 "n\203\212\301 \210\302\303w\210l\203\202i^)\207\207" [prolog-indent-width smie-indent-forward-token " 	" nil] 2] (:elem . basic) :list-intro t #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#5=(:elem . empty-line-token) 36 #6=(:after . ".") 38)) ";" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:before 47 :after 108)) (";" "->") 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 (#1=(:after . ";") 76 #2=(:after . ",") 79 #3=(:after . ":-") 82 #4=(:after . "-->") 85)) ("*->" "->") smie-indent-forward-token smie-backward-sexp halfsexp 40 smie-indent-backward-token #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 164 #2# 167 #3# 170 #4# 173)) #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 229 #2# 232 #3# 235 #4# 238)) #s(hash-table size 6 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#5# 254 #6# 256 #1# 259 #2# 262 #3# 265 #4# 268)) #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#5# 293 #6# 297)) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:before 308 :after 383)) #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 339 #2# 344 #3# 349 #4# 354)) #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 441 #2# 446 #3# 451 #4# 456)) #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 518 #2# 523 #3# 528 #4# 533))] 12 (#$ . 19456)])
#@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 (#$ . 23041)])
(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<\203`\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\207\207" [prolog-system prolog-inferior-buffer dont-run buffer-local-value nil t eval] 6 (#$ . 23381)])
(defconst prolog-syntax-propertize-function #[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)"])
#@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 (#$ . 24288)])
#@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 (#$ . 25599)])
#@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 (#$ . 25991)])
#@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 (#$ . 27380)])
(defvar prolog-mode-map (byte-code "\300 \301!\210\302!\210\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 (#$ . 27734))
(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 (#$ . 28987) nil])
(defvar mercury-mode-map (byte-code "\301 \302\"\210\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 \210)\334\335!\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 prolog-mode-variables run-mode-hooks mercury-mode-hook local-abbrev-table] 5 (#$ . 32232) nil])
(defvar prolog-inferior-mode-map (byte-code "\300 \301!\210\302!\210\303\304\305#\210\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 (#$ . 33571))
(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=\2038\211\2038	\2048m\2038`=\2038\212\211\307Zb\210\310\311!)\2038\312\313\n!\"\207\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 (#$ . 33888) 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)
#@1364 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\344!\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 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 (#$ . 35642) 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 (#$ . 38149)])
(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 \210\311 \211\312\230\204*\313 \210\314=\203=\315\316!\203=	\203=\317 \210\320 \207" [prolog-system prolog-use-sicstus-sd get-process "prolog" process-send-string "halt.\n" sit-for 0.1 prolog-ensure-process buffer-name "*prolog*" prolog-goto-prolog-process-buffer sicstus prolog-atleast-version (3 . 7) prolog-enable-sicstus-sd prolog-mode-variables] 4 (#$ . 38546) "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 (#$ . 39192)])
#@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 \303 \204\f\304\305!\210\306\307!?\205\216r\310\307!q\210\311 \210\312\313!\203&\202)\314B\315\316\317p\320&\210)	\204p\321\301!\210\322p!\211\205J\323\324!!\211\204UeS\266\202\202h\211eV\203d\325S!\266\202\202h\211S\266\202\326\327\330\320\331$\210\205\215db\210\212\332\333\334 \335Q\320\331#)?\205\215\336\337!\210\202w)\207" [process-environment prolog-system prolog-program-name prolog-program-switches 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 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] 10 (#$ . 39760)])
#@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 (#$ . 40855)])
#@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 (#$ . 41041)])
#@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 (#$ . 41316)])
#@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 (#$ . 41936)])
#@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 (#$ . 42209)])
#@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 (#$ . 42428)])
#@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 (#$ . 42903) 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 (#$ . 43139) 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 (#$ . 43365) "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 (#$ . 43632) 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 (#$ . 43895) 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 (#$ . 44129) 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 (#$ . 44353) "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 (#$ . 44618) 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 (#$ . 44880)])
#@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	\"\203o\307\211\224O\262\307\225\306O\262Q\262\202N\312\315	\"\203\221\307\211\224O\262\307\225\306O\262Q\262\202o\312\316	\"\203\263\307\211\224O\262\307\225\306O\262\nQ\262\202\221\312\317	\"\203\327\307\211\224O\262\307\225\306O\262\320\321\"Q\262\202\263\322P\207" [prolog-compile-string prolog-consult-string prolog-buffer-module "'" prolog-bsts ":" nil 0 error "The buffer is not saved" string-match "\\`'.*'\\'" "%m" "%f" "%b" "%l" format "%d" "\n"] 16 (#$ . 45378)])
#@87 Non-nil means that a prolog task (i.e. a consultation or compilation job)
is running.
(defvar prolog-process-flag nil (#$ . 46314))
#@59 Hold the unprocessed output from the current prolog task.
(defvar prolog-consult-compile-output "" (#$ . 46452))
#@88 The number of the first line of the file to consult/compile.
Used for temporary files.
(defvar prolog-consult-compile-first-line 1 (#$ . 46571))
#@56 The file to compile/consult (can be a temporary file).
(defvar prolog-consult-compile-file nil (#$ . 46722))
#@49 The file name of the buffer to compile/consult.
(defvar prolog-consult-compile-real-file nil (#$ . 46837))
#@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\323(\324\261\210)\325!\210\311\326)\203RS\202S\327*+\n\230?\205`,rq\210db\210\330\331\332\333\"\332\334\"B\262\335\323$\210\336\315\"\210\203\233\337\340\"\203\233\341\342!\210\314\315!\204\200\323\211\204\204\203\244\343\202\245\344c\210\345\346!\335\"\211\346!=?\205\272\347\"\262)\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-closure #[0 "\301\300!\207" [V0 process-filter] 2] #[257 "\301\300\"\207" [V0 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] 15 (#$ . 46951)])
#@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 (#$ . 48775)])
#@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\"\262G\306O\n\310=\203N\211\307=\203N\317!\320P\321\"\210P\262\210\202\253\n\322\267\202\253\203\253\311\323\"\203\253\324\325\326\315\327\"\f\330\315\331\n\"!\\\f\330\315\332\"!\\%\333\211$\262\202\253\203\253\311\325\334
\"\"\203\253\324\325\335\315\327\"\f\330\315\331\n\"!\\$\333\211$\262c\210\202\210\311\336 \"\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 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 (#$ . 49562)])
#@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\"\207\303ed#\207" [buffer-file-name save-some-buffers prolog-consult-compile prolog-consult-compile-region] 6 (#$ . 50842)])
#@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 (#$ . 51155)])
#@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 (#$ . 51372)])
#@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 (#$ . 51790)])
#@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)\207" [case-fold-search prolog-atom-regexp nil re-search-forward "\\(::[ 	\n]*{\\|&\\)[ 	]*" t "\\=\n[ 	]*" "\\=%.*" "\\=/\\*" "\\*/[ 	]*" format "\\=\\(%s\\)"] 6 (#$ . 52072)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias prolog-face-name-p facep nil make-obsolete "28.1"] 4)
#@58 Set up font lock keywords for the current Prolog system.
(defalias 'prolog-font-lock-keywords #[0 "\306\307\310\311\312\313%\210\306\314\315\316\312\313%\210\306\317\320\321\312\313%\210\306\322\323\324\312\313%\210\325\322\326\327#\210\325\322\330\331\332!\2060\333#\210\306\305\334\324\312\313%\210\325\305\326\335#\210\325\305\330\331\332!\206J\333#\210\336\327!\210\337\335!\210\340\307!\210\341\314!\210\342\317!\210\343\344\"\345	E\343\346\"\345	E\347\n\350=\203y\351\202z\352\353\354E\355\343\356\211#\353	\357F\n\350=\203\233\360\361!\362\361\f!\363\260\202\241\364\361!\363Q\345
E\n\365=\205\253\366\n\350=\205\271\361@\367\"\353\370E\n\350=\205\307\361A\367\"\353\371E\n\350=\205\325\361B\367\"\353\322E\372 \353\354E\n\373\267\202\350\374\202\351\375\202\351\376\n\377\267\202\373\201D\202\374\201E\202\374\376\n\201F\267\202\201G\202\201H\202\376\n\201I\267\202%\201J\202&\201K\202&\376\n\201L\267\202:\201M\202;\201N\202;\376\n\201O\267\202O\201P\202P\201Q\202P\376\n\201R\267\202d\201S\202e\201T\202e\376\n\365=\203q\201U\202r\376\n\365=\203~\201V\202\376\201W\376\201X\201Y!\203\250\257\202\371C\201Z\267\202\327\257\202\371\257\202\371\201X\201Y!\205\371\257\"\207" [prolog-atom-regexp font-lock-function-name-face prolog-system prolog-keywords-i prolog-determinism-specificators-i prolog-builtin-face 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." put face-alias font-lock-warning-face obsolete-face purecopy "28.1" t ((((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))) font-lock-builtin-face (lambda (#1=#:def-tmp-var) (defvar prolog-warning-face #1# "Face name to use for built in predicates.")) (lambda (#1#) (defvar prolog-builtin-face #1# "Face name to use for built in predicates.")) (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 224 swi 228)) ("[ 	]*[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 239 swi 245)) prolog-types-i prolog-mode-specificators-i prolog-directives-i major-mode ("[ 	]*[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 260 swi 266)) ("[ 	]*[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 281 swi 287)) ("[ 	]*[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 302 swi 308)) ("[ 	]*[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 323 swi 329)) ("{\\([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 344 swi 350)) ("{\\([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 derived-mode-p prolog-mode #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (prolog-inferior-mode 433 compilation-mode 460))] 34 (#$ . 52694)])
#@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 (#$ . 58442)])
#@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 (#$ . 58613)])
#@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 (#$ . 58884)])
#@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 (#$ . 59585)])
(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]\317\320\315`{#\202k\305 \210\307\321\311#\205k`{)\266\205\207" [nil 4 syntax-ppss prolog-comment-limits 2 beginning-of-line line search-forward-regexp "^[ 	]*%" t "%+[ 	]*" replace-regexp-in-string "[^ 	%]" " " "^[ 	]*\\(%+\\|\\*+\\|/\\*+\\)[ 	]*" string-replace "/" "^[ 	]+"] 10])
#@43 Fill paragraph comment at or after point.
(defalias 'prolog-fill-paragraph #[0 "\301 \3028\211\303=\203\304 \305\306!)\207\212\214\212\307 \210o\204 \306y\210\310\311\312\303!\"\203.\313 d}\210)\212\314 \210\315y\210\310\316\312\303!\"\203De\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 (#$ . 61366) 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 (#$ . 61894)])
#@45 

(fn STR REGEXP NEWTEXT &optional LITERAL)
(defalias 'prolog-replace-in-string #[1027 "\300\301%\207" [replace-regexp-in-string nil] 10 (#$ . 62148)])
(make-obsolete 'prolog-replace-in-string 'replace-regexp-in-string "28.1")
#@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)) (#$ . 62386))
(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\"\306\211$\203!\207\307\310!\207" [prolog-help-function-i prolog-find-documentation prolog-atom-under-point read-string format-prompt "Help on predicate" nil error "Sorry, no help method defined for this Prolog system"] 6 (#$ . 62685) 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 (#$ . 63104)])
(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 (#$ . 63969)])
#@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 (#$ . 64189) "sApropos: "])
#@45 Return the atom under or left to the point.
(defalias 'prolog-atom-under-point #[0 "\212\300\301\300w\210\302\300x\210\301\300x\210`\262\301\300w\210\303`\"\262)\207" [nil "^[](){},. 	\n" "[](){},. 	\n" buffer-substring-no-properties] 4 (#$ . 64637)])
#@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 (#$ . 64898) nil])
#@89 Alist with all builtin predicates.
Only for internal use by `prolog-find-documentation'
(defvar prolog-info-alist nil (#$ . 65099))
#@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 (#$ . 65237) 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\"\204\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 (#$ . 65719)])
#@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\305C\212\306 \307\310\"\216\311 \203\312\313 !\210\306 \307\314\"\216\315 \210)\210\316!\210eb\210\317\320\304\321#\203}\322\323!\324\322\325!!\322\326!\327\330$\304\331 \210\317\332!\210\322\323!\262@\232\203kAB\241\266\2020CB\262B\262\266\2020\237)\262)\266\202\211\205\215\302\333!\207" [prolog-info-predicate-index prolog-info-alist message "Building info alist..." nil "" current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] active-minibuffer-window select-window next-window #[0 "\301\300!\207" [V0 set-window-configuration] 2] info Info-goto-node re-search-forward "^\\* \\(.+\\)/\\([0-9]+\\)\\([^\n:*]*\\):" t match-string 1 string-to-number 2 3 format "%s/%d%s" beginning-of-line ":[ 	]*\\([^:]+\\).$" "Building info alist... done."] 12 (#$ . 66162)])
#@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 (#$ . 67395)])
#@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 (#$ . 67614)])
#@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 (#$ . 67871)])
#@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 (#$ . 68063) 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 (#$ . 68390) 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 (#$ . 68720) 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 (#$ . 68962) "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 (#$ . 69294) 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 (#$ . 69507) "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 (#$ . 69835) 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 (#$ . 70046) "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 (#$ . 70535) nil])
(defalias 'prolog-get-predspec #[0 "\212\301 \302 @\303\232\206\304\305 8?\2054\306=\203,\211\203,\307\310@A@$\266\202\2026\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])
#@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 (#$ . 71040)])
#@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 (#$ . 71617)])
#@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\203o\307\310e\303#\203o\311 \312Y\203`\262\304\262\202\203o\304\307\313\304\303#)\203o\311 \211\312V\203R`\262\304\262\210\2021\211\312U\203k\314\315\316\n\"!\203k`\262\304\262\210\2021\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 (#$ . 72377)])
#@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 (#$ . 73201)])
#@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 (#$ . 73906)])
#@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 (#$ . 74354)])
#@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\207\211b\210\302\303w\207" [prolog-clause-start 1 " 	" nil] 4 (#$ . 74696) 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\207\211b\207" [prolog-clause-end] 4 (#$ . 74975) 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`\207\211b\210`\207" [prolog-pred-start -1] 4 (#$ . 75199) 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 (#$ . 75523) 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 (#$ . 75717) 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 (#$ . 75897) 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 (#$ . 76075) 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 (#$ . 76392) 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 (#$ . 76573) nil])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias prolog-uncomment-region uncomment-region nil make-obsolete "28.1"] 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 (#$ . 76989) nil])
#@27 Indent the entire buffer.
(defalias 'prolog-indent-buffer #[0 "\300ed\301#\207" [indent-region nil] 4 (#$ . 77165) 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 (#$ . 77292) 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 (#$ . 77551) 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 (#$ . 77813)])
#@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 (#$ . 78356)])
#@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 (#$ . 78894)])
#@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 (#$ . 79779)])
(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 eq 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#\203C\302\224b\207\312\313!\207" ["\\<" 1 0 "\\>" "(" ".+," ".+)" re-search-forward nil t error "Term not found"] 10 (#$ . 80712)])
#@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 (#$ . 81239) "r"])
#@32 Help menu for the Prolog mode.
(defvar prolog-menu-help nil (#$ . 81567))
(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)
#@60 Runtime Prolog commands available from the editing buffer.
(defvar prolog-edit-menu-runtime nil (#$ . 81978))
(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 (#$ . 83946))
(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" 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 "\305\300!\210\306\305\301!\210\307\305\302!\210\310\205\"\311ed\"\fW\205\"\312\313!\207" [imenu-create-index-function imenu-prev-index-position-function imenu-extract-index-name-function prolog-imenu-flag prolog-imenu-max-lines make-local-variable imenu-default-create-index-function prolog-beginning-of-predicate prolog-get-predspec count-lines imenu-add-to-menubar "Predicates"] 3 (#$ . 85245)])
#@38 Menu for the inferior Prolog buffer.
(defvar prolog-inferior-menu-all nil (#$ . 85729))
(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 "\300\207" [nil] 1 (#$ . 86901)])
(make-obsolete 'prolog-inferior-menu nil "28.1")
#@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 (#$ . 87176) nil])
(provide 'prolog)

Youez - 2016 - github.com/yon3zu
LinuXploit