1: #include <stdio.h>
   2: #include "def.h"
   3: 
   4: char *typename[TYPENUM] = {"STLNVX",    "IFVX",     "DOVX",     "IOVX", "FMTVX",
   5:             "COMPVX",   "ASVX",     "ASGOVX",   "LOOPVX",   "WHIVX",
   6:             "UNTVX",    "ITERVX",   "THENVX",   "STOPVX",   "RETVX",
   7:             "DUMVX",    "GOVX",     "BRKVX",    "NXTVX",    "SWCHVX",
   8:             "ACASVX",   "ICASVX"
   9:     };
  10: int hascom[TYPENUM] = {2,       2,      2,      2,      2,
  11:             2,      2,      2,      0,      0,
  12:             0,      0,      2,      0,      0,
  13:             0,      0,      0,      0,      2,
  14:             2,      0
  15:             };
  16: 
  17: int nonarcs[TYPENUM]    = {FIXED+3,     FIXED+4,    FIXED+2,    FIXED+3,    FIXED+2,
  18:             FIXED+2,    FIXED+2,    FIXED+2,    FIXED+1,    FIXED+1,
  19:             FIXED+1,    FIXED+4,    FIXED+3,    FIXED,      FIXED,
  20:             FIXED+2,    FIXED+1,    FIXED + 1,  FIXED + 1,  FIXED+3,
  21:             FIXED+4,    FIXED+2
  22:             };
  23: 
  24: int childper[TYPENUM]   = {0,   2,  1,  0,  0,
  25:             0,  0,  0,  1,  1,
  26:             1,  1,  1,  0,  0,
  27:             1,  0,  0,  0,  1,
  28:             2,  1
  29:             };
  30: 
  31: int arcsper[TYPENUM]    = {1,       2,      2,  3,  0,
  32:             -(FIXED+1), 1,  -(FIXED+1), 1,  1,
  33:             1,      1,      2,  0,  0,
  34:             -FIXED,     1,  1,      1,  -(FIXED+1),
  35:             2,      1
  36:             };
  37: 
  38: VERT *arc(v,i)
  39: VERT v;
  40: int i;
  41:     {
  42:     ASSERT(DEFINED(v),arc);
  43:     ASSERT(0 <= i && i < ARCNUM(v), arc);
  44:     return(&graph[v][nonarcs[NTYPE(v)] + i ]);
  45:     }
  46: 
  47: VERT *lchild(v,i)
  48: VERT v; int i;
  49:     {
  50:     ASSERT(DEFINED(v),lchild);
  51:     ASSERT(0 <= i && i < childper[NTYPE(v)],lchild);
  52:     return(&graph[v][nonarcs[NTYPE(v)]-i-1]);
  53:     }
  54: 
  55: int *vxpart(v,type,j)
  56: VERT v;
  57: int type,j;
  58:     {
  59:     ASSERT((NTYPE(v) == type) && (0 <= j) && (j < nonarcs[type] - FIXED), vxpart);
  60:     return(&graph[v][FIXED+j]);
  61:     }
  62: 
  63: int *expres(v)
  64: VERT v;
  65:     {
  66:     int ty;
  67:     ty = NTYPE(v);
  68:     ASSERT(ty == COMPVX || ty == ASGOVX || ty == ASVX || ty == SWCHVX || ty == ICASVX,expres);
  69:     return(&graph[v][FIXED]);
  70:     }
  71: 
  72: int *negpart(v)
  73: VERT v;
  74:     {
  75:     ASSERT(NTYPE(v) == IFVX || NTYPE(v) == ACASVX,negpart);
  76:     return(&graph[v][FIXED+1]);
  77:     }
  78: 
  79: int *predic(v)
  80: VERT v;
  81:     {
  82:     ASSERT(NTYPE(v) == IFVX || NTYPE(v) == ACASVX, predic);
  83:     return(&graph[v][FIXED]);
  84:     }
  85: 
  86: int *level(v)
  87: VERT v;
  88:     {
  89:     ASSERT(NTYPE(v) == GOVX || NTYPE(v) == BRKVX || NTYPE(v) == NXTVX, level);
  90:     return(&graph[v][FIXED]);
  91:     }
  92: int *stlfmt(v,n)
  93: VERT v;
  94: int n;
  95:     {
  96:     ASSERT(NTYPE(v) == STLNVX || NTYPE(v) == FMTVX,stlfmt);
  97:     return(&graph[v][FIXED + n]);
  98:     }
  99: 
 100: create(type,arcnum)
 101: int type, arcnum;
 102:     {
 103:     int i, *temp, wds;
 104:     if (nodenum >= maxnode)
 105:         {
 106:         maxnode += 100;
 107:         temp=realloc(graph,maxnode*sizeof(*graph));
 108:         free(graph);
 109:         graph=temp;
 110:         }
 111:     wds = nonarcs[type] + arcnum;
 112:     graph[nodenum] = galloc(sizeof(*graph) * wds);
 113:     for (i = 0; i < wds; i++)  graph[nodenum][i] = 0;
 114:     NTYPE(nodenum) = type;
 115:     if (arcsper[type] < 0)
 116:         ARCNUM(nodenum) = arcnum;
 117: 
 118:     return(nodenum++);
 119:     }

Defined functions

arc defined in line 38; used 4 times
expres defined in line 63; used 3 times
lchild defined in line 47; used 4 times
level defined in line 86; used 3 times
negpart defined in line 72; used 3 times
predic defined in line 79; used 3 times
stlfmt defined in line 92; used 4 times
vxpart defined in line 55; used 11 times

Defined variables

arcsper defined in line 31; used 4 times
childper defined in line 24; used 1 times
  • in line 51
hascom defined in line 10; never used
nonarcs defined in line 17; used 4 times
typename defined in line 4; never used
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 853
Valid CSS Valid XHTML 1.0 Strict