Чтобы сделать это хорошо, вам понадобится синтаксический анализатор Java, который сможет анализировать «структуры» (фрагменты Java) и, вероятно, сможет искать соответствующие типы.(Скорее всего, вы могли бы сделать это плохо с помощью некоторого языка сценариев, но он был бы чрезвычайно хрупким и склонным к созданию ложных негативов, что могло бы съесть то самое время, когда вы надеетесь, что этот инструмент может вас спасти).
Наш DMS Software Reengineering Toolkit с Java Front End - это инфраструктура, которая обладает этими возможностями.DMS позволяет создавать произвольные пользовательские инструменты для анализа или преобразования исходного кода.DMS предоставляет синтаксические анализаторы (которые определяются выбранным внешним интерфейсом), конструкторы AST, конструирование таблиц символов для языков, таких как C, C ++, Java и COBOL, инструменты для проверки деревьев как процедурно, так и с использованием шаблонов синтаксиса поверхности, которые позволяют вамнапрямую выражать фрагменты кода (как определено синтаксическим анализом) для генерации кода или для сопоставления с образцом.
Для задачи, которую вы хотите выполнить, вам нужно, чтобы DMS проанализировал интересующее программное обеспечение и назвали разрешение типов (создание таблиц символов).Затем вы захотите использовать синтаксический анализатор шаблонов DMS для чтения вашего «файла спецификации» в виде набора сигнатур методов и т. Д., А также с помощью распознавателя имен для поиска / поиска идентификаторов (например, «demo.Helloworld»), поиска соответствующих классов изатем сопоставьте анализируемый шаблон с сигнатурами метода. А несоответствия сообщат о несоответствии, что, как я думаю, вы ищете.