diff options
| author | Mistivia <i@mistivia.com> | 2025-03-25 13:07:21 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-03-25 13:07:21 +0800 |
| commit | fb7664e087cb1afb64aae2128365f703beb30b57 (patch) | |
| tree | 6d4e2a4cc695052e489ec9e3fd28538a79a08f4c /tests/test_as_tokenizer.c | |
| parent | dc87ff4b0c9f311be7fad652594e3766a4ddb0c6 (diff) | |
add result style error handling
Diffstat (limited to 'tests/test_as_tokenizer.c')
| -rw-r--r-- | tests/test_as_tokenizer.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tests/test_as_tokenizer.c b/tests/test_as_tokenizer.c index 7d82099..995c764 100644 --- a/tests/test_as_tokenizer.c +++ b/tests/test_as_tokenizer.c @@ -26,7 +26,8 @@ char *expected_output = "OP: div, line: 4, col: 5\n" "NEWLINE\n" "OP: eq, line: 5, col: 5\n" - "NEWLINE\n"; + "NEWLINE\n" + "ENDOFFILE\n"; int main(int argc, char** argv) { printf("[TEST] assembler tokenizer\n"); @@ -40,8 +41,15 @@ int main(int argc, char** argv) { FILE *out = fmemopen(output_buffer, 10240, "w"); FILE *origin_stdout = stdout; stdout = out; - while (peek_token(alct, ts)->type != TK_ENDOFFILE) { - print_token(peek_token(alct, ts)); + struct token* token; + struct result result; + while (1) { + result = peek_token(alct, ts); + assert(result.errmsg == NULL); + assert(result.value != NULL); + token = result.value; + print_token(token); + if (token->type == TK_ENDOFFILE) break; next_token(alct, ts); } fclose(out); |
