diff options
Diffstat (limited to 'masm/asm.h')
| -rw-r--r-- | masm/asm.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/masm/asm.h b/masm/asm.h new file mode 100644 index 0000000..1bc7cf5 --- /dev/null +++ b/masm/asm.h @@ -0,0 +1,33 @@ +/* Copyright (c) 2024 Freya Murphy */ + +#ifndef __ASM_H__ +#define __ASM_H__ + +#include <stddef.h> + +struct str_table { + char *ptr; + size_t size; +}; + +/* initalize a string table */ +void strtbl_init(struct str_table *str_tbl); + +/* free a string table */ +void strtbl_free(struct str_table *str_tbl); + +/* get a string form the string table */ +int strtbl_get_str(struct str_table *str_tbl, const char *str, size_t *res); + +/* get or append a string into the string table */ +int strtbl_write_str(struct str_table *str_tbl, const char *str, size_t *res); + +struct assembler { + struct parser *parser; + struct str_table str_tbl; +}; + +/* assemble a mips32 file*/ +int assemble_file_mips32(char *path); + +#endif /* __ASM_H__ */ |