aboutsummaryrefslogtreecommitdiffstats
path: root/src/viz.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/viz.c
parentab3e064c6f90ec94daad99b5a4c56e0abbcc79bb (diff)
downloadbdl-140cd959daabf5c18b9cccc210a58ab50351e884.tar.gz
bdl-140cd959daabf5c18b9cccc210a58ab50351e884.zip
Add funcall node type and fix type resolution bugs
Diffstat (limited to 'src/viz.c')
-rw-r--r--src/viz.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/viz.c b/src/viz.c
index 8b5d4cf..81cc1ff 100644
--- a/src/viz.c
+++ b/src/viz.c
@@ -10,6 +10,7 @@ static const char* node_str[] = {
10 [NODE_FUN] = "FUN", 10 [NODE_FUN] = "FUN",
11 [NODE_BLOCK] = "BLOCK", 11 [NODE_BLOCK] = "BLOCK",
12 [NODE_IF] = "IF", 12 [NODE_IF] = "IF",
13 [NODE_FUNCALL] = "FUNCALL",
13}; 14};
14 15
15void 16void
@@ -135,6 +136,18 @@ viz_node(Node *node) {
135 viz_node(node->fun.body); 136 viz_node(node->fun.body);
136 printf("%zu:bod:e->%zu:top:w;\n", node->id, node->fun.body->id); 137 printf("%zu:bod:e->%zu:top:w;\n", node->id, node->fun.body->id);
137 } break; 138 } break;
139 case NODE_FUNCALL: {
140 printf(" | Name: ");
141 sv_write(&node->funcall.name->string);
142 printf(" | <args> Args: ");
143 printf("\"];\n");
144 size_t n_args = array_size(node->funcall.args);
145 for (size_t i = 0; i < n_args; ++i) {
146 viz_node(node->funcall.args[i]);
147 printf("%zu:args:e->%zu:top:w;\n", node->id,
148 node->funcall.args[i]->id);
149 }
150 } break;
138 } 151 }
139} 152}
140 153