diff options
Diffstat (limited to 'asm/main.cpp')
-rw-r--r-- | asm/main.cpp | 23 |
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, |