lilypond-auto
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lilypond-auto] Issue 2883 in lilypond: Patch: Make arguments like C


From: lilypond
Subject: Re: [Lilypond-auto] Issue 2883 in lilypond: Patch: Make arguments like Context.GrobName accessible as symbol lists
Date: Thu, 18 Oct 2012 10:14:32 +0000

Updates:
        Labels: -Patch-needs_work Patch-new

Comment #23 on issue 2883 by address@hidden: Patch: Make arguments like Context.GrobName accessible as symbol lists
http://code.google.com/p/lilypond/issues/detail?id=2883#c23

This is the non-invasive version of the full Issue 2883 patch.

The sole difference is a different python/convertrules.py file, and a
consequently much more confined conversion as the last commit.  It
does not show the full potential of the approach, obviously.


Run scripts/auxiliar/update-with-convert-ly.sh


Change \footnote user interface and behavior to match \hide/\omit etc.

This does the following changes to the footnote user interface for
footnotes in music rather than in markups:

Time-based footnote syntax:

    \footnote [mark] offset #'Grob text \default
->  \footnote [mark] offset text [ Context. ] Grob

Like with any override, you now need to specify Context if it is not
supposed to be Bottom, like with Staff.TimeSignature.

Music-based footnote syntax:

    \footnote [mark] offset text music
->  stays identical

    \footnote [mark] offset #'Grob text music
->  \single\footnote [mark] offset text Grob music

Specifying Context.Grob is possible, but Context gets ignored.

Let \overrideProperty accept nested properties


Change \tweak syntax to symbol syntax

Instead of \tweak #'color, \tweak color is used.
Instead of \tweak Accidental #'color, \tweak Accidental.color is used.

convert-ly rule for \alterbroken, \accidentalStyle, \overrideProperty

This is required since not all of the old call forms can be
automatically recognized anymore, in particular not when the
Scheme-only form #"Context.GrobName" is being used.

Change \accidentalStyle to get a symbol list as argument

This changes the syntax of \accidentalStyle to accept specs like
Voice.piano-cautionary .

Make \alterBroken, \hide, \omit, \overrideProperty, \shape take unquoted Context.Grob specs

This changes the syntax of the named commands to accept
Voice.Accidental and similar specifications without any quoting.

Replace the rather fuzzy list-or-symbol? with symbol-list-or-symbol?

list-or-symbol? was previously used in the meaning of
symbol-list-or-symbol? only, and there is no point in not checking the
list members for actually being symbols, in order to avoid ugly
surprises later.

Add symbol-list-or-music? predicate

This is of interest for commands like \hide which accept either music
(to see an override) or a grob specification like Accidental or
Voice.Accidental.

Allow the string "xxx.yyy" to parse as a symbol list

This changes the parser to let xxx.yyy be a valid way of specifying a
function argument required to be #'(xxx yyy).

Allow property and grob paths to be constructed from strings


Add symbol-list? predicate


Allow LilyPond strings to stand in for symbols when parsing

Bare words and quote-enclosed words meeting word syntax can now be
used when a function argument expects to see a symbol.

Let \accidentalStyle detect its optional context argument by looking at its letter case

This is a fishy stopgap measure to let \accidentalStyle able to
distinguish #'Voice "default" from "default" alone while we generate
symbols from from #'Voice as well as "default".  If the first letter
is uppercase, the symbol is considered to be a context specification.

Factor SCM_IDENTIFIER out from embedded_scm_arg*

SCM_IDENTIFIER indicates "active Scheme" introduced with $ that is
subject to copying and reinterpretation.  While the parser had its own
*_IDENTIFIER category for everything interpreted specially, the
fallback SCM_IDENTIFIER itself never needed special or different
treatment from material generated with # (SCM_TOKEN).  As the various
*_IDENTIFIER types are faded out, this is changing.  As a consequence,
SCM_IDENTIFIER no longer shares the non-terminals with other
Scheme-type definitions.

parser.yy: make is_regular_identifier match the lexer definition

is_regular_identifier checks now for valid identifiers employing the
definition of words that is also used in the lexer: letters, and
characters outside of the ASCII range, interspersed with single - and
_ characters.

parser.yy: FRACTION does not require a closed expression before it

FRACTION items can't trail any other valid expression without
separating '*' or similar, so the argument list before them does not
need to be of "closed" type.

Assignments can't contain literal lyric music (wrong lexer mode)

Since assignments can't happen in lyrics mode (only in INITIAL mode or
the initial music mode), there is no point in supporting
non-mode-switching items on the right side of assignments that can
only occur in lyrics mode.

http://codereview.appspot.com/6651053




reply via email to

[Prev in Thread] Current Thread [Next in Thread]