aboutsummaryrefslogtreecommitdiff
path: root/tests/test_as_parser.c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-03-25 13:07:21 +0800
committerMistivia <i@mistivia.com>2025-03-25 13:07:21 +0800
commitfb7664e087cb1afb64aae2128365f703beb30b57 (patch)
tree6d4e2a4cc695052e489ec9e3fd28538a79a08f4c /tests/test_as_parser.c
parentdc87ff4b0c9f311be7fad652594e3766a4ddb0c6 (diff)
add result style error handling
Diffstat (limited to 'tests/test_as_parser.c')
-rw-r--r--tests/test_as_parser.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/test_as_parser.c b/tests/test_as_parser.c
index 01ba413..096031f 100644
--- a/tests/test_as_parser.c
+++ b/tests/test_as_parser.c
@@ -14,12 +14,18 @@ char *input_buffer =
"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);
- struct prog * prog = parse_prog(alct, ts);
+ 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;