dificuldade relacionada ao unistd.h ao compilar o programa bison & flex sob vc ++

Estou usando o bison & flex (baixado via cygwin) com vc ++. Ao compilar o programa, recebi um erro:

...: fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory

O código correspondente no arquivo gerado por flex é:

#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 * down here because we want the user's section 1 to have been scanned first.
 * The user has a chance to override it with an option.
 */
/* %if-c-only */
#include <unistd.h>
/* %endif */
/* %if-c++-only */
/* %endif */
#endif

Se eu definir YY_NO_UNISTD_H no arquivo flex (.l), este erro desaparecerá, mas recebo vários outros erros:

...: error C2447: '{' : missing function header (old-style formal list?)
...: warning C4018: '<' : signed/unsigned mismatch
...: error C3861: 'isatty': identifier not found

Como posso resolver este problema?

Todos esses erros ocorrem no scanner gerado por flex.

Eu sei que é porque unistd.h não existe no Windows. Eu tenho que escrever meu próprio unistd.h? Se sim, como escrevê-lo para eliminar esses erros?

questionAnswers(8)

yourAnswerToTheQuestion