diff options
author | Bad Diode <bd@badd10de.dev> | 2022-04-11 18:39:27 -0300 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-04-11 18:39:27 -0300 |
commit | 140cd959daabf5c18b9cccc210a58ab50351e884 (patch) | |
tree | ff8480fc271d520463f8be4a344f63fb037fffed /src/nodes.c | |
parent | ab3e064c6f90ec94daad99b5a4c56e0abbcc79bb (diff) | |
download | bdl-140cd959daabf5c18b9cccc210a58ab50351e884.tar.gz bdl-140cd959daabf5c18b9cccc210a58ab50351e884.zip |
Add funcall node type and fix type resolution bugs
Diffstat (limited to 'src/nodes.c')
-rw-r--r-- | src/nodes.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/nodes.c b/src/nodes.c index 51cc9ef..b8a5f09 100644 --- a/src/nodes.c +++ b/src/nodes.c | |||
@@ -114,6 +114,21 @@ print_node(Node *node) { | |||
114 | print_node(node->fun.body); | 114 | print_node(node->fun.body); |
115 | printf(")"); | 115 | printf(")"); |
116 | } break; | 116 | } break; |
117 | case NODE_FUNCALL: { | ||
118 | printf("("); | ||
119 | print_node(node->funcall.name); | ||
120 | size_t n_args = array_size(node->funcall.args); | ||
121 | if (n_args != 0) { | ||
122 | printf(" "); | ||
123 | } | ||
124 | for (size_t i = 0; i < n_args; ++i) { | ||
125 | print_node(node->funcall.args[i]); | ||
126 | if (i < n_args - 1) { | ||
127 | printf(" "); | ||
128 | } | ||
129 | } | ||
130 | printf(")"); | ||
131 | } break; | ||
117 | default: { printf("{#unknown#}"); } break; | 132 | default: { printf("{#unknown#}"); } break; |
118 | } | 133 | } |
119 | } | 134 | } |