|
|
|
@ -3,7 +3,7 @@
|
|
|
|
|
#define CONST_INT(num) ConstantInt::get(num, module.get())
|
|
|
|
|
#define CONST_FLOAT(num) ConstantFloat::get(num, module.get())
|
|
|
|
|
|
|
|
|
|
// You can define global variables here
|
|
|
|
|
// You can define global variables and functions here
|
|
|
|
|
// to store state
|
|
|
|
|
|
|
|
|
|
// store temporary value
|
|
|
|
@ -29,86 +29,46 @@ void SysYBuilder::visit(SyntaxTree::Assembly &node) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::InitVal &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// You need to fill them
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncDef &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::InitVal &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncFParamList &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncDef &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncParam &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncFParamList &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::VarDef &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncParam &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::AssignStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::VarDef &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::LVal &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::LVal &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::Literal &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::AssignStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::ReturnStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::Literal &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BlockStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::ReturnStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::EmptyStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BlockStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::ExprStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::EmptyStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::UnaryCondExpr &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::ExprStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BinaryCondExpr &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::UnaryCondExpr &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BinaryExpr &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BinaryCondExpr &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::UnaryExpr &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BinaryExpr &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncCallStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::UnaryExpr &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::IfStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::FuncCallStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::WhileStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::IfStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BreakStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::WhileStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::ContinueStmt &node) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::BreakStmt &node) {}
|
|
|
|
|
|
|
|
|
|
void SysYBuilder::visit(SyntaxTree::ContinueStmt &node) {}
|
|
|
|
|