2 // my-midi-lexer.cc -- implement My_midi_lexer
4 // copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
6 #include "string-convert.hh"
7 #include "mi2mu-global.hh"
8 #include "my-midi-lexer.hh"
10 #include "source-file.hh"
15 return midi_lexer_l_g->yylex();
18 My_midi_lexer* midi_lexer_l_g = 0;
20 My_midi_lexer::My_midi_lexer (String &filename_str, Sources * sources)
22 source_file_l_ = sources->get_file_l(filename_str);
24 ::error ("can't find: `" + filename_str + "'");
25 switch_streams (source_file_l_->istream_l(), 0);
28 running_status_i_ = 0;
31 My_midi_lexer::~My_midi_lexer()
33 // delete source_file_p_;
37 My_midi_lexer::error (char const* sz_l)
39 if (1|| !source_file_l_) {
40 cerr << "error at EOF: `" << sz_l << "'\n";
45 char const* ch_C = here_ch_C();
48 while ( (*ch_C == ' ') || (*ch_C == '\t') || (*ch_C == '\n'))
59 My_midi_lexer::here_ch_C()
61 return source_file_l_->ch_C() + char_count_ ;
65 My_midi_lexer::varint2_i (String str)
69 for (int i = 0; i < str.length_i(); i++) {
76 cout << "\nvarint2_i:" << String_convert::bin2hex_str (str) << endl;
77 assert (0); // illegal varint
82 My_midi_lexer::close_i()