Хочется достичь баланса между "автоматизмом" тулзы и сроком ее разработки. За напоминание про условную компиляцию - спасибо! Специальное форматирование С файлов с секциями вводить не хочется потому, что "всываемые" снаружи исходники не будут иметь такого форматирования, а юзать их надо - ради этого все и придумано :))
Собственно, ручной режим регистрации сущностей придуман, чтобы:
* не разбираться со сложными С конструкциями (иначе придется повторить здоровенный кусок компилера)
* помечать всякие хитрожопые data driven сущности. Техника hidden comment - одна из важнейших частей моей идеи!
* вводить совершенно неизвестные компилеру сущности IPC, как-то mail box'ы, пайпы, и прочий стафф. Чтобы потом отражать их на графах и анализировать. Такую работу может только человек сделать!
* чтобы отфильтровать важое. Мне не нужен полный граф, включая все i,j проекта!!! Такую фильтрацию проще всего мозгами выполнить.
Конечно, должен быть режим, в котором введенные в ручную идентификаторы сравниваются с Ctags, и выдается список - что у нас не обработано.
Насчет условной компиляции - придется значек специальный на графе помечать - то это условня хрень, зависит от такого-то параметра. Еще одна сущность в базе появлется, кстати.
Можно так. На строке с ifdef ставим идентификатор. Что это именно ifdef.
Становимся на сущность. Батон. При классификации указываем, что сущность находится под властью if-def. Тулза шарит по базе, находит список ifdef (в порядке удаления их от места сущности) и спрашивате - от какого зависим? Помечаем. Можно и автоматом разобраться, по коду погуляв, что данная сущность входит в ifdef блок. Не так уже и сложно.
Идея с препроцессором мне не сильно нравится, ибо для обработки тектов по моей методике нужен только редактор, и тулза. Так что ее можно делать где угодно. А если нет на машине кросс-компилера, и идет разработка в синтетическом порте на VC, где другой набор файлов и дефайнов, как быть с ARM частью кода?
-
- Т.е. всё-таки работу компилера/препроцессора делать тулзой, ну и добавить функционал... Vit(201 знак., 30.06.2007 01:53, )