| #ifndef BLIF_LEXER_HPP |
| #define BLIF_LEXER_HPP |
| |
| #include "blifparse.hpp" //For blifparse::Callback |
| #include "blif_parser.hpp" //For Parser::symbol_type |
| |
| namespace blifparse { |
| |
| 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_; |
| }; |
| |
| /* |
| * 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 blifparse::Parser::symbol_type blifparse_lex(yyscan_t yyscanner, blifparse::Callback& callback) |
| |
| } //namespace |
| #endif |