Есть ли способ напечатать проанализированный AST, сохранив исходные комментарии, но без использования ICompilationUnit? - PullRequest
0 голосов
/ 07 апреля 2019

Я хочу проанализировать файл Java с диска, получить его AST с помощью JDT, затем распечатать его и сравнить с исходным источником, чтобы убедиться, что здание AST не потеряло никакой информации.

Я прочитал содержимое файла на диске, а затем использовал ASTParser для его анализа. Проблема заключается в том, что CompilationUnit не имеет никаких вспомогательных методов для печати исходного AST.

Я знаю, что комментарии хранятся отдельно и как посетители могут использовать комментарии для поиска комментариев. Однако я не уверен, как эту информацию можно использовать для восстановления исходного файла.

Я видел примеры, которые используют ICompilationUnit для получения источника и получения от них информации о комментариях. Но это не решает мою проблему по двум причинам. 1. Я не хочу получать комментарии от источника, так как у меня нет информации об источнике во время печати. 2. Я хочу запустить это как простой тест JUnit, а не тест плагина, поэтому я не смогу сгенерировать корень рабочего пространства и, следовательно, объекты IJavaModel.

Мне было интересно, если мне не хватает каких-либо методов API, которые печатают с сохранением оригинальных лексических токенов? Возможно, связано, есть ли способ создать ICompilationUnit внутри теста JUnit?

...