aboutsummaryrefslogtreecommitdiffstats
path: root/src/viz.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-04-08 18:49:40 -0300
committerBad Diode <bd@badd10de.dev>2022-04-08 18:49:40 -0300
commit233dd92768a54060df9096558aa58c1f598cce7d (patch)
tree70cad899ab9767e6cc069192a763e2c0354b9f3f /src/viz.c
parent55ecfb3b7713172f76ddbff022fa4d6a80d0661a (diff)
downloadbdl-233dd92768a54060df9096558aa58c1f598cce7d.tar.gz
bdl-233dd92768a54060df9096558aa58c1f598cce7d.zip
Add rudimentary type checking
Diffstat (limited to 'src/viz.c')
-rw-r--r--src/viz.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/viz.c b/src/viz.c
index d409472..8b5d4cf 100644
--- a/src/viz.c
+++ b/src/viz.c
@@ -19,6 +19,10 @@ viz_node(Node *node) {
19 } 19 }
20 printf("%zu [width=2.5,shape=Mrecord,label=\"", node->id); 20 printf("%zu [width=2.5,shape=Mrecord,label=\"", node->id);
21 printf("<top> %s -- [%4ld:%-4ld] ", node_str[node->type], node->line, node->col); 21 printf("<top> %s -- [%4ld:%-4ld] ", node_str[node->type], node->line, node->col);
22 if (node->expr_type != NULL) {
23 printf("| T: ");
24 sv_write(&node->expr_type->name);
25 }
22 switch (node->type) { 26 switch (node->type) {
23 case NODE_NUMBER: { 27 case NODE_NUMBER: {
24 printf("| Value: "); 28 printf("| Value: ");
@@ -136,6 +140,9 @@ viz_node(Node *node) {
136 140
137void 141void
138viz_ast(ParseTree *parse_tree) { 142viz_ast(ParseTree *parse_tree) {
143 if (parse_tree == NULL) {
144 return;
145 }
139 printf("digraph ast {\n"); 146 printf("digraph ast {\n");
140 printf("rankdir=LR;\n"); 147 printf("rankdir=LR;\n");
141 printf("ranksep=\"0.95 equally\";\n"); 148 printf("ranksep=\"0.95 equally\";\n");