--- /dev/null
+/*
+ includable-lexer.hh -- declare
+
+ source file of the LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef INCLUDABLE_LEXER_HH
+#define INCLUDABLE_LEXER_HH
+#include "string.hh"
+#include <FlexLexer.h>
+#include "varray.hh"
+#include "fproto.hh"
+#include "proto.hh"
+
+// GIGA urg!
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+/**
+ an yyFlexLexer child with provisions for inclusion.
+ */
+class Includable_lexer : public yyFlexLexer {
+ Array<YY_BUFFER_STATE> state_stack_;
+protected:
+ bool close_input();
+ Array<Source_file*> include_stack_;
+ Array<int> char_count_stack_;
+public:
+ void new_input(String s,Sources*);
+ Includable_lexer();
+ ~Includable_lexer();
+ void add_lexed_char(int);
+ char const * here_ch_C();
+};
+
+
+#endif // INCLUDABLE_LEXER_HH