Search in sources :

Example 36 with CompilationUnit

use of org.codehaus.groovy.control.CompilationUnit in project groovy-core by groovy.

the class Compiler method compile.

/**
 *  Compiles a string of code.
 */
public void compile(String name, String code) throws CompilationFailedException {
    CompilationUnit unit = new CompilationUnit(configuration);
    unit.addSource(new SourceUnit(name, code, configuration, unit.getClassLoader(), unit.getErrorCollector()));
    unit.compile();
}
Also used : CompilationUnit(org.codehaus.groovy.control.CompilationUnit) SourceUnit(org.codehaus.groovy.control.SourceUnit)

Example 37 with CompilationUnit

use of org.codehaus.groovy.control.CompilationUnit in project groovy-core by groovy.

the class Compiler method compile.

/**
 *  Compiles a series of Files.
 */
public void compile(File[] files) throws CompilationFailedException {
    CompilationUnit unit = new CompilationUnit(configuration);
    unit.addSources(files);
    unit.compile();
}
Also used : CompilationUnit(org.codehaus.groovy.control.CompilationUnit)

Example 38 with CompilationUnit

use of org.codehaus.groovy.control.CompilationUnit in project groovy-core by groovy.

the class ASTTest method getAST.

public ModuleNode getAST(String source, int untilPhase) {
    SourceUnit unit = SourceUnit.create("Test", source);
    CompilationUnit compUnit = new CompilationUnit();
    compUnit.addSource(unit);
    compUnit.compile(untilPhase);
    return unit.getAST();
}
Also used : CompilationUnit(org.codehaus.groovy.control.CompilationUnit) SourceUnit(org.codehaus.groovy.control.SourceUnit)

Example 39 with CompilationUnit

use of org.codehaus.groovy.control.CompilationUnit in project groovy-core by groovy.

the class GroovycTask method compile.

protected void compile() {
    Path path = getClasspath();
    if (path != null) {
        config.setClasspath(path.toString());
    }
    config.setTargetDirectory(destdir);
    GroovyClassLoader gcl = createClassLoader();
    CompilationUnit compilation = new CompilationUnit(config, null, gcl);
    GlobPatternMapper mapper = new GlobPatternMapper();
    mapper.setFrom("*.groovy");
    mapper.setTo("*.class");
    int count = 0;
    String[] list = src.list();
    for (int i = 0; i < list.length; i++) {
        File basedir = getProject().resolveFile(list[i]);
        if (!basedir.exists()) {
            throw new BuildException("Source directory does not exist: " + basedir, getLocation());
        }
        DirectoryScanner scanner = getDirectoryScanner(basedir);
        String[] includes = scanner.getIncludedFiles();
        if (force) {
            log.debug("Forcefully including all files from: " + basedir);
            for (int j = 0; j < includes.length; j++) {
                File file = new File(basedir, includes[j]);
                log.debug("    " + file);
                compilation.addSource(file);
                count++;
            }
        } else {
            log.debug("Including changed files from: " + basedir);
            SourceFileScanner sourceScanner = new SourceFileScanner(this);
            File[] files = sourceScanner.restrictAsFiles(includes, basedir, destdir, mapper);
            for (int j = 0; j < files.length; j++) {
                log.debug("    " + files[j]);
                compilation.addSource(files[j]);
                count++;
            }
        }
    }
    if (count > 0) {
        log.info("Compiling " + count + " source file" + (count > 1 ? "s" : "") + " to " + destdir);
        compilation.compile();
    } else {
        log.info("No sources found to compile");
    }
}
Also used : Path(org.apache.tools.ant.types.Path) GroovyClassLoader(groovy.lang.GroovyClassLoader) CompilationUnit(org.codehaus.groovy.control.CompilationUnit) GlobPatternMapper(org.apache.tools.ant.util.GlobPatternMapper) DirectoryScanner(org.apache.tools.ant.DirectoryScanner) BuildException(org.apache.tools.ant.BuildException) SourceFileScanner(org.apache.tools.ant.util.SourceFileScanner) File(java.io.File)

Example 40 with CompilationUnit

use of org.codehaus.groovy.control.CompilationUnit in project groovy-core by groovy.

the class DependencyTest method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    cu = new CompilationUnit();
    cache = new StringSetMap();
    cu.addPhaseOperation(new CompilationUnit.PrimaryClassNodeOperation() {

        @Override
        public void call(final SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException {
            DependencyTracker dt = new DependencyTracker(source, cache);
            dt.visitClass(classNode);
        }
    }, Phases.CLASS_GENERATION);
}
Also used : CompilationUnit(org.codehaus.groovy.control.CompilationUnit) ClassNode(org.codehaus.groovy.ast.ClassNode) CompilationFailedException(org.codehaus.groovy.control.CompilationFailedException) SourceUnit(org.codehaus.groovy.control.SourceUnit) GeneratorContext(org.codehaus.groovy.classgen.GeneratorContext)

Aggregations

CompilationUnit (org.codehaus.groovy.control.CompilationUnit)42 SourceUnit (org.codehaus.groovy.control.SourceUnit)13 CompilerConfiguration (org.codehaus.groovy.control.CompilerConfiguration)12 ClassNode (org.codehaus.groovy.ast.ClassNode)11 GroovyClassLoader (groovy.lang.GroovyClassLoader)9 File (java.io.File)8 ArrayList (java.util.ArrayList)8 URL (java.net.URL)7 GroovyClass (org.codehaus.groovy.tools.GroovyClass)7 IOException (java.io.IOException)6 List (java.util.List)5 BuildException (org.apache.tools.ant.BuildException)5 HashMap (java.util.HashMap)4 LinkedHashMap (java.util.LinkedHashMap)4 LinkedHashSet (java.util.LinkedHashSet)4 Map (java.util.Map)4 ErrorCollector (org.codehaus.groovy.control.ErrorCollector)4 JavaAwareCompilationUnit (org.codehaus.groovy.tools.javac.JavaAwareCompilationUnit)4 GroovyObject (groovy.lang.GroovyObject)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)3