Приемы профессиональной работы в UNIX


Ctags - создание файла признаков исходного кода проекта - часть 6


Теперь, когда мы знакомы с общим форматом редактируемого файла признаков, можем ли мы применить его для других полезных целей? Мы знаем, что мы можем идентифицировать регулярные структуры в программах на Сии создать признаки, с помощью которых можно получить доступ к этим структурам в редакторе. В программах на Си имеются не только имена функций, но и другие интересные конструкции, например имена структур. Их можно обслуживать с помощью модифицированной версии ctags. Единственное, что нам нужно знать,- это официальный синтаксис структуры данных. Структура данных, которая нас бы заинтересовала, часто имеет такой формат:

struct name { int val1; char val2; };

Все, что мы должны сделать,- это заставить awk искать все появления определения структуры. Затем мы можем построить файл признаков, в котором признаком является имя структуры. Этот файл, видимо, будет таким же, как и прежде, а строка поиска будет обнаруживать определение структуры, а не имя функции. Фактически, комбинация утилиты awk, признаков и редактора может быть использована для любого вида информации, которую вы можете захотеть хранить в файле специального формата, например для адресов, заметок, библиографических ссылок и т.д. Вам просто нужно подобрать соответствующие разделители и правильно их использовать.

Мы надеемся, что облегчили сопровождение ваших программ и предложили вам идеи для других способов автоматической обработки документации. Вы можете без особого труда учреждать и поддерживать локальные соглашения о документации с помощью командных файлов, аналогичных представленным здесь. Примером проекта, за который вы можете взяться, является согласование наших программ извлечения информации (stripf, stripc, strips) и других программ, которые вы пишете, таким образом, чтобы они могли читать файл-формирователь (makefile, см. Make(1)) и выдавать полную документацию по всем исходным файлам, участвующим в данном проекте.




Начало  Назад  



Книжный магазин