Compucolor.org – Virtual Media

Listing of file='BALPAR.FOR;01' on disk='vmedia/ratfor-sector.ccvf'

	SUBROUTINE BALPAR
	INTEGER GETTOK,T,TOKEN(200),NLPAR
	IF(.NOT.(GETTOK(TOKEN,200).NE.40))GOTO 23007
	CALL SYNERR('01-MISSING LEFT PAREN.',6)
	RETURN
23007	CALL OUTSTR(TOKEN)
	NLPAR = 1
23009	T=GETTOK(TOKEN,200)
	IF(.NOT.(T.EQ.59.OR.T.EQ.123.OR.T.EQ.125.OR.T.EQ.10003))
     *	GOTO 23012
	CALL PBSTR(TOKEN)
	GOTO 23011
23012	IF(.NOT.(T.EQ.10))GOTO 23014
	TOKEN(1)=10002
	GOTO 23015
23014	IF(.NOT.(T.EQ.40))GOTO 23016
	NLPAR=NLPAR+1
	GOTO 23017
23016	IF(.NOT.(T.EQ.41))GOTO 23018
	NLPAR=NLPAR-1
23018	CONTINUE
23017	CONTINUE
23015	CALL OUTSTR(TOKEN)
23010	IF(.NOT.(NLPAR.LE.0))GOTO 23009
23011	IF(.NOT.(NLPAR.NE.0))GOTO 23020
	CALL SYNERR('02-MISSING PARENTHESIS IN CONDITION.',9)
23020	RETURN
	END
	SUBROUTINE BRKNXT(SP,LEXTYP,LABVAL,TOKEN)
	INTEGER LABVAL(100),LEXTYP(100),SP,TOKEN
	INTEGER I,N,ALLDIG,CTOI,T,PTOKEN(200),GETTOK
C
C	INCLUDE RATCMN HERE
C
	N=0
	T=GETTOK(PTOKEN,200)
	IF(.NOT.(ALLDIG(PTOKEN).EQ.1))GOTO23022
	I=1
	N=CTOI(PTOKEN,I)-1
	GOTO 23023
23022	IF(.NOT.(T.NE.59))GOTO 23024
	CALL PBSTR(PTOKEN)
23024	CONTINUE
23023	I=SP
23026	IF(.NOT.(I.GT.0))GOTO 23028
	IF(.NOT.(LEXTYP(I).EQ.10263.OR.LEXTYP(I).EQ.10266.OR.LEXTYP(I)
     *	.EQ.10268.OR.LEXTYP(I).EQ.10269))GOTO 23029
	IF(.NOT.(N.GT.0))GOTO 23031
	N=N-1
	GOTO 23027
23031	IF(.NOT.(TOKEN.EQ.10264))GOTO 23033
	CALL OUTGO(LABVAL(I)+1)
	GOTO 23034
23033	CALL OUTGO(LABVAL(I))
23034	CONTINUE
23032	XFER=1
	RETURN
23029	CONTINUE
23027	I=I-1
	GOTO 23026
23028	IF(.NOT.(TOKEN.EQ.10264))GOTO 23035
	CALL SYNERR('03-ILLEGAL BREAK.',5)
	GOTO 23036
23035	CALL SYNERR('04-ILLEGAL NEXT.',4)
23036	RETURN
	END