1 /*- 2 * %sccs.include.proprietary.c% 3 */ 4 5 #ifndef lint 6 static char sccsid[] = "@(#)0.graph.c 8.1 (Berkeley) 06/06/93"; 7 #endif /* not lint */ 8 9 #include <stdio.h> 10 #include "def.h" 11 12 #define TABOVER(n) tabover(n,stderr) 13 prgraph() 14 { 15 VERT v; 16 int i; 17 if (progress) fprintf(stderr,"prgraph():\n"); 18 for (v = 0; v < nodenum; ++v) 19 { 20 fprintf(stderr,"%d %s:",v, typename[NTYPE(v)]); 21 for (i = 0; i < ARCNUM(v); ++i) 22 { 23 printf("%d ",ARC(v,i)); 24 ASSERT(UNDEFINED <= ARC(v,i) && ARC(v,i) < nodenum, prgraph); 25 } 26 printf("\n"); 27 } 28 printf("\n\n"); 29 } 30 31 prtree() 32 { 33 prtr(START,1); 34 } 35 36 prtr(v,tab) /* print tree in form of program indenting by tab */ 37 VERT v; 38 int tab; 39 { 40 int i; 41 TABOVER(tab); 42 fprintf(stderr,"%d %s:",v,typename[NTYPE(v)]); 43 for (i = 0; i < ARCNUM(v); ++i) 44 fprintf(stderr," %d",ARC(v,i)); 45 printf("\n"); 46 for (i = 0; i < CHILDNUM(v); ++i) 47 { 48 TABOVER(tab+1); 49 fprintf(stderr,"{\n"); 50 if (DEFINED(LCHILD(v,i))) 51 prtr(LCHILD(v,i),tab+1); 52 TABOVER(tab+1); 53 fprintf(stderr,"}\n"); 54 } 55 if (DEFINED(RSIB(v))) 56 prtr(RSIB(v),tab); 57 } 58 59 60 tabover(n,fd) /* tab n times */ 61 int n; 62 FILE *fd; 63 { 64 int i; 65 for (i = 0; i < n; ++i) 66 putc('\t',fd); 67 } 68