1: #include "defs"
   2: 
   3: struct { char chars[ 10 ]; };
   4: 
   5: 
   6: crii()  /* create names for intermediate files */
   7: {
   8: 
   9: #ifdef unix
  10: sprintf(icfile->filename, "eflc.%d", getpid());
  11: sprintf(idfile->filename, "efld.%d", getpid());
  12: sprintf(iefile->filename, "efle.%d", getpid());
  13: #endif
  14: 
  15: #ifdef gcos
  16: sprintf(icfile->filename, "code.efl");
  17: sprintf(idfile->filename, "data.efl");
  18: sprintf(iefile->filename, "equv.efl");
  19: #endif
  20: }
  21: 
  22: 
  23: 
  24: rmiis()
  25: {
  26: rmii(icfile);
  27: rmii(idfile);
  28: rmii(iefile);
  29: }
  30: 
  31: 
  32: 
  33: 
  34: rmii(p)     /* discard the intermediate file */
  35: struct fileblock *p;
  36: {
  37: #ifdef unix
  38: if(p)
  39:     {
  40:     fclose(p->fileptr);
  41:     unlink(p->filename);
  42:     }
  43: #endif
  44: 
  45: #ifdef gcos
  46: if(p)
  47:     fclose(p->fileptr, "d");
  48: #endif
  49: }
  50: 
  51: 
  52: opiis()
  53: {
  54: opii(icfile);
  55: opii(idfile);
  56: opii(iefile);
  57: }
  58: 
  59: 
  60: 
  61: 
  62: opii(p) /* open the intermediate file for writing */
  63: struct fileblock *p;
  64: {
  65: 
  66: #ifdef unix
  67: if( (p->fileptr = fopen(p->filename, "w")) == NULL)
  68:     fatal("cannot open intermediate file");
  69: #endif
  70: 
  71: #ifdef gcos
  72: if( (p->fileptr = fopen(p->filename, "wi")) == NULL)
  73:     fatal("cannot open intermediate file");
  74: #endif
  75: 
  76: }
  77: 
  78: 
  79: 
  80: swii(p)
  81: struct fileblock *p;
  82: {
  83: iifilep = p;
  84: }
  85: 
  86: 
  87: 
  88: putii(w,n)
  89: int *w, n;
  90: {
  91: if( fwrite(w,sizeof(int),n, iifilep->fileptr) != n)
  92:     fatal("write error");
  93: }
  94: 
  95: 
  96: 
  97: getii(w, n)
  98: int *w, n;
  99: {
 100: if( fread(w,sizeof(int), n, iifilep->fileptr) != n)
 101:     fatal("read error");
 102: }
 103: 
 104: 
 105: 
 106: 
 107: cliis()
 108: {
 109: clii(icfile);
 110: clii(idfile);
 111: clii(iefile);
 112: }
 113: 
 114: 
 115: 
 116: 
 117: clii(p) /* close the intermediate file */
 118: struct fileblock *p;
 119: {
 120: #ifdef unix
 121: fclose(p->fileptr);
 122: #endif
 123: 
 124: #ifdef gcos
 125: fclose(p->fileptr, "rl");
 126: #endif
 127: }
 128: 
 129: 
 130: 
 131: rewii(p)    /* close and rewind the intermediate file for reading */
 132: struct fileblock *p;
 133: {
 134: swii(p);
 135: putic(ICEOF,0);
 136: clii(p);
 137: 
 138: #ifdef unix
 139: if( (p->fileptr = fopen(p->filename, "r")) == NULL)
 140:     fatal("cannot open intermediate file");
 141: #endif
 142: 
 143: #ifdef gcos
 144: if( (p->fileptr = fopen(p->filename, "ri")) == NULL)
 145:     fatal("cannot open intermediate file");
 146: #endif
 147: }
 148: 
 149: 
 150: 
 151: putic(c,p)
 152: int c;
 153: int p;
 154: {
 155: int w[2];
 156: prevbg = (c==ICINDENT);
 157: w[0] = c;
 158: w[1] = p;
 159: putii(w,2);
 160: }
 161: 
 162: 
 163: getic(p)
 164: int *p;
 165: {
 166: int w[2];
 167: 
 168: getii(w,2);
 169: *p = w[1];
 170: return( w[0] );
 171: }
 172: 
 173: 
 174: 
 175: putsii(l, p)
 176: int l;
 177: char *p;
 178: {
 179: int word;
 180: register int i, m, n;
 181: 
 182: n = strlen(p);
 183: putic(l, n);
 184: m = (n/sizeof(int)) ;
 185: while(m-- > 0)
 186:     {
 187:     for(i=0 ; i<sizeof(int); ++i)
 188:         word.chars[i] = *p++;
 189:     putii(&word, 1);
 190:     }
 191: n -= (n/sizeof(int))*sizeof(int);
 192: if(n > 0)
 193:     {
 194:     for(i=0 ; i<n ; ++i)
 195:         word.chars[i] = *p++;
 196:     putii(&word,1);
 197:     }
 198: }
 199: 
 200: 
 201: 
 202: 
 203: ptr getsii(n)
 204: int n;
 205: {
 206: static int incomm[100];
 207: int m;
 208: register int *q, *qm;
 209: char *p;
 210: 
 211: m = (n + sizeof(int)-1 ) / sizeof(int);
 212: q = incomm;
 213: qm = q + m;
 214: 
 215: while(q < qm)
 216:     getii(q++, 1);
 217: p = incomm;
 218: p[n] = '\0';
 219: 
 220: return(incomm);
 221: }

Defined functions

clii defined in line 117; used 4 times
cliis defined in line 107; used 1 times
crii defined in line 6; used 1 times
getic defined in line 163; used 4 times
getii defined in line 97; used 2 times
getsii defined in line 203; used 5 times
opii defined in line 62; used 3 times
opiis defined in line 52; used 1 times
putic defined in line 151; used 89 times
putii defined in line 88; used 3 times
putsii defined in line 175; used 13 times
rewii defined in line 131; used 2 times
rmii defined in line 34; used 3 times
rmiis defined in line 24; used 3 times
Last modified: 1982-06-09
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1313
Valid CSS Valid XHTML 1.0 Strict