Server IP : 111.118.215.189 / Your IP : 18.117.158.174 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/progmodes/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:29 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/prolog.el ;;; in Emacs version 24.3.1 ;;; 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" (#$ . 559)) (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\306\331\332\333\310\305\334\335& \210\336\330!\210\327\337\340\341\332\333\334\342\310\305& \210\327\343\344\345\310\315\334\346&\210\327\347\350\351\332\333\310\315\334\352& \210\327\353\350\354\332\333\310\315\334\352& \210\327\355\350\356\332\333\310\315\334\352& \210\327\357\360\361\332\333\310\315\334\362& \210\327\363\306\364\332\333\310\315\334\352& \210\327\365\344\366\332\333\310\315\334\346& \210\327\367\370\371\332\333\310\315\334\372& \210\327\373\374\375\332\333\310\317\334\376& \210\327\377\201@ \201A \332\333\310\317\334\376& \210\327\201B \201C \201D \332\333\310\317\334\376& \210\327\201E \201F \201G \332\333\310\317\334\376& \210\327\201H \201I \201J \332\333\310\317\334\376& \210\327\201K \201L \201M \332\333\310\321\334\352& \210\327\201N \306\201O \332\333\310\321\334\352& \210\327\201P \306\201Q \332\333\310\321\334\352& \210\327\201R \306\201S \332\333\310\321\334\352& \210\327\201T \306\201U \332\333\310\321\334\352& \210\327\201V \306\201W \332\333\310\321\334\352& \210\327\201X \306\201Y \332\333\310\321\334\352& \210\327\201Z \306\201[ \332\333\310\321\334\352& \210\327\201\\ \306\201] \332\333\310\321\334\352& \210\327\201^ \306\201_ \332\333\310\321\334\352& \210\327\201` \201a \201b \310\323\334\376&\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 "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 '((sicstus (3 . 6)) (swi (0 . 0)) (mercury (0 . 0)) (eclipse (3 . 7)) (gnu (0 . 0))) "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")))) prolog-indent-width 4 "The indentation width used by the editing buffer." integer prolog-align-comments-flag t "Non-nil means automatically align comments when indenting." boolean prolog-indent-mline-comments-flag "Non-nil means indent contents of /* */ comments.\nOtherwise leave such lines as they are." prolog-object-end-to-0-flag "Non-nil means indent closing '}' in SICStus object definitions to level 0.\nOtherwise indent to `prolog-indent-width'." prolog-left-indent-regexp "\\(;\\|\\*?->\\)" "Regexp for character sequences after which next line is indented.\nNext line after such a regexp is indented to the opening parenthesis level." regexp prolog-paren-indent-p "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)." prolog-paren-indent "The indentation increase for parenthesis expressions.\nOnly used in ( If -> Then ; Else) and ( Disj1 ; Disj2 ) style expressions." prolog-parse-mode 'beg-of-clause "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 '((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"))) "Alist of Prolog keywords which is used for font locking of directives." sexp prolog-types '((mercury ("char" "float" "int" "io__state" "string" "univ")) (t nil)) "Alist of Prolog types used by font locking." prolog-mode-specificators '((mercury ("bound" "di" "free" "ground" "in" "mdi" "mui" "muo" "out" "ui" "uo")) (t nil)) "Alist of Prolog mode specificators used by font locking." prolog-determinism-specificators '((mercury ("cc_multi" "cc_nondet" "det" "erroneous" "failure" "multi" "nondet" "semidet")) (t nil)) "Alist of Prolog determinism specificators used by font locking." prolog-directives '((mercury ("^#[0-9]+")) (t nil)) "Alist of Prolog source code directives used by font locking." prolog-electric-newline-flag (not (fboundp 'electric-indent-mode)) "Non-nil means automatically indent the next line when the user types RET." prolog-hungry-delete-key-flag "Non-nil means delete key consumes all preceding spaces." prolog-electric-dot-flag "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 "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 "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-tab-flag "Non-nil means make TAB key electric.\nElectric TAB inserts spaces after parentheses, ->, and ;\nin ( If -> Then ; Else) and ( Disj1 ; Disj2 ) style expressions." prolog-electric-if-then-else-flag "Non-nil makes `(', `>' and `;' electric\nto automatically indent if-then-else constructs." prolog-electric-colon-flag "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 "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 "Non-nil means old SICStus Prolog mode keybindings are used." prolog-program-name `(((getenv "EPROLOG") (eval (getenv "EPROLOG"))) (eclipse "eclipse") (mercury nil) (sicstus "sicstus") (swi ,(if (not (executable-find "swipl")) "pl" "swipl")) (gnu "gprolog") (t ,(let ((names '("prolog" "gprolog" "swipl" "pl"))) (while (and names (not (executable-find (car names)))) (setq names (cdr names))) (or (car names) "prolog")))) "Alist of program names for invoking an inferior Prolog with `run-prolog'."] 10) (defalias 'prolog-program-name #[nil "\301!\207" [prolog-program-name prolog-find-value-by-system] 2]) #@67 Alist of switches given to inferior Prolog run with `run-prolog'. (custom-declare-variable 'prolog-program-switches ''((sicstus ("-i")) (t nil)) '(#$ . 9422) :version "24.1" :group 'prolog-inferior :type 'sexp) (defalias 'prolog-program-switches #[nil "\301!\207" [prolog-program-switches prolog-find-value-by-system] 2]) #@440 Alist of strings defining predicate for reconsulting. Some parts of the string are replaced: `%f' by the name of the consulted file (can be a temporary file) `%b' by the file name of the buffer to consult `%m' by the module name and name of the consulted file separated by colon `%l' by the line offset into the file. This is 0 unless consulting a region of a buffer, in which case it is the number of lines before the region. (custom-declare-variable 'prolog-consult-string ''((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).")) '(#$ . 9752) :group 'prolog-inferior :type 'sexp) (defalias 'prolog-consult-string #[nil "\301!\207" [prolog-consult-string prolog-find-value-by-system] 2]) #@605 Alist of strings and lists defining predicate for recompilation. Some parts of the string are replaced: `%f' by the name of the compiled file (can be a temporary file) `%b' by the file name of the buffer to compile `%m' by the module name and name of the compiled file separated by colon `%l' by the line offset into the file. This is 0 unless compiling a region of a buffer, in which case it is the number of lines before the region. If `prolog-program-name' is non-nil, it is a string sent to a Prolog process. If `prolog-program-name' is nil, it is an argument to the `compile' function. (custom-declare-variable 'prolog-compile-string ''((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).")) '(#$ . 10616) :group 'prolog-inferior :type 'sexp) (defalias 'prolog-compile-string #[nil "\301!\207" [prolog-compile-string prolog-find-value-by-system] 2]) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\313\314\304\305\306\307& \207" [custom-declare-variable prolog-eof-string "end_of_file.\n" "Alist of strings that represent end of file for prolog.\nnil means send actual operating system end of file." :group prolog-inferior :type sexp prolog-prompt-regexp '((eclipse "^[a-zA-Z0-9()]* *\\?- \\|^\\[[a-zA-Z]* [0-9]*\\]:") (sicstus "| [ ?][- ] *") (swi "^\\(\\[[a-zA-Z]*\\] \\)?[1-9]?[0-9]*[ ]?\\?- \\|^| +") (gnu "^| \\?-") (t "^|? *\\?-")) "Alist of prompts of the prolog system command line." :version "24.1"] 10) (defalias 'prolog-prompt-regexp #[nil "\301!\207" [prolog-prompt-regexp prolog-find-value-by-system] 2]) (byte-code "\300\301\302\303\304\305\306\307\310\311& \210\300\312\313\314\304\305\306\307\310\311& \210\300\315\316\317\304\305\306\307\310\311& \210\300\320\321\322\304\305\306\307\310\311& \210\300\323\324\325\304\305\306\307\310\311& \210\300\326\327\330\304\305\306\307\310\311& \210\300\331\332\333\304\305\306\307\310\334& \210\300\335\336\337\304\305\306\340\310\334& \210\300\341\332\342\304\305\306\340\310\334& \210\300\343\344\345\304\305\306\340\310\346& \210\300\347\350\351\304\305\306\340\310\311& \210\300\352\353\354\304\305\306\340\310\334& \210\300\355\353\356\304\305\306\340\310\334& \210\300\357\353\360\304\305\306\340\310\334& \207" [custom-declare-variable prolog-debug-on-string "debug.\n" "Predicate for enabling debug mode." :version "24.1" :group prolog-inferior :type string prolog-debug-off-string "nodebug.\n" "Predicate for disabling debug mode." prolog-trace-on-string "trace.\n" "Predicate for enabling tracing." prolog-trace-off-string "notrace.\n" "Predicate for disabling tracing." prolog-zip-on-string "zip.\n" "Predicate for enabling zip mode for SICStus." prolog-zip-off-string "nozip.\n" "Predicate for disabling zip mode for SICStus." prolog-use-standard-consult-compile-method-flag t "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-use-prolog-tokenizer-flag (not (fboundp 'syntax-propertize-rules)) "Non-nil means use the internal prolog tokenizer for indentation etc.\nOtherwise use `parse-partial-sexp' which is faster but sometimes incorrect." prolog-other prolog-imenu-flag "Non-nil means add a clause index menu for all prolog files." prolog-imenu-max-lines 3000 "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 "(sicstus)Predicate Index" "The info node for the SICStus predicate index." prolog-underscore-wordchar-flag nil "Non-nil means underscore (_) is a word-constituent character." prolog-use-sicstus-sd "If non-nil, use the source level debugger of SICStus 3#7 and later." prolog-char-quote-workaround "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."] 10) (defvar prolog-mode-syntax-table (byte-code "\303 \203 \304\305\306#\210\202 \304\305\307#\210\304\310\311#\210\304\312\311#\210\304\313\311#\210\304\314\311#\210\304\315\311#\210\304\316\311#\210\304\317\320#\210\n\203J \304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\330#\210\304\331\332#\210)\207" [table prolog-underscore-wordchar-flag prolog-char-quote-workaround make-syntax-table modify-syntax-entry 95 "w" "_" 43 "." 45 61 60 62 124 39 "\"" 48 "\\" 37 "<" 10 ">" 42 ". 23b" 47 ". 14"] 4)) (defvar prolog-mode-abbrev-table nil) (byte-code "\300\301!\210\302\303!\207" [(lambda (#1=#:def-tmp-var) (defconst prolog-upper-case-string #1# "A string containing a char-range matching all upper case characters.")) "[:upper:]" (lambda (#1#) (defconst prolog-lower-case-string #1# "A string containing a char-range matching all lower case characters.")) "[:lower:]"] 2) #@70 Regexp specifying characters which constitute atoms without quoting. (defconst prolog-atom-char-regexp (byte-code "\302\303\304\"\203 \305\207\306\307 #\207" [prolog-lower-case-string prolog-upper-case-string string-match "[[:alnum:]]" "0" "[[:alnum:]_$]" format "[%s%s0-9_$]"] 4) (#$ . 15833)) (defconst prolog-atom-regexp (format "[%s$]%s*" prolog-lower-case-string prolog-atom-char-regexp)) #@67 The characters used as left parentheses for the indentation code. (defconst prolog-left-paren "[[({]" (#$ . 16235)) #@68 The characters used as right parentheses for the indentation code. (defconst prolog-right-paren "[])}]" (#$ . 16357)) #@32 Regexp matching a quoted atom. (defconst prolog-quoted-atom-regexp "\\(^\\|[^0-9]\\)\\('\\([^\n']\\|\\\\'\\)*'\\)" (#$ . 16481)) #@27 Regexp matching a string. (defconst prolog-string-regexp "\\(\"\\([^\n\"]\\|\\\\\"\\)*\"\\)" (#$ . 16616)) #@67 A regexp for matching on the end delimiter of a head (e.g. ":-"). (defconst prolog-head-delimiter "\\(:-\\|\\+:\\|-:\\|\\+\\?\\|-\\?\\|-->\\)" (#$ . 16729)) #@62 Name of the output buffer for Prolog compilation/consulting. (defvar prolog-compilation-buffer "*prolog-compilation*" (#$ . 16892)) (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) (defvar prolog-use-smie t) (defalias 'prolog-smie-forward-token #[nil "\300d!\210\301`\302\303!\203 \304u\210\202( \305\306\307w!\203( \305\310\311!!\203( \305\310\312!!\210`\"\207" [forward-comment buffer-substring-no-properties looking-at "[!;]" 1 zerop "#&*+-./:<=>?@\\^`~" nil skip-syntax-forward "w_'" "."] 5]) (defalias 'prolog-smie-backward-token #[nil "\300d[!\210\301``Sf\302>\203 \303u\210\202+ \304\305\306x!\203+ \304\307\310!!\203+ \304\307\311!!\210`\"\207" [forward-comment buffer-substring-no-properties (33 59) -1 zerop "#&*+-./:<=>?@\\^`~" nil skip-syntax-backward "w_'" "."] 5]) #@39 Precedence levels of infix operators. (defconst prolog-smie-grammar '(("." -10000 -10000) (":-" -1200 -1200) ("-->" -1200 -1200) (";" -1100 -1100) ("->" -1050 -1050) ("," -1000 -1000) ("\\+" -900 -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 . "."))) (#$ . 18270)) (defalias 'prolog-smie-rules #[(kind token) " B\211:\205? \n@\nA\306=\203 \f\307=\205>