Correct left text alignment of DynamicTextSpanner.
[lilypond.git] / lily / include / includable-lexer.hh
blob768e759b54f1deb5be4646f3023fb119c80854e3
1 /*
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>
7 */
9 #ifndef INCLUDABLE_LEXER_HH
10 #define INCLUDABLE_LEXER_HH
12 #ifndef LEXER_CC
13 #include <FlexLexer.h>
14 #endif
16 #include "std-string.hh"
17 #include "std-vector.hh"
18 #include "lily-proto.hh"
20 // GIGA urg!
21 typedef struct yy_buffer_state *YY_BUFFER_STATE;
23 /**
24 an yyFlexLexer child with provisions for inclusion.
26 class Includable_lexer : public yyFlexLexer
28 vector<YY_BUFFER_STATE> state_stack_;
30 protected:
31 bool close_input ();
32 vector<Source_file*> include_stack_;
33 vector<int> char_count_stack_;
35 public:
37 Includable_lexer ();
38 ~Includable_lexer ();
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