Я новичок на языке программирования Java. Я хочу извлечь AST из исходного кода Java и распечатать AST для файла или стандартного вывода.Извлечение АСТ из JAVA и печать АСТ в файл
Я следовал этому руководству, чтобы узнать, как работать с АСТ. http://www.programcreek.com/2011/01/a-complete-standalone-example-of-astparser/
Так что в соответствии с этим код, который я имею до сих пор, выглядит следующим образом.
import java.util.HashSet;
import java.util.Set;
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.SimpleName;
import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
public class Test {
public static void main(String args[]){
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource("public class A { int i = 9; \n int j; \n ArrayList<Integer> al = new ArrayList<Integer>();j=1000; }".toCharArray());
//parser.setSource("/*abc*/".toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);
//ASTNode node = parser.createAST(null);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
}
}
Я попытался следующий фрагмент кода, чтобы распечатать его на стандартный вывод, но он не дал мне результат я ожидал,
System.out.println(cu.getAST().toString());
Если кто-то может помочь мне напечатать AST из к файлу это было бы большой помощью.
Заранее спасибо.
И какой результат вы ожидаете? – Andremoniy
Я хотел распечатать весь АСТ, но результат был примерно таким: «[email protected]» – hbn1991
Вам нужно вручную перейти через структуру объекта 'cu.getAST() и распечатать что ты хочешь. Никто (я надеюсь) не сделает это, а не сам. – Andremoniy