Flex&Bison
От: Аноним  
Дата: 16.11.11 18:08
Оценка:
Если кому необходимы инструменты Flex&Bison под windows, и не хочется для этого устанавливать Cygwin или пользоваться устаревшими версиями, прошу обратить внимание на проект http://sourceforge.net/projects/winflexbison/ Надеюсь этот проект будет полезен, все пожелания и замечания по стараюсь учесть.

Заодно прошу взглянуть на реализацию грида под winapi http://sourceforge.net/projects/cppgrid/ (это мой первый проект). К сожалению документацию я не написал, но если интересно — могу рассказать о нем подробнее. Грид основан на паттерне MVP и вполне работоспособный. Основные задачи, которые я ставил перед собой при разработке контрола: быстрота работы и экономичность по памяти при работе с большим объемом информации; основной режим виртуальный (хотя работа в виртуальном и простом режимах симметрична), поддержка отображения нескольких данных в одной ячейке. Сейчас идет работа над поддержкой всплывающих элементов (дополнительные визуальные элементы появляются в ячейке, когда пользователь наводит на ячейку мышь).
Re: Flex&Bison
От: Аноним  
Дата: 22.11.11 05:25
Оценка:
Здравствуйте, Аноним, Вы писали:

без цигвина?, отлично!
вот только зависимость от ws2_32.dll мне не ясна
Re[2]: Flex&Bison
От: Аноним  
Дата: 22.11.11 11:50
Оценка:
А>без цигвина?, отлично!
Сам страдал :о)

А>вот только зависимость от ws2_32.dll мне не ясна

Где-то в исходниках в паре мест используются функции типа ntohl (перестановка байт в числах).
Я оставил эти функции, хотя, возможно, можно их убрать.
Re[3]: Flex&Bison
От: Аноним  
Дата: 22.11.11 12:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>вот только зависимость от ws2_32.dll мне не ясна

А>Где-то в исходниках в паре мест используются функции типа ntohl (перестановка байт в числах).
А>Я оставил эти функции, хотя, возможно, можно их убрать.

байт своп? вы что смеетесь?
срочно отвязать!
Re[4]: Flex&Bison
От: Аноним  
Дата: 22.11.11 19:46
Оценка:
А>байт своп? вы что смеетесь?
Честное слово я не смеюсь... покопался в исходниках (кстати вы также можете покопаться, исходники прилагаются).
Короче, в коде используются функции htonl и htons для сохранения таблиц символов flex в отдельном файле (опция --tables-file[=FILE]).
В документации по flex версии 2.5.35 в главе 22.3 Tables File Format нашёл следующее предложение: Remember, all integer values
are in network byte order
.

А>срочно отвязать!

Мне кажется преждевременно :о)
Re[5]: Flex&Bison
От: Аноним  
Дата: 23.11.11 05:40
Оценка:
Здравствуйте, Аноним, Вы писали:

htonl htons это байт свопы для int и для short
хватит смеятся, заменяйте их своими макросами и незачем тянуть целую ws32 либ

кстати там еще m4 и для flex и для bison
может их как то вынести и использовать только один?
я бегло глянул одни одинаковые только версий разных
взять что по новее
Re[6]: Flex&Bison
От: Аноним  
Дата: 23.11.11 21:16
Оценка:
А>htonl htons это байт свопы для int и для short
А>хватит смеятся, заменяйте их своими макросами и незачем тянуть целую ws32 либ
Да вы бы сразу код этих макросов привели бы, а то вот придумывать надо.
Такие пойдут?
#define SWAP_BYTE_ORDER_UINT(val)    (((val << 24) & 0xFF000000) |\
                                      ((val <<  8) & 0x00FF0000) |\
                                      ((val >>  8) & 0x0000FF00) |\
                                      ((val >> 24) & 0x000000FF))

#define SWAP_BYTE_OREDR_USHORT(val) (((val << 8) & 0xFF00) |\
                                     ((val >> 8) & 0x00FF))


А>кстати там еще m4 и для flex и для bison

А>может их как то вынести и использовать только один?
А>я бегло глянул одни одинаковые только версий разных
А>взять что по новее
Вопрос, что мы хотим этим добиться? Когда я портировал код, я хотел иметь минимальные зависимости.
Именно поэтому я си-рантайм библиотеку линковал статически. В идеале хотелось бы видеть два исполняемых файла и всё.
Думал как бы от папки ./data в бизоне избавиться, но отступил.
Ежели хочется минимизировать размер исполняемых файлов, то, первым делом, надо линковать си-рантайм как дллку. Даст ощутимую экономию размеров файлов.
Re[7]: Flex&Bison
От: Аноним  
Дата: 24.11.11 05:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>htonl htons это байт свопы для int и для short

