Ponieważ masz dobrze uformowane drzewo dla pozostałej części aplikacji i chcesz wstawić nieprecyzyjnie sformatowany tekst w określonym miejscu, nie możesz tego zrobić za pomocą standardowych mechanizmów wstawiania węzłów drzewa .
Ważne jest, aby utworzyć tekst dla poprawnego tekstu programu z wstawionym fragmentem we właściwym miejscu. Gdzieś tam musi być kawałek logiki, który wypisuje AST jako tekst. Musisz poprosić AST o drukowanie w formie tekstu i przechwycić go w środku tego procesu, dokładnie w tym miejscu, aby wstawić dowolny tekst.
Nasz zestaw narzędzi do projektowania repozytoriów DMS wprowadził/wyłączył haczyki węzła drukującego w swoim ślicznym podajniku, aby umożliwić tego rodzaju zdarzenia.
Jeśli takie rzeczy nie istnieją w JDT/AST, możesz spróbować zmodyfikować swój ładny wskaźnik, aby uzyskać ten hak. Alternatywnie można rozważyć modyfikację JDT/AST przez dodanie innego typu węzła drzewa, który nie jest częścią standardowego zestawu, który po prostu posiada dowolny tekst, ale działa jak węzeł metody. Przypuszczalnie każdy węzeł kontroluje to, co jest drukowane; wtedy możesz zdefiniować ładne drukowanie dla tego węzła drzewa, aby spowodować wydrukowanie jego tekstu.
Ostateczne, naprawdę odlotowe rozwiązanie: wstaw idealnie poprawny AST, w którym znajduje się dowolny tekst, zawierający gdzieś fałszywy identyfikator z unikalną nazwą, np. ZZZ. Następnie wydrukuj AST na łańcuchu i postprocesuj ciąg znaków, aby zastąpić fałszywe drzewa zawierające unikatową nazwę rzeczywistym tekstem użytkownika.
Manipulacje AST na ogół wymagają drzew składniowo poprawnych. Jeśli masz niepoprawny kod dla metody, generalnie nie będziesz mieć poprawnego drzewa do wstawienia i nie będziesz w stanie tego zrobić, lub będziesz w stanie to zrobić, ale otrzymasz tylko bezsensowne drzewo jako wynik. –
OK, JST/AST nie wydaje się być właściwym narzędziem ... – Morrandir
Dlaczego musisz wstawić nieprawidłowy kod? –