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 (1|| !source_file_l_ ) {
33 cerr << "error at EOF" << sz_l << '\n';
38 char const* ch_C = here_ch_C();
41 while ( ( *ch_C == ' ' ) || ( *ch_C == '\t' ) || ( *ch_C == '\n' ) )
52 My_midi_lexer::here_ch_C()
54 return source_file_l_->ch_C() + char_count_ ;
58 My_midi_lexer::varint2_i( String str )
62 for ( int i = 0; i < str.length_i(); i++ ) {
66 if ( ! ( byte & 0x80 ) )
69 cout << "\nvarint2_i:" << String_convert::bin2hex_str( str ) << endl;
70 assert( 0 ); // illegal varint
75 My_midi_lexer::close_i()