2 // my-midi-lexer.cc -- implement My_midi_lexer
4 // copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
11 return midi_lexer_l_g->yylex();
14 My_midi_lexer* midi_lexer_l_g = 0;
16 My_midi_lexer::My_midi_lexer( String &filename_str, Sources * sources )
18 source_file_l_ =sources->get_file_l(filename_str);
19 switch_streams( source_file_l_->istream_l() );
24 My_midi_lexer::~My_midi_lexer()
26 // delete source_file_p_;
30 My_midi_lexer::error( char const* sz_l )
32 if ( !source_file_l_ ) {
33 cerr << "error at EOF" << sz_l << '\n';
35 char const* ch_C = here_ch_C();
38 while ( ( *ch_C == ' ' ) || ( *ch_C == '\t' ) || ( *ch_C == '\n' ) )
43 ::error( sz_l, ch_C );
48 My_midi_lexer::here_ch_C()
50 return source_file_l_->ch_C() + char_count_ ;
54 My_midi_lexer::varint2_i( String str )
58 for ( int i = 0; i < str.length_i(); i++ ) {
62 if ( ! ( byte & 0x80 ) )
65 cout << "\nvarint2_i:" << String_convert::bin2hex_str( str ) << endl;
66 assert( 0 ); // illegal varint
71 My_midi_lexer::close_i()