<INITIAL,chords,lyrics,figures,notes>{BOM_UTF8}/.* {
if (this->lexloc_->line_number () != 1 || this->lexloc_->column_number () != 0)
{
- LexerError (_ ("stray UTF-8 BOM encountered").c_str ());
- exit (1);
+ LexerWarning (_ ("stray UTF-8 BOM encountered").c_str ());
+ // exit (1);
}
debug_output (_ ("Skipping UTF-8 BOM"));
}
SCM sid = lookup_identifier (str);
if (is_music_function (sid))
{
+ int funtype = MUSIC_FUNCTION;
+
yylval.scm = get_music_function_transform (sid);
SCM s = scm_object_property (yylval.scm, ly_symbol2scm ("music-function-signature"));
+ if (scm_is_eq (scm_car (s), ly_lily_module_constant ("scheme-function")))
+ funtype = SCM_FUNCTION;
+
push_extra_token (EXPECT_NO_MORE_ARGS);
- for (; scm_is_pair (s); s = scm_cdr (s))
+ for (s = scm_cdr (s); scm_is_pair (s); s = scm_cdr (s))
{
SCM cs = scm_car (s);
push_extra_token (EXPECT_SCM);
else programming_error ("Function parameter without type-checking predicate");
}
- return MUSIC_FUNCTION;
+ return funtype;
}
if (sid != SCM_UNDEFINED)