X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fparser-ly-from-scheme.scm;h=05701bbcd92d1c822638cf8ce8d709ca20bc01f8;hb=24bdff1e3d1639f8e6ebfc9611f38ea2c13be262;hp=d7a83a1f4d513d8d496f17ca77a616b629c6fc23;hpb=9f3572d98bb948c9689cd1f75401a029451fa001;p=lilypond.git diff --git a/scm/parser-ly-from-scheme.scm b/scm/parser-ly-from-scheme.scm index d7a83a1f4d..05701bbcd9 100644 --- a/scm/parser-ly-from-scheme.scm +++ b/scm/parser-ly-from-scheme.scm @@ -1,9 +1,20 @@ -;;;; ly-from-scheme.scm -- parsing LilyPond music expressions from scheme +;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; source file of the GNU LilyPond music typesetter -;;;; -;;;; (c) 2004--2006 Nicolas Sceaux +;;;; Copyright (C) 2004--2009 Nicolas Sceaux ;;;; Jan Nieuwenhuizen +;;;; +;;;; LilyPond is free software: you can redistribute it and/or modify +;;;; it under the terms of the GNU General Public License as published by +;;;; the Free Software Foundation, either version 3 of the License, or +;;;; (at your option) any later version. +;;;; +;;;; LilyPond is distributed in the hope that it will be useful, +;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;;; GNU General Public License for more details. +;;;; +;;;; You should have received a copy of the GNU General Public License +;;;; along with LilyPond. If not, see . (define gen-lily-sym ;; Generate a lilyvartmpXX symbol, that may be (hopefully) unique. @@ -17,8 +28,9 @@ (char->integer #\0))))) (string->list (number->string var-idx))))))))) -(define-public (ly:parse-string-result str parser) +(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)) @@ -77,10 +89,10 @@ character." ;; other caracters (else (display c out)))))))) - `(let ((parser-clone (ly:clone-parser parser))) + `(let ((parser-clone (ly:parser-clone parser))) ,@(map (lambda (binding) `(ly:parser-define! parser-clone ',(car binding) ,(cdr binding))) (reverse bindings)) - (ly:parse-string-result ,lily-string parser-clone))))) + (parse-string-result ,lily-string parser-clone))))) (read-hash-extend #\{ read-lily-expression)