diff options
author | Freya Murphy <freya@freyacat.org> | 2024-09-11 12:06:09 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-09-11 12:06:09 -0400 |
commit | e3d2e31377030e84066bed4bbc04bf6c56206305 (patch) | |
tree | d5e7428212606a0f64d5b2e628b3f507948b8e2f /masm/symtbl.c | |
parent | joe (diff) | |
download | mips-e3d2e31377030e84066bed4bbc04bf6c56206305.tar.gz mips-e3d2e31377030e84066bed4bbc04bf6c56206305.tar.bz2 mips-e3d2e31377030e84066bed4bbc04bf6c56206305.zip |
refactor
Diffstat (limited to '')
-rw-r--r-- | masm/symtbl.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/masm/symtbl.c b/masm/symtbl.c deleted file mode 100644 index 8aa7bcf..0000000 --- a/masm/symtbl.c +++ /dev/null @@ -1,57 +0,0 @@ -#include <merror.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "asm.h" - -#define SYMTBL_INIT_LEN 24 - -int symtbl_init(struct symbol_table *sym_tbl) -{ - sym_tbl->len = SYMTBL_INIT_LEN; - sym_tbl->count = 0; - sym_tbl->symbols = malloc(sizeof(struct symbol) * SYMTBL_INIT_LEN); - - if (sym_tbl->symbols == NULL) { - ERROR("cannot alloc"); - return M_ERROR; - } - - return M_SUCCESS; -} - -void symtbl_free(struct symbol_table *sym_tbl) -{ - free(sym_tbl->symbols); -} - -int symtbl_push(struct symbol_table *sym_tbl, struct symbol sym) -{ - if (sym_tbl->count >= sym_tbl->len) { - sym_tbl->len *= 2; - sym_tbl->symbols = realloc(sym_tbl->symbols, - sizeof(struct symbol) * sym_tbl->len); - if (sym_tbl->symbols == NULL) { - ERROR("cannot relloc"); - return M_ERROR; - } - } - - sym_tbl->symbols[sym_tbl->count++] = sym; - return M_SUCCESS; -} - -int symtbl_find(struct symbol_table *sym_tbl, struct symbol **ptr, - const char name[MAX_LEX_LENGTH]) -{ - for (uint32_t i = 0; i < sym_tbl->count; i++) { - struct symbol *sym = &sym_tbl->symbols[i]; - if (strcmp(sym->name, name) == 0) { - if (ptr != NULL) - *ptr = sym; - return M_SUCCESS; - } - } - return M_ERROR; -} |