Анализатор исходного кода Java, который поддерживает аннотации - PullRequest
2 голосов
/ 31 мая 2011

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

В частности, такой код:

@WebMethod(operationName = "MyOperation")
public String myOperation(String param1,int param2) { ....
}

У меня есть следующие требования:
1. Извлеките имя, тип возвращаемого значения и имена и типы параметров метода
2. Извлечь аннотации, связанные с методом
3. Наконец, создайте новый исходный файл, удалив аннотации

В настоящее время я использую JaxMeJS http://ws.apache.org/jaxme/js/jparser.html, который удовлетворяет 1., но не 2. или 3.

Не могли бы вы порекомендовать библиотеку синтаксического анализа, которая может выполнить все 3 требования?

Ответы [ 4 ]

0 голосов
/ 17 февраля 2017

Как насчет использования JDT-парсера ?

JDT означает Инструменты разработки Java. Затмение использовать это.

Я также сделал свой проект с ним. Это действительно приятно. И об этом много информации.

0 голосов
/ 31 мая 2011

Я думаю APT , как подсказал Томас Юнг, то, что вам нужно.Тем не менее, если вы хотите изучить другие варианты, проверьте Java 6 грамматика для antlr

0 голосов
/ 31 мая 2011

JavaCC поставляется с парсером 1.5.

0 голосов
/ 31 мая 2011

Обработка аннотации является частью инструмента обработки аннотаций в Java, который работает как часть компилятора Java. Я не уверен, как вы можете удалить аннотации из исходного кода. Это не поддерживается APT. (Может быть проще удалить аннотации из байтового кода компилятора, чем из исходного кода.)

Я реализовал генератор исходного кода на основе аннотаций с использованием APT в проекте Quickcheck .

Другой корень мог бы использовать ASM (или любой другой инструмент манипулирования байтовым кодом) для чтения аннотаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...