X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fparser-ly-from-scheme.scm;h=a17edb63f9e59ff2445734b5f38aa5b5b26267b2;hb=ddd74753371d73e65bb57d086fe376e771ef86b8;hp=31f04444378af967be319ecc1c475997405aa8b8;hpb=17098f34eace028d047ee7f9cd6f81a84e0e7537;p=lilypond.git diff --git a/scm/parser-ly-from-scheme.scm b/scm/parser-ly-from-scheme.scm index 31f0444437..a17edb63f9 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--2007 Nicolas Sceaux +;;;; Copyright (C) 2004--2011 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,19 +28,11 @@ (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) @@ -82,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)