Сразу скажу, что знаю, есть, Javaparser проект, но он от сторонних разработчиков. Я просто не могу понять если java компилируется в байт-код из исходников, то должен быть и парсер, разве нет? Под парсером я понимаю построение структуры компилируемого приложения, чтобы, например, можно было получить узел определенной переменной по имени. В чем тут подводные камни, если такая фича не предусмотрена(про javap знаю, но он работает с байт-кодом, а не исходниками)
У компилятора Java есть API. На его использовании построена кодогенерация Lombok, например. Примеры его использования есть на Stackoverflow, например этот ответ и этот.
Java написана на C++ (сейчас частично переписывается). Поэтому обеспечить доступ к синтаксическому дереву задача не тривиальная.
А так как это мало кому было нужно, то добавлять эту фичу не стали.
Продвижение своими сайтами как стратегия роста и независимости