Function: prolog-parse-sicstus-compilation-errors
prolog-parse-sicstus-compilation-errors is a byte-compiled function
defined in prolog.el.gz.
Signature
(prolog-parse-sicstus-compilation-errors LIMIT)
Documentation
Parse the prolog compilation buffer for errors.
Argument LIMIT is a buffer position limiting searching.
For use with the compilation-parse-errors-function variable.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/prolog.el.gz
(defun prolog-parse-sicstus-compilation-errors (limit)
"Parse the prolog compilation buffer for errors.
Argument LIMIT is a buffer position limiting searching.
For use with the `compilation-parse-errors-function' variable."
(setq compilation-error-list nil)
(message "Parsing SICStus error messages...")
(let (filepath dir file errorline)
(while
(re-search-backward
"{\\([a-zA-Z ]* ERROR\\|Warning\\):.* in line[s ]*\\([0-9]+\\)"
limit t)
(setq errorline (string-to-number (match-string 2)))
(save-excursion
(re-search-backward
"{\\(consulting\\|compiling\\|processing\\) \\(.*\\)\\.\\.\\.}"
limit t)
(setq filepath (match-string 2)))
;; ###### Does this work with SICStus under Windows
;; (i.e. backslashes and stuff?)
(if (string-match "\\(.*/\\)\\([^/]*\\)$" filepath)
(progn
(setq dir (match-string 1 filepath))
(setq file (match-string 2 filepath))))
(setq compilation-error-list
(cons
(cons (save-excursion
(beginning-of-line)
(point-marker))
(list (list file dir) errorline))
compilation-error-list)
))
))