aboutsummaryrefslogtreecommitdiffstats
path: root/src/nodes.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nodes.c')
-rw-r--r--src/nodes.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nodes.c b/src/nodes.c
index 3a63246..af3b772 100644
--- a/src/nodes.c
+++ b/src/nodes.c
@@ -11,6 +11,9 @@ alloc_node(NodeType type) {
11 11
12void 12void
13print_node(Node *node) { 13print_node(Node *node) {
14 if (node == NULL) {
15 return;
16 }
14 switch (node->type) { 17 switch (node->type) {
15 case NODE_NUMBER: { 18 case NODE_NUMBER: {
16 if (node->number.negative) { 19 if (node->number.negative) {
@@ -73,6 +76,17 @@ print_node(Node *node) {
73 } 76 }
74 printf(" }"); 77 printf(" }");
75 } break; 78 } break;
79 case NODE_IF: {
80 printf("(if ");
81 print_node(node->ifexpr.cond);
82 printf(" ");
83 print_node(node->ifexpr.expr_true);
84 if (node->ifexpr.expr_false != NULL) {
85 printf(" ");
86 print_node(node->ifexpr.expr_false);
87 }
88 printf(")");
89 } break;
76 case NODE_FUN: { 90 case NODE_FUN: {
77 printf("(fun "); 91 printf("(fun ");
78 print_node(node->fun.name); 92 print_node(node->fun.name);