Function: prolog-find-term
prolog-find-term is a byte-compiled function defined in prolog.el.gz.
Signature
(prolog-find-term FUNCTOR ARITY &optional PREFIX)
Documentation
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.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/prolog.el.gz
(defun prolog-find-term (functor arity &optional prefix)
"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."
(let* (;; If prefix is not set then use the default "\\<"
(prefix (if (not prefix)
"\\<"
prefix))
(regexp (concat prefix functor))
(i 1))
;; Build regexp for the search if the arity is > 0
(if (= arity 0)
;; Add that the functor must be at the end of a word. This
;; does not work if the arity is > 0 since the closing )
;; is not a word constituent.
(setq regexp (concat regexp "\\>"))
;; Arity is > 0, add parens and commas
(setq regexp (concat regexp "("))
(while (< i arity)
(setq regexp (concat regexp ".+,"))
(setq i (1+ i)))
(setq regexp (concat regexp ".+)")))
;; Search, and return position
(if (re-search-forward regexp nil t)
(goto-char (match-beginning 0))
(error "Term not found"))
))