	integerfunctionalldig(str)
	integertype
	integerstr(100)
	integeri
	alldig=0
	if(.not.(str(1).eq.10002))	goto 23000
	   return
23000	   continue
	continue
	i=1
23002	if(.not.(str(i).ne.10002))	goto 23004
	   if(.not.(type(str(i)).ne.2))	goto 23005
	      return
23005	      continue
23003	   i=i+1
	   goto 23002
23004	   continue
	alldig=1
	return
	end
	subroutinebalpar
	integergettok
	integert,token(200)
	integernlpar
	if(.not.(gettok(token,200).ne.40))	goto 23007
	      callsynerr(19hmissing left paren.)
	      return
23007	   continue
	calloutstr(token)
	nlpar=1
	continue
23009	continue
	      t=gettok(token,200)
	      if(.not.(t.eq.59.or.t.eq.123.or.t.eq.125.or.t.eq.10003))
	*	goto 23012
	            callpbstr(token)
	            goto 23011
23012	         continue
	      if(.not.(t.eq.10))	goto 23014
	         token(1)=10002
	         goto 23015
23014	         continue
	            if(.not.(t.eq.40))	goto 23016
	               nlpar=nlpar+1
	               goto 23017
23016	               continue
	                  if(.not.(t.eq.41))	goto 23018
	                     nlpar=nlpar-1
23018	                     continue
23017	               continue
23015	         continue
	      calloutstr(token)
23010	   if(.not.(nlpar.le.0))	goto 23009
23011	   continue
	if(.not.(nlpar.ne.0))	goto 23020
	   callsynerr(33hmissing parenthesis in condition.)
23020	   continue
	return
	end
	subroutinebrknxt(sp,lextyp,labval,token)
	integeri,labval(100),lextyp(100),sp,token
	continue
	i=sp
23022	if(.not.(i.gt.0))	goto 23024
	   if(.not.(lextyp(i).eq.10263.or.lextyp(i).eq.10266.or.lextyp(i).
	*eq.10268.or.lextyp(i).eq.10269))	goto 23025
	         if(.not.(token.eq.10264))	goto 23027
	            calloutgo(labval(i)+1)
	            goto 23028
23027	            continue
	               calloutgo(labval(i))
23028	            continue
	         return
23025	      continue
23023	   i=i-1
	   goto 23022
23024	   continue
	if(.not.(token.eq.10264))	goto 23029
	   callsynerr(14hillegal break.)
	   goto 23030
23029	   continue
	      callsynerr(13hillegal next.)
23030	   continue
	return
	end
	integerfunctionctoi(in,i)
	integerin(100)
	integerindex
	integerd,i
	integerdigits(11)
	datadigits(1)/48/
	datadigits(2)/49/
	datadigits(3)/50/
	datadigits(4)/51/
	datadigits(5)/52/
	datadigits(6)/53/
	datadigits(7)/54/
	datadigits(8)/55/
	datadigits(9)/56/
	datadigits(10)/57/
	datadigits(11)/10002/
	continue
23031	if(.not.(in(i).eq.32.or.in(i).eq.9))	goto 23032
	   i=i+1
	   goto 23031
23032	   continue
	continue
	ctoi=0
23033	if(.not.(in(i).ne.10002))	goto 23035
	      d=index(digits,in(i))
	      if(.not.(d.eq.0))	goto 23036
	         goto 23035
23036	         continue
	      ctoi=10*ctoi+d-1
23034	   i=i+1
	   goto 23033
23035	   continue
	return
	end
	subroutinefold(token)
	integertoken(100)
	integeri
	continue
	i=1
23038	if(.not.(token(i).ne.10002))	goto 23040
	   if(.not.(token(i).ge.65.and.token(i).le.90))	goto 23041
	      token(i)=token(i)-65+97
23041	      continue
23039	   i=i+1
	   goto 23038
23040	   continue
	return
	end
	subroutinedocode(lab)
	integerlabgen
	integerlab
	integerdostr(4)
	datadostr(1),dostr(2),dostr(3),dostr(4)/100,111,32,10002/
	callouttab
	calloutstr(dostr)
	lab=labgen(2)
	calloutnum(lab)
	calleatup
	calloutdon
	return
	end
	subroutinedostat(lab)
	integerlab
	calloutcon(lab)
	calloutcon(lab+1)
	return
	end
	subroutineeatup
	integergettok
	integerptoken(200),t,token(200)
	integernlpar
	nlpar=0
	continue
