2 includable-lexer.hh -- declare Includable_lexer
4 source file of the LilyPond music typesetter
6 (c) 1997--2007 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"
17 #include "std-vector.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 vector
<YY_BUFFER_STATE
> state_stack_
;
32 vector
<Source_file
*> include_stack_
;
33 vector
<int> char_count_stack_
;
40 /// store dependencies for Makefile stuff.
41 vector
<string
> file_name_strings_
;
43 Source_file
*get_source_file () const;
44 virtual void new_input (string s
, Sources
*);
46 void new_input (string name
, string data
, Sources
*);
48 char const *here_str0 () const;
51 #endif // INCLUDABLE_LEXER_HH