#include "blif_lexer.hpp"

//Windows doesn't have unistd.h, so we set '%option nounistd' 
//in blif_lexer.l, but flex still includes it in the generated 
//header unless YY_NO_UNISTD_H is defined to 1
#define YY_NO_UNISTD_H 1
#include "blif_lexer.gen.hpp" //For blifparse_lex_*()

extern YY_DECL; //For blifparse_lex()

namespace blifparse {

Lexer::Lexer(FILE* file, Callback& callback)
    : callback_(callback) {
    blifparse_lex_init(&state_);
    blifparse_set_in(file, state_);
}

Lexer::~Lexer() {
    blifparse_lex_destroy(state_);
}

Parser::symbol_type Lexer::next_token() {
    return blifparse_lex(state_, callback_);
}

const char* Lexer::text() const {
    return blifparse_get_text(state_);
}

int Lexer::lineno() const {
    return blifparse_get_lineno(state_);
}

}

#include "blif_lexer.hpp"
#include "blif_lexer.gen.hpp" //For blifparse_lex_*()

extern YY_DECL; //For blifparse_lex()

namespace blifparse {

Lexer::Lexer(FILE* file, Callback& callback)
    : callback_(callback) {
    blifparse_lex_init(&state_);
    blifparse_set_in(file, state_);
}

Lexer::~Lexer() {
    blifparse_lex_destroy(state_);
}

Parser::symbol_type Lexer::next_token() {
    return blifparse_lex(state_, callback_);
}

const char* Lexer::text() const {
    return blifparse_get_text(state_);
}

int Lexer::lineno() const {
    return blifparse_get_lineno(state_);
}

}

--- 
+++ 
@@ -1,4 +1,9 @@
 #include "blif_lexer.hpp"
+
+//Windows doesn't have unistd.h, so we set '%option nounistd' 
+//in blif_lexer.l, but flex still includes it in the generated 
+//header unless YY_NO_UNISTD_H is defined to 1
+#define YY_NO_UNISTD_H 1
 #include "blif_lexer.gen.hpp" //For blifparse_lex_*()
 
 extern YY_DECL; //For blifparse_lex()
Remove unistd.h inclusion for Windows
