2008/8/8 Carl D. Sorensen <[EMAIL PROTECTED]>:
> This experience causes me to believe that there is a bug in the parser
> related to chordmode.
I presume you've had a look at lexer.ll?
It seems a bit dodgy to me that Lily_lexer::scan_bare_word () checks
for a match in the chord modifier hash table if YYSTATE == notes *or*
chords; once chordmode is entered, the hash table is initialized, and
will remain live, which produces a false match in notemode for 'm'.
Changing line 827 from
else if ((handle = scm_hashq_get_handle (chordmodifier_tab_, sym)) !=
SCM_BOOL_F)
to
else if ((YYSTATE == chords)
&& (handle = scm_hashq_get_handle (chordmodifier_tab_,
sym)) != SCM_BOOL_F)
prevents it from returning an erroneous match in notemode so it can
return a string instead.
Whether this is a proper fix, I'm unsure, but it certainly allows your
snippet to compile OK.
Regards,
Neil
_______________________________________________
bug-lilypond mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-lilypond