diff options
Diffstat (limited to 'tests/test_as_parser.c')
| -rw-r--r-- | tests/test_as_parser.c | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/tests/test_as_parser.c b/tests/test_as_parser.c deleted file mode 100644 index 62a4b8d..0000000 --- a/tests/test_as_parser.c +++ /dev/null @@ -1,47 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <assert.h> - -#include "as_tokenizer.h" -#include "as_parser.h" -#include "utils.h" - -char *input_buffer = - "start:\n" - " add 1\n" - " sub start\n" - " div\n" - "end: eq\n"; - -int main(int argc, char** argv) { - struct result result; - printf("[TEST] assembler parser\n"); - // make a memory buffer to FILE* - FILE *fp = fmemopen(input_buffer, strlen(input_buffer), "r"); - struct allocator * alct = new_allocator(); - struct token_stream * ts = new_token_stream(alct, fp); - result = parse_prog(alct, ts); - if (result.errmsg != NULL) { - printf("error: %s\n", result.errmsg); - } - assert(result.errmsg == NULL); - struct prog* prog = result.value; - - // compare output - struct stmt * * stmts = prog->stmts->stmts; - - assert(stmts[0]->instr == NULL); - assert(strcmp("start", stmts[0]->label->name) == 0); - - assert(stmts[1]->label == NULL); - assert(stmts[1]->instr->op == OP_ADD); - assert(stmts[1]->instr->arg->ival == 1); - - assert(strcmp("end", stmts[4]->label->name) == 0); - assert(stmts[4]->instr->op == OP_EQ); - - printf("[PASS] assembler parser\n"); - fclose(fp); - delete_allocator(alct); - return 0; -} |
