Простой парсер для JML - PullRequest
       53

Простой парсер для JML

3 голосов
/ 13 апреля 2011

Я ищу парсер, написанный на Java, способный читать JML.

По сути, я хотел бы, чтобы анализатор мог читать блок JML и знать, к какому методу он принадлежит.

Я смотрел на проект OpenJML, но просто настройки проекта слишком много.

1 Ответ

3 голосов
/ 13 апреля 2011

Я сомневаюсь, что вы найдете инструмент, который делает именно то, что вы хотите, или даже близко к тому, что вы хотите.

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

Два хорошо известных генератора синтаксического анализа для Java:

  1. ANTLR
  2. JavaCC

Освоение любого из них займет немного времени, особенно если вы новичокдля генераторов синтаксического анализатора, но как только вы освоитесь, создать небольшую грамматику, которая сможет сделать это надежно, совсем немного.

...