23043	continue
	      t=gettok(token,200)
	      if(.not.(t.eq.59.or.t.eq.10))	goto 23046
	         goto 23045
23046	         continue
	      if(.not.(t.eq.125))	goto 23048
	            callpbstr(token)
	            goto 23045
23048	         continue
	      if(.not.(t.eq.123.or.t.eq.10003))	goto 23050
	            callsynerr(24hunexpected brace or EOF.)
	            callpbstr(token)
	            goto 23045
23050	         continue
	      if(.not.(t.eq.44.or.t.eq.95))	goto 23052
	            if(.not.(gettok(ptoken,200).ne.10))	goto 23054
	               callpbstr(ptoken)
23054	               continue
	            if(.not.(t.eq.95))	goto 23056
	               token(1)=10002
23056	               continue
	         goto 23053
23052	         continue
	            if(.not.(t.eq.40))	goto 23058
	               nlpar=nlpar+1
	               goto 23059
23058	               continue
	                  if(.not.(t.eq.41))	goto 23060
	                     nlpar=nlpar-1
23060	                     continue
23059	               continue
23053	         continue
	      calloutstr(token)
23044	   if(.not.(nlpar.lt.0))	goto 23043
23045	   continue
	if(.not.(nlpar.ne.0))	goto 23062
	   callsynerr(23hunbalanced parentheses.)
23062	   continue
	return
	end
	subroutineelseif(lab)
	integerlab
	calloutgo(lab+1)
	calloutcon(lab)
	return
	end
	integerfunctionequal(str1,str2)
	integerstr1(100),str2(100)
	integeri
	continue
	i=1
23064	if(.not.(str1(i).eq.str2(i)))	goto 23066
	   if(.not.(str1(i).eq.10002))	goto 23067
	         equal=1
	         return
23067	      continue
23065	   i=i+1
	   goto 23064
23066	   continue
	equal=0
	return
	end
	subroutineerror(buf)
	integerbuf(100)
	callremark(buf)
	stop
	end
	subroutineforcod(lab)
	integergettok
	integert,token(200)
	integerlength,labgen
	integeri,j,lab,nlpar
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	integerifnot(9)
	dataifnot(1)/105/
	dataifnot(2)/102/
	dataifnot(3)/40/
	dataifnot(4)/46/
	dataifnot(5)/110/
	dataifnot(6)/111/
	dataifnot(7)/116/
	dataifnot(8)/46/
	dataifnot(9)/10002/
	lab=labgen(3)
	calloutcon(0)
	if(.not.(gettok(token,200).ne.40))	goto 23069
	      callsynerr(19hmissing left paren.)
	      return
23069	   continue
	if(.not.(gettok(token,200).ne.59))	goto 23071
	      callpbstr(token)
	      callouttab
	      calleatup
	      calloutdon
23071	   continue
	if(.not.(gettok(token,200).eq.59))	goto 23073
	   calloutcon(lab)
	   goto 23074
23073	   continue
	         callpbstr(token)
	         calloutnum(lab)
	         callouttab
	         calloutstr(ifnot)
	         calloutch(40)
	         nlpar=0
	         continue
23075	         if(.not.(nlpar.ge.0))	goto 23076
	               t=gettok(token,200)
	               if(.not.(t.eq.59))	goto 23077
	                  goto 23076
23077	                  continue
	               if(.not.(t.eq.40))	goto 23079
	                  nlpar=nlpar+1
	                  goto 23080
23079	                  continue
	                     if(.not.(t.eq.41))	goto 23081
	                        nlpar=nlpar-1
23081	                        continue
23080	                  continue
	               if(.not.(t.ne.10.and.t.ne.95))	goto 23083
	                  calloutstr(token)
23083	                  continue
	            goto 23075
23076	            continue
	         calloutch(41)
	         calloutch(41)
	         calloutgo(lab+2)
	         if(.not.(nlpar.lt.0))	goto 23085
	            callsynerr(19hinvalid for clause.)
23085	            continue
23074	   continue
	fordep=fordep+1
	j=1
	continue
	i=1
23087	if(.not.(i.lt.fordep))	goto 23089
	   j=j+length(forstk(j))+1
23088	   i=i+1
	   goto 23087
23089	   continue
	forstk(j)=10002
	nlpar=0
	continue
