[mcclim-cvs] CVS mcclim/Drei
thenriksen
thenriksen at common-lisp.net
Sat Dec 2 20:28:18 UTC 2006
Update of /project/mcclim/cvsroot/mcclim/Drei
In directory clnet:/tmp/cvs-serv7322
Modified Files:
lisp-syntax.lisp
Log Message:
Improved and fixed some `token-to-object' methods.
Soon, Drei will be able to compile itself!
--- /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp 2006/11/27 12:28:01 1.7
+++ /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp 2006/12/02 20:28:18 1.8
@@ -1709,6 +1709,8 @@
(define-form-predicate form-token-p (token-mixin))
(define-form-predicate form-string-p (string-form))
(define-form-predicate form-quoted-p (quote-form backquote-form))
+(define-form-predicate form-comma-p (comma-form))
+(define-form-predicate form-comma-at-p (comma-at-form))
(define-form-predicate comment-p (comment))
@@ -2563,7 +2565,13 @@
(defmethod token-to-object (syntax (token backquote-form) &rest args)
(let ((backquoted-form (first-form (children token))))
(if (form-list-p backquoted-form)
- `'(,@(apply #'token-to-object syntax backquoted-form args))
+ `(list ,@(loop for element in (children backquoted-form)
+ if (form-comma-p element)
+ collect (apply #'token-to-object syntax element args)
+ else if (form-comma-at-p element)
+ nconc (apply #'token-to-object syntax element args)
+ else if (formp element)
+ collect (apply #'token-to-object syntax element :quote t args)))
`',(apply #'token-to-object syntax backquoted-form args))))
(defmethod token-to-object (syntax (token comma-form) &rest args)
@@ -2634,7 +2642,7 @@
"")))))
(defmethod token-to-object ((syntax lisp-syntax) (token complete-function-form) &rest args &key &allow-other-keys)
- (fdefinition (apply #'token-to-object syntax (second (children token)) args)))
+ (list 'function (apply #'token-to-object syntax (second (children token)) args)))
(defmethod token-to-object ((syntax lisp-syntax) (token bit-vector-form)
&key &allow-other-keys)
More information about the Mcclim-cvs
mailing list