home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / struct / 0.graph.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-12  |  1.0 KB  |  60 lines

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