-<INITIAL,chords,incl,markup,lyrics,notes,figures>{
+<extratoken>{ANY_CHAR} {
+ /* Generate a token without swallowing anything */
+
+ /* First unswallow the eaten character */
+ add_lexed_char (-YYLeng ());
+ yyless (0);
+
+ /* produce requested token */
+ int type = extra_token_types_.back ();
+ extra_token_types_.pop_back ();
+ if (extra_token_types_.empty ())
+ yy_pop_state ();
+
+ return type;
+}
+
+<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);
+ }
+ if (be_verbose_global)
+ message (_ ("Skipping UTF-8 BOM"));
+}
+
+<INITIAL,chords,figures,incl,lyrics,markup,notes>{