bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich;; Creating a new menu pane in the menu bar to the right of "Tools" menu
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich;; A keymap is suitable for menu use if it has an overall prompt string, which describes the purpose of the menu.
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich;; essentially: define-key map fake-key '(item command), where fake-key is of the form [menu-bar mymenu nl] and defines key nl in mymenu which must exist
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz(setq encl-cas "Mathematica")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz(setq encl-verb "1")
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich(define-key-after
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich global-map
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich [menu-bar enclmenu]
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (cons "EnCL" (make-sparse-keymap "encl menu"))
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich 'tools)
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz(define-key-after
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz global-map
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz [menu-bar enclmenu refresh]
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz (cons "Refresh" (make-sparse-keymap)))
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz(define-key-after
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz global-map
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz [menu-bar enclmenu refresh matchmenu]
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz (cons "Match-menu" `(lambda () (interactive) (refresh-matchmenu))))
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz(define-key-after
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz global-map
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz [menu-bar enclmenu refresh evalmenu]
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz (cons "Eval-menu" `(lambda () (interactive) (refresh-evalmenu))))
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich;; extract all spec definitions
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich(defun extractspecs ()
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich (interactive)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (save-excursion
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (let
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (p1 specs)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (goto-char (point-min))
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (while (search-forward "spec" nil t)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (skip-chars-forward " ")
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (setq p1 (point))
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (forward-word)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (push (buffer-substring-no-properties p1 (point)) specs)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich specs
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich )
bc84d207c5ccce005513f71b15635731fa426bf1Dominik Dietrich
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich;; extract all imports
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich(defun extractgets ()
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (interactive)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (save-excursion
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (let
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (p1
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich specs
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (goto-char (point-min))
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (while (search-forward "get" nil t)
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (skip-chars-forward " ")
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (setq p1 (point))
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (forward-word)
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (push (buffer-substring-no-properties p1 (point)) specs)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich ;; comma separated lisp
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (skip-chars-forward " ")
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (while (string= (buffer-substring-no-properties (point) (+ 1 (point))) ",")
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (skip-chars-forward " ")
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (setq p1 (+ 1 (point)))
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (forward-word)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (skip-chars-forward " ")
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (push (buffer-substring-no-properties p1 (point)) specs)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (skip-chars-forward " ")
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich specs
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich )
f14bf11310b51516794b2ad792907c45ebeb73d7Ewaryst Schulz
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz(defun refresh-evalmenu ()
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (interactive)
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (let
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz ((entries (reverse (sort (append (extractspecs) (extractgets)) 'string<)))
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich currentsym
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (menusym 'eval)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (runfun 'run-eval)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (runlist '("Symbolic" "Approximately"))
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz )
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich ;; delete the match menu
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (global-unset-key [menu-bar enclmenu eval])
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich ;; generate match menu
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (define-key-after global-map [menu-bar enclmenu eval] (cons "Evaluate" (make-sparse-keymap)))
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz; (refresh-specmenu entries menusym runfun runlist)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich (dolist (item entries)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (setq currentsym (gensym))
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym) (cons item (make-sparse-keymap)))
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (dolist (item2 runlist)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym (gensym))
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (cons item2 `(lambda () (interactive) (,runfun ,item ,item2))))
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz )
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz )
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz; (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym (gensym)) (cons "--" nil))
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz; (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym (gensym)) (cons "Select design spec" nil))
f14bf11310b51516794b2ad792907c45ebeb73d7Ewaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz(defun refresh-matchmenu ()
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (interactive)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (let
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz ((entries (reverse (sort (append (extractspecs) (extractgets)) 'string<)))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz currentsym
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz ;; delete the match menu
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (global-unset-key [menu-bar enclmenu match])
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz ;; generate match menu
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key-after global-map [menu-bar enclmenu match] (cons "Match" (make-sparse-keymap)) 'kill-buffer)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (refresh-specmenu entries 'match 'run-match '("Show match" "Export parameter"))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz(defun refresh-specmenu (entries menusym runfun runlist)
7af4df794a0e0f0cb927bd9371556ad098308983Ewaryst Schulz;; (interactive)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz ;; generate subentries
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (dolist (item entries)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (setq currentsym (gensym))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym) (cons item (make-sparse-keymap)))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz ;; submenus
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (dolist (item2 entries)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (setq currentsym2 (gensym))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym currentsym2) (cons item2 (make-sparse-keymap)))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (dolist (item3 runlist)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym currentsym2 (gensym))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (cons item3 `(lambda () (interactive) (,runfun ,item ,item2 ,item3))))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym (gensym)) (cons "--" nil))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym currentsym (gensym)) (cons "Select design spec" nil))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym (gensym)) (cons "--" nil))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (define-key global-map (vector 'menu-bar 'enclmenu menusym (gensym)) (cons "Select pattern spec" nil))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz(defun prepare-buffer (name)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (let ((buff (get-buffer-create name)))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (with-current-buffer buff (delete-region (point-min) (point-max)))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz buff)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz(defun run-match (spec1 spec2 trans)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (interactive)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (message "Matching selected pattern with the design spec")
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz;; example command
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz;; matchcad /tmp/flange.het -sMatch -pFlangePattern -dComponent
f54cbc3b567482a53e417faff9cd2583bfdc47dfDominik Dietrich; (message (concatenate 'string "asd" (buffer-file-name (current-buffer))))
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz; (call-process "/bin/ls" nil (get-buffer-create "*Match-Result*") t "-lh" "/tmp/")
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (call-process "matchcad" nil (prepare-buffer "*Match-Result*") t
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz "-sMatch"
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz "-p" spec1
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz "-d" spec2
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (if (string= trans "Show match") "" "-t")
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (buffer-file-name (current-buffer)))
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (switch-to-buffer (get-buffer "*Match-Result*"))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (when (string= trans "Export parameter")
0f541fef46255a09d1143a9cbf3e2dbafb610923Ewaryst Schulz (set-visited-file-name (concatenate 'string (make-temp-file "flangeParams") ".het"))
0f541fef46255a09d1143a9cbf3e2dbafb610923Ewaryst Schulz (save-buffer)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (refresh-evalmenu)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz nil
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz )
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz(defun run-eval (spec1 symbolic)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (interactive)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz;; (message "selected %s and %s and %s" spec1 spec2 trans)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz;; example command
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz;; matchcad /tmp/flange.het -sMatch -pFlangePattern -dComponent
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz; (message (concatenate 'string "asd" (buffer-file-name (current-buffer))))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz; (message "Evaluating EnCL spec")
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (message "Evaluating EnCL spec %s" spec1)
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (let ((buff (prepare-buffer "*Eval-Result*"))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (fp (buffer-file-name (current-buffer))))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz (switch-to-buffer buff)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz (insert "Starting evaluation of EnCL specification.\n")
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz; (call-process "evalspec" nil buff t "-s" spec1 "-t10" "-v2" (if (string= symbolic "Symbolic") "-S" "") fp)
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (start-process "evaluation of EnCL specification" buff "evalspec" "-C" encl-cas "-s" spec1 "-t25" "-v" encl-verb (if (string= symbolic "Symbolic") "-S" "") fp)
105837926c174394ac05c02471215fb6d68a780fEwaryst Schulz;; (insert "\n\nEvaluation of EnCL specification finished.\n")
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz;; (start-process-shell-command "evalproc" buff (concatenate 'string "evalspec -s " spec1 " " fp))
6a5011fab59ec9893a2b339268797662b22ae97bEwaryst Schulz nil)
f14bf11310b51516794b2ad792907c45ebeb73d7Ewaryst Schulz )
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz(defun openspec (filename)
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (interactive "FOpen proof script: ")
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz filename)
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz(defun load-spec ()
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (interactive
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (list (call-interactively 'openspec)
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz ))
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz (refresh-specmenu)
d3ea4ab5527bc4bd7381d39ecbc4af2199f54341Ewaryst Schulz)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz(defun setverb0 ()
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (interactive)
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (setq encl-verb "0")
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz )
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz(defun setverb1 ()
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (interactive)
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (setq encl-verb "1")
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz )
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz(defun setverb2 ()
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (interactive)
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (setq encl-verb "2")
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz )
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz(defun setverb3 ()
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (interactive)
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (setq encl-verb "3")
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz )
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz(defun setmaple ()
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (interactive)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (setq encl-cas "Maple")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz(defun setmathematica ()
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (interactive)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (setq encl-cas "Mathematica")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz(setq encl-commands
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz '((refresh-evalmenu "Refreshes the EnCL evaluation menu based on the specification in the current buffer.")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (refresh-matchmenu "Refreshes the EnCL matching menu based on the specification in the current buffer.")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (setmaple "Selects the computer algebra system Maple for the evaluation.")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (setmathematica "Selects the computer algebra system Mathematica for the evaluation.")
08b27f5b9b0623b02b57a994437086b4dac9b8aaEwaryst Schulz (setverbX "Sets verbosity to X in [0-3].")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (help-encl "Shows this help.")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz(defun show-command-entry (x)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (concatenate 'string (format "%s:\n%s\n" (nth 0 x) (nth 1 x)))
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz(defun help-encl ()
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (interactive)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (let ((buff (prepare-buffer "*EnCL-Help*")))
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (switch-to-buffer buff)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (dolist (x encl-commands)
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (insert (show-command-entry x))
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz (insert "\n")
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )
8fca4d8a078d799b2faded300d6b97c2f7761103Ewaryst Schulz )