From b4d7305730606126d74862ca472a3efed964c2d8 Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Sat, 28 Mar 2026 17:05:37 -1000 Subject: rehashing and size tracking corrections --- main.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 5c26dd3..4cb0ba7 100644 --- a/main.c +++ b/main.c @@ -41,13 +41,28 @@ void test_parser(int argc, char** argv) { for (int i = 1; i < argc; i++) { struct root_node* root = parse(argv[i]); unsigned int fn_sz = strlen(argv[i]); - char outfile[fn_sz + 1]; - strcpy(outfile, argv[i]); - outfile[fn_sz - 1] = 's'; - outfile[fn_sz] = 0; + char asm_file[fn_sz + 1]; + strcpy(asm_file, argv[i]); + asm_file[fn_sz - 1] = 's'; + asm_file[fn_sz] = 0; - emit_code(root, outfile); + emit_code(root, asm_file); ast_destroy(root); + + char obj_file[fn_sz + 1]; + strcpy(obj_file, argv[i]); + obj_file[fn_sz - 1] = 'o'; + obj_file[fn_sz] = 0; + + char cmd_buffer[2*fn_sz + 20]; + snprintf( + cmd_buffer, + sizeof(cmd_buffer), + "nasm -f elf64 %s -o %s", + asm_file, + obj_file); + int status = system(cmd_buffer); + if (status != 0) exit(status); } } -- cgit v1.2.3