Я хочу проанализировать файл Java с диска, получить его AST с помощью JDT, затем распечатать его и сравнить с исходным источником, чтобы убедиться, что здание AST не потеряло никакой информации.
Я прочитал содержимое файла на диске, а затем использовал ASTParser для его анализа. Проблема заключается в том, что CompilationUnit не имеет никаких вспомогательных методов для печати исходного AST.
Я знаю, что комментарии хранятся отдельно и как посетители могут использовать комментарии для поиска комментариев. Однако я не уверен, как эту информацию можно использовать для восстановления исходного файла.
Я видел примеры, которые используют ICompilationUnit для получения источника и получения от них информации о комментариях. Но это не решает мою проблему по двум причинам. 1. Я не хочу получать комментарии от источника, так как у меня нет информации об источнике во время печати. 2. Я хочу запустить это как простой тест JUnit, а не тест плагина, поэтому я не смогу сгенерировать корень рабочего пространства и, следовательно, объекты IJavaModel.
Мне было интересно, если мне не хватает каких-либо методов API, которые печатают с сохранением оригинальных лексических токенов? Возможно, связано, есть ли способ создать ICompilationUnit внутри теста JUnit?