>
> > Semicolons are needed precisely in the following locations:
> > after "simple" assignments
> > after keywords that require them
> >
> > What is the gain of requiring semicolons after simple assignments?
>
> I could experiment with leaving them out. The trouble is that the ;
> act as separators, and without ; the lnaguage might become ambiguous.
>
Well, they've been optional for a while---I think as long as I've been
using LilyPond, I think. They are currently not required outside of
the \paper block. The language isn't ambiguous because the RHS of an
identifier assignment must be one single item.
> > Note that convert-mudela doesn't add the semicolons that are now needed
> > with mudela 1.0.6. For example, I always used to write
> > \paper{linewidth=-1.0}
>
> I am surprised that this works (this used to be impossible)
It doesn't work now. It USED to work. Once I figured out the rule
for semicolons, I put them only where they were needed. That rule
used to be: semicolons are required ONLY after keywords that require
them. (It seems they were also required after assignments in
translators.)
Here is the current rule for identifiers:
add_declaration:
STRING {
THIS->remember_spot ();
}
/* cont */ '=' identifier_init optional_semicolon
but inside translators we have
translator_spec_body STRING '=' simple_identifier_init ';'
which is the same as the old version.
Inside paper we have
paper_def_body STRING '=' simple_identifier_init ';'
In version 1.0.12 it was this:
paper_body STRING '=' simple_identifier_init optional_semicolon