Update of /project/movitz/cvsroot/movitz/ide In directory clnet:/tmp/cvs-serv32752
Modified Files: ide.lisp Log Message: More complete ide: movitz-arglist, macroexpand, etc.
--- /project/movitz/cvsroot/movitz/ide/ide.lisp 2007/03/01 17:52:57 1.4 +++ /project/movitz/cvsroot/movitz/ide/ide.lisp 2007/03/03 18:34:53 1.5 @@ -9,8 +9,13 @@
(defpackage #:movitz.ide (:use #:cl) - (:export #:compile-movitz-file #:compile-defun #:dump-image - #:movitz-disassemble #:movitz-disassemble-method)) + (:export #:compile-movitz-file + #:compile-defun + #:dump-image + #:movitz-disassemble + #:movitz-disassemble-method + #:movitz-arglist + #:movitz-macroexpand))
(in-package #:movitz.ide)
@@ -42,6 +47,21 @@ (get-sexpr lambda-list package) (mapcar #'read-from-string qualifiers)))))
+(defun movitz-arglist (name package-name) + (let* ((package (get-package package-name)) + (funobj (movitz::movitz-env-named-function (get-sexpr name package)))) + (if (not funobj) + "not defined" + (let ((*package* package)) + (princ-to-string (movitz::movitz-print (movitz::movitz-funobj-lambda-list funobj))))))) + +(defun movitz-macroexpand (string package-name) + (let* ((*package* (get-package package-name)) + (form (get-sexpr string *package*)) + (expansion (movitz::movitz-macroexpand-1 form))) + (princ-to-string (movitz::movitz-print expansion)))) + + ;;;; Utilities.