структур (количество базовых типов фиксированно, но вложенные структуры и массивы возможны)?
Не понял, а чем оно должно отличаться от парсинга произвольного простого C-like языка? А это решается flex+bison (или любыми аналогами).
так ничем, просто как это сделать за 5 минут на либкланг я уже щнаю, а на фоекс/бизон ещё нет :)
А в SWIG ? Подходящее?
Э? Нет? Мне нужно просто распарсить c-like структуру и сделать некоторые действия на каждом узле (поле, вложенная структура, массив). Не очень виду как SWIG здесь может помочь
Не подходит - значит не подоходит
https://github.com/nothings/stb/blob/master/stb_c_lexer.h
https://tomassetti.me/antlr-mega-tutorial/ ? Какой у вас стек языков?
Сделал на флексе в итоге (бизон сначала был для валидации, которую мне было лень пилить самому, но потом я её дропнул), получилось изи действительно
Во. Флекс - средство старое и проверенное
Как лопата. А что в задорном и радостном должно быть?
поменьше глобалов а-ля YYTOKEN ну и какой-то более гуманный интерфейс вообще
У меня в одном проекте посоны используют REFlex (что-то на плюсах, с блекждеком, исключениями и далее), хз какой там интерфейс, но вроде не жалуются
Если про bison, то может и можно сделать красивее, но и к такому быстро привыкаешь
флекс эмулирует интерфейс бизона же
Не, это вы с yacc путаете. Flex - это генератор лексических анализаторов. Их вообще по отдельности можно использовать
Flex, кстати, тоже умеет плюсовый код генерить, но ещё лет 10-15 назад это была экспериментальная фича, и я не уверен что её стабильной сделали
Умеет, использую, разницы не заметил.
%define api.pure full
Обсуждают сегодня