aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/CouscousCompiler.java
blob: 7e6b5d80b4c690e3a310f74c2b25f381d296b2ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package org.zwobble.couscous;

import org.zwobble.couscous.ast.TypeNode;
import org.zwobble.couscous.frontends.java.JavaFrontend;
import org.zwobble.couscous.util.FileSet;

import java.io.IOException;
import java.nio.file.Path;
import java.util.List;

import static org.zwobble.couscous.util.ExtraLists.list;

public class CouscousCompiler {
    private final JavaFrontend frontend;
    private final Backend backend;

    public CouscousCompiler(JavaFrontend frontend, Backend backend) {
        this.frontend = frontend;
        this.backend = backend;
    }

    public void compileDirectory(List<Path> sourcePaths, Path path) throws IOException {
        List<TypeNode> classes = frontend.readSourceDirectory(sourcePaths, FileSet.globs(list(path.toString())));
        backend.compile(classes);
    }

}