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_
)
41 cerr
<< "error at EOF: `" << sz_l
<< "'\n";
48 char const* ch_C
= here_ch_C();
52 while ( (*ch_C
== ' ') || (*ch_C
== '\t') || (*ch_C
== '\n'))
63 My_midi_lexer::here_ch_C()
65 return source_file_l_
->ch_C() + char_count_
;
69 My_midi_lexer::varint2_i (String str
)
73 for (int i
= 0; i
< str
.length_i(); i
++)
81 cout
<< "\nvarint2_i:" << String_convert::bin2hex_str (str
) << endl
;
82 assert (0); // illegal varint
87 My_midi_lexer::close_i()