AST에 Eclipse (org.eclipse.jdt)를 사용합니다.자바 코드를 추상 구문 트리로 구문 분석
나는 (?) 나는 필드의 선언과 사용법을 얻기 위해 온라인에서 유용한 코드를 얻었다고 생각한다. 하지만 루트 노드를 얻는 방법에 대해 고민했습니다.
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(buffer.toString().toCharArray());
parser.setResolveBindings(true);
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
ASTNode root = cu.getRoot();
System.out.println(root.toString());
다음 작업을 수행하면 루트 AST 노드가 아닌 전체 자바 코드가 인쇄됩니다.
대서양 표준시를 오해하고 있는지 잘 모르겠지만이 노드는 여러 노드를 가질 수 있다는 점을 제외하고는 이진 검색 트리와 비슷합니다. (picture)
이에 대한 설명이나 도움이 필요하십니까?
왜 루트 노드를 인쇄 하시겠습니까? 기대했던 결과는 무엇입니까? 'toString()'의 Javadoc은 "디버깅 목적으로 만 적합한이 노드의 문자열 표현을 반환합니다."라고 말하면이 동작은 놀랄 수 있습니다. 반면에 나는 자연스러운 행동을 쉽게 생각할 수 없다. –