aboutsummaryrefslogtreecommitdiffstats
path: root/src/nodes.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-04-11 18:39:27 -0300
committerBad Diode <bd@badd10de.dev>2022-04-11 18:39:27 -0300
commit140cd959daabf5c18b9cccc210a58ab50351e884 (patch)
treeff8480fc271d520463f8be4a344f63fb037fffed /src/nodes.c
parentab3e064c6f90ec94daad99b5a4c56e0abbcc79bb (diff)
downloadbdl-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.c15
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}