aboutsummaryrefslogtreecommitdiff
path: root/interpreter/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter/print.c')
-rw-r--r--interpreter/print.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/interpreter/print.c b/interpreter/print.c
index 9b65a7f..3f39b13 100644
--- a/interpreter/print.c
+++ b/interpreter/print.c
@@ -1,6 +1,7 @@
#include "print.h"
#include <stdio.h>
+#include <inttypes.h>
#include "log.h"
#include "mem.h"
@@ -174,38 +175,43 @@ void print_node_to_file(struct node* node, FILE* f, struct visited_nodes *visite
switch (node->kind) {
case NODE_INT:
- fprintf(f, "%d [label=\"%p: %d (%d)\", penwidth=%d];\n",
- node, node, *((int*) node->var1), node->used_count, node->used_count);
+ fprintf(f, "%" PRIuPTR " [label=\"%p: %d (%d)\", penwidth=%d];\n",
+ (uintptr_t) node, node, *((int*) node->var1),
+ node->used_count, node->used_count);
break;
case NODE_NAME:
- fprintf(f, "%d [label=\"%p: %s (%d)\", penwidth=%d];\n",
- node, node, (char*) node->var1, node->used_count, node->used_count);
+ fprintf(f, "%" PRIuPTR " [label=\"%p: %s (%d)\", penwidth=%d];\n",
+ (uintptr_t) node, node, (char*) node->var1,
+ node->used_count, node->used_count);
break;
case NODE_CODE:
- fprintf(f, "%d [label=\"%p: code: %p (%d)\", penwidth=%d];\n",
- node, node, node->var1, node->used_count, node->used_count);
+ fprintf(f, "%" PRIuPTR " [label=\"%p: code: %p (%d)\", penwidth=%d];\n",
+ (uintptr_t) node, node, node->var1,
+ node->used_count, node->used_count);
break;
case NODE_LIST:
case NODE_TUPLE:
case NODE_APP:
if (node->kind == NODE_LIST)
- fprintf(f, "%d [label=\"%p: List (%d)\", penwidth=%d];\n",
- node, node, node->used_count, node->used_count);
+ fprintf(f, "%" PRIuPTR " [label=\"%p: List (%d)\", penwidth=%d];\n",
+ (uintptr_t) node, node, node->used_count, node->used_count);
else if (node->kind == NODE_TUPLE)
- fprintf(f, "%d [label=\"%p: Tuple (%d)\", penwidth=%d];\n",
- node, node, node->used_count, node->used_count);
+ fprintf(f, "%" PRIuPTR " [label=\"%p: Tuple (%d)\", penwidth=%d];\n",
+ (uintptr_t) node, node, node->used_count, node->used_count);
else if (node->kind == NODE_APP)
- fprintf(f, "%d [label=\"%p: App (%d)\", penwidth=%d];\n",
- node, node, node->used_count, node->used_count);
+ fprintf(f, "%" PRIuPTR " [label=\"%p: App (%d)\", penwidth=%d];\n",
+ (uintptr_t) node, node, node->used_count, node->used_count);
if (node->var1) {
print_node_to_file((struct node*) node->var1, f, visited);
print_node_to_file((struct node*) node->var2, f, visited);
- fprintf(f, "%d -> %d [label=\"l\", penwidth=%d];\n", node, node->var1, node->used_count);
- fprintf(f, "%d -> %d [label=\"r\", penwidth=%d];\n", node, node->var2, node->used_count);
+ fprintf(f, "%" PRIuPTR " -> %" PRIuPTR " [label=\"l\", penwidth=%d];\n",
+ (uintptr_t) node, (uintptr_t) node->var1, node->used_count);
+ fprintf(f, "%" PRIuPTR " -> %" PRIuPTR " [label=\"r\", penwidth=%d];\n",
+ (uintptr_t) node, (uintptr_t) node->var2, node->used_count);
}
break;
}