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