Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
EXPORT	void	print_node(
	NODE		*node)
{
	fprint_node(stdout,node);
}		/*end print_node*/