[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond
From: |
lilypond |
Subject: |
Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond? |
Date: |
Sun, 19 Feb 2012 16:19:49 -0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sun, Feb 19, 2012 at 02:48:05AM -0800, Michael Hendry wrote:
>
> >> #DEFINE NotYet
> >> ...
> >> #IFNDEF NotYet
> >> \book {
> >> \bookOutputName "Chez Fernand (alto)"
> >> \new Score
> >> <<
> >> \transpose f' d {\TheChords}
> >> \new Staff
> >> \repeat unfold 13 {
> >> s1 \noBreak s1 \noBreak s1 \noBreak s1 \break }
> >> \transpose f' d {\TheHead}
> >>>>
> >> \header {piece = "Alto Sax"}
> >> }
> >> #ENDIF
>
...
> Of course, I know about block comments, and
> if there were only one section I wanted to suppress during the development
> of piece that would be fine. But I have several sections I'd like to switch
> off during data entry, and I'd like to be able to switch them all on again
> with a single edit without having to remember where they are - in much the
> same way as a C programmer will scatter debugging code through a project,
> and switch it off for the final compilation.
>
> So it would be:
>
> #define debugging
>
> ... several pages of code ...
>
> #ifdef debugging
> ... print something on the screen, and await a user response ...
> #endif
>
> ... several more pages of code ...
>
> #ifdef debugging
> ... do something else that's useful in the debugging process ...
> #endif
Please forgive my exercise in total conjecture, as I have not
tested any of the concepts below, but perhaps UNIX's m4 macro
preprocessor can provide the tools you seek without requiring any
changes to LilyPond.
Since that I infer you possess knowledge of the C language's
macro capabilities, would it suit your needs to simply write your
LilyPond source code to conform with m4(1), and then use m4's
macro capabilities to do what you want? Using a wheel which
has already been invented, as it were.
I'll admit that I'm not intimately familiar with m4, so please
forgive me if you've tried this and found it unworkable.
> I envisage a series of #define statements at the head of the main .ly file
> such as:
>
> #define concert_part
> #define guitar_part
> #undef alto_part
> #define clarinet_part
>
> which would alter the output from the included "parts.ly" file.
Or, you could set/unset variables from the command line:
m4 -Dconcert_part -Dguitar_part -Ualto_part -Dclarinet_part \
parts.ly \
| lilypond
Jim
- Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Michael Hendry, 2012/02/19
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Helge Kruse, 2012/02/19
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Michael Hendry, 2012/02/19
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?,
lilypond <=
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Michael Hendry, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, David Kastrup, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Michael Hendry, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, David Kastrup, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Michael Hendry, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, David Kastrup, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, David Kastrup, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, Michael Hendry, 2012/02/20
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, David Kastrup, 2012/02/22
- Re: Is there an equivalent of #define ... #ifndef ... #endif in lilypond?, David Kastrup, 2012/02/23