On 23.09.2015 16:52, David Kastrup wrote:
Simon Albrecht <[email protected]> writes:

<https://sourceforge.net/p/testlilyissues/issues/4617/>

If

$ git grep'= #(context-spec-music'
Documentation/snippets/additional-voices-to-avoid-collisions.ly:voiceFive=  #(co
ly/declarations-init.ly:melisma=  #(context-spec-music (make-property-set 'melis
ly/declarations-init.ly:melismaEnd=  #(context-spec-music (make-property-unset '
ly/property-init.ly:voiceOne=  #(context-spec-music (make-voice-props-set 0)
ly/property-init.ly:voiceTwo=  #(context-spec-music (make-voice-props-set 1)
ly/property-init.ly:voiceThree=  #(context-spec-music (make-voice-props-set 2)
ly/property-init.ly:voiceFour=  #(context-spec-music (make-voice-props-set 3)
ly/property-init.ly:oneVoice=  #(context-spec-music (make-voice-props-revert)
doesn’t deceive me, there are seven commands which output
context-spec-music.

It’s currently possible to use these on top level:

%%%%% \version  "2.19.27"
\melisma
%%%%%
It's possible to use any music variable at top level.

gives no warning or other message, but the attached (nonsense) output.

This becomes a problem when ")" has been redefined and somewhere else
a Scheme expression has mismatched braces:

%%%%% \version  "2.19.27"
")" =\melismaEnd
#(define test "foo"))
%%%%%

An extremely annoying case to debug, I can tell you.

So redefining ")" should not preclude the warnings which turn up
without the redefinition.
What warnings?  You are talking about an error here:

/tmp/riga.ly:1:1: error: syntax error, unexpected EVENT_IDENTIFIER

That’s what I mean. Such a message immediately points to the culprit, which in my real-life case was an unmatched brace, a common source for problems. Without the message, I had to debug hundreds of lines of code within nested include files and without any kind of indication what to look for.


and that error is based exclusively on the _content_ of ")" and not
related to any independently produced warnings.  For example, you can
write \] and just get
/tmp/riga.ly:1:1: warning: cannot find start of ligature

Making an error based on context-spec-music would be quite strange, by
the way, since _many_ toplevel expressions are context-spec-music, like
\new PianoStaff ...

Of course. The title I gave is nonsense then, I see.
I had been afraid there would be complications, but it would be very good if there were a way to give some kind of message pointing to the stray brace.

Yours, Simon

_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to