chore: entrypoint initial scaffolding

This commit is contained in:
2026-03-26 13:16:41 +01:00
parent f94e7a7b8c
commit 33c2394142
2 changed files with 43 additions and 3 deletions
-3
View File
@@ -1,3 +0,0 @@
int main(int argc, char **argv) {
return 0;
}
+43
View File
@@ -0,0 +1,43 @@
#include <fstream>
#include <iostream>
#include <regex>
#include <string>
#include "parser.hpp"
#include "utils.hpp"
int process(std::string source) {
std::ifstream ifs(source);
std::string line;
LinkedList<Command> *commands = nullptr;
while (getline(ifs, line)) {
if (isComment(line) || isEmptyLine(line))
continue;
int parseResult;
if ((parseResult = parseCommand(commands, line)) != 0)
return parseResult;
}
return 0;
}
int main(int argc, char **argv) {
if (argc != 2) {
std::cerr << "You must specify an argument for the vm file to translate!"
<< std::endl;
exit(1);
}
std::string source = argv[1];
if (!regex_match(source, std::regex("^.+\\.vm"))) {
std::cerr << "Source file is not a vm file!" << std::endl;
exit(1);
}
return process(source);
}