Working on quasi-quoted forms

db4
James Cash 2008-06-04 12:47:53 -04:00
parent 8199a19571
commit 7372423e4b
1 changed files with 9 additions and 1 deletions

View File

@ -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 ;
dup lisp-symbol? [ name>> macro-env get key? ] [ drop f ] if ;