/*----------------------------------------------- | printtabs +---------------------------------------------*/ void printtabs(struct symtabl *curr_symtab) { if(curr_symtab != NULL) { print_symtab(curr_symtab); print_symtab(curr_symtab->labels); printtabs(curr_symtab->rsibling); printtabs(curr_symtab->child); } }
static void pretty_print_block(lexeme tree) { lexeme next = get_left(tree); lexeme_destroy(tree); printf("{\n"); tabcount++; printtabs(); if (next != NULL) { pretty_print(next); } tabcount--; printtabs(); printf("}"); }
static void pretty_print_unitlist(lexeme tree) { lexeme current = get_left(tree); lexeme next = get_right(tree); lexeme_destroy(tree); pretty_print(current); printf(";\n"); if (lexeme_get_type(next) != NIL) { printtabs(); pretty_print(next); } }
void printtree_rec(t_graphnode *graph, int x) { if(!graph) return ; printtree_rec(graph->right,x+1); printtabs(x); switch(graph->type) { case DIGRAPH: fprintf(stdout,"DIGRAPH %s\n",graph->name); break; case GRAPH: fprintf(stdout,"GRAPH %s\n",graph->name); break; case SUBGRAPH: fprintf(stdout,"SUBGRAPH %s\n",graph->name); break; case ID: fprintf(stdout,"ID %s\n",graph->name); break; case DID: fprintf(stdout,"DID %s %s %s\n",graph->name,graph->arrow,graph->value); break; case PROP: fprintf(stdout,"PROP %s = %s\n",graph->name,graph->value); break; case LIST: fprintf(stdout,"LIST\n"); break; default: fprintf(stderr,"!!! UNKNOWN TREENODETYPE !!!\n"); exit(EXIT_FAILURE); } printtree_rec(graph->left,x+1); }