37 lines
837 B
Java
Executable File
37 lines
837 B
Java
Executable File
package midend;
|
|
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Paths;
|
|
import frontend.ast.CompUnit;
|
|
import midend.llvm.IrBuilder;
|
|
import midend.llvm.IrModule;
|
|
import midend.visit.Visitor;
|
|
|
|
public class Midend {
|
|
private IrModule module;
|
|
private Visitor visitor;
|
|
|
|
public Midend(CompUnit compUnit) {
|
|
this.module = new IrModule();
|
|
this.visitor = new Visitor(compUnit);
|
|
}
|
|
|
|
public void generateLLvmIr() {
|
|
IrBuilder.setCurrentModule(module);
|
|
visitor.visit();
|
|
}
|
|
|
|
public IrModule getModule() {
|
|
return module;
|
|
}
|
|
|
|
public void writeToFile(String fileName) {
|
|
try {
|
|
Files.write(Paths.get(fileName), module.toString().getBytes());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
//
|