bel*_*ace 5 java eclipse abstract-syntax-tree compilationunit eclipse-jdt
如何将.java文件加载到CompilationUnit中?例如,假设我当前项目中有一个A.java文件.我想将它加载到CompilationUnit中,然后将其传递给ASTParser.只是将它作为纯文本加载它不是一个选项,因为在这种情况下我似乎不会获得AST中的绑定信息.
您可以使用jdt和eclipse core库加载项目.
使用以下代码,您可以加载工作区中的所有项目.
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
// Get all projects in the workspace
IProject[] projects = root.getProjects();
Run Code Online (Sandbox Code Playgroud)
然后你可以得到包,反过来java文件.
IPackageFragment[] packages = JavaCore.create(project).getPackageFragments();
IPackageFragment mypackage = packages.get(0); // implement your own logic to select package
ICompilationUnit unit = mypackage.getCompilationUnits();
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用此ICompilationUnit对象来获取CompilationUnit
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(unit);
parser.setResolveBindings(true);
CompilationUnit cUnit = parser.createAST(null);
Run Code Online (Sandbox Code Playgroud)
此CompilationUnit对象可以传递给ASTParser.
| 归档时间: |
|
| 查看次数: |
4676 次 |
| 最近记录: |