Синтаксический контроль позволяет выявить все объекты, которые затронутся при изменении любого заданного объекта.
Кроме случаев, когда используются макросы. Поскольку макросы - надсинтаксическая конструкция.
Для того, чтобы гарантировать, что все объекты компилируются правильно при изменении макроса приходится компилировать все объекты. Кроме того, компиляцию приходится делать многопроходной.
Сразу отвечу на вопрос - а можно ли заставить синтаксический анализатор учитывать макросы? Ответ - нет. Поскольку есть условные макросы и могут быть макросы в макросах. (Вспомни, как организована компиляция C и C++ в инструментальных средах - на основании информации об использовании ФАЙЛОВ, а не объектов)
Если макросов нет, то при изменении любого объекта достаточно перекомпилировать объекты, интерфейсно связанные с данным объектом.
|