ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
92925 Топик полностью
Evgeny_CD (30.06.2007 00:55, просмотров: 1) ответил Vit на Размышления и вопросы около
Хочется достичь баланса между "автоматизмом" тулзы и сроком ее разработки. За напоминание про условную компиляцию - спасибо! Специальное форматирование С файлов с секциями вводить не хочется потому, что "всываемые" снаружи исходники не будут иметь такого форматирования, а юзать их надо - ради этого все и придумано :)) Собственно, ручной режим регистрации сущностей придуман, чтобы: * не разбираться со сложными С конструкциями (иначе придется повторить здоровенный кусок компилера) * помечать всякие хитрожопые data driven сущности. Техника hidden comment - одна из важнейших частей моей идеи! * вводить совершенно неизвестные компилеру сущности IPC, как-то mail box'ы, пайпы, и прочий стафф. Чтобы потом отражать их на графах и анализировать. Такую работу может только человек сделать! * чтобы отфильтровать важое. Мне не нужен полный граф, включая все i,j проекта!!! Такую фильтрацию проще всего мозгами выполнить. Конечно, должен быть режим, в котором введенные в ручную идентификаторы сравниваются с Ctags, и выдается список - что у нас не обработано. Насчет условной компиляции - придется значек специальный на графе помечать - то это условня хрень, зависит от такого-то параметра. Еще одна сущность в базе появлется, кстати. Можно так. На строке с ifdef ставим идентификатор. Что это именно ifdef. Становимся на сущность. Батон. При классификации указываем, что сущность находится под властью if-def. Тулза шарит по базе, находит список ifdef (в порядке удаления их от места сущности) и спрашивате - от какого зависим? Помечаем. Можно и автоматом разобраться, по коду погуляв, что данная сущность входит в ifdef блок. Не так уже и сложно. Идея с препроцессором мне не сильно нравится, ибо для обработки тектов по моей методике нужен только редактор, и тулза. Так что ее можно делать где угодно. А если нет на машине кросс-компилера, и идет разработка в синтетическом порте на VC, где другой набор файлов и дефайнов, как быть с ARM частью кода?