feat: implement loops

This commit is contained in:
samsonium
2026-10-22 18:24:28 +03:00
parent 0188991f4d
commit cc5bbd61f2
7 changed files with 396 additions and 4 deletions
+17 -1
View File
@@ -31,6 +31,22 @@ void print_node(fzl_node_t *node, int level)
switch (node->type)
{
case FZL_NODETYPE_LOOP:
printf("%s Loop:\n", levelbuf);
printf("-%s Init:\n", levelbuf);
if (node->loop.init)
print_node(node->loop.init, level + 2);
printf("-%s Condition:\n", levelbuf);
if (node->loop.cond)
print_node(node->loop.cond, level + 2);
printf("-%s Step:\n", levelbuf);
if (node->loop.step)
print_node(node->loop.step, level + 2);
printf("-%s Body:\n", levelbuf);
if (node->loop.body)
print_node(node->loop.body, level + 2);
break;
case FZL_NODETYPE_CONSTRUCT:
printf("%s Construct class '%s':\n", levelbuf,
(char *)node->construct.name->token->value);
@@ -169,7 +185,7 @@ void fzl_debug_print_ast(fzl_node_t *root)
fzl_node_t *curr = root;
while (curr != NULL)
{
print_node(curr, 2);
print_node(curr, 3);
curr = curr->next;
}