1: #include <stdio.h>
   2: #
   3: #include "def.h"
   4: #define bufsize 1601
   5: char buffer[bufsize];
   6: int bufcount;
   7: extern int errflag;
   8: long stchars;           /* counts number of chars at most recent \n read */
   9: #ifndef unix
  10: long ostchars;
  11: extern long ftell();
  12: #endif
  13: int newline;            /* counts number of lines read so far in file */
  14: extern int rdfree(), comfree(),labfree(), contfree();
  15: extern int rdstand(), comstand(), labstand(), contstand();
  16: extern int (*rline[])();
  17: extern int (*comment[])();
  18: extern int (*getlabel[])();
  19: extern int (*chkcont[])();
  20: 
  21: 
  22: 
  23: flush()
  24:     {bufcount = 0; }
  25: 
  26: addchar(c)
  27:     {
  28:     buffer[bufcount++] = c;
  29:     }
  30: 
  31: getline(lastline,lastchar,linecom,charcom)
  32: int *lastline, *linecom;
  33: long *lastchar, *charcom;
  34:                 /* set *lastline to number of last line of statement,
  35: 				set *lastchar to number of last char of statement,
  36: 				set *linecom to number of last line of comment preceding statement */
  37:     {
  38: 
  39:     int i;
  40:     flush();
  41:     while ( unput1(input1()) != EOF)
  42:         {
  43:         while ( (*comment[inputform])(0)  || blankline() )
  44:             {
  45:             (*rline[inputform])(addchar);
  46:             flush();
  47:             }
  48:         *linecom = newline;
  49:             /* set charcom to number of last char of comment, starting at 0
  50: 					if at start of file and no comment, will be -1  */
  51:         *charcom = stchars - 1;
  52:         if (unput1(input1()) == EOF)  break;
  53:         (*getlabel[inputform])(addchar);
  54:         (*rline[inputform])(addchar);
  55: 
  56:         while ( blankline() || ( !(*comment[inputform])(0) &&  (*chkcont[inputform])() ))
  57:             (*rline[inputform])(addchar);
  58: 
  59:         addchar('\0');
  60:         *lastline = newline;
  61:         *lastchar = stchars - 1;
  62: if (debug == 40)
  63: fprintf(stderr,"line %d; bufcount: %d\n",newline,bufcount);
  64: 
  65:         for (i = 5; i < bufcount; ++i)
  66:             if (buffer[i] == ' ' || buffer[i] == '\t' || buffer[i] == '\n')
  67:                 buffer[i] = '~';
  68:         return(bufcount);
  69:         }
  70:     return(-1);
  71:     }
  72: 
  73: 
  74: int linechars;          /* counts number of chars read so far in current line */
  75: long newchar;           /* counts number of chars read so far in file */
  76: 
  77: 
  78: input1()
  79:     {
  80:     static int c;
  81:     if (c == '\n') linechars = 0;
  82:     c = inchar();
  83:     ++linechars;
  84:     ++newchar;
  85:     if (c == '\n')
  86:         {
  87:         ++newline;
  88: #ifdef unix
  89:         stchars = newchar;
  90: #else
  91:         ostchars=stchars; stchars=ftell(infd);
  92: #endif
  93:         }
  94:     return(c);
  95:     }
  96: 
  97: unput1(c)
  98:     {
  99:     --linechars;
 100:     --newchar;
 101:     unchar(c);
 102:     if (c == '\n')
 103:         {
 104: #ifdef unix
 105:         stchars = newchar;
 106: #else
 107:         stchars=ostchars;
 108: #endif
 109:         --newline;
 110:         }
 111:     return(c);
 112:     }

Defined functions

addchar defined in line 26; used 5 times
flush defined in line 23; used 2 times
getline defined in line 31; used 2 times
input1 defined in line 78; used 4 times
unput1 defined in line 97; used 4 times

Defined variables

bufcount defined in line 6; used 5 times
buffer defined in line 5; used 8 times
linechars defined in line 74; used 6 times
newchar defined in line 75; used 4 times
newline defined in line 13; used 5 times
ostchars defined in line 10; used 2 times
stchars defined in line 8; used 7 times

Defined macros

bufsize defined in line 4; used 1 times
  • in line 5
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 817
Valid CSS Valid XHTML 1.0 Strict