Urs Liska <u...@openlilylib.org> writes: > Am 06.06.2013 13:35, schrieb David Kastrup:
>> Putting an "item" of type symbol-list-or-music? last seems like a >> reasonably good idea. > Hm, I think I see what you mean, > but if I write > > annotate = > > #(define-void-function (parser location type properties annotation item) > > (string? list? string? symbol-list-or-music?)) > > \relative g' { > > \annotate > > "critremark" > > #'() > > "Tenuto added as in Vc. 2" > > Script > > g1-- > > } > > > I get an error "Zu viel Vorgriff" (too much read-ahead?). > If I replace 'Script' with '{ c }' for example it compiles without message. > ??? And if you do annotate = #(define-music-function (parser location type properties annotation item) (string? list? string? symbol-list-or-music?) #{ #}) it also compiles fine (which explains why \shape does not blow up around our ears). Looks like I have something more to fix in the parser... >>>> It is probably worth considering to make properties of type context-mod? >>>> (potentially optional), then you can write the argument as >>>> >>>> \with { >>>> voice = "vc1" >>>> source = "Ms. 2" >>>> author = "Urs Liska" >>>> date = "2013-06-06" >>>> } >>> That looks very good. How would the values then be accessed? Are they >>> simple variables inside the function? Or does that also create an >>> alist internally > Obviously I'm missing that extra bit outside your quote. > > annotate = > > #(define-void-function (parser location type properties annotation item) > > (string? context-mod? string? symbol-list-or-music?)) You mean ly:context-mod? -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user