aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/src/primitives.cpp
blob: e3ec0eb2124903657467aab217c96dbfa0995439 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "ast.hpp"


// Parameter list definition (used in functions)

ParamList::ParamList() : BaseList() {}

ParamList::ParamList(const Base* _param) : BaseList(_param) {}


// Declarator defintion, used when declaring a variable

Declarator::Declarator(const std::string& _id) : BasePrimitive(_id) {}

void Declarator::printxml() const {
    std::cout << "<Variable id=\"" << id << "\" />" << std::endl;
}


// Parameter class defition

Parameter::Parameter(const std::string& _id) : BasePrimitive(_id) {}

void Parameter::printxml() const {
    std::cout << "<Parameter id=\"" << id << "\" />" << std::endl;
}


// Immediate class definition, used when loading an immediate value

Immediate::Immediate(const int32_t& _imm) : BasePrimitive(), imm(_imm) {}

void Immediate::printasm() const {
    std::cout << "\tli\t$2," << imm << "\n\tsw\t$2,8($fp)" << std::endl;
}