#ifndef TATUM_LEXER_HPP #define TATUM_LEXER_HPP #include "tatumparse.hpp" //For tatumparse::Callback #include "tatumparse_parser.hpp" //For Parser::symbol_type namespace tatumparse { typedef void* yyscan_t; class Lexer { public: Lexer(FILE* file, Callback& callback); ~Lexer(); Parser::symbol_type next_token(); const char* text() const; int lineno() const; private: yyscan_t state_; Callback& callback_; }; } //namespace /* * The YY_DECL is used by flex to specify the signature of the main * lexer function. * * We re-define it to something reasonable */ #undef YY_DECL #define YY_DECL tatumparse::Parser::symbol_type tatumparse_lex(yyscan_t yyscanner, tatumparse::Callback& callback) #endif