source file of the LilyPond music typesetter
- (c) 1996--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1996--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
*/
BLACK [^ \n\t\f\r]
RESTNAME [rs]
NOTECOMMAND \\{A}+
+MARKUPCOMMAND \\({A}|[-_])+
LYRICS ({AA}|{TEX})[^0-9 \t\n\f]*
ESCAPED [nt\\'"]
EXTENDER __
// windows-suck-suck-suck
}
-<INITIAL,chords,incl,lyrics,notes,figures>{
+<INITIAL,chords,incl,markup,lyrics,notes,figures>{
"%{" {
yy_push_state (longcomment);
}
yylval.scm = sval;
return SCM_T;
}
-<INITIAL,notes>{
+<INITIAL,notes,markup>{
\<\< {
return CHORD_OPEN;
}
\" {
start_quote ();
}
- {NOTECOMMAND} {
+ {MARKUPCOMMAND} {
String str (YYText() + 1);
SCM s = lookup_markup_command (str);
- if (gh_pair_p (s)) {
+ if (gh_pair_p (s) && gh_symbol_p (gh_cdr (s)) ) {
yylval.scm = gh_car(s);
SCM tag = gh_cdr(s);
if (tag == ly_symbol2scm("markup0"))
return MARKUP_HEAD_MARKUP0_MARKUP1;
else if (tag == ly_symbol2scm ("markup-list0"))
return MARKUP_HEAD_LIST0;
- else if (tag == ly_symbol2scm ("scm0"))
+ else if (tag == ly_symbol2scm ("scheme0"))
return MARKUP_HEAD_SCM0;
- else if (tag == ly_symbol2scm ("scm0-scm1"))
+ else if (tag == ly_symbol2scm ("scheme0-scheme1"))
return MARKUP_HEAD_SCM0_SCM1;
- else if (tag == ly_symbol2scm ("scm0-markup1"))
+ else if (tag == ly_symbol2scm ("scheme0-markup1"))
return MARKUP_HEAD_SCM0_MARKUP1;
- else if (tag == ly_symbol2scm ("scm0-scm1-markup2"))
+ else if (tag == ly_symbol2scm ("scheme0-scheme1-markup2"))
return MARKUP_HEAD_SCM0_SCM1_MARKUP2;
else {
ly_display_scm (s);
} else
return scan_escaped_word (str);
}
- {WORD} {
- /* ugr. This sux. */
+ {LYRICS} {
String s (YYText ());
- if (s == "__")
- return yylval.i = EXTENDER;
- if (s == "--")
- return yylval.i = HYPHEN;
- s = lyric_fudge (s);
char c = s[s.length () - 1];
if (c == '{' || c == '}') // brace open is for not confusing dumb tools.
}
+/*
+ substittute _ adn \,
+*/
String
lyric_fudge (String s)
{