Когда будет доступна более новая версия flex для windows?

Я использую Flex (лексический анализатор, а не Adobe Flex) в проекте. Тем не менее, я хочу иметь возможность компилировать и на платформах Windows, но самая новая версия для Windows- только 2.5.4a, поэтому мой файл для версии 2.5.35 не будет компилироваться. И нет, я не могу перейти на самую высокую поддерживаемую версию Windows.

Кто-нибудь знает о планах по обновлению версии Windows, или у вас есть предложения по компиляции на Windows?

2 ответа

Решение

Вы можете задать вопрос в списке рассылки или принять участие в проекте Flex самостоятельно. Я думаю, что кодовая база для Flex некоторое время оставалась статичной, но я не знаю, кто поддерживает порт Windows. Тем временем...

Я бы порекомендовал включить полученный источник в ваш проект.

  1. Сгенерируйте лексер в системе Linux для создания ваших файлов lex.c/lex.h (или чего-либо еще)
  2. Включите эти файлы в исходный код Win32 C перед сборкой

Если у вас нет прямого доступа к системе Linux, вам может подойти виртуальная машина. Исходный код Flex должен соответствовать некоторым стандартам C, основанным на Windows, но большинство различий в POSIX можно изменить, чтобы довольно легко использовать Win32 API.

Может быть распространять как:

/src/source_files.c
/src/lex.l
/src/win32_lex/lex.c

Таким образом, системы с современным flex могут генерировать исходный код из файла lex, а системы Windows, компилирующие исходный код, могут использовать дополнительные предварительно обработанные C-файлы.

За исключением использования некоторого пользовательского пространства POSIX (Cygwin или что-то еще).

Требуется немного доработки, но разве это не та портативность для вас!

Сборки Windows для Flex 2.5.35 существуют, но, к сожалению, они не являются автономными. Вы можете скачать сборку MINGW здесь, а сборку Cygwin здесь; см. также другой вопрос stackru. Каждая сборка требует, чтобы было установлено соответствующее ядро ​​(MINGW или Cygwin).

Другие вопросы по тегам