Ответ 1
Поскольку у вас есть хорошо сформированное дерево для остальной части приложения, и вы хотите вставить не-правильно сформированный текст в определенном месте, вы в значительной степени не можете сделать это с помощью стандартной вставки дерева node механизмы.
Важно то, что вы создаете текст для действительного текста программы с вставленным фрагментом в нужном месте. Где-то там должна быть часть логики, которая печатает AST как текст. Что вам нужно сделать, так это попросить, чтобы AST был напечатан в виде текста, и уловил его в середине этого процесса в нужном месте, чтобы вставить произвольный текст.
В нашем инструменте DMS Software Reengineering Toolkit есть входные/выходные файлы print- node в его симпатичном принтере, чтобы это происходило.
Если такие вещи не существуют в JDT/AST, вы можете попытаться изменить свой симпатичный принтер, чтобы дать вам этот крючок. Кроме того, вы можете рассмотреть возможность изменения JDT/AST путем добавления другого дерева node типа, который не является частью стандартного набора, который просто содержит произвольный текст, но действует как метод node. Предположительно каждый node управляет тем, что напечатано; то вы можете определить красивую печать для этого дерева node, чтобы заставить его выводить текст.
Окончательное действительно взломанное решение: вставьте абсолютно действующий АСТ, куда будет отправлен произвольный текст, содержащий где-то фиктивный идентификатор с уникальным именем, например ZZZ. Затем напечатайте AST до строки и выполните последующую обработку строки, чтобы заменить фиктивные деревья, содержащие уникальное имя, фактическим пользовательским текстом.