diff options
author | Andy Wingo <wingo@pobox.com> | 2008-11-12 00:29:45 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2008-11-12 00:29:45 +0100 |
commit | 7493339cfc36cf95b77aa8a1ad4cd0b5dd36710a (patch) | |
tree | 07cdc9269e717ea170a22387c9a905583f661fb2 | |
parent | 7c290506607ca9e003dbdacca701e2870f2d777b (diff) | |
download | guile-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.scm | 12 |
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)))) |