]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/parser-ly-from-scheme.scm
Introduce a maximum depth for markup evaluation
[lilypond.git] / scm / parser-ly-from-scheme.scm
index af5c176c378dce31ca0c00a21ebf6eb83c973a39..a17edb63f9e59ff2445734b5f38aa5b5b26267b2 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 2004--2010  Nicolas Sceaux  <nicolas.sceaux@free.fr>
+;;;; Copyright (C) 2004--2011  Nicolas Sceaux  <nicolas.sceaux@free.fr>
 ;;;;           Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
                                                                         (char->integer #\0)))))
                                                  (string->list (number->string var-idx)))))))))
 
-(define-public (parse-string-result str parser)
-  "Parse `str', which is supposed to contain a music expression."
-
-  (ly:parser-parse-string
-   parser
-   (format #f "parseStringResult = \\notemode { ~a }" str))
-  (ly:parser-lookup parser 'parseStringResult))
-
 (define-public (read-lily-expression chr port)
-  "Read a #{ lily music expression #} from port and return
-the scheme music expression. The $ character may be used to introduce
-scheme forms, typically symbols. $$ may be used to simply write a `$'
-character."
+  "Read a lilypond music expression enclosed within @code{#@}} and @code{#@}}
+from @var{port} and return the corresponding Scheme music expression.
+The @samp{$} character may be used to introduce Scheme forms, typically
+symbols.  @code{$$} may be used to simply write a @samp{$} character itself."
   (let ((bindings '()))
 
     (define (create-binding! val)
@@ -93,6 +85,6 @@ character."
          ,@(map (lambda (binding)
                   `(ly:parser-define! parser-clone ',(car binding) ,(cdr binding)))
                 (reverse bindings))
-         (parse-string-result ,lily-string parser-clone)))))
+         (ly:parse-string-expression parser-clone ,lily-string)))))
 
 (read-hash-extend #\{ read-lily-expression)