+int
+Lily_lexer::scan_shorthand (const string &str)
+{
+ SCM sid = lookup_identifier (str);
+ if (Music *m = unsmob_music (sid))
+ {
+ m->set_spot (override_input (last_input_));
+ }
+
+ if (sid != SCM_UNDEFINED)
+ return scan_scm_id (sid);
+
+ string msg (_f ("undefined character or shorthand: %s", str));
+ LexerError (msg.c_str ());
+
+ yylval = ly_string2scm (str);
+
+ return STRING;
+}
+