23090	if(.not.(nlpar.ge.0))	goto 23091
	      t=gettok(token,200)
	      if(.not.(t.eq.40))	goto 23092
	         nlpar=nlpar+1
	         goto 23093
23092	         continue
	            if(.not.(t.eq.41))	goto 23094
	               nlpar=nlpar-1
23094	               continue
23093	         continue
	      if(.not.(nlpar.ge.0.and.t.ne.10.and.t.ne.95))	goto 2
	*3096
	            callscopy(token,1,forstk,j)
	            j=j+length(token)
23096	         continue
	   goto 23090
23091	   continue
	lab=lab+1
	return
	end
	subroutinefors(lab)
	integerlength
	integeri,j,lab
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	calloutnum(lab)
	j=1
	continue
	i=1
23098	if(.not.(i.lt.fordep))	goto 23100
	   j=j+length(forstk(j))+1
23099	   i=i+1
	   goto 23098
23100	   continue
	if(.not.(length(forstk(j)).gt.0))	goto 23101
	      callouttab
	      calloutstr(forstk(j))
	      calloutdon
23101	   continue
	calloutgo(lab-1)
	calloutcon(lab+1)
	fordep=fordep-1
	return
	end
	subroutinegetdef(token,toksiz,defn,defsiz,fd)
	integergtok,ngetch
	integerdefsiz,fd,i,nlpar,toksiz
	integerc,defn(defsiz),token(toksiz)
	if(.not.(ngetch(c,fd).ne.40))	goto 23103
	   callremark(19hmissing left paren.)
23103	   continue
	if(.not.(gtok(token,toksiz,fd).ne.10100))	goto 23105
	   callremark(22hnon-alphanumeric name.)
	   goto 23106
23105	   continue
	      if(.not.(ngetch(c,fd).ne.44))	goto 23107
	         callremark(24hmissing comma in define.)
23107	         continue
23106	   continue
	nlpar=0
	continue
	i=1
23109	if(.not.(nlpar.ge.0))	goto 23111
	   if(.not.(i.gt.defsiz))	goto 23112
	      callerror(20hdefinition too long.)
	      goto 23113
23112	      continue
	         if(.not.(ngetch(defn(i),fd).eq.10003))	goto 23114
	            callerror(20hmissing right paren.)
	            goto 23115
23114	            continue
	               if(.not.(defn(i).eq.40))	goto 23116
	                  nlpar=nlpar+1
	                  goto 23117
23116	                  continue
	                     if(.not.(defn(i).eq.41))	goto 23118
	                        nlpar=nlpar-1
23118	                        continue
23117	                  continue
23115	            continue
23113	      continue
23110	   i=i+1
	   goto 23109
23111	   continue
	defn(i-1)=10002
	return
	end
	subroutineifcode(lab)
	integerlabgen
	integerlab
	lab=labgen(2)
	callifgo(lab)
	return
	end
	subroutineifgo(lab)
	integerlab
	integerifnot(9)
	dataifnot(1)/105/
	dataifnot(2)/102/
	dataifnot(3)/40/
	dataifnot(4)/46/
	dataifnot(5)/110/
	dataifnot(6)/111/
	dataifnot(7)/116/
	dataifnot(8)/46/
	dataifnot(9)/10002/
	callouttab
	calloutstr(ifnot)
	callbalpar
	calloutch(41)
	calloutgo(lab)
	return
	end
	integerfunctionindex(str,c)
	integerc,str(100)
	continue
	index=1
23120	if(.not.(str(index).ne.10002))	goto 23122
	   if(.not.(str(index).eq.c))	goto 23123
	      return
23123	      continue
23121	   index=index+1
	   goto 23120
23122	   continue
	index=0
	return
	end
	subroutineinitkw
	integerdefnam(7),deftyp(2)
	datadefnam(1)/100/,defnam(2)/101/,defnam(3)/102/
	datadefnam(4)/105/,defnam(5)/110/,defnam(6)/101/
	datadefnam(7)/10002/
	datadeftyp(1),deftyp(2)/10010,10002/
	callinstal(defnam,deftyp)
	return
	end
	integerfunctioninmap(inchar)
	integeri,inchar
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	if(.not.(inchar.eq.extblk))	goto 23125
	      inmap=intblk
	      return
23125	   continue
	do 23127i=1,10
	   if(.not.(inchar.eq.extdig(i)))	goto 23129
	         inmap=intdig(i)
	         return
