X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fincludable-lexer.cc;h=26eafeaf255cb40fdbd886987a1be30476bcffd2;hb=18c39bfee02951055e27f737a11525062033503d;hp=1ec8bcbbad103f557dc0b2bf4505a3fc9b00eaf5;hpb=25db659c539eba1b69214118d745ea0639e91e01;p=lilypond.git diff --git a/lily/includable-lexer.cc b/lily/includable-lexer.cc index 1ec8bcbbad..26eafeaf25 100644 --- a/lily/includable-lexer.cc +++ b/lily/includable-lexer.cc @@ -12,11 +12,13 @@ using namespace std; #include "config.hh" + #include "file-path.hh" +#include "international.hh" +#include "main.hh" #include "source-file.hh" #include "source.hh" #include "warn.hh" -#include "main.hh" #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 @@ -44,7 +46,7 @@ Includable_lexer::Includable_lexer () /** Set the new input file to NAME, remember old file. */ void -Includable_lexer::new_input (String name, Sources *sources) +Includable_lexer::new_input (string name, Sources *sources) { if (!allow_includes_b_) { @@ -55,23 +57,23 @@ Includable_lexer::new_input (String name, Sources *sources) Source_file *file = sources->get_file (name); if (!file) { - String msg = _f ("can't find file: `%s'", name); + string msg = _f ("can't find file: `%s'", name); msg += "\n"; msg += _f ("(search path: `%s')", sources->path_->to_string ().c_str ()); - LexerError (msg.to_str0 ()); + LexerError (msg.c_str ()); return; } - file_name_strings_.push (file->name_string ()); + file_name_strings_.push_back (file->name_string ()); - char_count_stack_.push (0); + char_count_stack_.push_back (0); if (yy_current_buffer) - state_stack_.push (yy_current_buffer); + state_stack_.push_back (yy_current_buffer); if (be_verbose_global) - progress_indication (String ("[") + name); + progress_indication (string ("[") + name); - include_stack_.push (file); + include_stack_.push_back (file); /* Ugh. We'd want to create a buffer from the bytes directly. @@ -81,19 +83,19 @@ Includable_lexer::new_input (String name, Sources *sources) } void -Includable_lexer::new_input (String name, String data, Sources *sources) +Includable_lexer::new_input (string name, string data, Sources *sources) { Source_file *file = new Source_file (name, data); sources->add (file); - file_name_strings_.push (name); + file_name_strings_.push_back (name); - char_count_stack_.push (0); + char_count_stack_.push_back (0); if (yy_current_buffer) - state_stack_.push (yy_current_buffer); + state_stack_.push_back (yy_current_buffer); if (be_verbose_global) - progress_indication (String ("[") + name); - include_stack_.push (file); + progress_indication (string ("[") + name); + include_stack_.push_back (file); yy_switch_to_buffer (yy_create_buffer (file->get_istream (), YY_BUF_SIZE)); } @@ -104,43 +106,44 @@ Includable_lexer::new_input (String name, String data, Sources *sources) bool Includable_lexer::close_input () { - include_stack_.pop (); - char_count_stack_.pop (); + include_stack_.pop_back (); + char_count_stack_.pop_back (); if (be_verbose_global) progress_indication ("]"); yy_delete_buffer (yy_current_buffer); #if HAVE_FLEXLEXER_YY_CURRENT_BUFFER yy_current_buffer = 0; #endif - if (state_stack_.is_empty ()) + if (state_stack_.empty ()) { #if HAVE_FLEXLEXER_YY_CURRENT_BUFFER yy_current_buffer = 0; #endif return false; } - yy_switch_to_buffer (state_stack_.pop ()); + yy_switch_to_buffer (state_stack_.back ()); + state_stack_.pop_back (); return true; } char const * Includable_lexer::here_str0 () const { - if (include_stack_.is_empty ()) + if (include_stack_.empty ()) return 0; - return include_stack_.top ()->to_str0 () + char_count_stack_.top (); + return include_stack_.back ()->c_str () + char_count_stack_.back (); } Includable_lexer::~Includable_lexer () { - while (!include_stack_.is_empty ()) + while (!include_stack_.empty ()) close_input (); } Source_file * Includable_lexer::get_source_file () const { - if (include_stack_.is_empty ()) + if (include_stack_.empty ()) return 0; - return include_stack_.top (); + return include_stack_.back (); }