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