feat: implement loops
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user