mips64-assembler/Assembler.h
2025-11-04 14:00:16 -05:00

36 lines
879 B
C++

#include <string>
#include <vector>
#include <regex>
#include "InstHandler.h"
#ifndef ASSEMBLER_H
#define ASSEMBLER_H
class Assembler {
private:
InstHandler * ih;
std::vector<std::string> asmLines;
std::vector<label_t> labels;
std::vector<inst_t> instructions;
union Fp {
double d;
uint32_t i[2];
};
int parseDfill(std::string arg, uint32_t icount, uint64_t ln);
int parseInst(std::string inst, uint32_t icount, uint64_t ln);
int newLabel(std::string name, uint32_t icount);
std::vector<std::string> tokenizeInst(std::string inst);
std::string toLowerCase(std::string str);
void error(uint64_t ln, std::string msg);
public:
Assembler(std::vector<std::string>);
void parse();
std::vector<uint32_t> assemble();
};
#endif