]> git.donarmstrong.com Git - lilypond.git/commitdiff
Let #{ ... #} leave nicer runtime material
authorDavid Kastrup <dak@gnu.org>
Tue, 6 Dec 2011 16:50:29 +0000 (17:50 +0100)
committerDavid Kastrup <dak@gnu.org>
Tue, 6 Dec 2011 16:50:29 +0000 (17:50 +0100)
scm/parser-ly-from-scheme.scm

index 91fbe3675d158a5fbaf67be146d683e3265e5938..0e697d22bda657f3e970efa0281b01a0cd56360c 100644 (file)
@@ -63,13 +63,13 @@ from @var{port} and return the corresponding Scheme music expression.
                                       (set! closures
                                             (cons `(cons ,p (lambda () ,expr))
                                                   closures)))))))))))
-    `(let* ((clone
-            (ly:parser-clone parser (list ,@closures)))
-           (result (ly:parse-string-expression clone ,lily-string
-                                               ,filename
-                                               ,line)))
-       (if (ly:parser-has-error? clone)
-          (ly:parser-error parser (_ "error in #{ ... #}")))
-       result)))
+    (define (embedded-lilypond parser lily-string filename line closures)
+      (let* ((clone (ly:parser-clone parser closures))
+            (result (ly:parse-string-expression clone lily-string
+                                                filename line)))
+       (if (ly:parser-has-error? clone)
+           (ly:parser-error parser (_ "error in #{ ... #}")))
+       result))
+    (list embedded-lilypond 'parser lily-string filename line (cons 'list (reverse! closures)))))
 
 (read-hash-extend #\{ read-lily-expression)