23129	      continue
23127	   continue
23128	   continue
	do 23131i=1,26
	   if(.not.(inchar.eq.extlet(i)))	goto 23133
	         inmap=intlet(i)
	         return
23133	      continue
23131	   continue
23132	   continue
	do 23135i=1,26
	   if(.not.(inchar.eq.extbig(i)))	goto 23137
	         inmap=intbig(i)
	         return
23137	      continue
23135	   continue
23136	   continue
	do 23139i=1,33
	   if(.not.(inchar.eq.extchr(i)))	goto 23141
	         inmap=intchr(i)
	         return
23141	      continue
23139	   continue
23140	   continue
	inmap=inchar
	return
	end
	subroutineinstal(name,defn)
	integerdefn(200),name(200)
	integerlength
	integerdlen,nlen
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	nlen=length(name)+1
	dlen=length(defn)+1
	if(.not.(lastt+nlen+dlen.gt.1500.or.lastp.ge.200))	goto 23
	*143
	      callputlin(name,6)
	      callremark(23h: too many definitions.)
23143	   continue
	lastp=lastp+1
	namptr(lastp)=lastt+1
	callscopy(name,1,table,lastt+1)
	callscopy(defn,1,table,lastt+nlen+1)
	lastt=lastt+nlen+dlen
	return
	end
	integerfunctionitoc(int,str,size)
	integeriabs,mod
	integerd,i,int,intval,j,k,size
	integerstr(size)
	integerdigits(11)
	datadigits(1)/48/
	datadigits(2)/49/
	datadigits(3)/50/
	datadigits(4)/51/
	datadigits(5)/52/
	datadigits(6)/53/
	datadigits(7)/54/
	datadigits(8)/55/
	datadigits(9)/56/
	datadigits(10)/57/
	datadigits(11)/10002/
	intval=iabs(int)
	str(1)=10002
	i=1
	continue
23145	continue
	      i=i+1
	      d=mod(intval,10)
	      str(i)=digits(d+1)
	      intval=intval/10
23146	   if(.not.(intval.eq.0.or.i.ge.size))	goto 23145
23147	   continue
	if(.not.(int.lt.0.and.i.lt.size))	goto 23148
	      i=i+1
	      str(i)=45
23148	   continue
	itoc=i-1
	continue
	j=1
23150	if(.not.(j.lt.i))	goto 23152
	      k=str(i)
	      str(i)=str(j)
	      str(j)=k
	      i=i-1
23151	   j=j+1
	   goto 23150
23152	   continue
	return
	end
	subroutinelabelc(lexstr)
	integerlexstr(100)
	integerlength
	if(.not.(length(lexstr).eq.5))	goto 23153
	   if(.not.(lexstr(1).eq.50.and.lexstr(2).eq.51))	goto 231
	*55
	      callsynerr(33hwarning: possible label conflict.)
23155	      continue
23153	   continue
	calloutstr(lexstr)
	callouttab
	return
	end
	integerfunctionlabgen(n)
	integerlabel,n
	datalabel/23000/
	labgen=label
	label=label+n
	return
	end
	integerfunctionlength(str)
	integerstr(100)
	continue
	length=0
23157	if(.not.(str(length+1).ne.10002))	goto 23159
23158	   length=length+1
	   goto 23157
23159	   continue
	return
	end
	integerfunctionlex(lexstr)
	integergettok
	integerlexstr(200)
	integeralldig,equal
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	continue
23160	if(.not.(gettok(lexstr,200).eq.10))	goto 23161
	   goto 23160
23161	   continue
	lex=lexstr(1)
	if(.not.(lex.eq.10003.or.lex.eq.59.or.lex.eq.123.or.lex.eq.125))
	*	goto 23162
	   return
23162	   continue
	if(.not.(alldig(lexstr).eq.1))	goto 23164
	   lex=10260
	   goto 23165
23164	   continue
	      if(.not.(equal(lexstr,sif).eq.1))	goto 23166
	         lex=vif(1)
	         goto 23167
23166	         continue
	            if(.not.(equal(lexstr,selse).eq.1))	goto 23168
	               lex=velse(1)
	               goto 23169
23168	               continue
	                  if(.not.(equal(lexstr,swhile).eq.1))	got
	*o 23170
	                     lex=vwhile(1)
	                     goto 23171
23170	                     continue
	                        if(.not.(equal(lexstr,sdo).eq.1))	
	*goto 23172
	                           lex=vdo(1)
	                           goto 23173
