> 
> > 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 


Reply via email to