feat: implement functions
This commit is contained in:
@@ -96,6 +96,22 @@ void print_node(fzl_node_t *node, int level)
|
||||
print_node(node->unary_op.operand, level + 1);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_FUNCTION:
|
||||
printf("%s Function named '%s' with ret type '%s':\n", levelbuf,
|
||||
(char *)node->fn.name->value, (char *)node->fn.type->value);
|
||||
printf("-%s Args:\n", levelbuf);
|
||||
for (size_t i = 0; i < node->fn.args_count; i++)
|
||||
print_node(node->fn.args[i], level + 2);
|
||||
printf("-%s Body:\n", levelbuf);
|
||||
print_node(node->fn.body, level + 2);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_RETURN:
|
||||
printf("%s Return:\n", levelbuf);
|
||||
if (node->ret.value)
|
||||
print_node(node->ret.value, level + 1);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_EQUAL:
|
||||
case FZL_NODETYPE_NEQUAL:
|
||||
case FZL_NODETYPE_LESS:
|
||||
|
||||
Reference in New Issue
Block a user