X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fincludable-lexer.cc;h=df0851b148cbf9d1d4c51d4118d2037757655b81;hb=545092a25d8ca41dc90b87482474b3719f7130a9;hp=a757385a1d1a29ec9909c53148415ff22765eb6d;hpb=6721fc6f4e26e0bf88b744fe171330cb182e52ff;p=lilypond.git diff --git a/lily/includable-lexer.cc b/lily/includable-lexer.cc index a757385a1d..df0851b148 100644 --- a/lily/includable-lexer.cc +++ b/lily/includable-lexer.cc @@ -3,13 +3,15 @@ source file of the LilyPond music typesetter - (c) 1997--2004 Han-Wen Nienhuys + (c) 1997--2005 Han-Wen Nienhuys */ +#include "includable-lexer.hh" + #include -#include "config.h" +using namespace std; -#include "includable-lexer.hh" +#include "config.hh" #include "file-path.hh" #include "source-file.hh" #include "source.hh" @@ -21,14 +23,14 @@ #endif #ifndef YY_START -#define YY_START\ - ((yy_start - 1) / 2) +#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 @@ -46,10 +48,10 @@ Includable_lexer::new_input (String name, Sources *sources) { if (!allow_includes_b_) { - LexerError (_ ("include files are not allowed").to_str0 ()); + LexerError (_ ("include files are not allowed in safe mode").to_str0 ()); return; } - + Source_file *file = sources->get_file (name); if (!file) { @@ -57,25 +59,24 @@ Includable_lexer::new_input (String name, Sources *sources) msg += "\n"; msg += _f ("(search path: `%s')", sources->path_->to_string ().to_str0 ()); - msg += "\n"; LexerError (msg.to_str0 ()); return; } - filename_strings_.push (file->name_string ()); + file_name_strings_.push (file->name_string ()); char_count_stack_.push (0); if (yy_current_buffer) state_stack_.push (yy_current_buffer); - if (verbose_global_b) + if (be_verbose_global) progress_indication (String ("[") + name); - + include_stack_.push (file); /* Ugh. We'd want to create a buffer from the bytes directly. - Whoops. The size argument to yy_create_buffer is not the - filelength but a BUFFERSIZE. Maybe this is why reading stdin fucks up. */ + Whoops. The size argument to yy_create_buffer is not the + filelength but a BUFFERSIZE. Maybe this is why reading stdin fucks up. */ yy_switch_to_buffer (yy_create_buffer (file->get_istream (), YY_BUF_SIZE)); } @@ -84,13 +85,13 @@ Includable_lexer::new_input (String name, String data, Sources *sources) { Source_file *file = new Source_file (name, data); sources->add (file); - filename_strings_.push (name); + file_name_strings_.push (name); char_count_stack_.push (0); if (yy_current_buffer) state_stack_.push (yy_current_buffer); - if (verbose_global_b) + if (be_verbose_global) progress_indication (String ("[") + name); include_stack_.push (file); @@ -98,31 +99,31 @@ Includable_lexer::new_input (String name, String data, Sources *sources) } /** pop the inputstack. conceptually this is a destructor, but it - does not destruct the Source_file that Includable_lexer::new_input - creates. */ + does not destruct the Source_file that Includable_lexer::new_input + creates. */ bool Includable_lexer::close_input () { include_stack_.pop (); char_count_stack_.pop (); - if (verbose_global_b) + if (be_verbose_global) progress_indication ("]"); yy_delete_buffer (yy_current_buffer); -#if HAVE_FLEXLEXER_YY_CURRENT_BUFFER +#if HAVE_FLEXLEXER_YY_CURRENT_BUFFER yy_current_buffer = 0; -#endif +#endif if (state_stack_.is_empty ()) { -#if HAVE_FLEXLEXER_YY_CURRENT_BUFFER +#if HAVE_FLEXLEXER_YY_CURRENT_BUFFER yy_current_buffer = 0; -#endif +#endif return false; } yy_switch_to_buffer (state_stack_.pop ()); return true; } -char const* +char const * Includable_lexer::here_str0 () const { if (include_stack_.is_empty ()) @@ -133,25 +134,13 @@ Includable_lexer::here_str0 () const Includable_lexer::~Includable_lexer () { while (!include_stack_.is_empty ()) - { - close_input (); - } -} -/** - Since we don't create the buffer state from the bytes directly, we - don't know about the location of the lexer. Add this as a - YY_USER_ACTION */ -void -Includable_lexer::add_lexed_char (int count) -{ - char_count_stack_.top () += count; + close_input (); } -Source_file* +Source_file * Includable_lexer::get_source_file () const { if (include_stack_.is_empty ()) return 0; - else - return include_stack_.top (); + return include_stack_.top (); }