Я сомневаюсь, что вы найдете инструмент, который делает именно то, что вы хотите, или даже близко к тому, что вы хотите.
Вы могли бы написать «частичную» грамматику Java, которая сканирует входной файл для //@ ...
и /*@ ... @*/
непосредственно сопровождается объявлением метода.Под «частичным» я подразумеваю, что вы не семантически анализируете входной источник, а выполняете его только на лексическом уровне (только для токенов).Убедитесь, что вы учитываете строковые литералы: вы не хотите, чтобы литерал String s = "/*@";
был началом спецификации JML.
Два хорошо известных генератора синтаксического анализа для Java:
- ANTLR
- JavaCC
Освоение любого из них займет немного времени, особенно если вы новичокдля генераторов синтаксического анализатора, но как только вы освоитесь, создать небольшую грамматику, которая сможет сделать это надежно, совсем немного.