summaryrefslogtreecommitdiff
path: root/test/parser_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/parser_test.c')
-rw-r--r--test/parser_test.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/test/parser_test.c b/test/parser_test.c
index b75f69f..30aa285 100644
--- a/test/parser_test.c
+++ b/test/parser_test.c
@@ -40,13 +40,21 @@ test_parse_function(const MunitParameter params[],
make_lexer_from_static_src(&lexer, "main(): i32 { return 42; }");
parser_init(&parser, &lexer);
- ast_function_t ast_function = parser_parse_function(&parser);
+ ast_node_t *ast_function = ast_node_new();
+ parser_parse_function_declaration(&parser, ast_function);
char actual[5];
- string_view_to_str(&ast_function.name, actual);
+ string_view_to_str(&ast_function->data.function.name, actual);
assert_string_equal("main", actual);
- assert_int(42, ==, ast_function.body.number);
+ assert_int(AST_FUNCTION_DECLARATION, ==, ast_function->kind);
+
+ ast_node_t *ast_return = ast_function->data.function.body;
+
+ assert_int(AST_RETURN_STMT, ==, ast_return->kind);
+ assert_int(42, ==, ast_return->data.return_stmt.number);
+
+ ast_node_destroy(ast_function);
return MUNIT_OK;
}