blob: 420c7828fa28aad2a728df4af4ca9e29c35b3a50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include "ast.hpp"
Function::Function(const std::string& _id, const BaseList* _param_list,
const BaseNode* _comp_statement)
: BaseNode(_param_list, _comp_statement), id(_id) {}
void Function::printxml() const {
std::cout << "<Function id=\"" << id << "\">" << std::endl;
leftNode->printxml();
rightNode->printxml();
std::cout << "</Function>" << std::endl;
}
void Function::printasm() const {
std::cout << id << ":\n\taddiu\t$sp,$sp,-24\n\tsw\t$fp,20($sp)\n\tmove\t$fp,$sp" << std::endl;
rightNode->printasm();
std::cout << "\tmove\t$sp,$fp\n\tlw\t$fp,20($sp)\n\taddiu\t$sp,$sp,24\n\tjr\t$31\n\tnop" << std::endl;
}
|