]> git.donarmstrong.com Git - lilypond.git/commit
Issue 2607: Allow immediate Scheme expressions with splicing and multiple values
authorDavid Kastrup <dak@gnu.org>
Mon, 18 Jun 2012 17:25:31 +0000 (19:25 +0200)
committerDavid Kastrup <dak@gnu.org>
Sat, 23 Jun 2012 21:43:56 +0000 (23:43 +0200)
commit6e765bb786fddd2e655315f9bde94968952b99ca
treeac25f6cd1e306f5a493be5943e4b0f42ee2aa421
parente97c1143fa6c1f3411a3d97222711c28f9be2164
Issue 2607: Allow immediate Scheme expressions with splicing and multiple values

$xxx has been able to interpret 0-valued expressions (namely
SCM_UNSPECIFIED) so far by, well, not interpolating anything.

This change allows it to interpret multi-valued expressions by
returning multiple tokens, allowing things like

{ < $(apply values (map (lambda (i) (ly:make-pitch 0 i 0)) (iota 8))) > }

to work as intended, by creating a chord enclosing all 8 pitches.

In addition, in analogy to the unquote-splicing operator ,@ the form

{ < $@(map (lambda (i) (ly:make-pitch 0 i 0)) (iota 8)) > }

is provided for interpolating a list of Scheme expressions into the
token stream.
Documentation/changes.tely
Documentation/extending/scheme-tutorial.itely
lily/include/lily-lexer.hh
lily/lexer.ll
lily/parse-scm.cc
lily/parser.yy
scm/parser-ly-from-scheme.scm