23172	                           continue
	                              if(.not.(equal(lexstr,sbreak).eq.1))
	*	goto 23174
	                                 lex=vbreak(1)
	                                 goto 23175
23174	                                 continue
	                                    if(.not.(equal(lexstr,snext).e
	*q.1))	goto 23176
	                                       lex=vnext(1)
	                                       goto 23177
23176	                                       continue
	                                          if(.not.(equal(lexstr,sf
	*or).eq.1))	goto 23178
	                                             lex=vfor(1)
	                                             goto 23179
23178	                                             continue
	                                                if(.not.(equal(lex
	*str,srept).eq.1))	goto 23180
	                                                   lex=vrept(1)
	                                                   goto 23181
23180	                                                   continue
	                                                      if(.not.(equ
	*al(lexstr,suntil).eq.1))	goto 23182
	                                                         lex=vunti
	*l(1)
	                                                         goto 2318
	*3
23182	                                                         continue
	                                                            lex=10
	*267
23183	                                                         continue
23181	                                                   continue
23179	                                             continue
23177	                                       continue
23175	                                 continue
23173	                           continue
23171	                     continue
23169	               continue
23167	         continue
23165	   continue
	return
	end
	integerfunctionngetch(c,fd)
	integergetch
	integerc
	integerfd
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	if(.not.(bp.gt.0))	goto 23184
	   c=buf(bp)
	   goto 23185
23184	   continue
	         bp=1
	         buf(bp)=getch(c,fd)
23185	   continue
	bp=bp-1
	ngetch=c
	return
	end
	subroutineotherc(lexstr)
	integerlexstr(100)
	callouttab
	calloutstr(lexstr)
	calleatup
	calloutdon
	return
	end
	subroutineoutcon(n)
	integern
	integercontin(9)
	datacontin(1)/99/
	datacontin(2)/111/
	datacontin(3)/110/
	datacontin(4)/116/
	datacontin(5)/105/
	datacontin(6)/110/
	datacontin(7)/117/
	datacontin(8)/101/
	datacontin(9)/10002/
	if(.not.(n.gt.0))	goto 23186
	   calloutnum(n)
23186	   continue
	callouttab
	calloutstr(contin)
	calloutdon
	return
	end
	subroutineoutgo(n)
	integern
	integergoto(6)
	datagoto(1)/103/
	datagoto(2)/111/
	datagoto(3)/116/
	datagoto(4)/111/
	datagoto(5)/32/
	datagoto(6)/10002/
	callouttab
	calloutstr(goto)
	calloutnum(n)
	calloutdon
	return
	end
	integerfunctionoutmap(inchar)
	integeri,inchar
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	if(.not.(inchar.eq.intblk))	goto 23188
	      outmap=extblk
	      return
23188	   continue
	do 23190i=1,10
	   if(.not.(inchar.eq.intdig(i)))	goto 23192
	         outmap=extdig(i)
	         return
23192	      continue
23190	   continue
23191	   continue
	do 23194i=1,26
	   if(.not.(inchar.eq.intlet(i)))	goto 23196
	         outmap=extlet(i)
	         return
23196	      continue
23194	   continue
23195	   continue
	do 23198i=1,26
	   if(.not.(inchar.eq.intbig(i)))	goto 23200
	         outmap=extbig(i)
	         return
23200	      continue
23198	   continue
23199	   continue
	do 23202i=1,33
	   if(.not.(inchar.eq.intchr(i)))	goto 23204
	         outmap=extchr(i)
	         return
23204	      continue
23202	   continue
23203	   continue
	outmap=inchar
	return
	end
	subroutineoutnum(n)
	integerchars(10)
	integeritoc
	integeri,len,n
	len=itoc(n,chars,10)
	continue
	i=1
23206	if(.not.(i.le.len))	goto 23208
	   calloutch(chars(i))
23207	   i=i+1
	   goto 23206
23208	   continue
	return
	end
	subroutinepbstr(in)
	integerin(100)
	integerlength
	integeri
	continue
	i=length(in)
23209	if(.not.(i.gt.0))	goto 23211
	   callputbak(in(i))
23210	   i=i-1
	   goto 23209