А>>хватит смеятся, заменяйте их своими макросами и незачем тянуть целую ws32 либ
А>Да вы бы сразу код этих макросов привели бы, а то вот придумывать надо.
А>Такие пойдут?
А>
А>#define SWAP_BYTE_ORDER_UINT(val)    (((val << 24) & 0xFF000000) |\
А>                                      ((val <<  8) & 0x00FF0000) |\
А>                                      ((val >>  8) & 0x0000FF00) |\
А>                                      ((val >> 24) & 0x000000FF))

А>#define SWAP_BYTE_OREDR_USHORT(val) (((val << 8) & 0xFF00) |\
А>                                     ((val >> 8) & 0x00FF))
А>


подойдут
можно из того же линуха стрельнуть или вообще асм вставкой макрос сделать
они там по три асм комманды

А>>кстати там еще m4 и для flex и для bison

А>>может их как то вынести и использовать только один?
А>>я бегло глянул одни одинаковые только версий разных
А>>взять что по новее
А>Вопрос, что мы хотим этим добиться?

унификации
т.е. зачем в исходниках держать избыточный код который по функциональности повторяется?
выносить этот код в dll что бы получилось два екзе и длл я не хочу.

А>Когда я портировал код, я хотел иметь минимальные зависимости.

А>Именно поэтому я си-рантайм библиотеку линковал статически. В идеале хотелось бы видеть два исполняемых файла и всё.
А>Думал как бы от папки ./data в бизоне избавиться, но отступил.
А>Ежели хочется минимизировать размер исполняемых файлов, то, первым делом, надо линковать си-рантайм как дллку. Даст ощутимую экономию размеров файлов.

впринципе про размер я ничего не говорил, он меня особо не беспокоит
но если начать рефакторить то думаю там многое можно повыкидывать, но это уже на любителя )
Re[7]: Flex&Bison
От: Аноним  
Дата: 25.11.11 05:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>htonl htons это байт свопы для int и для short

А>>хватит смеятся, заменяйте их своими макросами и незачем тянуть целую ws32 либ
А>Да вы бы сразу код этих макросов привели бы, а то вот придумывать надо.
А>Такие пойдут?
А>
А>#define SWAP_BYTE_ORDER_UINT(val)    (((val << 24) & 0xFF000000) |\
А>                                      ((val <<  8) & 0x00FF0000) |\
А>                                      ((val >>  8) & 0x0000FF00) |\
А>                                      ((val >> 24) & 0x000000FF))

А>#define SWAP_BYTE_OREDR_USHORT(val) (((val << 8) & 0xFF00) |\
А>                                     ((val >> 8) & 0x00FF))
А>


поправте здесь и в коде svn_trunk

SWAP_BYTE_OREDR_USHORT — fail
SWAP_BYTE_ORDER_USHORT — good
Re[8]: Flex&Bison
От: Аноним  
Дата: 25.11.11 10:13
Оценка:
А>поправте здесь и в коде svn_trunk

А>SWAP_BYTE_OREDR_USHORT — fail

А>SWAP_BYTE_ORDER_USHORT — good

Что поправить? Яснее, пожалуйста, напишите.
Re[9]: Flex&Bison
От: Аноним  
Дата: 25.11.11 11:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>поправте здесь и в коде svn_trunk


А>>SWAP_BYTE_OREDR_USHORT — fail

А>>SWAP_BYTE_ORDER_USHORT — good

А>Что поправить? Яснее, пожалуйста, напишите.


правильность написания слова ORDER кторая у вас в исходниках за сегодня как OREDR
Re[10]: Flex&Bison
От: Аноним  
Дата: 25.11.11 19:26
Оценка:
А>правильность написания слова ORDER кторая у вас в исходниках за сегодня как OREDR

Упс... спасибо... Теперь вроде все в порядке. Надеюсь мы приблизили этот мир к совершенству еще чуть-чуть :о)
Я выделил код для m4 и общих гнушных библиотек в статическую либу и заиспользовал её в пректах win_flex и win_bison.
Также заменил вызовы подобные htonl на макросы перестановки байт и, тем самым, убрал зависимость от библиотеки Ws2_32.dll

Если будут какие-либо еще пожелания и вопросы — пишите на sourceforge.net, наверное так лучше будет.
Re: Flex&Bison
От: Аноним  
Дата: 01.07.14 15:47
Оценка:
Здравствуйте, Аноним, Вы писали:

сгенерируйте обычные Makefile в проекте что бы можно было с консоли компилировать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.