코드 조각을 선택했으며 선택한 코드의 메서드 식별 방법을 사용하여 AST를 구문 분석하려고합니다. 당신이 볼 수 있듯이AST로 선택된 코드 구문 분석
public void run(IAction action) {
SelectedText selectedText;
IEditorPart editor = getActiveEditor();
if (editor instanceof AbstractTextEditor) {
selectedText = getSelectedText(editor);
creteAST(selectedText);
}
}
private void creteAST(SelectedText selectedText) {
CompilationUnit parse = parse(selectedText);
MethodVisitor visitor = new MethodVisitor();
parse.accept(visitor);
System.out.println("Printing methods from the selected code");
for (MethodDeclaration method : visitor.getMethods()) {
System.out.println("Method name: " + method.getName()+ ". Return type: " + method.getReturnType2());
System.out.println(method);
}
}
private static CompilationUnit parse(SelectedText selectedText) {
String s_text = selectedText.getSelectedText();
char[] c_text = s_text.toCharArray();
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(c_text);
parser.setResolveBindings(true);
return (CompilationUnit) parser.createAST(null);
}
, 나는 구문 분석하기 전에 char[]
에 SelectedText
에서 유형을 변경해야합니다.
파서가 어떤 방법도 찾지 못해서 뭔가 잘못하고 있습니다.
내가 뭘 잘못하고 있니? ASTParser.setResolveBindings에 대한
감사합니다. 유용한 정보 !!! 하지만 javaProject와 name을 얻는 방법을 알고 있습니까 ??? 나는 어떤 정보를 찾으려고하지만, 어떤 방법으로도 찾지 않으려 고한다 .- ( – Jose
아마도'JavaModelManager.getJavaModelManager(). getJavaModel(). getJavaProject()'는 활성 프로젝트를 반환해야한다. grepcode에서 ASTParser 사용에 대한 예제를 찾아라 : http : // grepcode .com/search/usages? id = repo1.maven.org $ maven2 @ org.eclipse.tycho $ org.eclipse.jdt.core @ 3.8.2.v20120814-155456 @ org $ eclipse $ jdt $ core $ dom @ ASTParser & 형식 = 유형 & k = u – mantrid