23211	   continue
	return
	end
	subroutineputbak(c)
	integerc
	common/cchar/extdig(10),intdig(10),extlet(26),intlet(26),extbig(26
	*),intbig(26),extchr(33),intchr(33),extblk,intblk,intran(127)
	integerextdig
	integerintdig
	integerextlet
	integerintlet
	integerextbig
	integerintbig
	integerextchr
	integerintchr
	integerextblk
	integerintblk
	byteintran
	common/cdefio/bp,buf(300)
	integerbp
	integerbuf
	common/cfor/fordep,forstk(200)
	integerfordep
	integerforstk
	common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept,suntil,
	*vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil
	integersdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5)
	integersfor(4),srept(7),suntil(6)
	integervdo(2),vif(2),velse(2),vwhile(2),vbreak(2),vnext(2)
	integervfor(2),vrept(2),vuntil(2)
	common/cline/level,linect(5),infile(5),inbufp(5),inbufb,blk(5),ins
	*ize,inbuff(5),inbufe(5),instat(5)
	integerlevel
	integerlinect
	integerinfile
	integerinbufp
	integerinbufb
	integerblk
	integerinsize
	integerinbuff
	integerinbufe
	integerinstat
	common/clook/lastp,lastt,namptr(200),table(1500)
	integerlastp
	integerlastt
	integernamptr
	integertable
	common/coutln/outp,outbuf(81),obufp,obuff,obufe,osize,ochan,ostat,
	*oblk
	integeroutp
	integeroutbuf
	integer*2obufp
	integer*2obuff
	integer*2obufe
	integer*2osize
	integer*2ochan
	integer*2ostat
	integer*2oblk
	common/ciobuf/obuf(1024),inbuf(10240)
	byteobuf
	byteinbuf
	bp=bp+1
	if(.not.(bp.gt.300))	goto 23212
	   callerror(32htoo many characters pushed back.)
23212	   continue
	buf(bp)=c
	return
	end
	subroutineputlin(b,f)
	integerb(100)
	integerf,i
	continue
	i=1
23214	if(.not.(b(i).ne.10002))	goto 23216
	   callputch(b(i),f)
23215	   i=i+1
	   goto 23214
23216	   continue
	return
	end
	subroutinerelate(token,last,fd)
	integerngetch
	integertoken(100)
	integerlength
	integerfd,last
	integerdotge(5),dotgt(5),dotlt(5),dotle(5)
	integerdotne(5),dotnot(6),doteq(5),dotand(6),dotor(5)
	datadotge(1),dotge(2),dotge(3),dotge(4),dotge(5)/46,103,101,46,100
	*02/
	datadotgt(1),dotgt(2),dotgt(3),dotgt(4),dotgt(5)/46,103,116,46,100
	*02/
	datadotle(1),dotle(2),dotle(3),dotle(4),dotle(5)/46,108,101,46,100
	*02/
	datadotlt(1),dotlt(2),dotlt(3),dotlt(4),dotlt(5)/46,108,116,46,100
	*02/
	datadotne(1),dotne(2),dotne(3),dotne(4),dotne(5)/46,110,101,46,100
	*02/
	datadoteq(1),doteq(2),doteq(3),doteq(4),doteq(5)/46,101,113,46,100
	*02/
	datadotor(1),dotor(2),dotor(3),dotor(4),dotor(5)/46,111,114,46,100
	*02/
	datadotand(1),dotand(2),dotand(3),dotand(4),dotand(5),dotand(6)/46
	*,97,110,100,46,10002/
	datadotnot(1),dotnot(2),dotnot(3),dotnot(4),dotnot(5),dotnot(6)/46
	*,110,111,116,46,10002/
	if(.not.(ngetch(token(2),fd).ne.61))	goto 23217
	   callputbak(token(2))
23217	   continue
	if(.not.(token(1).eq.62))	goto 23219
	      if(.not.(token(2).eq.61))	goto 23221
	         callscopy(dotge,1,token,1)
	         goto 23222
23221	         continue
	            callscopy(dotgt,1,token,1)
23222	         continue
	   goto 23220
23219	   continue
	      if(.not.(token(1).eq.60))	goto 23223
	            if(.not.(token(2).eq.61))	goto 23225
	               callscopy(dotle,1,token,1)
	               goto 23226
23225	               continue
	                  callscopy(dotlt,1,token,1)
23226	               continue
	         goto 23224
23223	         continue
	            if(.not.(token(1).eq.33))	goto 23227
	                  if(.not.(token(2).eq.61))	goto 23229
	                     callscopy(dotne,1,token,1)
	                     goto 23230
23229	                     continue
	                        callscopy(dotnot,1,token,1)
