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

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

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


person Jorn    schedule 18.07.2009    source источник


Ответы (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 или что-то еще).

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

person Aiden Bell    schedule 18.07.2009
comment
+1, лично я просто использую Cygwin, когда меняются файлы .lex/.y. - person Simeon Pilgrim; 21.07.2009
comment
Не могли бы вы объяснить, как использовать Cygwin для компиляции с использованием версии Flex для Linux? Я пытался использовать его для этого проекта, но не продвинулся очень далеко. - person Jorn; 26.07.2009
comment
Как скомпилировать исходный код Flex или сгенерировать файлы C из Flex? Должна уже существовать cygwin-версия Flex - person Aiden Bell; 26.07.2009

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

person JPaget    schedule 08.05.2010