Как разбирать groovy код?

Так как groovy хорошо разбирается в чем угодно, поиск по анализу кода groovy не покажет никаких хороших результатов - поэтому я надеюсь, что сообщество SO сможет помочь: -)

Я хотел бы написать какой-то (графический) редактор для классов домена grails, но не хочу изобретать колесо.

Легко проверить класс домена путем отражения, но я хотел бы сделать еще один шаг - я хочу изменить код и записать его как файл класса домена.

Одна из проблем заключается в том, что отражение (и афаик АСТ тоже) отбросит все комментарии и форматирование (форматирование - не большая проблема, я мог бы распечатать файл)...

Любые идеи, где я могу найти парсер groovy, на котором я могу строить свои идеи?

Ответы

Ответ 1

Вам следует внимательно изучить источник GroovyDocTool.

GroovyDoc использует GroovyLexer и GroovyRecognizer для анализа текстов классов (для создания файлов документации GroovyDoc HTML, аналогичных файлам JavaDoc HTML) и использует эти классы для создания AST из данного исходного текста.

Сгенерированный текст AST и текст исходного кода используются для перехода через структуру класса (см. SimpleGroovyClassDocAssembler), извлечения комментариев и различных других метаданных для заполнения структуры данных GroovyDoc.

Ответ 2

ASM должен выполнить большую часть работы для вас....

Дополнительные классы в Groovy Код, вероятно, обернут вокруг ASM: -

Как только у вас есть посетитель, если в API Groovy есть встроенный адаптер, он может быть "более или менее" простым...