X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fincludable-lexer.cc;h=8567ec91718c470e0e24741902d85911dff391b3;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=2eb5df5cb3deaea4a8f29e110d2bff9b67d59e4b;hpb=2fd463683cab91b18c1d241bca208764867f1503;p=lilypond.git diff --git a/lily/includable-lexer.cc b/lily/includable-lexer.cc index 2eb5df5cb3..8567ec9171 100644 --- a/lily/includable-lexer.cc +++ b/lily/includable-lexer.cc @@ -1,9 +1,20 @@ /* - includable-lexer.cc -- implement Includable_lexer + This file is part of LilyPond, the GNU music typesetter. - source file of the LilyPond music typesetter + Copyright (C) 1997--2015 Han-Wen Nienhuys - (c) 1997--2009 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "includable-lexer.hh" @@ -26,14 +37,14 @@ using namespace std; #endif #ifndef YY_START -#define YY_START \ +#define YY_START \ ((yy_start - 1) / 2) #define YYSTATE YY_START #endif /* Flex >= 2.5.29 has include stack; but we don't use that yet. */ #if !HAVE_FLEXLEXER_YY_CURRENT_BUFFER -#define yy_current_buffer \ +#define yy_current_buffer \ (yy_buffer_stack != 0 ? yy_buffer_stack[yy_buffer_stack_top] : 0) #endif @@ -48,7 +59,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 (const string &name, Sources *sources) { string current_dir = dir_name (main_input_name_); if (relative_includes) @@ -60,7 +71,7 @@ Includable_lexer::new_input (string name, Sources *sources) string msg = _f ("cannot find file: `%s'", name); msg += "\n"; msg += _f ("(search path: `%s')", - (current_dir.length () ? (current_dir + PATHSEP) : "") + sources->path_->to_string ().c_str ()); + (current_dir.length () ? (current_dir + PATHSEP) : "") + sources->path_->to_string ().c_str ()); LexerError (msg.c_str ()); return; } @@ -70,13 +81,8 @@ Includable_lexer::new_input (string name, Sources *sources) if (yy_current_buffer) state_stack_.push_back (yy_current_buffer); - if (be_verbose_global) - { - string spaces = ""; - for (size_t i = 0; i < state_stack_.size (); i++) - spaces += " "; - progress_indication (string ("\n") + spaces + string ("[") + file->name_string ()); - } + debug_output (string (state_stack_.size (), ' ') // indentation! + + string ("[") + file->name_string ()); include_stack_.push_back (file); @@ -88,7 +94,7 @@ Includable_lexer::new_input (string name, Sources *sources) } void -Includable_lexer::new_input (string name, string data, Sources *sources) +Includable_lexer::new_input (const string &name, string data, Sources *sources) { Source_file *file = new Source_file (name, data); sources->add (file); @@ -98,13 +104,8 @@ Includable_lexer::new_input (string name, string data, Sources *sources) if (yy_current_buffer) state_stack_.push_back (yy_current_buffer); - if (be_verbose_global) - { - string spaces = ""; - for (size_t i = 0; i < state_stack_.size (); i++) - spaces += " "; - progress_indication (string ("\n") + spaces + string ("[") + name); - } + debug_output (string (state_stack_.size (), ' ') // indentation! + + string ("[") + name); include_stack_.push_back (file); yy_switch_to_buffer (yy_create_buffer (file->get_istream (), YY_BUF_SIZE)); @@ -118,8 +119,7 @@ Includable_lexer::close_input () { include_stack_.pop_back (); char_count_stack_.pop_back (); - if (be_verbose_global) - progress_indication ("]"); + debug_output ("]", false); yy_delete_buffer (yy_current_buffer); #if HAVE_FLEXLEXER_YY_CURRENT_BUFFER yy_current_buffer = 0;