1 ;;; -*- Mode: Emacs-Lisp -*-
5 ;;; This file is part of ILISP.
6 ;;; Please refer to the file COPYING for copyrights and licensing
8 ;;; Please refer to the file ACKNOWLEGDEMENTS for an (incomplete) list
9 ;;; of present and past contributors.
12 ;;; ILISP OpenMCL Common Lisp dialect definition
18 (defvar ilisp-openmcl-init-file "openmcl.lisp")
20 (defun openmcl-check-prompt (old new)
21 "Compare the break level printed at the beginning of the prompt."
22 (let* ((old-level (if (and old (eq 1 (string-match "[0-9]+" old)))
23 (string-to-int (substring old 1))
25 (new-level (if (eq 1 (string-match "[0-9]+" new))
26 (string-to-int (substring new 1))
28 (<= new-level old-level)))
31 (defdialect openmcl "OpenMCL"
33 (ilisp-load-init 'openmcl ilisp-openmcl-init-file)
35 (setq comint-prompt-regexp "^\\([0-9]+ >\\|\\?\\|Step>\\|Inspect.*>\\) "
36 ilisp-trace-command "(ILISP::openmcl-trace \"%s\" \"%s\" \"%s\")"
38 (function (lambda (old line)
39 (comint-prompt-status old line 'openmcl-check-prompt)))
41 ilisp-error-regexp "ILISP:[^\"]*\\|Error [^\n]*\n\n"
44 ilisp-arglist-command "(ILISP::arglist \"%s\" \"%s\")"
46 ilisp-find-source-command "(ILISP::source-file \"%s\" \"%s\" \"%s\")"
48 comint-fix-error ":pop"
54 comint-interrupt-regexp "Break .*:"
57 ilisp-directory-command "(ccl::current-directory-name)"
58 ilisp-set-directory-command "(ccl:cwd \"%s\")"
63 (if (not openmcl-program) (setq openmcl-program "openmcl"))