Hi David,

Le 17/10/2020 à 05:45, David Wright a écrit :
On Fri 16 Oct 2020 at 15:50:55 (+0200), Jean Abou Samra wrote:

The reason for that is that \version, like \include, has nothing to do
with LP's functionality. \version is just a syntax property of the
file containing it. Used sensibly, it allows convert-ly to convert a
collection of files of different syntax vintages automatically,
without your having to specify the vintage of each file in the command
line. (It just reads the \version contained in each file.)

Yes, LP warns about the top-level file not containing a \version,
and generates an error message (and sets a return code) whenever
it meets a version number greater than its own. But so long as the
actual syntax encountered does not violate its own version, LP's
processing is unaffected, which is the point I'm trying to make.

I checked this and you are right.I thought there was an internal
mechanism for scoping, but investigation of the source code shows that
\version is actually recognized by a lexer rule.

Were the OP to carry out the cut&paste as I suggested, and possibly
reduce each movement to, say, a dozen measures, it might be easier
to appreciate the logical structure of the sonata's source without
being confused by the irrelevant physical structure of the files.
That's why I posted the two example files demonstrating which
lines in foo.ly generate which annotations in foo.pdf. (One hopes
that the OP is using an editor that can re-indent the pasted-together
source, which might also help to clarify the overall structure.)

Yes, absolutely. I was not trying to contradict you but just to
expand on your answer.

Cheers,
Jean

Reply via email to