diff options
author | Bad Diode <bd@badd10de.dev> | 2022-04-06 07:30:43 -0300 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-04-06 07:30:43 -0300 |
commit | 77b309ba82d090094f5f753342c3aa401cbf657d (patch) | |
tree | 2ead2ad4a87b6ba14c766a62b2a82e7005fb03c1 /src/nodes.c | |
parent | c8b53cb4590d8d6cbfc5cbf891809ddd99e33fe5 (diff) | |
download | bdl-77b309ba82d090094f5f753342c3aa401cbf657d.tar.gz bdl-77b309ba82d090094f5f753342c3aa401cbf657d.zip |
Add NODE_BLOCK for scoped expressions
Diffstat (limited to 'src/nodes.c')
-rw-r--r-- | src/nodes.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/nodes.c b/src/nodes.c index fc39d8e..3a63246 100644 --- a/src/nodes.c +++ b/src/nodes.c | |||
@@ -64,6 +64,15 @@ print_node(Node *node) { | |||
64 | print_node(node->def.value); | 64 | print_node(node->def.value); |
65 | printf(")"); | 65 | printf(")"); |
66 | } break; | 66 | } break; |
67 | case NODE_BLOCK: { | ||
68 | size_t n_expr = array_size(node->block.expr); | ||
69 | printf("{"); | ||
70 | for (size_t i = 0; i < n_expr; ++i) { | ||
71 | printf(" "); | ||
72 | print_node(node->block.expr[i]); | ||
73 | } | ||
74 | printf(" }"); | ||
75 | } break; | ||
67 | case NODE_FUN: { | 76 | case NODE_FUN: { |
68 | printf("(fun "); | 77 | printf("(fun "); |
69 | print_node(node->fun.name); | 78 | print_node(node->fun.name); |
@@ -80,13 +89,8 @@ print_node(Node *node) { | |||
80 | printf(")"); | 89 | printf(")"); |
81 | printf(": "); | 90 | printf(": "); |
82 | print_node(node->fun.return_type); | 91 | print_node(node->fun.return_type); |
83 | 92 | printf(" "); | |
84 | size_t n_expr = array_size(node->fun.body); | 93 | print_node(node->fun.body); |
85 | for (size_t i = 0; i < n_expr; ++i) { | ||
86 | printf(" "); | ||
87 | print_node(node->fun.body[i]); | ||
88 | } | ||
89 | |||
90 | printf(")"); | 94 | printf(")"); |
91 | } break; | 95 | } break; |
92 | default: { printf("{#unknown#}"); } break; | 96 | default: { printf("{#unknown#}"); } break; |