public void setUnitName(final String string) { this.parser.setUnitName(string); }
protected CompilationUnit getCompilationUnit(String unitName, char[] contents, boolean resolveBindings, boolean errorRecovery, IString javaVersion, String[] sourcePath, String[] classPath) throws IOException { ASTParser parser = constructASTParser(resolveBindings, errorRecovery, javaVersion, sourcePath, classPath); parser.setUnitName(unitName); parser.setSource(contents); return (CompilationUnit) parser.createAST(null); }
private static CompilationUnit createCompilationUnit(String sourceFile, String unitName) { String source = readWithStringBuilder(sourceFile); ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setSource(source.toCharArray()); // set source String[] classpathEntries = ...; String[] sourcepathEntries = ...; parser.setEnvironment(classpathEntries, sourcepathEntries, null, true); parser.setUnitName(unitName); parser.setResolveBindings(true); // optional // parser.setBindingsRecovery(true); return (CompilationUnit) parser.createAST(null /* IProgressMonitor */); // parse }
ASTParser parser = ASTParser.newParser(AST.JLS4); parser.setKind(ASTParser.K_COMPILATION_UNIT); // you must set compilation unit name, so I just name it as a path to source file parser.setUnitName(inputFilePath.toString()); //params classpathEntries, sourcepathEntries, encodings, IncludeRunningVMBootclasspath parser.setEnvironment(null, null, null, true); //fileContent is a char array of some source code parser.setSource(fileContent); parser.setResolveBindings(true); CompilationUnit unit = (CompilationUnit) parser.createAST(null);
File file = new File(""); String srcCode = Files.toString(file, Charsets.UTF_8); ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource(srcCode.toCharArray()); parser.setKind(ASTParser.K_COMPILATION_UNIT); Map options = JavaCore.getOptions(); JavaCore.setComplianceOptions(JavaCore.VERSION_1_5, options); parser.setCompilerOptions(options); String[] classpath = {"", "", ""}; String[] sourcepath = {""}; parser.setEnvironment(classpath, sourcepath, null, true); parser.setUnitName(""); parser.setResolveBindings(true); parser.setBindingsRecovery(true); parser.setStatementsRecovery(true); CompilationUnit cu = (CompilationUnit) parser.createAST(null); cu.accept(new ASTVisitor2(cu));
String path ="C:\\Users\\pc\\workspace\\asttester\\src\\test\\Apple.java"; File file = new File(path); String str = Util.readFileToString(file); ASTParser parser = ASTParser.newParser(AST.JLS8); parser.setResolveBindings(true); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setBindingsRecovery(true); Map options = JavaCore.getOptions(); parser.setCompilerOptions(options); String unitName = "Apple.java"; parser.setUnitName(unitName); String[] sources = { "C:\\Users\\pc\\workspace\\asttester\\src" }; String[] classpath = {"C:\\Program Files\\Java\\jre1.8.0_25\\lib\\rt.jar"}; // sources is the source dir of all your java files // classpath is the java jar containing all the needed classes parser.setEnvironment(classpath, sources, new String[] { "UTF-8"}, true); parser.setSource(str.toCharArray()); CompilationUnit cu = (CompilationUnit) parser.createAST(null);
/** * @param newCfSource the source * @param originalCf the class file to get the name and project from * @param resolveBindings whether bindings are to be resolved * @param statementsRecovery whether statements recovery should be enabled * @param pm an {@link IProgressMonitor}, or <code>null</code> * @return the parsed CompilationUnit */ public CompilationUnit parse(String newCfSource, IClassFile originalCf, boolean resolveBindings, boolean statementsRecovery, IProgressMonitor pm) { fParser.setResolveBindings(resolveBindings); fParser.setStatementsRecovery(statementsRecovery); fParser.setSource(newCfSource.toCharArray()); String cfName= originalCf.getElementName(); fParser.setUnitName(cfName.substring(0, cfName.length() - 6) + JavaModelUtil.DEFAULT_CU_SUFFIX); fParser.setProject(originalCf.getJavaProject()); fParser.setCompilerOptions(getCompilerOptions(originalCf)); CompilationUnit newCUNode= (CompilationUnit) fParser.createAST(pm); return newCUNode; }
// creating ASTParser ASTParser parser = ASTParser.newParser(AST.JLS4); // you probably want to set the kind parser.setKind(ASTParser.K_COMPILATION_UNIT); // you must set compilation unit name, so I just name it as a path to source file parser.setUnitName(inputFilePath.toString()); // you must set environment params classpathEntries, sourcepathEntries, encodings, IncludeRunningVMBootclasspath parser.setEnvironment(null, null, null, true); // you probably want to set source parser.setSource(fileContent); // I can see that you actually want to do that :) parser.setResolveBindings(true); // creating compilation unit CompilationUnit unit = (CompilationUnit) parser.createAST(null);
/** * @param newCfSource the source * @param originalCf the class file to get the name and project from * @param resolveBindings whether bindings are to be resolved * @param recovery whether statements and binding recovery should be enabled * @param pm an {@link IProgressMonitor}, or <code>null</code> * @return the parsed CompilationUnit */ public CompilationUnit parse(String newCfSource, IClassFile originalCf, boolean resolveBindings, boolean recovery, IProgressMonitor pm) { fParser.setResolveBindings(resolveBindings); fParser.setStatementsRecovery(recovery); fParser.setBindingsRecovery(recovery); fParser.setSource(newCfSource.toCharArray()); String cfName= originalCf.getElementName(); fParser.setUnitName(cfName.substring(0, cfName.length() - 6) + JavaModelUtil.DEFAULT_CU_SUFFIX); fParser.setProject(originalCf.getJavaProject()); fParser.setCompilerOptions(getCompilerOptions(originalCf)); CompilationUnit newCUNode= (CompilationUnit) fParser.createAST(pm); return newCUNode; }
/** * @param newCfSource the source * @param originalCf the class file to get the name and project from * @param resolveBindings whether bindings are to be resolved * @param recovery whether statements and binding recovery should be enabled * @param pm an {@link IProgressMonitor}, or <code>null</code> * @return the parsed CompilationUnit */ public CompilationUnit parse(String newCfSource, IClassFile originalCf, boolean resolveBindings, boolean recovery, IProgressMonitor pm) { fParser.setResolveBindings(resolveBindings); fParser.setStatementsRecovery(recovery); fParser.setBindingsRecovery(recovery); fParser.setSource(newCfSource.toCharArray()); String cfName= originalCf.getElementName(); fParser.setUnitName(cfName.substring(0, cfName.length() - 6) + JavaModelUtil.DEFAULT_CU_SUFFIX); fParser.setProject(originalCf.getJavaProject()); fParser.setCompilerOptions(getCompilerOptions(originalCf)); CompilationUnit newCUNode= (CompilationUnit) fParser.createAST(pm); return newCUNode; }
private CompilationUnit getRecoveredAST(IDocument document, int offset, Document recoveredDocument) { CompilationUnit ast= SharedASTProviderCore.getAST(fCompilationUnit, SharedASTProviderCore.WAIT_ACTIVE_ONLY, null); if (ast != null) { recoveredDocument.set(document.get()); return ast; } char[] content= document.get().toCharArray(); // clear prefix to avoid compile errors int index= offset - 1; while (index >= 0 && Character.isJavaIdentifierPart(content[index])) { content[index]= ' '; index--; } recoveredDocument.set(new String(content)); final ASTParser parser= ASTParser.newParser(IASTSharedValues.SHARED_AST_LEVEL); parser.setResolveBindings(true); parser.setStatementsRecovery(true); parser.setSource(content); parser.setUnitName(fCompilationUnit.getElementName()); parser.setProject(fCompilationUnit.getJavaProject()); return (CompilationUnit) parser.createAST(new NullProgressMonitor()); }
private CompilationUnit getRecoveredAST(IDocument document, int offset, Document recoveredDocument) { CompilationUnit ast= SharedASTProvider.getAST(fCompilationUnit, SharedASTProvider.WAIT_ACTIVE_ONLY, null); if (ast != null) { recoveredDocument.set(document.get()); return ast; } char[] content= document.get().toCharArray(); // clear prefix to avoid compile errors int index= offset - 1; while (index >= 0 && Character.isJavaIdentifierPart(content[index])) { content[index]= ' '; index--; } recoveredDocument.set(new String(content)); final ASTParser parser= ASTParser.newParser(ASTProvider.SHARED_AST_LEVEL); parser.setResolveBindings(true); parser.setStatementsRecovery(true); parser.setSource(content); parser.setUnitName(fCompilationUnit.getElementName()); parser.setProject(fCompilationUnit.getJavaProject()); return (CompilationUnit) parser.createAST(new NullProgressMonitor()); }
private CompilationUnit getRecoveredAST(IDocument document, int offset, Document recoveredDocument) { CompilationUnit ast = CoreASTProvider.getInstance().getAST(fCompilationUnit, CoreASTProvider.WAIT_YES, null); if (ast != null) { recoveredDocument.set(document.get()); return ast; } char[] content= document.get().toCharArray(); // clear prefix to avoid compile errors int index= offset - 1; while (index >= 0 && Character.isJavaIdentifierPart(content[index])) { content[index]= ' '; index--; } recoveredDocument.set(new String(content)); final ASTParser parser= ASTParser.newParser(IASTSharedValues.SHARED_AST_LEVEL); parser.setResolveBindings(true); parser.setStatementsRecovery(true); parser.setSource(content); parser.setUnitName(fCompilationUnit.getElementName()); parser.setProject(fCompilationUnit.getJavaProject()); return (CompilationUnit) parser.createAST(new NullProgressMonitor()); }
parser.setStatementsRecovery(true); parser.setSource(content); parser.setUnitName(fCompilationUnit.getElementName()); parser.setProject(fCompilationUnit.getJavaProject());
/** * @param newCuSource the source * @param originalCu the compilation unit to get the name and project from * @param resolveBindings whether bindings are to be resolved * @param statementsRecovery whether statements recovery should be enabled * @param pm an {@link IProgressMonitor}, or <code>null</code> * @return the parsed CompilationUnit */ public CompilationUnit parse(String newCuSource, ICompilationUnit originalCu, boolean resolveBindings, boolean statementsRecovery, IProgressMonitor pm) { fParser.setResolveBindings(resolveBindings); fParser.setStatementsRecovery(statementsRecovery); fParser.setSource(newCuSource.toCharArray()); fParser.setUnitName(originalCu.getElementName()); fParser.setProject(originalCu.getJavaProject()); fParser.setCompilerOptions(getCompilerOptions(originalCu)); CompilationUnit newCUNode= (CompilationUnit) fParser.createAST(pm); return newCUNode; }
/** * @param newCuSource the source * @param originalCu the compilation unit to get the name and project from * @param resolveBindings whether bindings are to be resolved * @param recovery whether statements and binding recovery should be enabled * @param pm an {@link IProgressMonitor}, or <code>null</code> * @return the parsed CompilationUnit */ public CompilationUnit parse(String newCuSource, ICompilationUnit originalCu, boolean resolveBindings, boolean recovery, IProgressMonitor pm) { fParser.setResolveBindings(resolveBindings); fParser.setStatementsRecovery(recovery); fParser.setBindingsRecovery(recovery); fParser.setSource(newCuSource.toCharArray()); fParser.setUnitName(originalCu.getElementName()); fParser.setProject(originalCu.getJavaProject()); fParser.setCompilerOptions(getCompilerOptions(originalCu)); CompilationUnit newCUNode= (CompilationUnit) fParser.createAST(pm); return newCUNode; }
/** * @param newCuSource the source * @param originalCu the compilation unit to get the name and project from * @param resolveBindings whether bindings are to be resolved * @param recovery whether statements and binding recovery should be enabled * @param pm an {@link IProgressMonitor}, or <code>null</code> * @return the parsed CompilationUnit */ public CompilationUnit parse(String newCuSource, ICompilationUnit originalCu, boolean resolveBindings, boolean recovery, IProgressMonitor pm) { fParser.setResolveBindings(resolveBindings); fParser.setStatementsRecovery(recovery); fParser.setBindingsRecovery(recovery); fParser.setSource(newCuSource.toCharArray()); fParser.setUnitName(originalCu.getElementName()); fParser.setProject(originalCu.getJavaProject()); fParser.setCompilerOptions(getCompilerOptions(originalCu)); CompilationUnit newCUNode= (CompilationUnit) fParser.createAST(pm); return newCUNode; }
public static ITestContent parseType(IType type) { BaseVisitor result = new AnnotationVisitor(); ICompilationUnit compilationUnit = type.getCompilationUnit(); if (compilationUnit == null) { return result; } ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setResolveBindings(true); parser.setSource(compilationUnit); parser.setProject(type.getJavaProject()); parser.setUnitName(compilationUnit.getPath().toString()); CompilationUnit cu = (CompilationUnit) parser.createAST(null); cu.accept(result); return result; }
public parseJavaFile(String pathOfJavaFile, String[] sources, String[] classpath, String nameOfJavaFile) throws Exception { ASTParser parser = ASTParser.newParser(AST.JLS8);//choose source code analyzing strategy parser.setResolveBindings(true);// turn on binding strategy parser.setKind(ASTParser.K_COMPILATION_UNIT);// the source code is a file .java parser.setBindingsRecovery(true); parser.setCompilerOptions(JavaCore.getOptions()); parser.setUnitName(nameOfJavaFile); parser.setEnvironment(classpath, sources, new String[] { "UTF-8" }, true); parser.setSource(Utils.getFile(pathOfJavaFile).toCharArray()); CompilationUnit cu = (CompilationUnit) parser.createAST(null); if (cu.getAST().hasBindingsRecovery()) { // Now binding is activated. Do something else } }
private CompilationUnit createAST(final String content, String unitName) { Document doc = new Document(content); final ASTParser parser = ASTParser.newParser(AST.JLS8); parser.setResolveBindings(true); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setBindingsRecovery(true); parser.setStatementsRecovery(true); parser.setUnitName(unitName); Map<String, String> options = JavaCore.getOptions(); JavaCore.setComplianceOptions(JavaCore.VERSION_1_8, options); parser.setCompilerOptions(options); String[] sources = { inputArgs.getSourceFolder() }; parser.setEnvironment(null, sources, null, true); parser.setSource(doc.get().toCharArray()); CompilationUnit cu = (CompilationUnit) parser.createAST(null); if (!cu.getAST().hasBindingsRecovery()) { System.out.println("Binding not activated."); } return cu; }