codea: print tree (bessere debugausgabe)
[uebersetzerbau-ss10.git] / codea / tree.c
index b85fe6ac96a859acb4bfd0adca5ee90259d5f109..e480fa7a0943983b56fb41187df7dc6074f78cfe 100644 (file)
@@ -54,3 +54,23 @@ struct treenode *new_number(long val)
        return new;
 }
 
+static void write_indent(int i)
+{
+       int a;
+       for(a = 0; a < i; a++) {
+               fprintf(stderr, "| ");
+       }
+}
+
+void write_tree(struct treenode *node, int indent)
+{
+       write_indent(indent);
+       fprintf(stderr, "%s @ %%%s\n", o_names[node->op], node->reg);
+       if(node->kids[0] != TREENULL) {
+               write_tree(node->kids[0], indent+1);
+       }
+       if(node->kids[1] != TREENULL) {
+               write_tree(node->kids[1], indent+1);
+       }
+}
+