#  ========== commonblocks ==========
# common blocks.
#   these have been lumped into one place to minimize
#   the operational problems of picking up several small
#   files in an environment that doesn't support files
#   by name. The individual routines still name as comments the
#   actual common blocks they need, but actually include
#   everything in this batch, with a statement:
#      include commonblocks

common /cchar/ extdig(10), intdig(10), extlet(26), intlet(26),
   extbig(26), intbig(26), extchr(NCHARS), intchr(NCHARS),
   extblk, intblk
   integer extdig   # external representation of digits
   integer intdig   # internal rep (ascii)
   integer extlet   # external rep of letters (normal case)
   integer intlet   # internal rep (ascii lower case)
   integer extbig   # external rep of upper case, if used
   integer intbig   # internal rep (upper case ascii)
   integer extchr   # external rep of special chars
   integer intchr   # internal rep (ascii)
   integer extblk   # external blank
   integer intblk   # internal blank (ascii)

common /cdefio/ bp, buf(BUFSIZE)
   integer bp      # next available character; init = 0
   character buf   # pushed-back characters

common /cfor/ fordep, forstk(MAXFORSTK)
   integer fordep   # current depth of for statements
   character forstk   # stack of reinit strings

common /ckeywd/ sdo, sif, selse, swhile, sbreak, snext,
   sfor, srept, suntil,
   vdo, vif, velse, vwhile, vbreak, vnext, vfor, vrept, vuntil
   integer sdo(3), sif(3), selse(5), swhile(6), sbreak(6), snext(5)
   integer sfor(4), srept(7), suntil(6)
   integer vdo(2), vif(2), velse(2), vwhile(2), vbreak(2), vnext(2)
   integer vfor(2), vrept(2), vuntil(2)

common /cline/ level, linect(NFILES), infile(NFILES)
   integer level   # level of file inclusion; init = 1
   integer linect   # line count on input file(level); init = 1
   integer infile   # file number(level); init infile(1) = STDIN

common /clook/ lastp, lastt, namptr(MAXPTR), table(MAXTBL)
   integer lastp   # last used in namptr; init = 0
   integer lastt   # last used in table; init = 0
   integer namptr   # name pointers
   character table   # actual text of names and defns

common /coutln/ outp, outbuf(MAXLINE)
   integer outp      # last position filled in outbuf; init = 0
   character outbuf   # output lines collected here