23230	                     continue
	               goto 23228
23227	               continue
	                  if(.not.(token(1).eq.61))	goto 23231
	                        if(.not.(token(2).eq.61))	goto 232
	*33
	                           callscopy(doteq,1,token,1)
	                           goto 23234
23233	                           continue
	                              token(2)=10002
23234	                           continue
	                     goto 23232
23231	                     continue
	                        if(.not.(token(1).eq.38))	goto 232
	*35
	                           callscopy(dotand,1,token,1)
	                           goto 23236
23235	                           continue
	                              if(.not.(token(1).eq.124))	g
	*oto 23237
	                                 callscopy(dotor,1,token,1)
	                                 goto 23238
23237	                                 continue
	                                    token(2)=10002
23238	                                 continue
23236	                           continue
23232	                     continue
23228	               continue
23224	         continue
23220	   continue
	last=length(token)
	return
	end
	subroutinerepcod(lab)
	integerlabgen
	integerlab
	calloutcon(0)
	lab=labgen(3)
	calloutcon(lab)
	lab=lab+1
	return
	end
	subroutinescopy(from,i,to,j)
	integerfrom(100),to(100)
	integeri,j,k1,k2
	k2=j
	continue
	k1=i
23239	if(.not.(from(k1).ne.10002))	goto 23241
	      to(k2)=from(k1)
	      k2=k2+1
23240	   k1=k1+1
	   goto 23239
23241	   continue
	to(k2)=10002
	return
	end
	integerfunctiontype(c)
	integerc
	if(.not.(c.ge.48.and.c.le.57))	goto 23242
	   type=2
	   goto 23243
23242	   continue
	      if(.not.(c.ge.97.and.c.le.122))	goto 23244
	         type=1
	         goto 23245
23244	         continue
	            if(.not.(c.ge.65.and.c.le.90))	goto 23246
	               type=1
	               goto 23247
23246	               continue
	                  type=c
23247	               continue
23245	         continue
23243	   continue
	return
	end
	subroutineunstak(sp,lextyp,labval,token)
	integerlabval(100),lextyp(100),sp,token
	continue
23248	if(.not.(sp.gt.1))	goto 23250
	      if(.not.(lextyp(sp).eq.123))	goto 23251
	         goto 23250
23251	         continue
	      if(.not.(lextyp(sp).eq.10261.and.token.eq.10262))	go
	*to 23253
	         goto 23250
23253	         continue
	      if(.not.(lextyp(sp).eq.10261))	goto 23255
	         calloutcon(labval(sp))
	         goto 23256
23255	         continue
	            if(.not.(lextyp(sp).eq.10262))	goto 23257
	                  if(.not.(sp.gt.2))	goto 23259
	                     sp=sp-1
23259	                     continue
	                  calloutcon(labval(sp)+1)
	               goto 23258
23257	               continue
	                  if(.not.(lextyp(sp).eq.10266))	goto 2326
	*1
	                     calldostat(labval(sp))
	                     goto 23262
23261	                     continue
	                        if(.not.(lextyp(sp).eq.10263))	got
	*o 23263
	                           callwhiles(labval(sp))
	                           goto 23264
23263	                           continue
	                              if(.not.(lextyp(sp).eq.10268))
	*	goto 23265
	                                 callfors(labval(sp))
	                                 goto 23266
23265	                                 continue
	                                    if(.not.(lextyp(sp).eq.10269))
	*	goto 23267
	                                       calluntils(labval(sp),token
	*)
23267	                                       continue
23266	                                 continue
23264	                           continue
23262	                     continue
23258	               continue
23256	         continue
23249	   sp=sp-1
	   goto 23248
23250	   continue
	return
	end
	subroutineuntils(lab,token)
	integerptoken(200)
	integerlex
	integerjunk,lab,token
	calloutnum(lab)
	if(.not.(token.eq.10270))	goto 23269
	      junk=lex(ptoken)
	      callifgo(lab-1)
	   goto 23270
23269	   continue
	      calloutgo(lab-1)
23270	   continue
	calloutcon(lab+1)
	return
	end
	subroutinewhilec(lab)
	integerlabgen
	integerlab
	calloutcon(0)
	lab=labgen(2)
	calloutnum(lab)
	callifgo(lab+1)
	return
	end
	subroutinewhiles(lab)
	integerlab
	calloutgo(lab)
	calloutcon(lab+1)
	return
	end
