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