summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2008-11-12 00:29:45 +0100
committerAndy Wingo <wingo@pobox.com>2008-11-12 00:29:45 +0100
commit7493339cfc36cf95b77aa8a1ad4cd0b5dd36710a (patch)
tree07cdc9269e717ea170a22387c9a905583f661fb2
parent7c290506607ca9e003dbdacca701e2870f2d777b (diff)
downloadguile-7493339cfc36cf95b77aa8a1ad4cd0b5dd36710a.tar.gz
more ghil parsing fixen
* module/system/il/ghil.scm (parse-ghil): Fix a typo for values* (unparse-ghil): Only output (quote foo) if the object is a symbol. (unparse-ghil): Fix some missing ,@.
-rw-r--r--module/system/il/ghil.scm12
1 files changed, 7 insertions, 5 deletions
diff --git a/module/system/il/ghil.scm b/module/system/il/ghil.scm
index 50db309dc..0340c0394 100644
--- a/module/system/il/ghil.scm
+++ b/module/system/il/ghil.scm
@@ -414,7 +414,7 @@
(make-ghil-values env loc (map retrans values)))
((values* . ,values)
- (make-ghil-values env loc (map retrans values)))
+ (make-ghil-values* env loc (map retrans values)))
((compile-time-environment)
(make-ghil-reified-env env loc))
@@ -430,7 +430,9 @@
((<ghil-void> env loc)
'(void))
((<ghil-quote> env loc obj)
- `(,'quote ,obj))
+ (if (symbol? obj)
+ `(,'quote ,obj)
+ obj))
((<ghil-quasiquote> env loc exp)
`(,'quasiquote ,(map unparse-ghil exp)))
((<ghil-unquote> env loc exp)
@@ -467,10 +469,10 @@
((<ghil-mv-call> env loc producer consumer)
`(mv-call ,(unparse-ghil producer) ,(unparse-ghil consumer)))
((<ghil-inline> env loc inline args)
- `(inline ,inline (map unparse-ghil args)))
+ `(inline ,inline ,@(map unparse-ghil args)))
((<ghil-values> env loc values)
- `(values (map unparse-ghil values)))
+ `(values ,@(map unparse-ghil values)))
((<ghil-values*> env loc values)
- `(values* (map unparse-ghil values)))
+ `(values* ,@(map unparse-ghil values)))
((<ghil-reified-env> env loc)
`(compile-time-environment))))