Re: Bug in \relative parsing?
David Kastrup <[email protected]>
| Newsgroups | gmane.comp.gnu.lilypond.devel |
|---|---|
| Message-ID | <[email protected]> |
Luca Fascione <[email protected]> writes: > On second thought, I don't think it is all that obvious that my original > interpretation was wrong, David. > You said > > On Fri, Aug 21, 2026 at 9:02 AM David Kastrup <[email protected]> wrote: > >> your understanding is wrong. \relative takes >> a _pitch_ argument as its start, not a note, so this is parsed as >> >> \relative a' { 4 } { c } >> > > Although my understanding of the frontend's current behavior was wrong, I > believe my expectation was reasonable, > because this issue of mine stems from the grammar ambiguity introduced by > making the startpitch argument to \relative optional. No, it doesn't. The interpretation with non-optional pitch would be exactly the same. > The ambiguity resolution in `\relative a'4` you're saying today goes to > `\relative a' { 4 }`, but I expected it would go to `\relative { a'4 }` == > `\relative a' { a'4 }` instead, I don't think that would have happened: an LALR(1) grammar is likely too greedy for that. And humans tend to be greedier, so I guess you are somewhat alone with your interpretation. > because this is what a human would expect What am I, chopped liver? This is what _one_ human would expect. > no effect on the score, whereas if one insists on the current eager > parsing, it would feel more useful if the behaviour of unattached > duration/articulations was as if the previous note were explicitly > repeated inside: `f \relative a' { 4 }` == `f \relative a' { f4 }`, > meaning printing the second f an octave higher, in this example. So you think if I wrote \relative { c'4. 8 4 4 } that each note should be an octave higher than the last one? That does not sound useful to me at all. -- David Kastrup