Автоматическая генерация классов для объектов интерфейса

Некоторое время назад я задумывался об авто генерации классов, тогда я хотел использовать xml+xslt для того чтобы генерировать описания и загрузчики объектов интерфейса. Недавно я снова вернулся к этой идее и понял что использовать связку xml+xslt очень геморно, в связи с особенностями xslt. Если делаешь однопроходный парсинг то xml файл получается очень нагроможденным. Помучившись около часа я плюнул на эту затею и начал писать код на C++. В результате за несколько часов было написано около 600 строк кода и теперь у меня есть весьма неплохой генератор.

Из вот такого файла:

Генерируется вот такой вот исходник:

Таким образом сразу генерируются функции загрузки и отображения объекта (по требованию), генерируются врапперы для сигналов и слотов, которые работают с понятными параметрами а не с args->int_args, что очень сильно помогает упростить жизнь)
Благодаря такому подходу достаточно легким становится написание редактора интерфейса, который будет парсить данный файл и узнавать список параметров.
Также раньше всплывала проблема сложности определения входных параметров каждого объекта, однако при наличии файла описание всегда есть где посмотреть не ковыряясь в куче кода.
В общем один профит)


Comments are closed.