From 7372423e4b70248f06e95685de042442859dc45f Mon Sep 17 00:00:00 2001
From: James Cash <james.nvc@gmail.com>
Date: Wed, 4 Jun 2008 12:47:53 -0400
Subject: [PATCH] Working on quasi-quoted forms

---
 extra/lisp/lisp.factor | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/extra/lisp/lisp.factor b/extra/lisp/lisp.factor
index 616efcbb1d..00d7b3cf95 100644
--- a/extra/lisp/lisp.factor
+++ b/extra/lisp/lisp.factor
@@ -60,10 +60,18 @@ PRIVATE>
 : convert-quoted ( cons -- quot )  
     cdr 1quotation ;
     
+: convert-unquoted ( cons -- quot )    
+    "unquote not valid outside of quasiquote!" throw ;
+    
+: convert-quasiquoted ( cons -- newcons )
+    [  ] traverse ;
+    
 : form-dispatch ( lisp-symbol -- quot )
     name>>
     { { "lambda" [ convert-lambda ] }
       { "quote" [ convert-quoted ] }
+      { "unquote" [ convert-unquoted ] }
+      { "quasiquote" [ convert-quasiquoted ] }
       { "if" [ convert-if ] }
       { "begin" [ convert-begin ] }
       { "cond" [ convert-cond ] }
@@ -125,4 +133,4 @@ M: no-such-var summary drop "No such variable" ;
     name>> macro-env get at ;
     
 : lisp-macro? ( car -- ? )
-    dup lisp-symbol? [ name>> macro-env get key? ] [ drop f ] if ;
\ No newline at end of file
+    dup lisp-symbol? [ name>> macro-env get key? ] [ drop f ] if ;