Я пытаюсь написать расширенный компилятор Java, который выдает все ошибки и предупреждения от javac, а также некоторые ошибки для пользовательских неподдерживаемых функций java.
Поскольку это будет работать на сервере, я хотел быгенерировать синтаксическое дерево только один раз, чтобы повысить производительность.Прямо сейчас я расширяю класс javax.annotation.processing.AbstractProcessor , чтобы генерировать свои собственные ошибки, используя объект ProcessingEnvironment, сгенерированный JavaCompiler API
. Я реализовал это с помощью класса TreeScannerобеспечено солнцем.Однако это не идеально, так как реализация не является открытым исходным кодом, не включена во все JDK, и нет гарантии, что она будет работать с будущими версиями Java Compiler API.
Вот почему я пытался использовать org.eclipse.jdt.core.dom.ASTParser вместо синтаксического анализатора, предоставленного sun, но я не нашел способа использовать объект ProcessingEnvironment, созданный API JavaCompiler.
Кто-нибудь знает, как это сделатьэто или альтернативно, как генерировать все ошибки и предупреждения компилятора, просто используя jdt?
Если вы знаете другую библиотеку, которая может помочь мне решить эту проблему, это также мне очень поможет!
Imизвините, если этот вопрос уже задавался здесь, я искал целый день, но не смог найти лучшего решения, чем использование реализации от sun