mips without optimize
This commit is contained in:
72
midend/visit/Visitor.java
Normal file → Executable file
72
midend/visit/Visitor.java
Normal file → Executable 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:符号表的变换,什么时候往前进一个符号表,这需要人工手工来操作
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user