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

Reply via email to