mips without optimize

This commit is contained in:
colden
2025-12-12 20:14:00 +08:00
parent 84827838e2
commit c94bebf37b
130 changed files with 5462 additions and 4182 deletions

72
midend/visit/Visitor.java Normal file → Executable file
View File

@@ -1,36 +1,36 @@
package midend.visit;
import java.util.ArrayList;
import frontend.ast.CompUnit;
import frontend.ast.decl.Decl;
import frontend.ast.func.FuncDef;
import frontend.ast.func.MainFuncDef;
import midend.symbol.SymbolManager;
public class Visitor {
private CompUnit compUnit;
public Visitor(CompUnit compUnit) {
this.compUnit = compUnit;
SymbolManager.reset();
SymbolManager.nextTable();
}
public void visit() {
ArrayList<Decl> decls = this.compUnit.GetDecls();
ArrayList<FuncDef> funcDefs = this.compUnit.GetFuncDefs();
MainFuncDef mainFuncDef = this.compUnit.GetMainFuncDef();
for (Decl decl : decls) {
VisitorDecl.visitDecl(decl);
}
for (FuncDef funcDef : funcDefs) {
VisitorFuncDef.visitFuncDef(funcDef);
}
VisitorFuncDef.visitMainFuncDef(mainFuncDef);
}
//:TODO:符号表的变换,什么时候往前进一个符号表,这需要人工手工来操作
}
package midend.visit;
import java.util.ArrayList;
import frontend.ast.CompUnit;
import frontend.ast.decl.Decl;
import frontend.ast.func.FuncDef;
import frontend.ast.func.MainFuncDef;
import midend.symbol.SymbolManager;
public class Visitor {
private CompUnit compUnit;
public Visitor(CompUnit compUnit) {
this.compUnit = compUnit;
SymbolManager.reset();
SymbolManager.nextTable();
}
public void visit() {
ArrayList<Decl> decls = this.compUnit.GetDecls();
ArrayList<FuncDef> funcDefs = this.compUnit.GetFuncDefs();
MainFuncDef mainFuncDef = this.compUnit.GetMainFuncDef();
for (Decl decl : decls) {
VisitorDecl.visitDecl(decl);
}
for (FuncDef funcDef : funcDefs) {
VisitorFuncDef.visitFuncDef(funcDef);
}
VisitorFuncDef.visitMainFuncDef(mainFuncDef);
}
//:TODO:符号表的变换,什么时候往前进一个符号表,这需要人工手工来操作
}