// -*- C++ -*- #ifndef LYXLEX_PIMPL_H #define LYXLEX_PIMPL_H #include #include "lyxlex.h" #ifdef __GNUG__ #pragma interface #endif /// struct LyXLex::Pimpl { /// enum { /// LEX_MAX_BUFF = 2048 }; /// struct pushed_table { /// pushed_table(){ next = 0; table_elem = 0; } /// pushed_table * next; /// keyword_item * table_elem; /// int table_siz; }; Pimpl(keyword_item * tab, int num); string const GetString() const; void printError(string const & message) const; void printTable(std::ostream & os); void pushTable(keyword_item * tab, int num); void popTable(); bool setFile(string const & filename); void setStream(std::istream & i); bool next(bool esc = false); /// int search_kw(char const * const tag) const; int lex(); bool EatLine(); bool nextToken(); void pushToken(string const &); /// fb__ is only used to open files, the stream is accessed through is std::filebuf fb__; /// the stream that we use. std::istream is; /// string name; /// keyword_item * table; /// int no_items; /// char buff[LEX_MAX_BUFF]; /// short status; /// pushed_table * pushed; /// int lineno; /// string pushTok; }; #endif