2 includable-lexer.hh -- declare Includable_lexer
4 source file of the LilyPond music typesetter
6 (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
9 #ifndef INCLUDABLE_LEXER_HH
10 #define INCLUDABLE_LEXER_HH
13 #include <FlexLexer.h>
16 #include "std-string.hh"
18 #include "lily-proto.hh"
21 typedef struct yy_buffer_state *YY_BUFFER_STATE;
24 an yyFlexLexer child with provisions for inclusion.
26 class Includable_lexer : public yyFlexLexer
28 Array<YY_BUFFER_STATE> state_stack_;
32 Link_array<Source_file> include_stack_;
33 Array<int> char_count_stack_;
36 bool allow_includes_b_;
41 /// store dependencies for Makefile stuff.
42 Array<std::string> file_name_strings_;
44 Source_file *get_source_file () const;
45 void new_input (std::string s, Sources *);
46 void new_input (std::string name, std::string data, Sources *);
48 char const *here_str0 () const;
51 #endif // INCLUDABLE_LEXER_HH