logo search
инт

5.3.1.3. Средства поиска на основе шаблонов

Средства поиска на основе шаблонов в качестве входных данных получают исходный код на языке программирования и запрос на языке шаблонов (образцов). На выходе выдается информация о том, какие строки исходного программного кода соответствуют спецификации шаблона.

В запросе можно также указать поиск последовательности операторов. В таком случае запрос понимается как поиск указанной последовательности операторов в любом месте исследуемого кода. Вся последовательность воспринимается как один запрос.

Для того чтобы специфицировать запрос к исходному коду, используется язык образцов. Язык образцов для спецификации запроса является расширением базового языка. Расширения включают набор специальных символов, которые используются для замены синтаксических сущностей базового языка. Без учета дополнительных расширений запрос может состоять из участка программы для осуществления конкретного поиска по исходному тексту. Когда же спецификация запроса включает дополнительный символ или символы, то они играют роль абстрактных шаблонов. Шаблоны потенциально могут быть заменены реальными фрагментами кода в соответствии с семантикой того или иного символа.

Специальные символы языка запросов применяются для замены синтаксических сущностей, таких как:

Запросы могут быть следующих типов:

Для примера приведено несколько конструкций запросов. В качестве базового языка выбран язык С.