void fdprint_tree_verbose(MathTree* tree, int fd) { FILE* f = fdopen(fd, "w"); for (unsigned level=0; level < tree->num_levels; ++level) { fprintf(f, "Level %i:\n", level); for (unsigned op=0; op < LAST_OP; ++op) { if (tree->active[level][op] == 0) continue; fprintf(f, " %s:\n", OPCODE_NAMES[op]); for (unsigned n=0; n < tree->active[level][op]; ++n) { fprintf(f, " "); fprint_node(tree->nodes[level][op][n], f); fprintf(f, "\n"); } } } if (tree->num_constants) { if (tree->num_levels) fprintf(f, "\n"); fprintf(f, "Constants:\n"); for (unsigned c=0; c < tree->num_constants; ++c) { fprintf(f, " "); fprint_node(tree->constants[c], f); fprintf(f, "\n"); } } fclose(f); }
EXPORT void print_node( NODE *node) { fprint_node(stdout,node); } /*end print_node*/