aboutsummaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/main.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/asm/main.cpp b/asm/main.cpp
index 17023e7..c1b23b7 100644
--- a/asm/main.cpp
+++ b/asm/main.cpp
@@ -10,13 +10,36 @@
* Description: Entrypoint for assembly program
*/
+#include <algorithm>
#include <cstdio>
#include <iostream>
+#include <optional>
+#include <string>
#include <lib/inst.h>
#include "./lexer.hpp"
+using std::pair, std::string, std::string_view, std::vector;
+
+std::optional<string> read_file(const char *filename)
+{
+ FILE *fp = fopen(filename, "rb");
+ if (fp)
+ {
+ string contents;
+ fseek(fp, 0, SEEK_END);
+ contents.resize(ftell(fp));
+ rewind(fp);
+ fread(&contents[0], 1, contents.size(), fp);
+ fclose(fp);
+
+ return contents;
+ }
+ else
+ return std::nullopt;
+}
+
void usage(const char *program_name, FILE *fp)
{
fprintf(fp,