Files
MY_COMPILER/midend/Midend.java
2025-12-12 20:14:00 +08:00

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();
}
}
}
//