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)
prgraph()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
prtree()31 prtree()
32 {
33 prtr(START,1);
34 }
35
prtr(v,tab)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
tabover(n,fd)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