WORD {A}{AN}*
ALPHAWORD {A}+
INT -?{N}+
-REAL {INT}?\.{N}*
+REAL ({INT}\.{N}*)|(-?\.{N}+)
KEYWORD \\{WORD}
WHITE [ \n\t\f]
BLACK [^ \n\t\f]
return INT;
}
- \+\+ {
- return CONCAT;
- }
\" {
start_quote();
}
/* ugr. This sux. */
String s (YYText());
int i = 0;
- while ((i=s.index_i("_")) != -1) // change word binding "_" to " "
+ while ((i=s.index_i("_")) != -1) // change word binding "_" to " "
*(s.ch_l() + i) = ' ';
if ((i=s.index_i("\\,")) != -1) // change "\," to TeX's "\c "
{
yylval.id = id;
return id->token_code_i_;
}
+ if ( YYSTATE != notes ) {
+ Melodic_req * mel_l = lookup_melodic_req_l(str);
+ if (mel_l) {
+ mtor << "(notename)\n";
+ yylval.melreq = mel_l;
+ return NOTENAME_ID;
+ }
+ }
LexerError( "Unknown escaped string: `" + str + "'");
mtor << "(string)";
String *sp = new String( str);
return NOTENAME_ID;
}
}
-#if 0
- if (YYSTATE != notes) {
- // ugr. Should do this in note mode?
- // Identifier * id = lookup_identifier(str);
- if (id) {
- mtor << "(identifier)\n";
- yylval.id = id;
- return id->token_code_i_;
- }
- }
-#endif
yylval.string=new String( str );
return STRING;
{"duration", DURATIONCOMMAND},
{"absdynamic", ABSDYNAMIC},
{"group", GROUP},
- {"geometric", GEOMETRIC},
{"hshift", HSHIFT},
{"id", ID},
{"in", IN_T},
- {"init_end", INIT_END},
{"requesttranslator", REQUESTTRANSLATOR},
{"lyric", LYRIC},
{"key", KEY},
{"midi", MIDI},
{"mm", MM_T},
{"multi", MULTI},
- {"note", NOTE},
{"notenames", NOTENAMES},
{"octave", OCTAVECOMMAND},
{"output", OUTPUT},
{"script", SCRIPT},
{"skip", SKIP},
{"staff", STAFF},
- {"start", START_T},
{"stem", STEM},
{"table", TABLE},
{"spandynamic", SPANDYNAMIC},
{"texid", TEXID},
{"textstyle", TEXTSTYLE},
{"transpose", TRANSPOSE},
- {"unitspace", UNITSPACE},
- {"width", WIDTH},
{"version", VERSION},
{"grouping", GROUPING},
{0,0}