feat: implement conditions
This commit is contained in:
@@ -63,6 +63,19 @@ void print_node(fzl_node_t *node, int level)
|
||||
printf("%s Literal '%s'\n", levelbuf, (char *)node->token->value);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_CONDITIONAL:
|
||||
printf("%s Conditional block:\n", levelbuf);
|
||||
printf("-%s Condition:\n", levelbuf);
|
||||
print_node(node->cond.condition, level + 2);
|
||||
printf("-%s True block:\n", levelbuf);
|
||||
print_node(node->cond.true_block, level + 2);
|
||||
if (node->cond.else_block)
|
||||
{
|
||||
printf("-%s Else block:\n", levelbuf);
|
||||
print_node(node->cond.else_block, level + 2);
|
||||
}
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_BLOCK:
|
||||
printf("%s Block: ", levelbuf);
|
||||
|
||||
@@ -77,6 +90,18 @@ void print_node(fzl_node_t *node, int level)
|
||||
print_node(node->list.entries[i], level + 1);
|
||||
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_NOT:
|
||||
printf("%s Inverse:\n", levelbuf);
|
||||
print_node(node->unary_op.operand, level + 1);
|
||||
break;
|
||||
|
||||
case FZL_NODETYPE_EQUAL:
|
||||
case FZL_NODETYPE_NEQUAL:
|
||||
case FZL_NODETYPE_LESS:
|
||||
case FZL_NODETYPE_LESS_EQUAL:
|
||||
case FZL_NODETYPE_GREATER:
|
||||
case FZL_NODETYPE_GREATER_EQUAL:
|
||||
case FZL_NODETYPE_ADD:
|
||||
case FZL_NODETYPE_SUB:
|
||||
case FZL_NODETYPE_MUL:
|
||||
|
||||
Reference in New Issue
Block a user