From b44a61be41e44b415b1293fcbc1f1e8c4ce3373d Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Mon, 23 Oct 2023 03:58:34 +0100 Subject: src->vm, Makefile is now a bit more abstracted and pretty colours Changed folder names for sake of clarity (will be introducing a new build target soon), and Makefile can now easily support more targets. --- src/main.c | 62 -------------------------------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 src/main.c (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c deleted file mode 100644 index 005b61e..0000000 --- a/src/main.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (C) 2023 Aryadev Chavali - - * You may distribute and modify this code under the terms of the - * GPLv2 license. You should have received a copy of the GPLv2 - * license with this file. If not, please write to: - * aryadev@aryadevchavali.com. - - * Created: 2023-10-15 - * Author: Aryadev Chavali - * Description: Entrypoint to program - */ - -#include -#include -#include - -#include "./inst.h" -#include "./runtime.h" - -int interpret_bytecode(const char *filepath) -{ - FILE *fp = fopen(filepath, "rb"); - size_t number = 0; - inst_t *instructions = insts_read_bytecode_file(fp, &number); - fclose(fp); - - byte stack[256]; - vm_t vm = {0}; - vm_load_stack(&vm, stack, ARR_SIZE(stack)); - vm_load_program(&vm, instructions, number); - err_t err = vm_execute_all(&vm); - - int ret = 0; - if (err) - { - const char *error_str = err_as_cstr(err); - fprintf(stderr, "[ERROR]: %s\n", error_str); - vm_print_all(&vm, stderr); - ret = 255 - err; - } - free(instructions); - return ret; -} - -int assemble_instructions(inst_t *instructions, size_t number, - const char *filepath) -{ - FILE *fp = fopen(filepath, "wb"); - insts_write_bytecode_file(instructions, number, fp); - fclose(fp); - return 0; -} - -int main(int argc, char *argv[]) -{ - const char *filename = "out.bin"; - if (argc >= 2) - filename = argv[1]; - inst_t instructions[] = {INST_HALT}; - assemble_instructions(instructions, ARR_SIZE(instructions), filename); - return interpret_bytecode(filename); -} -- cgit v1.2.3-13-gbd6f