List of usage examples for org.eclipse.jdt.internal.compiler.impl CompilerOptions ENABLED
String ENABLED
To view the source code for org.eclipse.jdt.internal.compiler.impl CompilerOptions ENABLED.
Click Source Link
From source file:com.google.devtools.j2objc.AnnotationPreProcessor.java
License:Apache License
/** * Process the given input files, given in the same format as J2ObjC command line args. *///from w w w. ja va 2 s. c o m void process(Iterable<String> fileArgs) { assert tmpDirectory == null; // Shouldn't run an instance more than once. if (!hasAnnotationProcessors()) { return; } try { tmpDirectory = FileUtil.createTempDir("annotations"); } catch (IOException e) { ErrorUtil.error("failed creating temporary directory: " + e); return; } String tmpDirPath = tmpDirectory.getAbsolutePath(); List<String> compileArgs = Lists.newArrayList(); Joiner pathJoiner = Joiner.on(":"); List<String> sourcePath = Options.getSourcePathEntries(); sourcePath.add(tmpDirPath); compileArgs.add("-sourcepath"); compileArgs.add(pathJoiner.join(sourcePath)); compileArgs.add("-classpath"); List<String> classPath = Options.getClassPathEntries(); compileArgs.add(pathJoiner.join(classPath)); compileArgs.add("-encoding"); compileArgs.add(Options.getCharset().name()); compileArgs.add("-source"); compileArgs.add("1.7"); compileArgs.add("-s"); compileArgs.add(tmpDirPath); compileArgs.add("-d"); compileArgs.add(tmpDirPath); if (Options.isVerbose()) { compileArgs.add("-XprintProcessorInfo"); compileArgs.add("-XprintRounds"); } for (String fileArg : fileArgs) { compileArgs.add(fileArg); } Map<String, String> batchOptions = Maps.newHashMap(); batchOptions.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED); batchOptions.put(CompilerOptions.OPTION_GenerateClassFiles, CompilerOptions.DISABLED); // Fully qualified name used since "Main" isn't unique. org.eclipse.jdt.internal.compiler.batch.Main batchCompiler = new org.eclipse.jdt.internal.compiler.batch.Main( new PrintWriter(System.out), new PrintWriter(System.err), false, batchOptions, null); if (!batchCompiler.compile(compileArgs.toArray(new String[0]))) { // Any compilation errors will already by displayed. ErrorUtil.error("failed batch processing sources"); } else { addGeneratedSources(tmpDirectory, ""); } }
From source file:com.google.devtools.j2objc.jdt.AnnotationPreProcessor.java
License:Apache License
/** * Process the given input files, given in the same format as J2ObjC command line args. * * @return the list of processor-generated sources */// w w w. j a v a 2s . c om public List<ProcessingContext> process(Iterable<String> fileArgs, List<ProcessingContext> inputs) { assert tmpDirectory == null; // Shouldn't run an instance more than once. if (!hasAnnotationProcessors()) { return generatedInputs; } try { tmpDirectory = FileUtil.createTempDir("annotations"); } catch (IOException e) { ErrorUtil.error("failed creating temporary directory: " + e); return generatedInputs; } String tmpDirPath = tmpDirectory.getAbsolutePath(); List<String> compileArgs = Lists.newArrayList(); Joiner pathJoiner = Joiner.on(":"); List<String> sourcePath = options.fileUtil().getSourcePathEntries(); sourcePath.add(tmpDirPath); compileArgs.add("-sourcepath"); compileArgs.add(pathJoiner.join(sourcePath)); compileArgs.add("-classpath"); List<String> classPath = options.fileUtil().getClassPathEntries(); compileArgs.add(pathJoiner.join(classPath)); compileArgs.add("-encoding"); compileArgs.add(options.fileUtil().getCharset().name()); compileArgs.add("-source"); compileArgs.add(options.getSourceVersion().flag()); compileArgs.add("-s"); compileArgs.add(tmpDirPath); compileArgs.add("-d"); compileArgs.add(tmpDirPath); List<String> processorPath = options.getProcessorPathEntries(); if (!processorPath.isEmpty()) { compileArgs.add("-processorpath"); compileArgs.add(pathJoiner.join(processorPath)); } String processorClasses = options.getProcessors(); if (processorClasses != null) { compileArgs.add("-processor"); compileArgs.add(processorClasses); } if (options.isVerbose()) { compileArgs.add("-XprintProcessorInfo"); compileArgs.add("-XprintRounds"); } for (String fileArg : fileArgs) { compileArgs.add(fileArg); } Map<String, String> batchOptions = Maps.newHashMap(); batchOptions.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED); batchOptions.put(CompilerOptions.OPTION_GenerateClassFiles, CompilerOptions.DISABLED); AnnotationCompiler batchCompiler = new AnnotationCompiler(compileArgs, batchOptions, new PrintWriter(System.out), new PrintWriter(System.err), inputs, options); if (!batchCompiler.compile(compileArgs.toArray(new String[0]))) { // Any compilation errors will already by displayed. ErrorUtil.error("failed batch processing sources"); } if (!options.getHeaderMap().includeGeneratedSources() && tmpDirectory != null) { collectGeneratedInputs(tmpDirectory, "", inputs); } return generatedInputs; }
From source file:com.google.devtools.j2objc.pipeline.AnnotationPreProcessor.java
License:Apache License
/** * Process the given input files, given in the same format as J2ObjC command line args. */// w w w . j a v a2 s .c o m public void process(Iterable<String> fileArgs) { assert tmpDirectory == null; // Shouldn't run an instance more than once. if (!hasAnnotationProcessors()) { return; } try { tmpDirectory = FileUtil.createTempDir("annotations"); } catch (IOException e) { ErrorUtil.error("failed creating temporary directory: " + e); return; } String tmpDirPath = tmpDirectory.getAbsolutePath(); List<String> compileArgs = Lists.newArrayList(); Joiner pathJoiner = Joiner.on(":"); List<String> sourcePath = Options.getSourcePathEntries(); sourcePath.add(tmpDirPath); compileArgs.add("-sourcepath"); compileArgs.add(pathJoiner.join(sourcePath)); compileArgs.add("-classpath"); List<String> classPath = Options.getClassPathEntries(); compileArgs.add(pathJoiner.join(classPath)); compileArgs.add("-encoding"); compileArgs.add(Options.getCharset().name()); compileArgs.add("-source"); compileArgs.add(Options.getSourceVersion()); compileArgs.add("-s"); compileArgs.add(tmpDirPath); compileArgs.add("-d"); compileArgs.add(tmpDirPath); List<String> processorPath = Options.getProcessorPathEntries(); if (!processorPath.isEmpty()) { compileArgs.add("-processorpath"); compileArgs.add(pathJoiner.join(processorPath)); } String processorClasses = Options.getProcessors(); if (processorClasses != null) { compileArgs.add("-processor"); compileArgs.add(processorClasses); } if (Options.isVerbose()) { compileArgs.add("-XprintProcessorInfo"); compileArgs.add("-XprintRounds"); } for (String fileArg : fileArgs) { compileArgs.add(fileArg); } Map<String, String> batchOptions = Maps.newHashMap(); batchOptions.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED); batchOptions.put(CompilerOptions.OPTION_GenerateClassFiles, CompilerOptions.DISABLED); // Fully qualified name used since "Main" isn't unique. org.eclipse.jdt.internal.compiler.batch.Main batchCompiler = new org.eclipse.jdt.internal.compiler.batch.Main( new PrintWriter(System.out), new PrintWriter(System.err), false, batchOptions, null); if (!batchCompiler.compile(compileArgs.toArray(new String[0]))) { // Any compilation errors will already by displayed. ErrorUtil.error("failed batch processing sources"); } }
From source file:dacapo.eclipse.EclipseBuildTests.java
License:Open Source License
protected static Hashtable warningOptions(int kind) { // Values/*from ww w.ja v a2 s . c om*/ Hashtable optionsMap = null; switch (kind) { case 0: optionsMap = JavaCore.getDefaultOptions(); break; default: optionsMap = new Hashtable(350); break; } if (kind == 0) { // Default set since 3.1 optionsMap.put(CompilerOptions.OPTION_ReportUnusedImport, CompilerOptions.IGNORE); } else { boolean all = kind == 1; String generate = all ? CompilerOptions.GENERATE : CompilerOptions.DO_NOT_GENERATE; String warning = all ? CompilerOptions.WARNING : CompilerOptions.IGNORE; String enabled = all ? CompilerOptions.ENABLED : CompilerOptions.DISABLED; String preserve = all ? CompilerOptions.OPTIMIZE_OUT : CompilerOptions.PRESERVE; // Set options values optionsMap.put(CompilerOptions.OPTION_LocalVariableAttribute, generate); optionsMap.put(CompilerOptions.OPTION_LineNumberAttribute, generate); optionsMap.put(CompilerOptions.OPTION_SourceFileAttribute, generate); optionsMap.put(CompilerOptions.OPTION_PreserveUnusedLocal, preserve); optionsMap.put(CompilerOptions.OPTION_DocCommentSupport, enabled); optionsMap.put(CompilerOptions.OPTION_ReportMethodWithConstructorName, warning); optionsMap.put(CompilerOptions.OPTION_ReportOverridingPackageDefaultMethod, warning); optionsMap.put(CompilerOptions.OPTION_ReportDeprecation, warning); optionsMap.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, enabled); optionsMap.put(CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, enabled); optionsMap.put(CompilerOptions.OPTION_ReportHiddenCatchBlock, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnusedLocal, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnusedParameter, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnusedImport, warning); optionsMap.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, warning); optionsMap.put(CompilerOptions.OPTION_ReportNoEffectAssignment, warning); optionsMap.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, warning); optionsMap.put(CompilerOptions.OPTION_ReportNoImplicitStringConversion, warning); optionsMap.put(CompilerOptions.OPTION_ReportNonStaticAccessToStatic, warning); optionsMap.put(CompilerOptions.OPTION_ReportIndirectStaticAccess, warning); optionsMap.put(CompilerOptions.OPTION_ReportIncompatibleNonInheritedInterfaceMethod, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, warning); optionsMap.put(CompilerOptions.OPTION_ReportLocalVariableHiding, warning); optionsMap.put(CompilerOptions.OPTION_ReportFieldHiding, warning); optionsMap.put(CompilerOptions.OPTION_ReportPossibleAccidentalBooleanAssignment, warning); optionsMap.put(CompilerOptions.OPTION_ReportEmptyStatement, warning); optionsMap.put(CompilerOptions.OPTION_ReportAssertIdentifier, warning); optionsMap.put(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnnecessaryTypeCheck, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnnecessaryElse, warning); optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadoc, warning); optionsMap.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, enabled); optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocTags, warning); optionsMap.put(CompilerOptions.OPTION_ReportMissingJavadocComments, warning); optionsMap.put(CompilerOptions.OPTION_ReportFinallyBlockNotCompletingNormally, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnusedDeclaredThrownException, warning); optionsMap.put(CompilerOptions.OPTION_ReportUnqualifiedFieldAccess, warning); optionsMap.put(CompilerOptions.OPTION_TaskTags, all ? JavaCore.DEFAULT_TASK_TAGS : ""); optionsMap.put(CompilerOptions.OPTION_TaskPriorities, all ? JavaCore.DEFAULT_TASK_PRIORITIES : ""); optionsMap.put(CompilerOptions.OPTION_TaskCaseSensitive, enabled); optionsMap.put(CompilerOptions.OPTION_ReportUnusedParameterWhenImplementingAbstract, enabled); optionsMap.put(CompilerOptions.OPTION_ReportUnusedParameterWhenOverridingConcrete, enabled); optionsMap.put(CompilerOptions.OPTION_ReportSpecialParameterHidingField, enabled); optionsMap.put(CompilerOptions.OPTION_InlineJsr, enabled); } // Ignore 3.1 options optionsMap.put(CompilerOptions.OPTION_ReportMissingSerialVersion, CompilerOptions.IGNORE); optionsMap.put(CompilerOptions.OPTION_ReportEnumIdentifier, CompilerOptions.IGNORE); // Return created options map return optionsMap; }
From source file:de.fau.cs.i2.jamp.testsuite.JampBarrierTest.java
License:Open Source License
protected Map getCompilerOptions() { Map options = super.getCompilerOptions(); options.put(CompilerOptions.OPTION_JAMPSupport, CompilerOptions.ENABLED); return options; }
From source file:ma.glasnost.orika.impl.generator.EclipseJdtCompiler.java
License:Apache License
private CompilerOptions getCompilerOptions() { Map<Object, Object> options = new HashMap<Object, Object>(); options.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE); options.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.GENERATE); options.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.GENERATE); options.put(CompilerOptions.OPTION_SuppressWarnings, CompilerOptions.ENABLED); options.put(CompilerOptions.OPTION_Source, JAVA_COMPILER_SOURCE_VERSION); options.put(CompilerOptions.OPTION_TargetPlatform, JAVA_COMPILER_CODEGEN_TARGET_PLATFORM_VERSION); options.put(CompilerOptions.OPTION_Encoding, JAVA_SOURCE_ENCODING); options.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.IGNORE); // Ignore unchecked types and raw types options.put(JavaCore.COMPILER_PB_UNCHECKED_TYPE_OPERATION, CompilerOptions.IGNORE); options.put(JavaCore.COMPILER_PB_RAW_TYPE_REFERENCE, CompilerOptions.IGNORE); options.put(JavaCore.COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST, CompilerOptions.IGNORE); return new CompilerOptions(options); }
From source file:org.ant4eclipse.ant.jdt.ecj.CompilerOptionsProvider.java
License:Open Source License
/** * <p>/*from ww w. j a v a 2 s . c om*/ * Returns the compiler options specified in the javac task. * </p> * * @param javac * the javac task * @return the compiler options specified in the javac task. */ @SuppressWarnings("unchecked") private static final StringMap getJavacCompilerOptions(Javac javac) { StringMap result = new StringMap(); /* * set the source option */ if (Utilities.hasText(javac.getSource())) { // get the source String source = javac.getSource(); // set the source if (source.equals("1.3")) { result.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3); } else if (source.equals("1.4")) { result.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4); } else if (source.equals("1.5") || source.equals("5") || source.equals("5.0")) { result.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5); } else if (source.equals("1.6") || source.equals("6") || source.equals("6.0")) { result.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6); } else if (source.equals("1.7") || source.equals("7") || source.equals("7.0")) { result.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_7); } else if (source.equals("1.8") || source.equals("8") || source.equals("8.0")) { result.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_8); } else { throw new Ant4EclipseException(EcjExceptionCodes.UNKNOWN_JAVA_SOURCE_OPTION_EXCEPTION, source); } } /* * set the target option */ if (Utilities.hasText(javac.getTarget())) { // get the target String target = javac.getTarget(); // set the target if (target.equals("1.3")) { result.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_3); result.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_3); } else if (target.equals("1.4")) { result.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4); result.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4); } else if (target.equals("1.5") || target.equals("5") || target.equals("5.0")) { result.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5); result.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5); } else if (target.equals("1.6") || target.equals("6") || target.equals("6.0")) { result.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6); result.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6); } else if (target.equals("1.7") || target.equals("7") || target.equals("7.0")) { result.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7); result.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_7); } else if (target.equals("1.8") || target.equals("8") || target.equals("8.0")) { result.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_8); result.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_8); } else { throw new Ant4EclipseException(EcjExceptionCodes.UNKNOWN_JAVA_TARGET_OPTION_EXCEPTION, target); } } /* * set the debug options */ if (javac.getDebug()) { String debugLevel = javac.getDebugLevel(); if (debugLevel != null) { result.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.DO_NOT_GENERATE); result.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.DO_NOT_GENERATE); result.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.DO_NOT_GENERATE); if (debugLevel.length() != 0) { if (debugLevel.indexOf("vars") != -1) { result.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE); } if (debugLevel.indexOf("lines") != -1) { result.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.GENERATE); } if (debugLevel.indexOf("source") != -1) { result.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.GENERATE); } } } else { result.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE); result.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.GENERATE); result.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.GENERATE); } } else { result.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.DO_NOT_GENERATE); result.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.DO_NOT_GENERATE); result.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.DO_NOT_GENERATE); } /* * Handle the nowarn option. If none, then we generate all warnings. */ if (javac.getNowarn()) { // disable all warnings Map.Entry<String, String>[] entries = result.entrySet().toArray(new Map.Entry[result.size()]); for (Entry<String, String> entrie : entries) { Map.Entry<String, String> entry = entrie; if (entry.getValue().equals(CompilerOptions.WARNING)) { result.put(entry.getKey(), CompilerOptions.IGNORE); } } result.put(CompilerOptions.OPTION_TaskTags, Util.EMPTY_STRING); if (javac.getDeprecation()) { result.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.WARNING); result.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.ENABLED); result.put(CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, CompilerOptions.ENABLED); } } else if (javac.getDeprecation()) { result.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.WARNING); result.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.ENABLED); result.put(CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, CompilerOptions.ENABLED); } else { result.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.IGNORE); result.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.DISABLED); result.put(CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, CompilerOptions.DISABLED); } /* * set the encoding option */ if (javac.getEncoding() != null) { result.put(CompilerOptions.OPTION_Encoding, javac.getEncoding()); } // return result return result; }
From source file:org.codehaus.groovy.eclipse.core.compiler.GroovySnippetCompiler.java
License:Open Source License
@SuppressWarnings({ "unchecked" })
private GroovyCompilationUnitDeclaration internalCompile(String source, String sourcePath) {
if (sourcePath == null) {
sourcePath = "Nothing.groovy";
} else if (!ContentTypeUtils.isGroovyLikeFileName(sourcePath)) {
sourcePath = sourcePath.concat(".groovy");
}// w ww . j ava 2 s . com
Map options = JavaCore.getOptions();
options.put(CompilerOptions.OPTIONG_BuildGroovyFiles, CompilerOptions.ENABLED);
Compiler compiler = new CompilationUnitResolver(nameEnvironment,
DefaultErrorHandlingPolicies.proceedWithAllProblems(), new CompilerOptions(options),
new Requestor(), new DefaultProblemFactory(), null, true);
GroovyCompilationUnitDeclaration decl = (GroovyCompilationUnitDeclaration) compiler.resolve(
new MockCompilationUnit(source.toCharArray(), sourcePath.toCharArray()), true, false, false);
return decl;
}
From source file:org.codehaus.groovy.eclipse.core.compiler.GroovySnippetParser.java
License:Open Source License
/** * Compiles source code into a ModuleNode. Source code * must be a complete file including package declaration * and import statements./*w ww .ja va2 s . c om*/ * * @param source the groovy source code to compile */ @SuppressWarnings("unchecked") public ModuleNode parse(String source) { Hashtable table = JavaCore.getOptions(); table.put(CompilerOptions.OPTIONG_BuildGroovyFiles, CompilerOptions.ENABLED); CompilerOptions options = new CompilerOptions(table); ProblemReporter reporter = new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), options, new DefaultProblemFactory()); GroovyParser parser = new GroovyParser(options, reporter, false, true); ICompilationUnit unit = new MockCompilationUnit(source.toCharArray(), "Hello.groovy".toCharArray()); CompilationResult compilationResult = new CompilationResult(unit, 0, 0, options.maxProblemsPerUnit); GroovyCompilationUnitDeclaration decl = (GroovyCompilationUnitDeclaration) parser.dietParse(unit, compilationResult); ModuleNode node = decl.getModuleNode(); if (node == null) { return null; } // Remove any remaining synthetic methods for (ClassNode classNode : (Iterable<ClassNode>) node.getClasses()) { for (Iterator<MethodNode> methodIter = classNode.getMethods().iterator(); methodIter.hasNext();) { MethodNode method = methodIter.next(); if ((method.getModifiers() & Opcodes.ACC_SYNTHETIC) != 0) { methodIter.remove(); } } } problems = compilationResult.getErrors(); return node; }
From source file:org.codehaus.groovy.eclipse.core.compiler.GroovySnippetParser.java
License:Open Source License
@SuppressWarnings("unchecked") public GroovySourceAST parseForCST(String source) { Hashtable<String, String> table = JavaCore.getOptions(); table.put(CompilerOptions.OPTIONG_BuildGroovyFiles, CompilerOptions.ENABLED); CompilerOptions options = new CompilerOptions(table); ProblemReporter reporter = new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), options, new DefaultProblemFactory()); GroovyParser parser = new GroovyParser(null, reporter, false, true); ICompilationUnit unit = new MockCompilationUnit(source.toCharArray(), "Hello.groovy".toCharArray()); CompilationResult compilationResult = new CompilationResult(unit, 0, 0, options.maxProblemsPerUnit); GroovyCompilationUnitDeclaration decl = (GroovyCompilationUnitDeclaration) parser.dietParse(unit, compilationResult);/*from w w w. j a v a2s . c o m*/ SourceUnit sourceUnit = decl.getSourceUnit(); ParserPlugin parserPlugin = (ParserPlugin) ReflectionUtils.getPrivateField(SourceUnit.class, "parserPlugin", sourceUnit); if (parserPlugin instanceof AntlrParserPlugin) { return (GroovySourceAST) ReflectionUtils.getPrivateField(AntlrParserPlugin.class, "ast", parserPlugin); } else { return null; } }