ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
5 декабря
104743 Топик полностью
bialix (12.11.2007 10:51, просмотров: 199) ответил Evgeny_CD на Система скрытых тегов в исходниках - как бы такое залудить?
Евгений -- вам +1 за то, что научились читаемо оформлять мысли. По существу: Лично я до сих пор не согласен с предпосылкой, что doxygen-комментарии засирают исходник. Были приведены тогда ужасные примеры из либы WinAVR, на которые не следует равняться(!). Однако это не значит, что все на самом деле так плохо. Опыт использования docstring в питон-проетках показывает, что они есть божественное благо. Сравнивать моск с stdin и кричать, что комментарии мусор -- это бред. Раскройте глаза шире, раскройте мозг шире и избавьтесь наконец от стереотипов. По сути ваша проблема называется: где бы мне взять такой шаблонизатор (templator), чтобы он работал как мне надо и при этом был легко читаем. Шаблонизаторы пишутся за 10 минут левой ногой, пока они достаточно просты. А со временем превращаются в монстров. Теперь по существу. Как это я бы решил при помощи Cog в первом приближении. Для вставки параметризированного кода нужно 2 лишних строки-коммента в вашем конечном Си-коде:
/* [[[cog insert_code(code_id, param1, parm2, param3,...) ]]] */
/* [[[end]]] */
Естественно, функцию insert_code вам придется написать руками. Она и будет собственно из шаблона делать конечный настроенный си-код. Вопрос "как" ее написать должен начинаться с ТЗ, как вы собираетесь тюнить "блок кода", синтаксиса "блока кода" и синтаксиса настраиваемых частей. Используя опцию cog -c можно защитить вставленный код от повторной перегенерации, если вы руками в нем что-то поменяли. Еще один вариант при использовании Cog -- шаблон держать в отдельном файле, например с расширением .cog, а автосгенерированный сохранять в .c. Правда в этом случае теряется возможность легко защищиать внесенные руками изменения. Но, если вспомнить например про diff3, то можно делать merge ваших правок и автогенерированного кода (сам Cog этого по default не умеет, но если игра стоит свеч, то можно и научить). Однако я бы в качестве проверки идеи начал с первого варианта с включением директив cog прямо в исходник. ИМХО: Евгений -- складывается впечатление, что вы заняты умозрительными поисками серебрянной пули. Линус Торвальдс называет это "интеллектуальной мастурбацией". Хотите редактор вот тюнить. Ваша идея будет стоить ноль для тех, кто не захочет юзать ваш затюненный редактор, а останется верным vim или Emacs. Вы для начала попробуйте реализовать свою идею да хоть на тех же многоэтажных ifdef для проверки. Я предложил вполне легкую идею с Cog. Сначала надо прототип отработать, а уж потом бросаться в тюнинг редакторов. Это все было мое ИМХО.