Dear LilyPond devs,
I have a problem with the LilyPond markup parsing, which prevents me to
finish my new release of LilyPondTool.
Could you help me a bit on that?
I have this ly file
------------------
dot = \markup {
"q" \musicglyph #"accordion.dot"
}
{ c^\dot }
------------------
When the markup is parsed, it will become:
( "q" (musicglyph "accordion.dot"))
through the rules: markup_braced_list -> markup_list -> markup_top ->
full_markup -> identifier_init
This really makes sense, but please correct me if I'm wrong.
Now when I'm referring to it in c^\dot, the following code is run:
if (Text_interface::is_markup (sid)) {
....
return MARKUP_IDENTIFIER;
} else if (Text_interface::is_markup_list (sid)) {
....
return MARKUPLINES_IDENTIFIER;
}
The result of this must be MARKUP_IDENTIFIER (as only those can be used as
direction_reqd_event -> gen_text_def -> full_markup
But if I look in Text_interface.isMarkup, it will just do the following:
return (scm_is_string (x)
|| (scm_is_pair (x)
&& SCM_BOOL_F
!= scm_object_property (scm_car (x),
ly_symbol2scm ("markup-signature"))));
}
So my value, ( "q" (musicglyph "accordion.dot")) will not be considered as a
markup, but instead a markup list, so I'm getting a parse error.
Can you help me where I misunderstand the code?
Thank you,
Bertalan
_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel