diff options
author | Bad Diode <bd@badd10de.dev> | 2022-04-08 18:49:40 -0300 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-04-08 18:49:40 -0300 |
commit | 233dd92768a54060df9096558aa58c1f598cce7d (patch) | |
tree | 70cad899ab9767e6cc069192a763e2c0354b9f3f /src/viz.c | |
parent | 55ecfb3b7713172f76ddbff022fa4d6a80d0661a (diff) | |
download | bdl-233dd92768a54060df9096558aa58c1f598cce7d.tar.gz bdl-233dd92768a54060df9096558aa58c1f598cce7d.zip |
Add rudimentary type checking
Diffstat (limited to 'src/viz.c')
-rw-r--r-- | src/viz.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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 | ||
137 | void | 141 | void |
138 | viz_ast(ParseTree *parse_tree) { | 142 | viz_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"); |