The Front-End (Part 2)

The following three files demonstrate how the front end works. These files are the original source file Maze.for, the pre-processed file Maze_pp.for, and the front end debug output TestProgram.out. These files are included here.

First Maze.for the original Fortran source:

C
C       MAZE -  USES A VT100 TO WANDER AROUND.
C               THE VT100 MUST HAVE ADVANCED VIDEO OPTION.
C               ANSI VT100 ESCAPE SEQUENCES ARE USED.
C
C       WRITTEN BY DON MCLEAN
C       OF THE MACNEAL-SCHWENDLER CORP.
C
C       THE PURPOSE OF THIS PROGRAM WAS TO
C               1. LEARN SOMETHING ABOUT THE VT100 GRAPHICS.
C               2. KEEP MY KIDS BUSY ON WEEKENDS. WHILE I TRIED
C                  TO GET SOMETHING ELSE DONE.
C
C       USE OF THIS PROGRAM FOR ANY PURPOSE OTHER THAN FUN
C       IS PROHIBITED.
C
        IMPLICIT INTEGER*4 (A-Z)
C
C       MAZE DIMENSIONS
C       HMAX AND WMAX SHOULD NOT BE LARGER THAN 22 AND 80 RESP.
C
        PARAMETER HMAX=22, WMAX=80, DMAX=4
C
        DIMENSION SLEEP(2)
C
C       DIMENSION IS HMAX*WMAX*DMAX
        INTEGER*2  EXIT(HMAX*WMAX*DMAX), MAT(HMAX*WMAX*DMAX)
        INTEGER*2  LCOUNT(DMAX)
C
        BYTE CLEAR(2)
C
        CHARACTER*200 INPUT
C
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
C
C       CLEAR IS A VT100 RESET
C
        DATA CLEAR / 27, 'c' /
C
C       START - SEE IF AN OLD GAME IS TO BE USED.
C
        WRITE(6,10)
   10   FORMAT(' WELCOME TO MAZE')
C
   20   WRITE(6,30)
   30   FORMAT(' ARE YOU GOING TO PLAY A SAVED GAME? ',$)
        READ(5,40) NC,INPUT
   40   FORMAT(Q,A)
        IF(INDEX(INPUT(1:NC),'Y').NE.0) GO TO 120
        SAVE = 0
C
C       INPUT DIMENSION OF MAZE
C
   50   WRITE(6,60) HMAX
   60   FORMAT(' PLEASE INPUT HEIGHT OF MAZE - DEFAULT = ',I2,' ',$)
        READ(5,40) NC,INPUT
        READ(INPUT,70,ERR=50) HEIGHT
   70   FORMAT(BNI2)
        IF(HEIGHT.EQ.0) HEIGHT=HMAX
        IF(HEIGHT.LT.2) HEIGHT=2
        IF(HEIGHT.GT.HMAX) HEIGHT=HMAX
   80   WRITE(6,90) WMAX
   90   FORMAT(' PLEASE INPUT WIDTH  OF MAZE - DEFAULT = ',I2,' ',$)
        READ(5,40) NC,INPUT
        READ(INPUT,70,ERR=80) WIDTH
        IF(WIDTH.EQ.0) WIDTH = WMAX
        IF(WIDTH.LT.2) WIDTH=2
        IF(WIDTH.GT.WMAX) WIDTH=WMAX
  100   WRITE(6,110)
  110   FORMAT(' PLEASE INPUT DEPTH  OF MAZE - DEFAULT =  1 ',$)
        READ(5,40) NC,INPUT
        READ(INPUT,70,ERR=100) DEPTH
        IF(DEPTH.LE.0) DEPTH = 1
        IF(DEPTH.GT.DMAX) DEPTH = DMAX
        NTERMS = HEIGHT * WIDTH * DEPTH
C
C       GENERATE MAZE
C
        CALL MAZGEN(EXIT,LCOUNT,HEIGHT,WIDTH,DEPTH)
        GO TO 180
C
C       READ IN OLD MAZE
C
  120   WRITE(6,130)
  130   FORMAT(' INPUT SAVED FILE NAME ',$)
        READ(5,40) NC,INPUT
        OPEN(UNIT=7,NAME=INPUT(1:NC),STATUS='OLD',ERR=140,
        1 FORM='UNFORMATTED',READONLY)
        GO TO 160
C
  140   WRITE(6,150)
  150   FORMAT(' SAVE FILE NOT FOUND')
        GO TO 20
  160   READ(UNIT=7) HEIGHT,WIDTH,DEPTH,STARTH,STARTW,STARTD,
        1 ENDH,ENDW,ENDD
        NTERMS = HEIGHT * WIDTH * DEPTH
        READ(UNIT=7) (EXIT(I),I=1,NTERMS)
        READ(UNIT=7) (MAT (I),I=1,NTERMS)
        CLOSE(UNIT=7)
C
        WRITE(6,170)
  170   FORMAT( ' DO YOU WANT THE PATHS RESTORED? ',$)
        READ(5,40) NC,INPUT
        IF(INDEX(INPUT(1:NC),'Y').NE.0) SAVE=1
C       SPECIAL CASE TO PRINT ALL PATHS
        IF(INDEX(INPUT(1:NC),'YES SOLUTIONS').NE.0) GO TO 240
C
C       MAZE DESCRIPTION
C
  180   WRITE(6,190) HEIGHT,WIDTH,DEPTH
  190   FORMAT('0',' YOUR MAZE HAS A HEIGHT OF',I5,/,
        1  '             AND A WIDTH OF',I5,/,
        1  '            WITH A DEPTH OF',I5,//,
        2  '  THE DIRECTION COMMANDS FOR MAZE ARE SINGLE LETTERS',/,
        2  '    N(ORTH), U(P),    OR 8 IS UP',/,
        2  '    E(AST) , R(IGHT), OR 6 IS RIGHT',/,
        2  '    S(OUTH), D(OWN),  OR 2 IS DOWN',/,
        2  '    W(EST) , L(EFT),  OR 4 IS LEFT',/,
        2  '    I(N)   ,          OR 9 IS IN TO SCREEN',/,
        2  '    O(UT)  ,          OR 7 IS OUT OF SCREEN',/,
        2  '  OR YOU CAN USE THE ARROW KEYS FOR DIRECTIONS',/,
        3  '  THE COMMAND H(OME)    RETURNS YOUR POSITION TO "S" OR "O"',/,
        3  '  THE COMMAND Q(UIT)    ENDS THE GAME',/,
        3  '  THE COMMAND B(ELL)    MAKES THE TERMINAL BEEP (DEFAULT)',/,
        3  '  THE COMMAND M(UTE)    TURNS OFF TERMINAL BEEPING',/,
        3  '  THE COMMAND C(URRENT) PRINTS THE CURRENT LEVEL',/,
        3  '  AFTER A Q(UIT) COMMAND YOU GET A CHANCE TO SAVE THE GAME',/,
        4  '  YOU CAN MOVE ALONG BORDERS',//,
        4  '  PRESS RETURN TO START')
        READ(5,40) NC,INPUT
        NOBELL = 0
        IF(INPUT(1:6).EQ.'NOBELL') OFFBEL = 1
C
C       EXECUTE THE MAZE
C
        IF(SAVE.EQ.1) GO TO 210
        DO 200 I=1,NTERMS
  200   MAT(I)=0
C
  210   CALL MAZRUN(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
C
C       SAVE THE MAZE ON REQUEST
C
        WRITE(6,220)
  220   FORMAT(' DO YOU WANT TO SAVE THIS MAZE? ',$)
        READ(5,40) NC,INPUT
C
        IF(INDEX(INPUT(1:NC),'Y') .EQ.0) GO TO 260
        WRITE(6,230)
  230   FORMAT(' PLEASE INPUT FILE NAME ',$)
        READ(5,40) NC,INPUT
        OPEN(UNIT=7,NAME=INPUT(1:NC),STATUS='NEW',FORM='UNFORMATTED')
        WRITE(UNIT=7) HEIGHT,WIDTH,DEPTH,STARTH,STARTW,STARTD,
        1 ENDH,ENDW,ENDD
        WRITE(UNIT=7) (EXIT(I),I=1,NTERMS)
        WRITE(UNIT=7) (MAT (I),I=1,NTERMS)
        CLOSE(UNIT=7)
        GO TO 260
C
C       PRINT THE SOLUTION TO A MAZE
C
  240   WRITE(6,250) HEIGHT,WIDTH,DEPTH
  250   FORMAT('0',' YOUR MAZE HAS A HEIGHT OF',I5,/,
        1  '             AND A WIDTH OF',I5,/,
        1  '            WITH A DEPTH OF',I5,//,
        4  '  PRESS RETURN TO START')
        READ(5,40) NC,INPUT
C
C       PRINT MAZE
C
        CALL MAZSOL(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
C
C       CLEAR SCREEN AND WAIT 2 SECONDS
C
  260   CALL MAZOUT(CLEAR,2,1,24,1,0,0,0)
        CALL SYS$BINTIM( '0 ::02.00', SLEEP )
        CALL SYS$SCHDWK( , , SLEEP , )
        CALL SYS$HIBER
        STOP 'BYE FROM MAZE'
        END
 
        SUBROUTINE MAZGEN (  EXIT, LCOUNT, HEIGHT, WIDTH, DEPTH )
C
C       MAZGEN CREATES A MAZE IN EXIT
C
C       MAZE IS CREATED BY GOING FROM A START LOCATION IN A
C       RANDOM WALK
C       SQUARES MAY ONLY BE ENTERED ONCE BUT CAN HAVE MULTIPLE EXITS
C
C       MOVEMENT CONVENTION IS
C               1 - SOUTH OR DOWN
C               2 - EAST  OR RIGHT
C               4 - NORTH OR UP
C               8 - WEST  OR LEFT
C              16 - IN  A LEVEL
C              32 - OUT A LEVEL
C
        IMPLICIT INTEGER*4 (A-Z)
C
        INTEGER*2  EXIT(HEIGHT,WIDTH,DEPTH), LCOUNT(DEPTH)
C
        DIMENSION XDIR(4), YDIR(4), IN(4), OUT(4)
C
        REAL  SEED
C
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
C
        DATA XDIR / 0, 1, 0,-1 /
        DATA YDIR / 1, 0,-1, 0 /
        DATA IN   / 4, 8, 1, 2 /
        DATA OUT  / 1, 2, 4, 8 /
C
C       INITIALIZE AND PICK START AND END POSITIONS
C
        SEED = FOR$SECNDS(0)
        H = HEIGHT
        W = WIDTH
        D = DEPTH
        NENTER = 1
        LMAX = H * W
        NMAX = LMAX * D
        DO 10 L=1,D
        LCOUNT(L) = 0
        DO 10 J=1,W
        DO 10 I=1,H
   10   EXIT (I,J,L) = 0
C
        STARTH = IRAN(SEED,1,H)
        STARTW = IRAN(SEED,1,W)
        STARTD = 1
   20   ENDH   = IRAN(SEED,1,H)
        ENDW   = IRAN(SEED,1,W)
        ENDD   = D
        IF(STARTH.EQ.ENDH.AND.STARTW.EQ.ENDW.AND.STARTD.EQ.ENDD)
        1 GO TO 20
        SY = STARTH
        SX = STARTW
        SD = STARTD
        LCOUNT(SD) = 1
C
C       START FILLING IN MAZE
C
   30   ODIR = 0
        Y = SY
        X = SX
        L = SD
   40   DIR = IRAN(SEED,1,4)
C       DO NOT GO BACK ON YOURSELF
        IF( ODIR .EQ. OUT(DIR) ) GO TO 40
C
C       TEND TO MAKE LONGER LINES WITH NLOOPS
C
        NLOOPS = IRAN(SEED,1,DIR)
        NCOUNT=0
   50   NY = YDIR(DIR) + Y
        NX = XDIR(DIR) + X
        IF(NY.LT.1.OR.NY.GT.H) GO TO 40
        IF(NX.LT.1.OR.NX.GT.W) GO TO 40
        IF( EXIT(NY,NX,L) .EQ. 0 ) GO TO 80
C
C       CHECK FOR DEAD END
C
        DO 60 I=1,4
        TY = Y + YDIR(I)
        TX = X + XDIR(I)
        IF(TY.LT.1.OR.TY.GT.H) GO TO 60
        IF(TX.LT.1.OR.TX.GT.W) GO TO 60
C       NOT DEAD END TRY AGAIN
        IF( EXIT(TY,TX,L) .NE. 0 ) GO TO 60
        GO TO 40
   60   CONTINUE
C
C       DEAD END RETURN TO START UNLESS ALL DIRECTIONS ARE TAKEN
C
        IF( Y.EQ.SY .AND. X.EQ. SX ) GO TO 70
        GO TO 30
C
C       ALL STARTS FROM THIS STARTING POSITION ARE TAKEN
C       PICK A NEW STARTING POSITIONS UNTIL MAZE IS FULL
C
   70   SY = IRAN(SEED,1,H)
        SX = IRAN(SEED,1,W)
        IF( EXIT(SY,SX,L) .EQ. 0 ) GO TO 70
        IF( SY.EQ.STARTH.AND.SX.EQ.STARTW.AND.L.EQ.STARTD) GO TO 70
        IF( SY.EQ.ENDH  .AND.SX.EQ.ENDW  .AND.L.EQ.ENDD) GO TO 70
        IF( SY.EQ.Y     .AND.SX.EQ.X   ) GO TO 70
C
C       FILL IN A LAYER AT A TIME
C
        IF(LCOUNT(L).NE.LMAX) GO TO 30
        SD = SD + 1
        EXIT(SY,SX, L) = IOR(EXIT(SY,SX, L),16)
        EXIT(SY,SX,SD) = IOR(EXIT(SY,SX,SD),32)
        NENTER = NENTER + 1
        LCOUNT(SD) = 1
        GO TO 30
C
C       DIRECTION TO GO FOUND
C       SET POSITION AS HAVING BEEN ENTERED AND
C       SET EXIT ARRAY TO DIRECTIONS INVOLVED
C
   80   ODIR = IN(DIR)
        EXIT(Y,X,L)   = IOR(EXIT(Y,X,L),OUT(DIR))
        EXIT(NY,NX,L) = IOR(EXIT(NY,NX,L),IN(DIR))
        NENTER = NENTER + 1
        LCOUNT(L) = LCOUNT(L)+1
C       THE WAY OUT - ALL POINTS USED
        IF( NENTER .EQ. NMAX ) GO TO 90
        Y = NY
        X = NX
C
C       ONLY ALLOW THE END LOCATION TO BE ENTERED ONCE
C
        IF(Y.EQ.ENDH.AND.X.EQ.ENDW.AND.L.EQ.ENDD) GO TO 30
        NCOUNT=NCOUNT+1
        IF(NCOUNT.LT.NLOOPS) GO TO 50
        GO TO 40
C
C       OUT
C
   90   CONTINUE
        RETURN
        END
 
        SUBROUTINE MAZOUT( STRING, L, XOFF, Y, X, BOLD, REVERS, BLINK )
C*****
C  OUTPUTS -STRING- OF LENGTH -L- BYTES WITH BYTE NUMBER -XOFF-
C  OF STRING LOCATED AT CURSER LOCATION -X-, -Y-.
C
C  BOLD, REVERS, BLINK ARE THE MODES TO OUTPUT THIS STRING
C*****
        IMPLICIT INTEGER*2 (A-Z)
C
        LOGICAL ANY
C
        CHARACTER*300 CC
C
        BYTE STRING(L), LINEOUT(300), CHAR(10), ESCAPE
C
        DATA CHAR/ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' /
        DATA ESCAPE/ 27 /, C1,C2,C3 / 0,0,0/
C
        EQUIVALENCE(CC,LINEOUT(1))
C
        NL     = X - XOFF + 1
        NR     = NL + L - 1
        LENGTH = L
        ISTART = 1
        NX     = X
        NY     = Y
C
C  READJUST STRING LIMITS TO BE WITHIN SCREEN.  IF STRING IS
C  COMPLETELY OUT OF SCREEN, THEN RETURN DOING NOTHING.
C
        IF( NY.LT.1 .OR. NY.GT.24 ) RETURN
        IF( NR.LT.1 .OR. NL.GT.132 ) RETURN
C
C  STRING (ALL OR PART) LIES IN THE SCREEN AREA.
C
        IF( NL .GE. 1 ) GO TO 10
        ISTART = 2 - NL
        NL     = 1
        LENGTH = LENGTH - ISTART + 1
C
   10 IF( NR .LE. 132 ) GO TO 20
        LENGTH = LENGTH - (NR-132)
        NR = 132
C
C  OK AT THIS POINT WE ARE GOING TO OUTPUT STRING(ISTART) THRU
C  STRING(ISTART+LENGTH-1) STARTING AT SCREEN LOCAT SCREEN ION (NL,NY)
C
C 20  LINEOUT(1) = ' '
   20 LINEOUT(1) = ESCAPE
        LINEOUT(2) = '['
        IOUT = 2
        COORD = NY
        DO 40 I = 1,2
        ANY = .FALSE.
        DO 30 J = 1,3
        N = MOD( COORD/10**(3-J), 10 )
        IF( N.EQ.0 .AND. .NOT.ANY ) GO TO 30
        ANY = .TRUE.
        IOUT = IOUT + 1
        LINEOUT(IOUT) = CHAR(N+1)
   30 CONTINUE
        IOUT = IOUT + 1
        LINEOUT(IOUT) = ';'
        COORD = NL
   40 CONTINUE
        LINEOUT(IOUT) = 'H'
C
C  CHECK MODES AGAINST CURRENT MODES AND OUTPUT APPROPRIATE
C  MODE INDICATORS.
C
        IF( C1.NE.0 .AND.   BOLD.EQ.0 ) GO TO 80
        IF( C2.NE.0 .AND. REVERS.EQ.0 ) GO TO 80
        IF( C3.NE.0 .AND.  BLINK.EQ.0 ) GO TO 80
        IF( C1.EQ.BOLD .AND. C2.EQ.REVERS .AND. C3.EQ.BLINK )GO TO 120
C
C  OK SIMPLY ADD OUTPUT MODES
C
        LINEOUT(IOUT+1) = ESCAPE
        LINEOUT(IOUT+2) = '['
        IOUT = IOUT + 2
C
        IF( C1.EQ.BOLD   ) GO TO 50
        LINEOUT(IOUT+1) = '1'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
        C1   = BOLD
C
   50 IF( C2 .EQ. REVERS ) GO TO 60
        LINEOUT(IOUT+1) = '7'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
        C2 = REVERS
C
   60 IF( C3 .EQ. BLINK ) GO TO 70
        LINEOUT(IOUT+1) = '5'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
        C3 = BLINK
C
   70 LINEOUT(IOUT) = 'm'
        GO TO 120
C
C  SOME OR ALL OF CURRENT MODES ARE NOT DESIRED, THUS
C  MUST DO A NORMAL FOLLOWED BY A RESET OF MODES DESIRED.
C
   80 LINEOUT(IOUT+1) = ESCAPE
        LINEOUT(IOUT+2) = '['
        LINEOUT(IOUT+3) = '0'
        LINEOUT(IOUT+4) = ';'
        IOUT = IOUT + 4
C
        IF( BOLD .EQ. 0 ) GO TO 90
        LINEOUT(IOUT+1) = '1'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
C
   90 C1 = BOLD
        IF( REVERS .EQ. 0 ) GO TO 100
        LINEOUT(IOUT+1) = '7'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
C
  100 C2 = REVERS
        IF( BLINK .EQ. 0 ) GO TO 110
        LINEOUT(IOUT+1) = '5'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
C
  110 C3 = BLINK
        LINEOUT(IOUT) = 'm'
C*****
C  OUTPUT THE STRING WITH ITS LEADER
C*****
  120 DO 130 I = 1,LENGTH
        LINEOUT(IOUT+I) = STRING(ISTART+I-1)
  130 CONTINUE
        IOUT = IOUT + LENGTH
C*****
C  BACK UP CURSER ONE LINE IF AT LINE 24
C*****
        IF( NY .NE. 24 ) GO TO 140
        LINEOUT(IOUT+1) = ESCAPE
        LINEOUT(IOUT+2) = 'M'
        IOUT = IOUT + 2
C*****
C  NOW READY TO OUTPUT THE STRING.
C*****
  140 RC = LIB$PUT_OUTPUT( CC(1:IOUT) )
        RETURN
        END
        FUNCTION IRAN( SEED, I, J )
C*****
C  RETURNS A RANDOM NUMBER IN THE RANGE OF I THRU J.
C  SEED IS UPDATED AND THUS A VARIABLE MUST BE SENT.
C*****
        REAL MTH$RANDOM
        FN = J - I + 1
        IRAN = I + IFIX( FN * MTH$RANDOM(SEED) )
        RETURN
        END
 
        SUBROUTINE MAZRUN(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
C
C       MAZRUN USES THE EXIT ARRAY TO CONTROL MAZE MOVEMENT
C                       MAT  ARRAY CONTAINS WHERE YOU HAVE BEEN
C
        IMPLICIT INTEGER*4 (A-Z)
C
        INTEGER*2 EXIT(HEIGHT,WIDTH,DEPTH)
        INTEGER*2 MAT (HEIGHT,WIDTH,DEPTH), ADD, MOVE(4,4)
C
        DIMENSION XDIR(4), YDIR(4), OUT(6), SLEEP(2)
C
        BYTE START(28),BELL,DEAD,LR132(10)
        BYTE SET(16)
        BYTE SCROL(8)
C
        CHARACTER*200 INPUT
        CHARACTER*10  NAME
        CHARACTER*6   PORT
C
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
C
        DATA XDIR / 0, 1, 0,-1 /
        DATA YDIR / 1, 0,-1, 0 /
        DATA OUT  / 1, 2, 4, 8, 16, 32 /
        DATA BELL / 7 /
C
C       ESCAPE SEQUENCES TO
C       ANSI MODE, ERASE SCREEN, ATTRIBUTES OFF, SCREEN NORMAL,
C       WRAP OFF, 80 COL., AND SPECIAL GRAPHICS
C
        DATA START/ 27,'<',27,'[','2','J',27,'[','0','m',27,'[','?',
     1    '5','l',27,'[','?','7','l',  27,'[','?','3','l',27,'(','0'/
C
C       GRAPHICS CHARACTERS TO USE FOR DRAWING LINES
C
        DATA SET/' ', ' ', 'l', ' ', 'k', 'q', 'w', ' ',
     1     'x', 'm', 't', 'j', 'u', 'v', 'n', 97 /
C
C       ESCAPE SEQUENCE TO SET 132 CHARACTER LINE MODE
C
        DATA LR132 / 27,'[','?','3','h' , 27,'[','?','5','h' /
C
C       SET SCROLLING REGION TO LAST TWO LINES (23-24)
C
        DATA SCROL / 27,'[','2','3',';','2','4','r' /
        DATA DEAD / 97 /
        DATA MOVE / 9, 5,-1, 3
        1        ,10, 6, 3,-1
        2        ,-1,12, 9,10
        3        ,12,-1, 5, 6 /
C
C       SET UP FOR QIO FROM TERMINAL
C
        STATUS = SYS$TRNLOG( 'SYS$INPUT' ,, NAME ,,, )
        PORT = NAME( 5:10 )
        STATUS = SYS$ASSIGN( PORT, CHAN ,, )
        IF( STATUS.NE.1 ) RETURN
        READ = 49
        NOECHO = 64
        CVLOW = 256
C
C       CLEAR SCREEN AND SHOW START AND END OF MAZE
C
        CALL MAZOUT( START(1), 28, 1, 1,1, 0,0,0)
        IF(WIDTH.GT.80) CALL MAZOUT(LR132,10,1,1,1,0,0,0)
        CALL MAZOUT(SCROL,8,1,23,1,0,0,0)
        LOOP = 0
        SOVER = 0
C
C       BORDER
C
   10   CONTINUE
        Y = STARTH
        X = STARTW
        L = STARTD
   20   CONTINUE
        CALL MAZOUT(START(3),4,1,1,1,0,0,0)
        DO 40 I=1,HEIGHT
        CALL MAZOUT(' ',1,1, I,1     ,0,1,0)
        CALL MAZOUT(' ',1,1, I,WIDTH,0,1,0)
        IF(I.NE.1.AND.I.NE.HEIGHT) GO TO 40
        DO 30 J=2,WIDTH-1
        CALL MAZOUT(' ',1,1, I,J     ,0,1,0)
   30   CONTINUE
   40   CONTINUE
C
C       SHOW CURRENT STATUS OF MAZE SOLUTION
C
        DO 50 J=1,WIDTH
        DO 50 I=1,HEIGHT
        IF(IAND(EXIT(I,J,L),16).NE.0) CALL MAZOUT('O',1,1,I,J,1,1,1)
        IF(MAT(I,J,L).EQ.0) GO TO 50
        IF(MAT(I,J,L).GT.0.AND.MAT(I,J,L).LT.16)
        1 CALL MAZOUT(SET(MAT(I,J,L)),1,1,I,J,1,1,0)
        IF(MAT(I,J,L).LT.0) CALL MAZOUT('~',1,1,I,J,1,1,0)
        IF(MAT(I,J,L).EQ.64) CALL MAZOUT(SET(16),1,1,I,J,1,1,0)
        IF(MAT(I,J,L).GT.15.AND.MAT(I,J,L).LT.32)
        1 CALL MAZOUT('O',1,1,I,J,1,1,0)
        IF(MAT(I,J,L).GT.31.AND.MAT(I,J,L).LT.64)
        1 CALL MAZOUT('O',1,1,I,J,1,1,1)
   50   CONTINUE
        IF(LOOP.NE.0) CALL MAZOUT('O',1,1,Y,X,0,1,0)
        IF(L.EQ.ENDD) CALL MAZOUT( 'E',1,1,ENDH,ENDW,1,1,1)
        IF(L.EQ.STARTD) CALL MAZOUT( 'S',1,1,STARTH,STARTW,1,1,1)
        HOMEH = Y
        HOMEW = X
   60   DEADE = 0
        ODIR = 0
C
C       READ INPUT AND MOVE AS REQUESTED
C
        ESC = 0
        OPT =  READ + NOECHO + CVLOW
   70   CALL MAZOUT(' ',1,1,24,1,0,0,0)
C
        STATUS = SYS$QIOW( , %VAL(CHAN), %VAL(OPT),,,,
        1       %VAL(%LOC(INPUT)), %VAL(1),,,, )
        IF( STATUS .NE. 1 ) RETURN
C
   80   FORMAT(Q,A)
        IF( ESC .EQ. 1 ) GO TO 140
        IF(ICHAR(INPUT(1:1)) .EQ. 27 ) GO TO 130
        IF(INPUT(1:1) .EQ.'Q') RETURN
        IF(INPUT(1:1) .EQ.'B') GO TO 90
        IF(INPUT(1:1) .EQ.'M') GO TO 100
        IF(INPUT(1:1) .EQ.'C' ) GO TO 110
        IF(INPUT(1:1).NE.'H') GO TO 160
        IF(Y.EQ.HOMEH.AND.X.EQ.HOMEW) GO TO 60
        SOVER=1
        ADD = -1
        GO TO 220
   90   NOBELL = 0
        GO TO 70
  100   NOBELL = 1
        GO TO 70
  110   WRITE(6,120) L
  120   FORMAT( ' CURRENT LEVEL IS ',I2)
        GO TO 70
  130   ESC = 1
        GO TO 70
  140   IF(INPUT(1:1) .EQ. '[' ) GO TO 70
        GO TO 170
  150   SOVER = 0
        Y = HOMEH
        X = HOMEW
        GO TO 60
C
C       FIND DIRECTION TO GO
C
  160   DIR = 0
        IF(ICHAR(INPUT(1:1)).EQ.27) GO TO 170
        IF(INPUT(1:1).EQ.'S'.OR.INPUT(1:1).EQ.'D') DIR=1
        IF(INPUT(1:1).EQ.'E'.OR.INPUT(1:1).EQ.'R') DIR=2
        IF(INPUT(1:1).EQ.'N'.OR.INPUT(1:1).EQ.'U') DIR=3
        IF(INPUT(1:1).EQ.'W'.OR.INPUT(1:1).EQ.'L') DIR=4
        IF(INPUT(1:1).EQ.'2') DIR=1
        IF(INPUT(1:1).EQ.'6') DIR=2
        IF(INPUT(1:1).EQ.'8') DIR=3
        IF(INPUT(1:1).EQ.'4') DIR=4
        IF(INPUT(1:1).EQ.'I'.OR.INPUT(1:1).EQ.'9') DIR=5
        IF(INPUT(1:1).EQ.'O'.OR.INPUT(1:1).EQ.'7') DIR=6
        GO TO 180
C
C       CHECK ARROW KEYS ( DID NOT HAVE TIME TO MAKE THIS WORK )
C
  170   IF(INPUT(1:1).EQ.'A') DIR=3
        IF(INPUT(1:1).EQ.'B') DIR=1
        IF(INPUT(1:1).EQ.'C') DIR=2
        IF(INPUT(1:1).EQ.'D') DIR=4
        ESC = 0
  180   IF(DIR.NE.0) GO TO 200
C
C       COMMAND NOT RECOGNIZED
C
        WRITE(6,190)
  190   FORMAT(' TRY AGAIN ')
        GO TO 70
C
C       SEE IF DIRECTION IS LEGAL
C
  200   IF( IAND(EXIT(Y,X,L),OUT(DIR)) .NE. 0 ) GO TO 210
        IF(NOBELL .NE. 0 ) GO TO 70
        CALL MAZOUT( BELL ,1,1, 24,1, 0,0,0 )
        GO TO 70
C
C       MOVE KEEP MOVEMENT ARRAY MAT UP TO DATE
C
  210   IF(Y.EQ.STARTH.AND.X.EQ.STARTW.AND.L.EQ.STARTD) GO TO 230
        IF(DEADE.EQ.1) GO TO 230
        ADD = OUT(DIR)
        IF(ODIR.NE.0.AND.DIR.LT.5) ADD = MOVE(ODIR,DIR)
        IF(ODIR.EQ.0) ADD = 0
  220   IF(MAT(Y,X,L).EQ.-1) MAT(Y,X,L) = 0
        IF(ADD.EQ.-1 .AND. MAT(Y,X,L).EQ.0 ) MAT(Y,X,L) = ADD
        IF(ADD.NE.-1) MAT(Y,X,L) = IOR(MAT(Y,X,L),ADD)
        IF(MAT(Y,X,L).GT.0.AND.MAT(Y,X,L).LT.16)
        1 CALL MAZOUT(SET(MAT(Y,X,L)),1,1,Y,X,1,1,0)
        IF(MAT(Y,X,L).LT.0) CALL MAZOUT( '~' ,1,1,Y,X,1,1,0)
  230   IF(SOVER.EQ.1) GO TO 150
        IF( DIR.LT.5 ) GO TO 240
C
C       CHANGE LEVELS
C
        IF( DIR.EQ.5 ) L = L+1
        IF( DIR.EQ.6 ) L = L-1
        MAT(Y,X,L) = OUT(DIR)
        LOOP = LOOP + 1
        GO TO 20
  240   Y = Y + YDIR(DIR)
        X = X + XDIR(DIR)
        IF(Y.EQ.STARTH.AND.X.EQ.STARTW.AND.L.EQ.STARTD) GO TO 70
        IF(MAT(Y,X,L).LT.16) CALL MAZOUT('{',1,1,Y,X,0,1,1)
        DEADE = 0
        ODIR = DIR
        IF(Y.EQ.ENDH.AND.X.EQ.ENDW.AND.L.EQ.ENDD) GO TO 270
C
C       CHECK FOR DEAD END
C
        DO 250 I=1,6
        IF( EXIT(Y,X,L) .EQ. OUT(I) ) GO TO 260
  250   CONTINUE
        GO TO 70
C
C       DEAD END
C
  260   CALL MAZOUT(DEAD,1,1,Y,X,0,0,0)
        MAT(Y,X,L) = 64
        DEADE = 1
        GO TO 70
  270   CONTINUE
C
C       SUCCESS - END FOUND
C
        DO 290 I=1,6
        J=MOD(I,2)
        CALL MAZOUT('E',1,1,ENDH,ENDW,1,J,1)
        CALL MAZOUT(' ',1,1,24,1,0,J,1)
        WRITE(6,280)
  280   FORMAT(' SUCCESS SUCCESS SUCCESS' )
        CALL SYS$BINTIM( '0 ::00.50', SLEEP )
        CALL SYS$SCHDWK( , , SLEEP , )
        CALL SYS$HIBER
  290   CONTINUE
        RETURN
        END
 
        SUBROUTINE MAZSOL(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
C
C       MAZSOL SHOWS ALL POSSIABLE PATHS IN MAZE
C
        IMPLICIT INTEGER*4 (A-Z)
C
        INTEGER*2 EXIT(HEIGHT,WIDTH,DEPTH)
        INTEGER*2 MAT (HEIGHT,WIDTH,DEPTH), ADD, MOVE(4,4)
        DIMENSION XDIR(4), YDIR(4), OUT(4), SLEEP(2)
C
        BYTE START(28),BELL,DEAD,LR132(10)
        BYTE SET(16)
        BYTE SCROL(8)
C
        CHARACTER*200 INPUT
C
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
C
        DATA XDIR / 0, 1, 0,-1 /
        DATA YDIR / 1, 0,-1, 0 /
        DATA OUT  / 1, 2, 4, 8 /
        DATA BELL / 7 /
        DATA START/ 27,'<',27,'[','2','J',27,'[','0','m',27,'[','?',
     1    '5','l',27,'[','?','7','l',  27,'[','?','3','l',27,'(','0'/
        DATA SET/' ', ' ', 'l', ' ', 'k', 'q', 'w', ' ',
     1     'x', 'm', 't', 'j', 'u', 'v', 'n', 97 /
        DATA LR132 / 27,'[','?','3','h' , 27,'[','?','5','h' /
        DATA SCROL / 27,'[','2','3',';','2','4','r' /
        DATA DEAD / 97 /
        DATA MOVE / 0, 3, 9, 5
        1        , 3, 0,10, 6
        2        , 9,10, 0,12
        3        , 5, 6,12, 0 /
C
C       CLEAR SCREEN AND SHOW START AND END OF MAZE
C
        CALL MAZOUT( START(1), 28, 1, 1,1, 0,0,0)
        IF(WIDTH.GT.80) CALL MAZOUT(LR132,10,1,1,1,0,0,0)
        CALL MAZOUT(SCROL,8,1,23,1,0,0,0)
C
C       BORDER
C
        DO 70 L = 1,DEPTH
        IF(L.EQ.ENDD) CALL MAZOUT( 'E',1,1,ENDH,ENDW,1,1,1)
        IF(L.EQ.STARTD) CALL MAZOUT( 'S',1,1,STARTH,STARTW,1,1,1)
C
C       LOOP OVER MAZE
C
        DO 40 X=1,WIDTH
        DO 40 Y=1,HEIGHT
        MAT(Y,X,L) = 0
        IF(Y.EQ.STARTH.AND.X.EQ.STARTW.AND.L.EQ.STARTD) GO TO 40
        IF(Y.EQ.ENDH  .AND.X.EQ.ENDW  .AND.L.EQ.ENDD) GO TO 40
C
C       CHECK FOR DEAD END
C
        DO 20 ODIR=1,4
        IF( EXIT(Y,X,L) .EQ. OUT(ODIR) ) GO TO 30
        IF( IAND(EXIT(Y,X,L),OUT(ODIR)) .EQ. 0 ) GO TO 20
        DO 10 DIR=1,4
        IF(DIR.EQ.ODIR) GO TO 10
        IF( IAND(EXIT(Y,X,L),OUT(DIR)) .EQ. 0 ) GO TO 10
        ADD = MOVE(ODIR,DIR)
        MAT(Y,X,L) = IOR(MAT(Y,X,L),ADD)
   10   CONTINUE
   20   CONTINUE
        IF(EXIT(Y,X,L).LT.16) CALL MAZOUT(SET(MAT(Y,X,L)),1,1,Y,X,1,1,0)
        IF(IAND(EXIT(Y,X,L),16).NE.0) CALL MAZOUT('O',1,1,Y,X,1,1,1)
        IF(IAND(EXIT(Y,X,L),32).NE.0) CALL MAZOUT('O',1,1,Y,X,1,1,0)
        GO TO 40
C
C       DEAD END
C
   30   CALL MAZOUT(DEAD,1,1,Y,X,0,0,0)
   40   CONTINUE
C
C       SUCCESS - END FOUND
C
        CALL MAZOUT(' ',1,1,24,1,0,0,0)
        WRITE(6,50)
   50   FORMAT('  PRESS RETURN TO CONTINUE OR FINISH')
        READ(5,60) NC,INPUT
   60   FORMAT(Q,A)
   70   CONTINUE
        RETURN
        END

The pre-processed version has the comments converted and the continuation lines appended:

//
//      MAZE -  USES A VT100 TO WANDER AROUND.
//              THE VT100 MUST HAVE ADVANCED VIDEO OPTION.
//              ANSI VT100 ESCAPE SEQUENCES ARE USED.
//
//      WRITTEN BY DON MCLEAN
//      OF THE MACNEAL-SCHWENDLER CORP.
//
//      THE PURPOSE OF THIS PROGRAM WAS TO
//              1. LEARN SOMETHING ABOUT THE VT100 GRAPHICS.
//              2. KEEP MY KIDS BUSY ON WEEKENDS. WHILE I TRIED
//                 TO GET SOMETHING ELSE DONE.
//
//      USE OF THIS PROGRAM FOR ANY PURPOSE OTHER THAN FUN
//      IS PROHIBITED.
//
        IMPLICIT INTEGER*4 (A-Z)
//
//      MAZE DIMENSIONS
//      HMAX AND WMAX SHOULD NOT BE LARGER THAN 22 AND 80 RESP.
//
        PARAMETER HMAX=22, WMAX=80, DMAX=4
//
        DIMENSION SLEEP(2)
//
//      DIMENSION IS HMAX*WMAX*DMAX
        INTEGER*2  EXIT(HMAX*WMAX*DMAX), MAT(HMAX*WMAX*DMAX)
        INTEGER*2  LCOUNT(DMAX)
//
        BYTE CLEAR(2)
//
        CHARACTER*200 INPUT
//
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
//
//      CLEAR IS A VT100 RESET
//
        DATA CLEAR / 27, 'c' /
//
//      START - SEE IF AN OLD GAME IS TO BE USED.
//
        WRITE(6,10)
   10   FORMAT(' WELCOME TO MAZE')
//
   20   WRITE(6,30)
   30   FORMAT(' ARE YOU GOING TO PLAY A SAVED GAME? ',$)
        READ(5,40) NC,INPUT
   40   FORMAT(Q,A)
        IF(INDEX(INPUT(1:NC),'Y').NE.0) GO TO 120
        SAVE = 0
//
//      INPUT DIMENSION OF MAZE
//
   50   WRITE(6,60) HMAX
   60   FORMAT(' PLEASE INPUT HEIGHT OF MAZE - DEFAULT = ',I2,' ',$)
        READ(5,40) NC,INPUT
        READ(INPUT,70,ERR=50) HEIGHT
   70   FORMAT(BNI2)
        IF(HEIGHT.EQ.0) HEIGHT=HMAX
        IF(HEIGHT.LT.2) HEIGHT=2
        IF(HEIGHT.GT.HMAX) HEIGHT=HMAX
   80   WRITE(6,90) WMAX
   90   FORMAT(' PLEASE INPUT WIDTH  OF MAZE - DEFAULT = ',I2,' ',$)
        READ(5,40) NC,INPUT
        READ(INPUT,70,ERR=80) WIDTH
        IF(WIDTH.EQ.0) WIDTH = WMAX
        IF(WIDTH.LT.2) WIDTH=2
        IF(WIDTH.GT.WMAX) WIDTH=WMAX
  100   WRITE(6,110)
  110   FORMAT(' PLEASE INPUT DEPTH  OF MAZE - DEFAULT =  1 ',$)
        READ(5,40) NC,INPUT
        READ(INPUT,70,ERR=100) DEPTH
        IF(DEPTH.LE.0) DEPTH = 1
        IF(DEPTH.GT.DMAX) DEPTH = DMAX
        NTERMS = HEIGHT * WIDTH * DEPTH
//
//      GENERATE MAZE
//
        CALL MAZGEN(EXIT,LCOUNT,HEIGHT,WIDTH,DEPTH)
        GO TO 180
//
//      READ IN OLD MAZE
//
  120   WRITE(6,130)
  130   FORMAT(' INPUT SAVED FILE NAME ',$)
        READ(5,40) NC,INPUT
        OPEN(UNIT=7,NAME=INPUT(1:NC),STATUS='OLD',ERR=140,FORM='UNFORMATTED',READONLY)
        GO TO 160
//
  140   WRITE(6,150)
  150   FORMAT(' SAVE FILE NOT FOUND')
        GO TO 20
  160   READ(UNIT=7) HEIGHT,WIDTH,DEPTH,STARTH,STARTW,STARTD,ENDH,ENDW,ENDD
        NTERMS = HEIGHT * WIDTH * DEPTH
        READ(UNIT=7) (EXIT(I),I=1,NTERMS)
        READ(UNIT=7) (MAT (I),I=1,NTERMS)
        CLOSE(UNIT=7)
//
        WRITE(6,170)
  170   FORMAT( ' DO YOU WANT THE PATHS RESTORED? ',$)
        READ(5,40) NC,INPUT
        IF(INDEX(INPUT(1:NC),'Y').NE.0) SAVE=1
//      SPECIAL CASE TO PRINT ALL PATHS
        IF(INDEX(INPUT(1:NC),'YES SOLUTIONS').NE.0) GO TO 240
//
//      MAZE DESCRIPTION
//
  180   WRITE(6,190) HEIGHT,WIDTH,DEPTH
  190   FORMAT('0',' YOUR MAZE HAS A HEIGHT OF',I5,/,'             AND A WIDTH OF',I5,/,'            WITH A DEPTH OF',I5,//,'  THE DIRECTION COMMANDS FOR MAZE ARE SINGLE LETTERS',/,'    N(ORTH), U(P),    OR 8 IS UP',/,'    E(AST) , R(IGHT), OR 6 IS RIGHT',/,'    S(OUTH), D(OWN),  OR 2 IS DOWN',/,'    W(EST) , L(EFT),  OR 4 IS LEFT',/,'    I(N)   ,          OR 9 IS IN TO SCREEN',/,'    O(UT)  ,          OR 7 IS OUT OF SCREEN',/,'  OR YOU CAN USE THE ARROW KEYS FOR DIRECTIONS',/,'  THE COMMAND H(OME)    RETURNS YOUR POSITION TO "S" OR "O"',/,'  THE COMMAND Q(UIT)    ENDS THE GAME',/,'  THE COMMAND B(ELL)    MAKES THE TERMINAL BEEP (DEFAULT)',/,'  THE COMMAND M(UTE)    TURNS OFF TERMINAL BEEPING',/,'  THE COMMAND C(URRENT) PRINTS THE CURRENT LEVEL',/,'  AFTER A Q(UIT) COMMAND YOU GET A CHANCE TO SAVE THE GAME',/,'  YOU CAN MOVE ALONG BORDERS',//,'  PRESS RETURN TO START')
        READ(5,40) NC,INPUT
        NOBELL = 0
        IF(INPUT(1:6).EQ.'NOBELL') OFFBEL = 1
//
//      EXECUTE THE MAZE
//
        IF(SAVE.EQ.1) GO TO 210
        DO 200 I=1,NTERMS
  200   MAT(I)=0
//
  210   CALL MAZRUN(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
//
//      SAVE THE MAZE ON REQUEST
//
        WRITE(6,220)
  220   FORMAT(' DO YOU WANT TO SAVE THIS MAZE? ',$)
        READ(5,40) NC,INPUT
//
        IF(INDEX(INPUT(1:NC),'Y') .EQ.0) GO TO 260
        WRITE(6,230)
  230   FORMAT(' PLEASE INPUT FILE NAME ',$)
        READ(5,40) NC,INPUT
        OPEN(UNIT=7,NAME=INPUT(1:NC),STATUS='NEW',FORM='UNFORMATTED')
        WRITE(UNIT=7) HEIGHT,WIDTH,DEPTH,STARTH,STARTW,STARTD,ENDH,ENDW,ENDD
        WRITE(UNIT=7) (EXIT(I),I=1,NTERMS)
        WRITE(UNIT=7) (MAT (I),I=1,NTERMS)
        CLOSE(UNIT=7)
        GO TO 260
//
//      PRINT THE SOLUTION TO A MAZE
//
  240   WRITE(6,250) HEIGHT,WIDTH,DEPTH
  250   FORMAT('0',' YOUR MAZE HAS A HEIGHT OF',I5,/,'             AND A WIDTH OF',I5,/,'            WITH A DEPTH OF',I5,//,'  PRESS RETURN TO START')
        READ(5,40) NC,INPUT
//
//      PRINT MAZE
//
        CALL MAZSOL(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
//
//      CLEAR SCREEN AND WAIT 2 SECONDS
//
  260   CALL MAZOUT(CLEAR,2,1,24,1,0,0,0)
        CALL SYS$BINTIM( '0 ::02.00', SLEEP )
        CALL SYS$SCHDWK( , , SLEEP , )
        CALL SYS$HIBER
        STOP 'BYE FROM MAZE'
        END
 
        SUBROUTINE MAZGEN (  EXIT, LCOUNT, HEIGHT, WIDTH, DEPTH )
//
//      MAZGEN CREATES A MAZE IN EXIT
//
//      MAZE IS CREATED BY GOING FROM A START LOCATION IN A
//      RANDOM WALK
//      SQUARES MAY ONLY BE ENTERED ONCE BUT CAN HAVE MULTIPLE EXITS
//
//      MOVEMENT CONVENTION IS
//              1 - SOUTH OR DOWN
//              2 - EAST  OR RIGHT
//              4 - NORTH OR UP
//              8 - WEST  OR LEFT
//             16 - IN  A LEVEL
//             32 - OUT A LEVEL
//
        IMPLICIT INTEGER*4 (A-Z)
//
        INTEGER*2  EXIT(HEIGHT,WIDTH,DEPTH), LCOUNT(DEPTH)
//
        DIMENSION XDIR(4), YDIR(4), IN(4), OUT(4)
//
        REAL  SEED
//
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
//
        DATA XDIR / 0, 1, 0,-1 /
        DATA YDIR / 1, 0,-1, 0 /
        DATA IN   / 4, 8, 1, 2 /
        DATA OUT  / 1, 2, 4, 8 /
//
//      INITIALIZE AND PICK START AND END POSITIONS
//
        SEED = FOR$SECNDS(0)
        H = HEIGHT
        W = WIDTH
        D = DEPTH
        NENTER = 1
        LMAX = H * W
        NMAX = LMAX * D
        DO 10 L=1,D
        LCOUNT(L) = 0
        DO 10 J=1,W
        DO 10 I=1,H
   10   EXIT (I,J,L) = 0
//
        STARTH = IRAN(SEED,1,H)
        STARTW = IRAN(SEED,1,W)
        STARTD = 1
   20   ENDH   = IRAN(SEED,1,H)
        ENDW   = IRAN(SEED,1,W)
        ENDD   = D
        IF(STARTH.EQ.ENDH.AND.STARTW.EQ.ENDW.AND.STARTD.EQ.ENDD)GO TO 20
        SY = STARTH
        SX = STARTW
        SD = STARTD
        LCOUNT(SD) = 1
//
//      START FILLING IN MAZE
//
   30   ODIR = 0
        Y = SY
        X = SX
        L = SD
   40   DIR = IRAN(SEED,1,4)
//      DO NOT GO BACK ON YOURSELF
        IF( ODIR .EQ. OUT(DIR) ) GO TO 40
//
//      TEND TO MAKE LONGER LINES WITH NLOOPS
//
        NLOOPS = IRAN(SEED,1,DIR)
        NCOUNT=0
   50   NY = YDIR(DIR) + Y
        NX = XDIR(DIR) + X
        IF(NY.LT.1.OR.NY.GT.H) GO TO 40
        IF(NX.LT.1.OR.NX.GT.W) GO TO 40
        IF( EXIT(NY,NX,L) .EQ. 0 ) GO TO 80
//
//      CHECK FOR DEAD END
//
        DO 60 I=1,4
        TY = Y + YDIR(I)
        TX = X + XDIR(I)
        IF(TY.LT.1.OR.TY.GT.H) GO TO 60
        IF(TX.LT.1.OR.TX.GT.W) GO TO 60
//      NOT DEAD END TRY AGAIN
        IF( EXIT(TY,TX,L) .NE. 0 ) GO TO 60
        GO TO 40
   60   CONTINUE
//
//      DEAD END RETURN TO START UNLESS ALL DIRECTIONS ARE TAKEN
//
        IF( Y.EQ.SY .AND. X.EQ. SX ) GO TO 70
        GO TO 30
//
//      ALL STARTS FROM THIS STARTING POSITION ARE TAKEN
//      PICK A NEW STARTING POSITIONS UNTIL MAZE IS FULL
//
   70   SY = IRAN(SEED,1,H)
        SX = IRAN(SEED,1,W)
        IF( EXIT(SY,SX,L) .EQ. 0 ) GO TO 70
        IF( SY.EQ.STARTH.AND.SX.EQ.STARTW.AND.L.EQ.STARTD) GO TO 70
        IF( SY.EQ.ENDH  .AND.SX.EQ.ENDW  .AND.L.EQ.ENDD) GO TO 70
        IF( SY.EQ.Y     .AND.SX.EQ.X   ) GO TO 70
//
//      FILL IN A LAYER AT A TIME
//
        IF(LCOUNT(L).NE.LMAX) GO TO 30
        SD = SD + 1
        EXIT(SY,SX, L) = IOR(EXIT(SY,SX, L),16)
        EXIT(SY,SX,SD) = IOR(EXIT(SY,SX,SD),32)
        NENTER = NENTER + 1
        LCOUNT(SD) = 1
        GO TO 30
//
//      DIRECTION TO GO FOUND
//      SET POSITION AS HAVING BEEN ENTERED AND
//      SET EXIT ARRAY TO DIRECTIONS INVOLVED
//
   80   ODIR = IN(DIR)
        EXIT(Y,X,L)   = IOR(EXIT(Y,X,L),OUT(DIR))
        EXIT(NY,NX,L) = IOR(EXIT(NY,NX,L),IN(DIR))
        NENTER = NENTER + 1
        LCOUNT(L) = LCOUNT(L)+1
//      THE WAY OUT - ALL POINTS USED
        IF( NENTER .EQ. NMAX ) GO TO 90
        Y = NY
        X = NX
//
//      ONLY ALLOW THE END LOCATION TO BE ENTERED ONCE
//
        IF(Y.EQ.ENDH.AND.X.EQ.ENDW.AND.L.EQ.ENDD) GO TO 30
        NCOUNT=NCOUNT+1
        IF(NCOUNT.LT.NLOOPS) GO TO 50
        GO TO 40
//
//      OUT
//
   90   CONTINUE
        RETURN
        END
 
        SUBROUTINE MAZOUT( STRING, L, XOFF, Y, X, BOLD, REVERS, BLINK )
//*****
//  OUTPUTS -STRING- OF LENGTH -L- BYTES WITH BYTE NUMBER -XOFF-
//  OF STRING LOCATED AT CURSER LOCATION -X-, -Y-.
//
//  BOLD, REVERS, BLINK ARE THE MODES TO OUTPUT THIS STRING
//*****
        IMPLICIT INTEGER*2 (A-Z)
//
        LOGICAL ANY
//
        CHARACTER*300 CC
//
        BYTE STRING(L), LINEOUT(300), CHAR(10), ESCAPE
//
        DATA CHAR/ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' /
        DATA ESCAPE/ 27 /, C1,C2,C3 / 0,0,0/
//
        EQUIVALENCE(CC,LINEOUT(1))
//
        NL     = X - XOFF + 1
        NR     = NL + L - 1
        LENGTH = L
        ISTART = 1
        NX     = X
        NY     = Y
//
//  READJUST STRING LIMITS TO BE WITHIN SCREEN.  IF STRING IS
//  COMPLETELY OUT OF SCREEN, THEN RETURN DOING NOTHING.
//
        IF( NY.LT.1 .OR. NY.GT.24 ) RETURN
        IF( NR.LT.1 .OR. NL.GT.132 ) RETURN
//
//  STRING (ALL OR PART) LIES IN THE SCREEN AREA.
//
        IF( NL .GE. 1 ) GO TO 10
        ISTART = 2 - NL
        NL     = 1
        LENGTH = LENGTH - ISTART + 1
//
   10 IF( NR .LE. 132 ) GO TO 20
        LENGTH = LENGTH - (NR-132)
        NR = 132
//
//  OK AT THIS POINT WE ARE GOING TO OUTPUT STRING(ISTART) THRU
//  STRING(ISTART+LENGTH-1) STARTING AT SCREEN LOCAT SCREEN ION (NL,NY)
//
// 20  LINEOUT(1) = ' '
   20 LINEOUT(1) = ESCAPE
        LINEOUT(2) = '['
        IOUT = 2
        COORD = NY
        DO 40 I = 1,2
        ANY = .FALSE.
        DO 30 J = 1,3
        N = MOD( COORD/10**(3-J), 10 )
        IF( N.EQ.0 .AND. .NOT.ANY ) GO TO 30
        ANY = .TRUE.
        IOUT = IOUT + 1
        LINEOUT(IOUT) = CHAR(N+1)
   30 CONTINUE
        IOUT = IOUT + 1
        LINEOUT(IOUT) = ';'
        COORD = NL
   40 CONTINUE
        LINEOUT(IOUT) = 'H'
//
//  CHECK MODES AGAINST CURRENT MODES AND OUTPUT APPROPRIATE
//  MODE INDICATORS.
//
        IF( C1.NE.0 .AND.   BOLD.EQ.0 ) GO TO 80
        IF( C2.NE.0 .AND. REVERS.EQ.0 ) GO TO 80
        IF( C3.NE.0 .AND.  BLINK.EQ.0 ) GO TO 80
        IF( C1.EQ.BOLD .AND. C2.EQ.REVERS .AND. C3.EQ.BLINK )GO TO 120
//
//  OK SIMPLY ADD OUTPUT MODES
//
        LINEOUT(IOUT+1) = ESCAPE
        LINEOUT(IOUT+2) = '['
        IOUT = IOUT + 2
//
        IF( C1.EQ.BOLD   ) GO TO 50
        LINEOUT(IOUT+1) = '1'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
        C1   = BOLD
//
   50 IF( C2 .EQ. REVERS ) GO TO 60
        LINEOUT(IOUT+1) = '7'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
        C2 = REVERS
//
   60 IF( C3 .EQ. BLINK ) GO TO 70
        LINEOUT(IOUT+1) = '5'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
        C3 = BLINK
//
   70 LINEOUT(IOUT) = 'm'
        GO TO 120
//
//  SOME OR ALL OF CURRENT MODES ARE NOT DESIRED, THUS
//  MUST DO A NORMAL FOLLOWED BY A RESET OF MODES DESIRED.
//
   80 LINEOUT(IOUT+1) = ESCAPE
        LINEOUT(IOUT+2) = '['
        LINEOUT(IOUT+3) = '0'
        LINEOUT(IOUT+4) = ';'
        IOUT = IOUT + 4
//
        IF( BOLD .EQ. 0 ) GO TO 90
        LINEOUT(IOUT+1) = '1'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
//
   90 C1 = BOLD
        IF( REVERS .EQ. 0 ) GO TO 100
        LINEOUT(IOUT+1) = '7'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
//
  100 C2 = REVERS
        IF( BLINK .EQ. 0 ) GO TO 110
        LINEOUT(IOUT+1) = '5'
        LINEOUT(IOUT+2) = ';'
        IOUT = IOUT + 2
//
  110 C3 = BLINK
        LINEOUT(IOUT) = 'm'
//*****
//  OUTPUT THE STRING WITH ITS LEADER
//*****
  120 DO 130 I = 1,LENGTH
        LINEOUT(IOUT+I) = STRING(ISTART+I-1)
  130 CONTINUE
        IOUT = IOUT + LENGTH
//*****
//  BACK UP CURSER ONE LINE IF AT LINE 24
//*****
        IF( NY .NE. 24 ) GO TO 140
        LINEOUT(IOUT+1) = ESCAPE
        LINEOUT(IOUT+2) = 'M'
        IOUT = IOUT + 2
//*****
//  NOW READY TO OUTPUT THE STRING.
//*****
  140 RC = LIB$PUT_OUTPUT( CC(1:IOUT) )
        RETURN
        END
        FUNCTION IRAN( SEED, I, J )
//*****
//  RETURNS A RANDOM NUMBER IN THE RANGE OF I THRU J.
//  SEED IS UPDATED AND THUS A VARIABLE MUST BE SENT.
//*****
        REAL MTH$RANDOM
        FN = J - I + 1
        IRAN = I + IFIX( FN * MTH$RANDOM(SEED) )
        RETURN
        END
 
        SUBROUTINE MAZRUN(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
//
//      MAZRUN USES THE EXIT ARRAY TO CONTROL MAZE MOVEMENT
//                      MAT  ARRAY CONTAINS WHERE YOU HAVE BEEN
//
        IMPLICIT INTEGER*4 (A-Z)
//
        INTEGER*2 EXIT(HEIGHT,WIDTH,DEPTH)
        INTEGER*2 MAT (HEIGHT,WIDTH,DEPTH), ADD, MOVE(4,4)
//
        DIMENSION XDIR(4), YDIR(4), OUT(6), SLEEP(2)
//
        BYTE START(28),BELL,DEAD,LR132(10)
        BYTE SET(16)
        BYTE SCROL(8)
//
        CHARACTER*200 INPUT
        CHARACTER*10  NAME
        CHARACTER*6   PORT
//
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
//
        DATA XDIR / 0, 1, 0,-1 /
        DATA YDIR / 1, 0,-1, 0 /
        DATA OUT  / 1, 2, 4, 8, 16, 32 /
        DATA BELL / 7 /
//
//      ESCAPE SEQUENCES TO
//      ANSI MODE, ERASE SCREEN, ATTRIBUTES OFF, SCREEN NORMAL,
//      WRAP OFF, 80 COL., AND SPECIAL GRAPHICS
//
        DATA START/ 27,'<',27,'[','2','J',27,'[','0','m',27,'[','?','5','l',27,'[','?','7','l',  27,'[','?','3','l',27,'(','0'/
//
//      GRAPHICS CHARACTERS TO USE FOR DRAWING LINES
//
        DATA SET/' ', ' ', 'l', ' ', 'k', 'q', 'w', ' ','x', 'm', 't', 'j', 'u', 'v', 'n', 97 /
//
//      ESCAPE SEQUENCE TO SET 132 CHARACTER LINE MODE
//
        DATA LR132 / 27,'[','?','3','h' , 27,'[','?','5','h' /
//
//      SET SCROLLING REGION TO LAST TWO LINES (23-24)
//
        DATA SCROL / 27,'[','2','3',';','2','4','r' /
        DATA DEAD / 97 /
        DATA MOVE / 9, 5,-1, 3,10, 6, 3,-1,-1,12, 9,10,12,-1, 5, 6 /
//
//      SET UP FOR QIO FROM TERMINAL
//
        STATUS = SYS$TRNLOG( 'SYS$INPUT' ,, NAME ,,, )
        PORT = NAME( 5:10 )
        STATUS = SYS$ASSIGN( PORT, CHAN ,, )
        IF( STATUS.NE.1 ) RETURN
        READ = 49
        NOECHO = 64
        CVLOW = 256
//
//      CLEAR SCREEN AND SHOW START AND END OF MAZE
//
        CALL MAZOUT( START(1), 28, 1, 1,1, 0,0,0)
        IF(WIDTH.GT.80) CALL MAZOUT(LR132,10,1,1,1,0,0,0)
        CALL MAZOUT(SCROL,8,1,23,1,0,0,0)
        LOOP = 0
        SOVER = 0
//
//      BORDER
//
   10   CONTINUE
        Y = STARTH
        X = STARTW
        L = STARTD
   20   CONTINUE
        CALL MAZOUT(START(3),4,1,1,1,0,0,0)
        DO 40 I=1,HEIGHT
        CALL MAZOUT(' ',1,1, I,1     ,0,1,0)
        CALL MAZOUT(' ',1,1, I,WIDTH,0,1,0)
        IF(I.NE.1.AND.I.NE.HEIGHT) GO TO 40
        DO 30 J=2,WIDTH-1
        CALL MAZOUT(' ',1,1, I,J     ,0,1,0)
   30   CONTINUE
   40   CONTINUE
//
//      SHOW CURRENT STATUS OF MAZE SOLUTION
//
        DO 50 J=1,WIDTH
        DO 50 I=1,HEIGHT
        IF(IAND(EXIT(I,J,L),16).NE.0) CALL MAZOUT('O',1,1,I,J,1,1,1)
        IF(MAT(I,J,L).EQ.0) GO TO 50
        IF(MAT(I,J,L).GT.0.AND.MAT(I,J,L).LT.16)CALL MAZOUT(SET(MAT(I,J,L)),1,1,I,J,1,1,0)
        IF(MAT(I,J,L).LT.0) CALL MAZOUT('~',1,1,I,J,1,1,0)
        IF(MAT(I,J,L).EQ.64) CALL MAZOUT(SET(16),1,1,I,J,1,1,0)
        IF(MAT(I,J,L).GT.15.AND.MAT(I,J,L).LT.32)CALL MAZOUT('O',1,1,I,J,1,1,0)
        IF(MAT(I,J,L).GT.31.AND.MAT(I,J,L).LT.64)CALL MAZOUT('O',1,1,I,J,1,1,1)
   50   CONTINUE
        IF(LOOP.NE.0) CALL MAZOUT('O',1,1,Y,X,0,1,0)
        IF(L.EQ.ENDD) CALL MAZOUT( 'E',1,1,ENDH,ENDW,1,1,1)
        IF(L.EQ.STARTD) CALL MAZOUT( 'S',1,1,STARTH,STARTW,1,1,1)
        HOMEH = Y
        HOMEW = X
   60   DEADE = 0
        ODIR = 0
//
//      READ INPUT AND MOVE AS REQUESTED
//
        ESC = 0
        OPT =  READ + NOECHO + CVLOW
   70   CALL MAZOUT(' ',1,1,24,1,0,0,0)
//
        STATUS = SYS$QIOW( , %VAL(CHAN), %VAL(OPT),,,,%VAL(%LOC(INPUT)), %VAL(1),,,, )
        IF( STATUS .NE. 1 ) RETURN
//
   80   FORMAT(Q,A)
        IF( ESC .EQ. 1 ) GO TO 140
        IF(ICHAR(INPUT(1:1)) .EQ. 27 ) GO TO 130
        IF(INPUT(1:1) .EQ.'Q') RETURN
        IF(INPUT(1:1) .EQ.'B') GO TO 90
        IF(INPUT(1:1) .EQ.'M') GO TO 100
        IF(INPUT(1:1) .EQ.'C' ) GO TO 110
        IF(INPUT(1:1).NE.'H') GO TO 160
        IF(Y.EQ.HOMEH.AND.X.EQ.HOMEW) GO TO 60
        SOVER=1
        ADD = -1
        GO TO 220
   90   NOBELL = 0
        GO TO 70
  100   NOBELL = 1
        GO TO 70
  110   WRITE(6,120) L
  120   FORMAT( ' CURRENT LEVEL IS ',I2)
        GO TO 70
  130   ESC = 1
        GO TO 70
  140   IF(INPUT(1:1) .EQ. '[' ) GO TO 70
        GO TO 170
  150   SOVER = 0
        Y = HOMEH
        X = HOMEW
        GO TO 60
//
//      FIND DIRECTION TO GO
//
  160   DIR = 0
        IF(ICHAR(INPUT(1:1)).EQ.27) GO TO 170
        IF(INPUT(1:1).EQ.'S'.OR.INPUT(1:1).EQ.'D') DIR=1
        IF(INPUT(1:1).EQ.'E'.OR.INPUT(1:1).EQ.'R') DIR=2
        IF(INPUT(1:1).EQ.'N'.OR.INPUT(1:1).EQ.'U') DIR=3
        IF(INPUT(1:1).EQ.'W'.OR.INPUT(1:1).EQ.'L') DIR=4
        IF(INPUT(1:1).EQ.'2') DIR=1
        IF(INPUT(1:1).EQ.'6') DIR=2
        IF(INPUT(1:1).EQ.'8') DIR=3
        IF(INPUT(1:1).EQ.'4') DIR=4
        IF(INPUT(1:1).EQ.'I'.OR.INPUT(1:1).EQ.'9') DIR=5
        IF(INPUT(1:1).EQ.'O'.OR.INPUT(1:1).EQ.'7') DIR=6
        GO TO 180
//
//      CHECK ARROW KEYS ( DID NOT HAVE TIME TO MAKE THIS WORK )
//
  170   IF(INPUT(1:1).EQ.'A') DIR=3
        IF(INPUT(1:1).EQ.'B') DIR=1
        IF(INPUT(1:1).EQ.'C') DIR=2
        IF(INPUT(1:1).EQ.'D') DIR=4
        ESC = 0
  180   IF(DIR.NE.0) GO TO 200
//
//      COMMAND NOT RECOGNIZED
//
        WRITE(6,190)
  190   FORMAT(' TRY AGAIN ')
        GO TO 70
//
//      SEE IF DIRECTION IS LEGAL
//
  200   IF( IAND(EXIT(Y,X,L),OUT(DIR)) .NE. 0 ) GO TO 210
        IF(NOBELL .NE. 0 ) GO TO 70
        CALL MAZOUT( BELL ,1,1, 24,1, 0,0,0 )
        GO TO 70
//
//      MOVE KEEP MOVEMENT ARRAY MAT UP TO DATE
//
  210   IF(Y.EQ.STARTH.AND.X.EQ.STARTW.AND.L.EQ.STARTD) GO TO 230
        IF(DEADE.EQ.1) GO TO 230
        ADD = OUT(DIR)
        IF(ODIR.NE.0.AND.DIR.LT.5) ADD = MOVE(ODIR,DIR)
        IF(ODIR.EQ.0) ADD = 0
  220   IF(MAT(Y,X,L).EQ.-1) MAT(Y,X,L) = 0
        IF(ADD.EQ.-1 .AND. MAT(Y,X,L).EQ.0 ) MAT(Y,X,L) = ADD
        IF(ADD.NE.-1) MAT(Y,X,L) = IOR(MAT(Y,X,L),ADD)
        IF(MAT(Y,X,L).GT.0.AND.MAT(Y,X,L).LT.16)CALL MAZOUT(SET(MAT(Y,X,L)),1,1,Y,X,1,1,0)
        IF(MAT(Y,X,L).LT.0) CALL MAZOUT( '~' ,1,1,Y,X,1,1,0)
  230   IF(SOVER.EQ.1) GO TO 150
        IF( DIR.LT.5 ) GO TO 240
//
//      CHANGE LEVELS
//
        IF( DIR.EQ.5 ) L = L+1
        IF( DIR.EQ.6 ) L = L-1
        MAT(Y,X,L) = OUT(DIR)
        LOOP = LOOP + 1
        GO TO 20
  240   Y = Y + YDIR(DIR)
        X = X + XDIR(DIR)
        IF(Y.EQ.STARTH.AND.X.EQ.STARTW.AND.L.EQ.STARTD) GO TO 70
        IF(MAT(Y,X,L).LT.16) CALL MAZOUT('{',1,1,Y,X,0,1,1)
        DEADE = 0
        ODIR = DIR
        IF(Y.EQ.ENDH.AND.X.EQ.ENDW.AND.L.EQ.ENDD) GO TO 270
//
//      CHECK FOR DEAD END
//
        DO 250 I=1,6
        IF( EXIT(Y,X,L) .EQ. OUT(I) ) GO TO 260
  250   CONTINUE
        GO TO 70
//
//      DEAD END
//
  260   CALL MAZOUT(DEAD,1,1,Y,X,0,0,0)
        MAT(Y,X,L) = 64
        DEADE = 1
        GO TO 70
  270   CONTINUE
//
//      SUCCESS - END FOUND
//
        DO 290 I=1,6
        J=MOD(I,2)
        CALL MAZOUT('E',1,1,ENDH,ENDW,1,J,1)
        CALL MAZOUT(' ',1,1,24,1,0,J,1)
        WRITE(6,280)
  280   FORMAT(' SUCCESS SUCCESS SUCCESS' )
        CALL SYS$BINTIM( '0 ::00.50', SLEEP )
        CALL SYS$SCHDWK( , , SLEEP , )
        CALL SYS$HIBER
  290   CONTINUE
        RETURN
        END
 
        SUBROUTINE MAZSOL(EXIT,MAT,HEIGHT,WIDTH,DEPTH)
//
//      MAZSOL SHOWS ALL POSSIABLE PATHS IN MAZE
//
        IMPLICIT INTEGER*4 (A-Z)
//
        INTEGER*2 EXIT(HEIGHT,WIDTH,DEPTH)
        INTEGER*2 MAT (HEIGHT,WIDTH,DEPTH), ADD, MOVE(4,4)
        DIMENSION XDIR(4), YDIR(4), OUT(4), SLEEP(2)
//
        BYTE START(28),BELL,DEAD,LR132(10)
        BYTE SET(16)
        BYTE SCROL(8)
//
        CHARACTER*200 INPUT
//
        COMMON /MAZECM/ STARTH,STARTW,STARTD,ENDH,ENDW,ENDD,NOBELL
//
        DATA XDIR / 0, 1, 0,-1 /
        DATA YDIR / 1, 0,-1, 0 /
        DATA OUT  / 1, 2, 4, 8 /
        DATA BELL / 7 /
        DATA START/ 27,'<',27,'[','2','J',27,'[','0','m',27,'[','?','5','l',27,'[','?','7','l',  27,'[','?','3','l',27,'(','0'/
        DATA SET/' ', ' ', 'l', ' ', 'k', 'q', 'w', ' ','x', 'm', 't', 'j', 'u', 'v', 'n', 97 /
        DATA LR132 / 27,'[','?','3','h' , 27,'[','?','5','h' /
        DATA SCROL / 27,'[','2','3',';','2','4','r' /
        DATA DEAD / 97 /
        DATA MOVE / 0, 3, 9, 5, 3, 0,10, 6, 9,10, 0,12, 5, 6,12, 0 /
//
//      CLEAR SCREEN AND SHOW START AND END OF MAZE
//
        CALL MAZOUT( START(1), 28, 1, 1,1, 0,0,0)
        IF(WIDTH.GT.80) CALL MAZOUT(LR132,10,1,1,1,0,0,0)
        CALL MAZOUT(SCROL,8,1,23,1,0,0,0)
//
//      BORDER
//
        DO 70 L = 1,DEPTH
        IF(L.EQ.ENDD) CALL MAZOUT( 'E',1,1,ENDH,ENDW,1,1,1)
        IF(L.EQ.STARTD) CALL MAZOUT( 'S',1,1,STARTH,STARTW,1,1,1)
//
//      LOOP OVER MAZE
//
        DO 40 X=1,WIDTH
        DO 40 Y=1,HEIGHT
        MAT(Y,X,L) = 0
        IF(Y.EQ.STARTH.AND.X.EQ.STARTW.AND.L.EQ.STARTD) GO TO 40
        IF(Y.EQ.ENDH  .AND.X.EQ.ENDW  .AND.L.EQ.ENDD) GO TO 40
//
//      CHECK FOR DEAD END
//
        DO 20 ODIR=1,4
        IF( EXIT(Y,X,L) .EQ. OUT(ODIR) ) GO TO 30
        IF( IAND(EXIT(Y,X,L),OUT(ODIR)) .EQ. 0 ) GO TO 20
        DO 10 DIR=1,4
        IF(DIR.EQ.ODIR) GO TO 10
        IF( IAND(EXIT(Y,X,L),OUT(DIR)) .EQ. 0 ) GO TO 10
        ADD = MOVE(ODIR,DIR)
        MAT(Y,X,L) = IOR(MAT(Y,X,L),ADD)
   10   CONTINUE
   20   CONTINUE
        IF(EXIT(Y,X,L).LT.16) CALL MAZOUT(SET(MAT(Y,X,L)),1,1,Y,X,1,1,0)
        IF(IAND(EXIT(Y,X,L),16).NE.0) CALL MAZOUT('O',1,1,Y,X,1,1,1)
        IF(IAND(EXIT(Y,X,L),32).NE.0) CALL MAZOUT('O',1,1,Y,X,1,1,0)
        GO TO 40
//
//      DEAD END
//
   30   CALL MAZOUT(DEAD,1,1,Y,X,0,0,0)
   40   CONTINUE
//
//      SUCCESS - END FOUND
//
        CALL MAZOUT(' ',1,1,24,1,0,0,0)
        WRITE(6,50)
   50   FORMAT('  PRESS RETURN TO CONTINUE OR FINISH')
        READ(5,60) NC,INPUT
   60   FORMAT(Q,A)
   70   CONTINUE
        RETURN
        END

And the output shows how the tokens are consumed:

--(end of buffer or a NUL)
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZE -  USES A VT100 TO WANDER AROUND.
")
--accepting rule at line 86 ("//                THE VT100 MUST HAVE ADVANCED VIDEO OPTION.
")
--accepting rule at line 86 ("//                ANSI VT100 ESCAPE SEQUENCES ARE USED.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        WRITTEN BY DON MCLEAN
")
--accepting rule at line 86 ("//        OF THE MACNEAL-SCHWENDLER CORP.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        THE PURPOSE OF THIS PROGRAM WAS TO
")
--accepting rule at line 86 ("//                1. LEARN SOMETHING ABOUT THE VT100 GRAPHICS.
")
--accepting rule at line 86 ("//                2. KEEP MY KIDS BUSY ON WEEKENDS. WHILE I TRIED
")
--accepting rule at line 86 ("//                   TO GET SOMETHING ELSE DONE.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        USE OF THIS PROGRAM FOR ANY PURPOSE OTHER THAN FUN
")
--accepting rule at line 86 ("//        IS PROHIBITED.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 73 ("IMPLICIT")
--accepting rule at line 91 (" ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("4")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("A")
--accepting rule at line 36 ("-")
--accepting rule at line 87 ("Z")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZE DIMENSIONS
")
--accepting rule at line 86 ("//        HMAX AND WMAX SHOULD NOT BE LARGER THAN 22 AND 80 RESP.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 77 ("PARAMETER")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("22")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("80")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DMAX")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 64 ("DIMENSION")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        DIMENSION IS HMAX*WMAX*DMAX
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 38 ("*")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 38 ("*")
--accepting rule at line 87 ("DMAX")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 38 ("*")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 38 ("*")
--accepting rule at line 87 ("DMAX")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DMAX")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CLEAR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 59 ("CHARACTER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("200")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 61 ("COMMON")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 87 ("MAZECM")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CLEAR IS A VT100 RESET
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CLEAR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'c'")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        START - SEE IF AN OLD GAME IS TO BE USED.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' WELCOME TO MAZE'")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("20")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("30")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' ARE YOU GOING TO PLAY A SAVED GAME? '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Q")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("A")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INDEX")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("NC")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'Y'")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("120")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SAVE")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        INPUT DIMENSION OF MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("60")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("60")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' PLEASE INPUT HEIGHT OF MAZE - DEFAULT = ',I2,' '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("70")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ERR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("50")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("70")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("BNI2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("HMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("80")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("90")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("90")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' PLEASE INPUT WIDTH  OF MAZE - DEFAULT = ',I2,' '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("70")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ERR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("80")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("WMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("100")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("110")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("110")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' PLEASE INPUT DEPTH  OF MAZE - DEFAULT =  1 '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("70")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ERR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("100")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 50 (".LE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("DMAX")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DMAX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        GENERATE MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZGEN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("180")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        READ IN OLD MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("120")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("130")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("130")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' INPUT SAVED FILE NAME '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 76 ("OPEN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NAME")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("NC")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 40 ("=")
--accepting rule at line 88 ("'OLD',ERR=140,FORM='UNFORMATTED'")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("READONLY")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("160")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("140")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("150")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("150")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' SAVE FILE NOT FOUND'")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("20")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("160")
--accepting rule at line 91 ("   ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 60 ("CLOSE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("170")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("170")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("' DO YOU WANT THE PATHS RESTORED? '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INDEX")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("NC")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'Y'")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SAVE")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//        SPECIAL CASE TO PRINT ALL PATHS
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INDEX")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("NC")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'YES SOLUTIONS'")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("240")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZE DESCRIPTION
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("180")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("190")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("190")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'0',' YOUR MAZE HAS A HEIGHT OF',I5,/,'             AND A WIDTH OF',I5,/,'            WITH A DEPTH OF',I5,//,'  THE DIRECTION COMMANDS FOR MAZE ARE SINGLE LETTERS',/,'    N(ORTH), U(P),    OR 8 IS UP',/,'    E(AST) , R(IGHT), OR 6 IS RIGHT',/,'    S(OUTH), D(OWN),  OR 2 IS DOWN',/,'    W(EST) , L(EFT),  OR 4 IS LEFT',/,'    I(N)   ,          OR 9 IS IN TO SCREEN',/,'    O(UT)  ,          OR 7 IS OUT OF SCREEN',/,'  OR YOU CAN USE THE ARROW KEYS FOR DIRECTIONS',/,'  THE COMMAND H(OME)    RETURNS YOUR POSITION TO "S" OR "O"',/,'  THE COMMAND Q(UIT)    ENDS THE GAME',/,'  THE COMMAND B(ELL)    MAKES THE TERMINAL BEEP (DEFAULT)',/,'  THE COMMAND M(UTE)    TURNS OFF TERMINAL BEEPING',/,'  THE COMMAND C(URRENT) PRINTS THE CURRENT LEVEL',/,'  AFTER A Q(UIT) COMMAND YOU GET A CHANCE TO SAVE THE GAME',/,'  YOU CAN MOVE ALONG BORDERS',//,'  PRESS RETURN TO START'")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("6")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'NOBELL'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OFFBEL")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        EXECUTE THE MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SAVE")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("210")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("200")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("200")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("210")
--accepting rule at line 91 ("   ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZRUN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("MAT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SAVE THE MAZE ON REQUEST
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("220")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("220")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' DO YOU WANT TO SAVE THIS MAZE? '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INDEX")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("NC")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'Y'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("260")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("230")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("230")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' PLEASE INPUT FILE NAME '")
--accepting rule at line 39 (",")
--accepting rule at line 43 ("$")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 76 ("OPEN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NAME")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("NC")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 40 ("=")
--accepting rule at line 88 ("'NEW',FORM='UNFORMATTED'")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NTERMS")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 60 ("CLOSE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("UNIT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("7")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("260")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        PRINT THE SOLUTION TO A MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("240")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("250")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("250")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'0',' YOUR MAZE HAS A HEIGHT OF',I5,/,'             AND A WIDTH OF',I5,/,'            WITH A DEPTH OF',I5,//,'  PRESS RETURN TO START'")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("40")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        PRINT MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZSOL")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("MAT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CLEAR SCREEN AND WAIT 2 SECONDS
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("260")
--accepting rule at line 91 ("   ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("CLEAR")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("2")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("24")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$BINTIM")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'0 ::02.00'")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$SCHDWK")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$HIBER")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 81 ("STOP")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'BYE FROM MAZE'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 67 ("END")
--accepting rule at line 34 ("
")
--accepting rule at line 91 (" ")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 82 ("SUBROUTINE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZGEN")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZGEN CREATES A MAZE IN EXIT
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZE IS CREATED BY GOING FROM A START LOCATION IN A
")
--accepting rule at line 86 ("//        RANDOM WALK
")
--accepting rule at line 86 ("//        SQUARES MAY ONLY BE ENTERED ONCE BUT CAN HAVE MULTIPLE EXITS
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MOVEMENT CONVENTION IS
")
--accepting rule at line 86 ("//                1 - SOUTH OR DOWN
")
--accepting rule at line 86 ("//                2 - EAST  OR RIGHT
")
--accepting rule at line 86 ("//                4 - NORTH OR UP
")
--accepting rule at line 86 ("//                8 - WEST  OR LEFT
")
--accepting rule at line 86 ("//               16 - IN  A LEVEL
")
--accepting rule at line 86 ("//               32 - OUT A LEVEL
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 73 ("IMPLICIT")
--accepting rule at line 91 (" ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("4")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("A")
--accepting rule at line 36 ("-")
--accepting rule at line 87 ("Z")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 64 ("DIMENSION")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IN")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 79 ("REAL")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SEED")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 61 ("COMMON")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 87 ("MAZECM")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IN")
--accepting rule at line 91 ("   ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("8")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 91 ("  ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("8")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        INITIALIZE AND PICK START AND END POSITIONS
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SEED")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("FOR$SECNDS")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("H")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("W")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("D")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NENTER")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LMAX")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("H")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("W")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NMAX")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LMAX")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("D")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("D")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("J")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("W")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("H")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("H")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("W")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("20")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 91 ("   ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("H")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 91 ("   ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("W")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 91 ("   ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("D")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("20")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SY")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SX")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        START FILLING IN MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SY")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SX")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("L")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//        DO NOT GO BACK ON YOURSELF
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        TEND TO MAKE LONGER LINES WITH NLOOPS
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NLOOPS")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NCOUNT")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("NY")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NX")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NY")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("1")
--accepting rule at line 44 (".OR.")
--accepting rule at line 87 ("NY")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("H")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NX")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("1")
--accepting rule at line 44 (".OR.")
--accepting rule at line 87 ("NX")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("W")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("80")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CHECK FOR DEAD END
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("TY")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("TX")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("TY")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("1")
--accepting rule at line 44 (".OR.")
--accepting rule at line 87 ("TY")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("H")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("TX")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("1")
--accepting rule at line 44 (".OR.")
--accepting rule at line 87 ("TX")
--accepting rule at line 49 (".GT.")
--accepting rule at line 87 ("W")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//        NOT DEAD END TRY AGAIN
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("TY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("TX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 47 (".NE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("60")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        DEAD END RETURN TO START UNLESS ALL DIRECTIONS ARE TAKEN
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("SY")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SX")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        ALL STARTS FROM THIS STARTING POSITION ARE TAKEN
")
--accepting rule at line 86 ("//        PICK A NEW STARTING POSITIONS UNTIL MAZE IS FULL
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("70")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("SY")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("H")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SX")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("W")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SY")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("SX")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SY")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 91 ("  ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("SX")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 91 ("  ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SY")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 ("     ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("SX")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("X")
--accepting rule at line 91 ("   ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        FILL IN A LAYER AT A TIME
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 87 ("LMAX")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SD")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SX")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SX")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("SD")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("32")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NENTER")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NENTER")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        DIRECTION TO GO FOUND
")
--accepting rule at line 86 ("//        SET POSITION AS HAVING BEEN ENTERED AND
")
--accepting rule at line 86 ("//        SET EXIT ARRAY TO DIRECTIONS INVOLVED
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("80")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 ("   ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NY")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NX")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("IN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NENTER")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NENTER")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LCOUNT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//        THE WAY OUT - ALL POINTS USED
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NENTER")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NMAX")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("90")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NY")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NX")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        ONLY ALLOW THE END LOCATION TO BE ENTERED ONCE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NCOUNT")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("NCOUNT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NCOUNT")
--accepting rule at line 48 (".LT.")
--accepting rule at line 87 ("NLOOPS")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("50")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        OUT
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("90")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 67 ("END")
--accepting rule at line 34 ("
")
--accepting rule at line 91 (" ")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 82 ("SUBROUTINE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STRING")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XOFF")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 86 ("//  OUTPUTS -STRING- OF LENGTH -L- BYTES WITH BYTE NUMBER -XOFF-
")
--accepting rule at line 86 ("//  OF STRING LOCATED AT CURSER LOCATION -X-, -Y-.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  BOLD, REVERS, BLINK ARE THE MODES TO OUTPUT THIS STRING
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 91 ("  ")
--accepting rule at line 73 ("IMPLICIT")
--accepting rule at line 91 (" ")
--(end of buffer or a NUL)
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("A")
--accepting rule at line 36 ("-")
--accepting rule at line 87 ("Z")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 75 ("LOGICAL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ANY")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 59 ("CHARACTER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("300")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CC")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STRING")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("300")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CHAR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("10")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESCAPE")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CHAR")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESCAPE")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("C2")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("C3")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 68 ("EQUIVALENCE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("CC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NL")
--accepting rule at line 91 ("     ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XOFF")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NR")
--accepting rule at line 91 ("     ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NL")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ISTART")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NX")
--accepting rule at line 91 ("     ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NY")
--accepting rule at line 91 ("     ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  READJUST STRING LIMITS TO BE WITHIN SCREEN.  IF STRING IS
")
--accepting rule at line 86 ("//  COMPLETELY OUT OF SCREEN, THEN RETURN DOING NOTHING.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NY")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 44 (".OR.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NY")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("24")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NR")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 44 (".OR.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NL")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("132")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  STRING (ALL OR PART) LIES IN THE SCREEN AREA.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NL")
--accepting rule at line 91 (" ")
--accepting rule at line 51 (".GE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ISTART")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NL")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NL")
--accepting rule at line 91 ("     ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ISTART")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NR")
--accepting rule at line 91 (" ")
--accepting rule at line 50 (".LE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("132")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("20")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NR")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("132")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("132")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  OK AT THIS POINT WE ARE GOING TO OUTPUT STRING(ISTART) THRU
")
--accepting rule at line 86 ("//  STRING(ISTART+LENGTH-1) STARTING AT SCREEN LOCAT SCREEN ION (NL,NY)
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("// 20  LINEOUT(1) = ' '
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("20")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESCAPE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'['")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("COORD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NY")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ANY")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 55 (".FALSE.")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("J")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("3")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("N")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOD")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("COORD")
--accepting rule at line 42 ("/")
--accepting rule at line 90 ("10")
--accepting rule at line 52 ("**")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("3")
--accepting rule at line 36 ("-")
--accepting rule at line 87 ("J")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("N")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 (" ")
--accepting rule at line 56 (".NOT.")
--accepting rule at line 87 ("ANY")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ANY")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 54 (".TRUE.")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CHAR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("N")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 (" ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("COORD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NL")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 (" ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'H'")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  CHECK MODES AGAINST CURRENT MODES AND OUTPUT APPROPRIATE
")
--accepting rule at line 86 ("//  MODE INDICATORS.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C1")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("80")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C2")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("80")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C3")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("80")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C1")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C2")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C3")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("120")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  OK SIMPLY ADD OUTPUT MODES
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESCAPE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'['")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C1")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 91 ("   ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("50")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'1'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("C1")
--accepting rule at line 91 ("   ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 (" ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C2")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'7'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("C2")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("60")
--accepting rule at line 91 (" ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C3")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'5'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("C3")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("70")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'m'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("120")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//  SOME OR ALL OF CURRENT MODES ARE NOT DESIRED, THUS
")
--accepting rule at line 86 ("//  MUST DO A NORMAL FOLLOWED BY A RESET OF MODES DESIRED.
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("80")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESCAPE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'['")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("3")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'0'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("90")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'1'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("90")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C1")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BOLD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("100")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'7'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("100")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C2")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("REVERS")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("110")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'5'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("';'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("110")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("C3")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BLINK")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'m'")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 86 ("//  OUTPUT THE STRING WITH ITS LEADER
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("120")
--accepting rule at line 91 (" ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("130")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STRING")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ISTART")
--accepting rule at line 41 ("+")
--accepting rule at line 87 ("I")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("130")
--accepting rule at line 91 (" ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LENGTH")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 86 ("//  BACK UP CURSER ONE LINE IF AT LINE 24
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NY")
--accepting rule at line 91 (" ")
--accepting rule at line 47 (".NE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("24")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("140")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESCAPE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LINEOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'M'")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 86 ("//  NOW READY TO OUTPUT THE STRING.
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("140")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("RC")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LIB$PUT_OUTPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CC")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 87 ("IOUT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 67 ("END")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 70 ("FUNCTION")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SEED")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("J")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 86 ("//  RETURNS A RANDOM NUMBER IN THE RANGE OF I THRU J.
")
--accepting rule at line 86 ("//  SEED IS UPDATED AND THUS A VARIABLE MUST BE SENT.
")
--accepting rule at line 86 ("//*****
")
--accepting rule at line 91 ("  ")
--accepting rule at line 79 ("REAL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MTH$RANDOM")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("FN")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("J")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("IRAN")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IFIX")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("FN")
--accepting rule at line 91 (" ")
--accepting rule at line 38 ("*")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MTH$RANDOM")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SEED")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 67 ("END")
--accepting rule at line 34 ("
")
--accepting rule at line 91 (" ")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 82 ("SUBROUTINE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZRUN")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("MAT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZRUN USES THE EXIT ARRAY TO CONTROL MAZE MOVEMENT
")
--accepting rule at line 86 ("//                        MAT  ARRAY CONTAINS WHERE YOU HAVE BEEN
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 73 ("IMPLICIT")
--accepting rule at line 91 (" ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("4")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("A")
--accepting rule at line 36 ("-")
--accepting rule at line 87 ("Z")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOVE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 64 ("DIMENSION")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("START")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("28")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("BELL")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEAD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("LR132")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("10")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SET")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SCROL")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("8")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 59 ("CHARACTER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("200")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 59 ("CHARACTER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("10")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NAME")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 59 ("CHARACTER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("6")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("PORT")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 61 ("COMMON")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 87 ("MAZECM")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 91 ("  ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("8")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("16")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("32")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BELL")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("7")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        ESCAPE SEQUENCES TO
")
--accepting rule at line 86 ("//        ANSI MODE, ERASE SCREEN, ATTRIBUTES OFF, SCREEN NORMAL,
")
--accepting rule at line 86 ("//        WRAP OFF, 80 COL., AND SPECIAL GRAPHICS
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("START")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'<',27,'[','2','J',27,'[','0','m',27,'[','?','5','l',27,'[','?','7','l',  27,'[','?','3','l',27,'(','0'")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        GRAPHICS CHARACTERS TO USE FOR DRAWING LINES
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SET")
--accepting rule at line 42 ("/")
--accepting rule at line 88 ("' ', ' ', 'l', ' ', 'k', 'q', 'w', ' ','x', 'm', 't', 'j', 'u', 'v', 'n'")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("97")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        ESCAPE SEQUENCE TO SET 132 CHARACTER LINE MODE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LR132")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'[','?','3','h' , 27,'[','?','5','h'")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SET SCROLLING REGION TO LAST TWO LINES (23-24)
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SCROL")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'[','2','3',';','2','4','r'")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEAD")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("97")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOVE")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("9")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("3")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("3")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("12")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("9")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("12")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("6")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SET UP FOR QIO FROM TERMINAL
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$TRNLOG")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'SYS$INPUT'")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NAME")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("PORT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NAME")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("5")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$ASSIGN")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("PORT")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CHAN")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("49")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("NOECHO")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("64")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("CVLOW")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("256")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CLEAR SCREEN AND SHOW START AND END OF MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("START")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("28")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("80")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("LR132")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SCROL")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("8")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("23")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LOOP")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SOVER")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        BORDER
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("L")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("20")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("START")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("3")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' '")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 91 ("     ")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' '")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("1")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("I")
--accepting rule at line 47 (".NE.")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("J")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("2")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' '")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 91 ("     ")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SHOW CURRENT STATUS OF MAZE SOLUTION
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("J")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IAND")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'O'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("50")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("0")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SET")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'~'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("64")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SET")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("15")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("32")
--accepting rule at line 37 (")")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'O'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("31")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("64")
--accepting rule at line 37 (")")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'O'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("LOOP")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'O'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'E'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'S'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("HOMEH")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("HOMEW")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("60")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("DEADE")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        READ INPUT AND MOVE AS REQUESTED
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ESC")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("OPT")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NOECHO")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("CVLOW")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("70")
--accepting rule at line 91 ("   ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' '")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("24")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$QIOW")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("%VAL")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("CHAN")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("%VAL")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("OPT")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("%VAL")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("%LOC")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("%VAL")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STATUS")
--accepting rule at line 91 (" ")
--accepting rule at line 47 (".NE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("80")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Q")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("A")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ESC")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("140")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ICHAR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("130")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'Q'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'B'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("90")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'M'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("100")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'C'")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("110")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 88 ("'H'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("160")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("HOMEH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("HOMEW")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SOVER")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("220")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("90")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("100")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("110")
--accepting rule at line 91 ("   ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("120")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("120")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("' CURRENT LEVEL IS '")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("I2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("130")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ESC")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("140")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'['")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("170")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("150")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("SOVER")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HOMEH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("HOMEW")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("60")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        FIND DIRECTION TO GO
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("160")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ICHAR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("27")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("170")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'S'.OR.INPUT(1:1).EQ.'D'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'E'.OR.INPUT(1:1).EQ.'R'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'N'.OR.INPUT(1:1).EQ.'U'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("3")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'W'.OR.INPUT(1:1).EQ.'L'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'2'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'6'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'8'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("3")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'4'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'I'.OR.INPUT(1:1).EQ.'9'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("5")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'O'.OR.INPUT(1:1).EQ.'7'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("6")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("180")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CHECK ARROW KEYS ( DID NOT HAVE TIME TO MAKE THIS WORK )
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("170")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'A'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("3")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'B'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'C'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("2")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 53 (":")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 88 ("'D'")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ESC")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("180")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("200")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        COMMAND NOT RECOGNIZED
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("190")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("190")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' TRY AGAIN '")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SEE IF DIRECTION IS LEGAL
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("200")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IAND")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 47 (".NE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("210")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 91 (" ")
--accepting rule at line 47 (".NE.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BELL")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("24")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MOVE KEEP MOVEMENT ARRAY MAT UP TO DATE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("210")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("230")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DEADE")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("230")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("DIR")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("5")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOVE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("220")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ADD")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--(end of buffer or a NUL)
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ADD")
--accepting rule at line 47 (".NE.")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ADD")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("0")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SET")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'~'")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("230")
--accepting rule at line 91 ("   ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SOVER")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("150")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("5")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("240")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CHANGE LEVELS
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("5")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 41 ("+")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 90 ("6")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("LOOP")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LOOP")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("20")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("240")
--accepting rule at line 91 ("   ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 91 (" ")
--accepting rule at line 41 ("+")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'{'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("DEADE")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("270")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CHECK FOR DEAD END
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("250")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("6")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("260")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("250")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        DEAD END
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("260")
--accepting rule at line 91 ("   ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DEAD")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("64")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("DEADE")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("270")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SUCCESS - END FOUND
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("290")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("I")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("6")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("J")
--accepting rule at line 40 ("=")
--accepting rule at line 87 ("MOD")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("I")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'E'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' '")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("24")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("J")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("280")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("280")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' SUCCESS SUCCESS SUCCESS'")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$BINTIM")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'0 ::00.50'")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$SCHDWK")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 91 (" ")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SYS$HIBER")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 90 ("290")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 67 ("END")
--accepting rule at line 34 ("
")
--accepting rule at line 91 (" ")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 82 ("SUBROUTINE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZSOL")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("MAT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        MAZSOL SHOWS ALL POSSIABLE PATHS IN MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 73 ("IMPLICIT")
--accepting rule at line 91 (" ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("4")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("A")
--accepting rule at line 36 ("-")
--accepting rule at line 87 ("Z")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 74 ("INTEGER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("2")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 91 (" ")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOVE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 64 ("DIMENSION")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("4")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SLEEP")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("2")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("START")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("28")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("BELL")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEAD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("LR132")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("10")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SET")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 57 ("BYTE")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SCROL")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("8")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 59 ("CHARACTER")
--accepting rule at line 38 ("*")
--accepting rule at line 90 ("200")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 61 ("COMMON")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 87 ("MAZECM")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("NOBELL")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("XDIR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("YDIR")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 36 ("-")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 91 ("  ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("2")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("4")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("8")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("BELL")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("7")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("START")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'<',27,'[','2','J',27,'[','0','m',27,'[','?','5','l',27,'[','?','7','l',  27,'[','?','3','l',27,'(','0'")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SET")
--accepting rule at line 42 ("/")
--accepting rule at line 88 ("' ', ' ', 'l', ' ', 'k', 'q', 'w', ' ','x', 'm', 't', 'j', 'u', 'v', 'n'")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("97")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("LR132")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'[','?','3','h' , 27,'[','?','5','h'")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("SCROL")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("27")
--accepting rule at line 39 (",")
--accepting rule at line 88 ("'[','2','3',';','2','4','r'")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DEAD")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("97")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 63 ("DATA")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOVE")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("3")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("9")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("3")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("9")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("12")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("12")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 42 ("/")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CLEAR SCREEN AND SHOW START AND END OF MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("START")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("28")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 49 (".GT.")
--accepting rule at line 90 ("80")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("LR132")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("10")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SCROL")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("8")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("23")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        BORDER
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("70")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("L")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DEPTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'E'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 88 ("'S'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        LOOP OVER MAZE
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("X")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("WIDTH")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("Y")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("HEIGHT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTH")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTW")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("STARTD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDH")
--accepting rule at line 91 ("  ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("X")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDW")
--accepting rule at line 91 ("  ")
--accepting rule at line 45 (".AND.")
--accepting rule at line 87 ("L")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ENDD")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        CHECK FOR DEAD END
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("20")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("30")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IAND")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("20")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 65 ("DO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("DIR")
--accepting rule at line 40 ("=")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("4")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IAND")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("OUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 46 (".EQ.")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("0")
--accepting rule at line 91 (" ")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("10")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("ADD")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MOVE")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("ODIR")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("DIR")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 40 ("=")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("IOR")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("ADD")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("10")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("20")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 48 (".LT.")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("SET")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("MAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IAND")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("16")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'O'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 72 ("IF")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("IAND")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("EXIT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("L")
--accepting rule at line 37 (")")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("32")
--accepting rule at line 37 (")")
--accepting rule at line 47 (".NE.")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'O'")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 71 ("GO")
--accepting rule at line 91 (" ")
--accepting rule at line 83 ("TO")
--accepting rule at line 91 (" ")
--accepting rule at line 90 ("40")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        DEAD END
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("30")
--accepting rule at line 91 ("   ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("DEAD")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("Y")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("X")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("40")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 86 ("//
")
--accepting rule at line 86 ("//        SUCCESS - END FOUND
")
--accepting rule at line 86 ("//
")
--accepting rule at line 91 ("  ")
--accepting rule at line 58 ("CALL")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("MAZOUT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("' '")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("24")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("1")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("0")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 84 ("WRITE")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("6")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("50")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("50")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 88 ("'  PRESS RETURN TO CONTINUE OR FINISH'")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 78 ("READ")
--accepting rule at line 35 ("(")
--accepting rule at line 90 ("5")
--accepting rule at line 39 (",")
--accepting rule at line 90 ("60")
--accepting rule at line 37 (")")
--accepting rule at line 91 (" ")
--accepting rule at line 87 ("NC")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("INPUT")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("60")
--accepting rule at line 91 ("   ")
--accepting rule at line 69 ("FORMAT")
--accepting rule at line 35 ("(")
--accepting rule at line 87 ("Q")
--accepting rule at line 39 (",")
--accepting rule at line 87 ("A")
--accepting rule at line 37 (")")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("   ")
--accepting rule at line 90 ("70")
--accepting rule at line 91 ("   ")
--accepting rule at line 62 ("CONTINUE")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 80 ("RETURN")
--accepting rule at line 34 ("
")
--accepting rule at line 91 ("  ")
--accepting rule at line 67 ("END")
--accepting rule at line 34 ("
")
--(end of buffer or a NUL)
--EOF (start condition 1)

The "--accepting rule at line ##" is referring to the lines in the Fortran.l file:

/* -*- c -*- This FLex file was machine-generated by the BNF converter */
%option noyywrap
%{
#define yylval Fortranlval
#define YY_BUFFER_APPEND Fortran_BUFFER_APPEND
#define YY_BUFFER_RESET Fortran_BUFFER_RESET
#define initialize_lexer Fortran_initialize_lexer
#include <string.h>
#include "Parser.h"
#define YY_BUFFER_LENGTH 4096
extern int yy_mylinenumber ;
char YY_PARSED_STRING[YY_BUFFER_LENGTH];
void YY_BUFFER_APPEND(char *s)
{
  strcat(YY_PARSED_STRING, s); //Do something better here!
}
void YY_BUFFER_RESET(void)
{
  int x;
  for(x = 0; x < YY_BUFFER_LENGTH; x++)
    YY_PARSED_STRING[x] = 0;
}

%}

LETTER [a-zA-Z]
CAPITAL [A-Z]
SMALL [a-z]
DIGIT [0-9]
IDENT [a-zA-Z0-9'_]
%START YYINITIAL COMMENT CHAR CHARESC CHAREND STRING ESCAPED
%%

"\n"       { ++yy_mylinenumber; return _SYMB_0; };
<YYINITIAL>"("           return _SYMB_1;
<YYINITIAL>"-"           return _SYMB_2;
<YYINITIAL>")"           return _SYMB_3;
<YYINITIAL>"*"           return _SYMB_4;
<YYINITIAL>","           return _SYMB_5;
<YYINITIAL>"="           return _SYMB_6;
<YYINITIAL>"+"           return _SYMB_7;
<YYINITIAL>"/"           return _SYMB_8;
<YYINITIAL>"$"           return _SYMB_9;
<YYINITIAL>".OR."        return _SYMB_10;
<YYINITIAL>".AND."               return _SYMB_11;
<YYINITIAL>".EQ."        return _SYMB_12;
<YYINITIAL>".NE."        return _SYMB_13;
<YYINITIAL>".LT."        return _SYMB_14;
<YYINITIAL>".GT."        return _SYMB_15;
<YYINITIAL>".LE."        return _SYMB_16;
<YYINITIAL>".GE."        return _SYMB_17;
<YYINITIAL>"**"          return _SYMB_18;
<YYINITIAL>":"           return _SYMB_19;
<YYINITIAL>".TRUE."              return _SYMB_20;
<YYINITIAL>".FALSE."             return _SYMB_21;
<YYINITIAL>".NOT."               return _SYMB_22;
<YYINITIAL>"BYTE"        return _SYMB_23;
<YYINITIAL>"CALL"        return _SYMB_24;
<YYINITIAL>"CHARACTER"           return _SYMB_25;
<YYINITIAL>"CLOSE"               return _SYMB_26;
<YYINITIAL>"COMMON"              return _SYMB_27;
<YYINITIAL>"CONTINUE"            return _SYMB_28;
<YYINITIAL>"DATA"        return _SYMB_29;
<YYINITIAL>"DIMENSION"           return _SYMB_30;
<YYINITIAL>"DO"          return _SYMB_31;
<YYINITIAL>"DOUBLE"              return _SYMB_32;
<YYINITIAL>"END"         return _SYMB_33;
<YYINITIAL>"EQUIVALENCE"         return _SYMB_34;
<YYINITIAL>"FORMAT"              return _SYMB_35;
<YYINITIAL>"FUNCTION"            return _SYMB_36;
<YYINITIAL>"GO"          return _SYMB_37;
<YYINITIAL>"IF"          return _SYMB_38;
<YYINITIAL>"IMPLICIT"            return _SYMB_39;
<YYINITIAL>"INTEGER"             return _SYMB_40;
<YYINITIAL>"LOGICAL"             return _SYMB_41;
<YYINITIAL>"OPEN"        return _SYMB_42;
<YYINITIAL>"PARAMETER"           return _SYMB_43;
<YYINITIAL>"READ"        return _SYMB_44;
<YYINITIAL>"REAL"        return _SYMB_45;
<YYINITIAL>"RETURN"              return _SYMB_46;
<YYINITIAL>"STOP"        return _SYMB_47;
<YYINITIAL>"SUBROUTINE"          return _SYMB_48;
<YYINITIAL>"TO"          return _SYMB_49;
<YYINITIAL>"WRITE"               return _SYMB_50;

<YYINITIAL>"//"[^\n]*\n     ++yy_mylinenumber;   /* BNFC single-line comment */;
<YYINITIAL>\%*{CAPITAL}({CAPITAL}|{DIGIT}|\$|\_)*        yylval.string_ = strdup(yytext); return _SYMB_51;
<YYINITIAL>'.+'          yylval.string_ = strdup(yytext); return _SYMB_52;
<YYINITIAL>{DIGIT}+\.{DIGIT}+((e|E)\-?{DIGIT}+)?(f|F)|{DIGIT}+(e|E)\-?{DIGIT}+(f|F)              yylval.string_ = strdup(yytext); return _SYMB_53;
<YYINITIAL>{DIGIT}+              yylval.int_ = atoi(yytext); return _INTEGER_;
<YYINITIAL>[ \t\r]+              /* ignore white space. */;
<YYINITIAL>.             return _ERROR_;
%%
void initialize_lexer(FILE *inp) { yyrestart(inp); BEGIN YYINITIAL; }

The Front-End (Part 1)

The front-end to my Fortran 2 C translator turned out a lot easier to create with BNFC than I was anticipating. I was expecting a lot more difficulties than actually happened. There are a few things I should mention as potential problems with BNFC that should be watched for.

First, BNFC is supposedly designed for well formed languages which I gathered from the documentation means that there should be no position dependent stuff like is typical in Fortran:

  1. Comments that start with a 'C' in the first column
  2. Continuation lines, either with a tab or 5 spaces then a continuation mark at the front of the line.
  3. Order of the Flex token matchings.

The first two were easily dispatched with a simple state based machine (source):

/*
 * Program to do some preprocessing on a Fortran file to deal with:
 *     "\nC" ==> "\n//"                   -- Comments, and
 *     "[ \t]*\n     [0-9+][ \t]*" ==> "" -- Continuation lines
 *     "[ \t]*\n\t[0-9+][ \t]*"    ==> "" -- Continuation lines
 *
 */


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
   
#define BUF_SZ 1000

#define DEBUG false

char buf[BUF_SZ];
int bufidx=-1;
int state=0;

int CntComments=0;
int CntContinue=0;

void save(int chr){
    buf[++bufidx]=(char)chr;

    if(bufidx==BUF_SZ){
        fprintf(stderr,"ERROR: Buffer Overflow\n");
        exit(1);
    }
}

void unsave(){
    buf[bufidx--]=0;

    if(bufidx<-1){
        fprintf(stderr,"ERROR: Buffer Underflow\n");
        exit(2);
    }
}

void reset(){
    memset(buf,0,BUF_SZ);
    bufidx=-1;
    state=0;
}

void purge(){
    printf("%s",buf);
    reset();
}


void asaprintf( const char * format, ... )
{
    va_list args;
    va_start (args, format);
    if(DEBUG) vprintf (format, args);
    va_end (args);
}

void newstate(int ns){
    state=ns;
    //asaprintf("<%d>",state);
}


int main(int argc,char* argv[]){

    int chr=0;
    int idx=0;

    reset();

    state=2; // Start in state 2 because first line in file may be a comment

    while((chr=getchar())!=EOF){
        asaprintf("%6d) state=%d chr='%c'(0x%02x)\n",idx++,state,chr,chr);
        save(chr);
        if(chr==0){
            reset();
        }else{
            switch(state){
                case 0:
                    switch(chr){
                        case ' ': break;
                        case '\t': break;
                        case '\n': newstate(2); break;
                        default: purge(); break;
                    };
                    break;

                case 2:
                    switch(chr){
                        case ' ': newstate(6); break;
                        case 'C': case 'c':
                            unsave(); purge(); printf("//"); CntComments++; break;
                        case '\t': newstate(10); break;
                        default: purge(); break;
                    };
                    break;
           
                case 6:
                    switch(chr){
                        case ' ': newstate(7); break;
                        default: purge(); break;
                    };
                    break;
           
                case 7:
                    switch(chr){
                        case ' ': newstate(8); break;
                        default: purge(); break;
                    };
                    break;
           
                case 8:
                    switch(chr){
                        case ' ': newstate(9); break;
                        default: purge(); break;
                    };
                    break;
           
                case 9:
                    switch(chr){
                        case ' ': newstate(10); break;
                        default: purge(); break;
                    };
                    break;
           
                case 10:
                    switch(chr){
                        case '0':
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                        case '+':
                            newstate(11); break;
                        default: purge(); break;
                    };
                    break;
           
                case 11:
                    switch(chr){
                        case ' ': break;
                        case '\t': break;
                        default: reset(); putchar(chr); CntContinue++; break;
                    };
                    break;
           
            }
        }
    }
    printf("\n");

    fprintf(stderr, "Counts:\n");
    fprintf(stderr, "  Comments:      %5d\n",CntComments);
    fprintf(stderr, "  Continuations: %5d\n",CntContinue);
    return(0);
}

Dealing with the lack of access to the Fortran.l (Flex lexical analysor for the program) turned out to not as much of a problem as I had anticipated. Mostly I just adjusted to having less control over the lexor and made a little bash script to modify the lexor to use '\n' to trigger a End-of-Statement token (others suggest using a pre-processor to add some sort of line termination token at the end of each line of the source code to be translated). The other modification was to remove '\f' '\n' as white space and to fixup the broken Flex code (resulting from my inclusion of "\n" as the statement ending token in my BNFC file).

These fixups and other code to convert the LBNF (Labelled BNF) grammar, compile it and run a test program against it is as follows (source):

#!/bin/bash

#
# Script file to translate a BNFC/LBNF grammar, compile it and run the resultant
# program against a Fortran file to be translated.
#
# (Script created by alan on 21/Apr/2019 18:35:42)
#
pgm=go
tmp=/tmp/${pgm}_
bin=${HOME}/bin
log=${bin}/data/${pgm}.$(uname -n).log

pgm=${1:-Maze.for}

# Remove program binary to make sure it doesn't run if we have a problem.
rm TestFortran 2>/dev/null

# Compile the LBNF grammar in Fortran.cf into a working front-end for translator.
bnfc -m -c Fortran.cf

# Touch the lex/yacc lexical analyser and parser source files to make sure they are compiled.
touch *.y *.l 2>/dev/null

# ----
# Modify the Makefile to add debug flags so output is more verbose.
cp Makefile Makefile.old
cat Makefile \
    | sed "s/-PFortran$/-PFortran --debug/g" \
    | sed "s/-pFortran$/-pFortran --debug -r all -g/g" \
    > Makefile.new
cp Makefile.new Makefile

# Show user the difference in the Makefiles
echo "--- Makefile ---"
diff Makefile Makefile.old | sed "s/^/    /g"

# ----
# Modify the lexical analyser to make \n a statement end character (deficit in BNFC).

# The l1 file contains:
#   "\\n"       { ++yy_mylinenumber; return _SYMB_0; };
# This will trap any newlines, increment the line-number and return it as a token.
l1=$(cat l1 )
#echo "l1='$l1'"

# Do the other modifications to Fortran.l to fix the above problem.
cp Fortran.l Fortran.l.old
cat Fortran.l \
    | grep -v "^<YYINITIAL>"$" \
   | grep -v "
^..\ ++yy_mylinenumber.;$" \
   | sed "
s/^"[ \t]*return _SYMB_0;$/${l1}/g" \
    | sed "s/\\\n\\\f]/]+/g" \
    > Fortran.l.new
cp Fortran.l.new Fortran.l

# Show changes to user.
echo "--- Fortran.l ---"
diff Fortran.l Fortran.l.old | sed "s/^/    /g"

echo "--- End dofix ---"

# Make our test program (TestFortran)
make

echo "========================================="

# Use state machine program to correct two problem features of Fortran.
#   Fortran C-comments need to be changed to C-style line comments:
#     "\nC" ==> "\n//"                   -- Comments, and
#   Continuation lines need to be merged together.
#     "[ \t]*\n     [0-9+][ \t]*" ==> "" -- Continuation lines
#     "[ \t]*\n\t[0-9+][ \t]*"    ==> "" -- Continuation lines
#
./fixup <${pgm} >${tmp}for

# Run the complete program
./TestFortran <${tmp}for


#
# end of 'go' script file.
#

Mostly I studied the 'C' BNFC/LBNF grammar from the BNFC website and then created my own grammar.

Starting with the Name token (whos format is particular to to Fortran and more so Vax Fortran) and started to build my grammar from the Program definition.

The program definition is just a list of statements (either numbered or not). I'd run my 'go' script above. It would tell me the line in my Fortran source file where the error occurred and the last tokenizing rule (line number in the auto generated Fortran.l file) that was accepted.

From this I could determine which token was triggering the error and thus where my grammar was wrong. Finally I came up with the following LBNF grammar which seemed to lex/parse all my example Fortran programs without problem (source):

--
-- Fortran LBNF grammar (Fortran.cf) to recognize a Fortran 66/IV program.
--
-- Created by Alan Angold 2019-04-23
--


entrypoints Program, LblStm ;



-- Tokens ----------------------------------------------------------------------

position token Name ( '%' )* upper ( upper | digit | '$' | '_' )* ;

position token SQString '\'' ( char )+ '\'';


position token CFloat ((digit+ '.' digit+)(('e'|'E')('-')? digit+)?
                               ('f'|'F'))|((digit+ ('e'|'E')('-')? digit+)('f'|'F'));


-- Tokens ----------------------------------------------------------------------




Progr.  Program ::= [ LblStm ] ;


[].      [LblStm] ::= ;
(:).     [LblStm] ::= LblStm "\n" [LblStm];

SLabel.   LblStm ::= Labeled_stm ;
SSimple.  LblStm ::= Simple_stm ;
SNill.    LblStm ::= ;

SLabelOne.   Labeled_stm ::= Integer Simple_stm ;

-- Simple_stm ------------------------------------------------------------------
SImplicit. Simple_stm ::= "IMPLICIT" Type_Spec Type_Qual  "(" Name "-" Name ")" ;
QType.     Type_Qual ::= "*" Integer ;

-- Simple_stm ------------------------------------------------------------------
SParameter. Simple_stm ::= "PARAMETER" [NameValue];

(:[]).   [NameValue] ::= NameValue ;
(:).     [NameValue] ::= NameValue "," [NameValue];

NVPair.  NameValue ::= Name "=" Integer ;

-- Simple_stm ------------------------------------------------------------------
SDiment.  Simple_stm ::= "DIMENSION" [ NameDim ] ;

(:[]).   [NameDim] ::= NameDim ;
(:).     [NameDim] ::= NameDim "," [NameDim];

PNameDim. NameDim ::= Name "(" [DExp] ")" ;
PNameDim2. NameDim ::= Name ;

(:[]).   [DExp] ::= DExp ;
(:).     [DExp] ::= DExp "," [DExp];

EDplus.       DExp  ::= DExp "+" DExp1;
EDminus.      DExp  ::= DExp "-" DExp1;
EDtimes.      DExp1 ::= DExp1 "*" DExp2;
EDdiv.        DExp1 ::= DExp1 "/" DExp2;
_.            DExp  ::= DExp1 ;
_.            DExp1 ::= DExp2 ;
_.            DExp2 ::= "(" DExp ")" ;
EDInt.        DExp2 ::= Integer;
EDName.      DExp2 ::= Name;


-- Simple_stm ------------------------------------------------------------------
SDeclQual. Simple_stm ::= Type_Spec Type_Qual [NameDim] ;
SDecl.     Simple_stm ::= Type_Spec [NameDim] ;



-- Simple_stm ------------------------------------------------------------------
SData.   Simple_stm ::= "DATA" [DataSeg];

(:[]).   [DataSeg] ::= DataSeg ;
(:).     [DataSeg] ::= DataSeg "," [DataSeg];

PDSeg.   DataSeg ::= [Vars] "/" [DataVal] "/" ;

(:[]).   [Vars] ::= Vars ;
(:).     [Vars] ::= Vars "," [Vars];

PVars.   Vars ::= Name ;

(:[]).   [DataVal] ::= DataVal ;
(:).     [DataVal] ::= DataVal "," [DataVal];

PDValPls. DataVal ::= "+" DataValType ;
PDValNeg. DataVal ::= "-" DataValType ;
PDValNil. DataVal ::= DataValType ;

PDVInt.   DataValType ::= Integer ;
PDVFloat. DataValType ::= CFloat ;
PDVChar.  DataValType ::= SQString ;


-- Simple_stm ------------------------------------------------------------------
SCommon.  Simple_stm ::= "COMMON" "/" Name "/" [Name] ;

(:[]).   [Name] ::= Name ;
(:).     [Name] ::= Name "," [Name];


-- Simple_stm ------------------------------------------------------------------
SWrtEmp. Simple_stm ::= "WRITE" "(" [AssignName] ")" ;
SWrite.  Simple_stm ::= "WRITE" "(" [AssignName] ")" [NameOrArray] ;

SFormat. Simple_stm ::= "FORMAT" "(" [FmtSpecs] ")" ;

(:[]).   [FmtSpecs] ::= FmtSpecs ;
(:).     [FmtSpecs] ::= FmtSpecs "," [FmtSpecs];

FSString. FmtSpecs ::= SQString ;
FSName.   FmtSpecs ::= Name ;
FSINNL.   FmtSpecs ::= "$";
FSSlash.  FmtSpecs ::= "/";



-- Simple_stm ------------------------------------------------------------------
SRead.      Simple_stm ::= "READ" "(" [AssignName] ")" [NameOrArray] ;
SAsignRead. Simple_stm ::= "READ" "=" LExp;

(:[]).   [NameOrArray] ::= NameOrArray ;
(:).     [NameOrArray] ::= NameOrArray "," [NameOrArray];


PNALName. NameOrArray ::= Name ;
PNALArry. NameOrArray ::= "(" Name "(" [Name] ")" "," DoRangePart ")" ;


-- Simple_stm ------------------------------------------------------------------
SIf.    Simple_stm ::= "IF" "(" LExp ")" IfThenPart;

PIfGoto.    IfThenPart ::= "GO" "TO" Integer ;
PIfAsgn.    IfThenPart ::= Name "=" LExp;
PIFAsnArr.  IfThenPart ::= Name "(" [LExp] ")" "=" LExp ;
PIfRetn.    IfThenPart ::= "RETURN" ;
PIfCall.    IfThenPart ::= "CALL" Name "(" [SpecLExp] ")" ;
PIfCallNil. IfThenPart ::= "CALL" Name  ;

Elor.        LExp  ::= LExp ".OR." LExp2;
Eland.       LExp  ::= LExp ".AND." LExp2;
Eeq.         LExp2 ::= LExp2 ".EQ." LExp3;
Eneq.        LExp2 ::= LExp2 ".NE." LExp3;
Elthen.      LExp3 ::= LExp3 ".LT." LExp4;
Egrthen.     LExp3 ::= LExp3 ".GT." LExp4;
Ele.         LExp3 ::= LExp3 ".LE." LExp4;
Ege.         LExp3 ::= LExp3 ".GE." LExp4;
Eplus.       LExp4 ::= LExp4 "+" LExp5;
Eminus.      LExp4 ::= LExp4 "-" LExp5;
Etimes.      LExp5 ::= LExp5 "*" LExp6;
Ediv.        LExp5 ::= LExp5 "/" LExp6;
Epreop.      LExp6 ::= Unary_operator LExp7;
Epower.      LExp8 ::= LExp5 "**" LExp8;
Efunk.       LExp8 ::= LExp8 "(" ")";
Efunkpar.    LExp8 ::= LExp8 "(" [SpecLExp] ")";
Evar.        LExp9 ::= TIntVar RangePart ;
Estr.        LExp9 ::= SQString ;

ERangeNull. RangePart ::= ;
ERange.     RangePart ::= ":" TIntVar ;

ETInt.       TIntVar ::= Integer;
ETTrue.      TIntVar ::= ".TRUE.";
ETFalse.     TIntVar ::= ".FALSE.";
ETNameVar.   TIntVar ::= Name;
ETRead.      TIntVar ::= "READ";

(:[]).   [LExp] ::= LExp ;
(:).     [LExp] ::= LExp "," [LExp];

_. LExp   ::= LExp2 ;
_. LExp2  ::= LExp3 ;
_. LExp3  ::= LExp4 ;
_. LExp4  ::= LExp5 ;
_. LExp5  ::= LExp6 ;
_. LExp6  ::= LExp7 ;
_. LExp7  ::= LExp8 ;
_. LExp8  ::= LExp9 ;
_. LExp9  ::= LExp10 ;
_. LExp10 ::= LExp11 ;
_. LExp11 ::= "(" LExp ")" ;

OUnaryPlus.   Unary_operator ::= "+" ;
OUnaryMinus.  Unary_operator ::= "-" ;
OUnaryNot.    Unary_operator ::= ".NOT." ;


-- Simple_stm ------------------------------------------------------------------
SAssign.    Simple_stm ::= Name "=" LExp;
SAsnArr.    Simple_stm ::= Name "(" [LExp] ")" "=" LExp ;


-- Simple_stm ------------------------------------------------------------------
SFunCall.    Simple_stm ::= "CALL" Name "(" [SpecLExp] ")" ;
SFunCallNil. Simple_stm ::= "CALL" Name  ;

(:[]).   [SpecLExp] ::= SpecLExp ;
(:).     [SpecLExp] ::= SpecLExp "," [SpecLExp];

SpLExpNil. SpecLExp ::= ;
SpLExpNot. SpecLExp ::= LExp;



-- Simple_stm ------------------------------------------------------------------
SGoto.     Simple_stm ::= "GO" "TO" Integer ;


-- Simple_stm ------------------------------------------------------------------
SOpen.    Simple_stm ::= "OPEN" "(" [AssignName] ")" ;

(:[]).    [AssignName] ::= AssignName ;
(:).      [AssignName] ::= AssignName "," [AssignName];

PAsgnNm.  AssignName ::= Name ;
PAsgnInt. AssignName ::= Integer ;
PAssign.  AssignName ::= Name "=" LExp;

SClose.   Simple_stm ::= "CLOSE" "(" [AssignName] ")" ;

-- Simple_stm ------------------------------------------------------------------
SDo.      Simple_stm ::= "DO" Integer DoRangePart ;

PDoRange. DoRangePart ::= Name "=" LExp "," LExp ;


-- Simple_stm ------------------------------------------------------------------
SStop.    Simple_stm ::= "STOP" ;
SStopMsg. Simple_stm ::= "STOP" SQString ;


-- Simple_stm ------------------------------------------------------------------
SEnd.     Simple_stm ::= "END" ;


-- Simple_stm ------------------------------------------------------------------
SSubr.    Simple_stm ::= "SUBROUTINE" Name "(" [SpecLExp] ")" ;
SSubrNil. Simple_stm ::= "SUBROUTINE" Name  ;

SFunct.    Simple_stm ::= "FUNCTION" Name "(" [SpecLExp] ")" ;
SFunctNil. Simple_stm ::= "FUNCTION" Name  ;


-- Simple_stm ------------------------------------------------------------------
SContinue.  Simple_stm ::= "CONTINUE" ;


-- Simple_stm ------------------------------------------------------------------
SReturn.  Simple_stm ::= "RETURN" ;


-- Simple_stm ------------------------------------------------------------------
SEquiv.   Simple_stm ::= "EQUIVALENCE" "(" Name "," NameOrArrRef ")" ;

PNOAName. NameOrArrRef ::= Name ;
PNOAArr. NameOrArrRef ::= Name "(" [LExp] ")" ;


-- Simple_stm ------------------------------------------------------------------

TInt.    Type_Spec ::= "INTEGER" ;
TFloat.  Type_Spec ::= "REAL" ;
TDouble. Type_Spec ::= "DOUBLE" ;
TChar.   Type_Spec ::= "CHARACTER" ;
TByte.   Type_Spec ::= "BYTE" ;
TLogi.   Type_Spec ::= "LOGICAL" ;

comment "//" ;

The program seemed to successfully lex and parse all the Fortran-66 source code I had handy but the TestFortran program failed (seg fault) when it came to printing out the AST (showProgram(parse_tree) or printProgram(parse_tree) ). I suspect these are just due to some null pointer problems in the AST and once I figure out my own AST tree crawler I should be able to figure these out.


Fortran Translator Progress

After typing up my intro page for my idea of a Fortran2C translator and reading some of the documentation I mentioned I was chomping at the bit to try it out to see how far I could get. Well I've had some progress already!

Creating the front-end actually worked out easier than I was expecting. BNFC isn't perfect but, once you get used to it's quirks and adjust for it's shortcomings, it is a real boon to creating a language front-end. Mind you it still requires some fore-knowledge of the workings and use of Flex/Bison (or lex/yacc). What follows is my progress in the creation of a Fortran to C translator. I'll update this list as I get parts of the translator working:

Fortran 2 C Translator

I've had some success with a Basic 2 C translator in the past. In that project I used hand coded Flex and Bison but came at the project from a rather naive perspective. While the project worked and I produced working code from old Basic programs it bogged down when I tried to convert my parse tree into structured code and do some optimizations on it.

Recently I tripped across the BNFC (BNF Converter) which translates a BNF grammer to a lexical analyzer and parser with code to generate a parse tree. Thus I can now scrap my hobbled together lexor/parser and convert it to a much more uniform version. This should be much easier to keep up-to-date and should facilitate improvements such as structuring.

I need to read their book Implementing Programming Languages first. Well, actually, I just need to understand LBNF (Labelled BNF grammar) and its use in BNFC. On the BNFC website they give an example LBNF grammar for C (which I know quite well -- at least compared to Haskell). Hopefully that will detail how to deal with Fortran's position dependent code. This is going to take a while so stay tuned ...

Here's a snippet of code that I want to translate. This is the GALAXY.FOR file from the DECUS Galaxy project. This game is a multi-player game (somewhat of a rarity at the time) which was played on a mainframe computer (Dec-10) .

This file is actually in Ratfor. Ratfor is pre-processor for Fortran66 (and here) which adds (badly needed) structure to the Fortran source code:

C ASCII "0"
      PROGRAM PLAYER
C
C     MAY 1980  BILL CAEL AND BILL WOOD RECODED IN RATFOR
C     MAY 1980  BILL CAEL AND BILL WOOD ADDED DEFAULT SHIP AND DIRECTION
C     MAY 1980          BILL WOOD       ADDED ENERGY NETS
C     MAY 1980  BILL CAEL AND BILL WOOD RECODED OUTPUT
C     MAY 1980  BILL CAEL, BILL WOOD, AND BOB STODOLA
C                                       RECODED COMMAND ARG PROMPTING
C     NOV 1980  BILL WOOD               CONVERTED TO RUN ON VAX
C
C       July/August 1981        Stuart Renes, Western Electric Co.
C       Mixed Case messages, added sound effects
C       Improved Driver controls
C       ^C Intercept AST, Exit handler
C       Play periods (including weekend control)
C       VT100 advanced video features - renamed GALAXY V1.0
C       Lowered Refresh rates in half
C
C       Version 1.1     September 8th, 1981
C       Added purge of type-ahead when destroyed or at games end.
C
C       Version 1.2     September 10th, 1981
C       Added silent play option.
C
C       Version 1.3     September 17th, 1981
C       Added Shared Command Display and control.
C       More code cleanup.
C
C       Version 1.4     September 23rd, 1981
C       Tighten window in which users can beat the "SHARED" feature.
C
C       Version 1.5     September 27th, 1981
C       Fix bugs that creeped in from V1.4.
C
C       Version 1.6     October 2nd, 1981
C       Changed Initialization to force active players off.
C       Slight esthetic change at close of game period.
C       Describe previously un-documented features in HELP file.
C
     TEXT COMMON
      COMMON/TORPE/TLOCS(8, 10, 2), TDIR(8, 10), IT(8)
      COMMON/LEDFOR/ENERGY(8), SHIELD(8), XCORD(8), YCORD(8), TORPS(8),
     *HX, HY, HW, CDRAIN, NDRAIN, TDRAIN, SCAN(8), PHA(8), I1, I2, HYPER
     *(8), ISENT(8, 10), XPOD(8), YPOD(8), DPOD(8), IPOD(8), WPOD(8), XH
     *OM(8, 4), YHOM(8, 4), WHOM(8, 4), NHOM(8), TRBEAM(8), SCORE(8), CR
     *EW(8), DIR(8), WARP(8), LAUNCH(8), UNIV(100, 100), MESSAG(480), TH
     *RU, XSHIP(8), CLOAK(8), NET(8), BHOLE, EMPTY
      REAL LAUNCH, NDRAIN
      INTEGER SCAN, WHOM, CREW, HYPER, TORPS, TRBEAM
      LOGICAL*1THRU, XSHIP, CLOAK, NET
C NOTE: BHOLE AND EMPTY ARE THE CHARACTERS FOR THE BLACK HOLE
C       AND EMPTY SPACE AND ARE SET IN MTREKINI.
      BYTE UNIV, MESSAG, BHOLE, EMPTY
C     END COMMON
        common/local/shrflg(8)
        common/double/share(8),busy(8)
        logical*1 busy
        integer share,shrflg,day
        character*9 today
        character*80 header
        character*4 V
        data V /'V1.6'/
        common/signal/playtm
        integer timcnt
        data timcnt/4/
        logical*1 playtm,wizard,myplay,shpflg,yesshr
      LOGICAL*1OK, DONE, YES, WARN, REFRES, REFTOG
      LOGICAL QUIKUP,supflg
        common done
        common/silent/belflg
        logical*1 belflg
        character*19 paswrd,answer
        character*8 timbf
        byte pasbuf(19)
        data paswrd/'starship enterprise'/
      REAL SC(9), R(9)
      INTEGER DEFSHP, OLDSHP
      REAL DEFDIR, OLDDIR
      COMMON/DEFLTS/DEFSHP, DEFDIR, OLDDIR, OLDSHP, DEFSHD
      LOGICAL CLEARF, VERBOS
      COMMON/MESS/CLEARF, VERBOS
      BYTE BLANK(80), ALPHA, MESBUF(60)
      REAL D1(4)
      BYTE BLUNK(2)
      BYTE BLUNK2(2)
      BYTE OBUFF( - 9: + 9,  - 9: + 9)
      BYTE JUNK, NBUFF
      COMMON/BNDRY/IXX, IYY, ID, MINID8, JUNK, NBUFF( - 9: + 9,  - 9: +
     *9)
      INTEGER COMMND
        common/me/who
      INTEGER WHO
      EQUIVALENCE(BLUNK(2), NBUFF( - 9,  - 9))
      EQUIVALENCE(BLUNK2(2), OBUFF( - 9,  - 9))
      DATA BLANK/80*' '/
      DATA BLUNK, BLUNK2/4*' '/
      DATA SC/9* - 9999./
      DATA R/9* - 9999./
      DATA DONE/.FALSE./
      DATA OK/.FALSE./
        wizard=.false.
      DATA DEFDIR/0.0/, DEFSHD/0.0/
C
C  QUIKUP IS SET TRUE IF TERMINAL SPEED EXCEEDS A THRESHOLD
C  DETERMINED IN GTCHAR.
C  IF QUIKUP IS TRUE, A FULL SCREEN UPDATE OCCURS EVERY 1/2 SECOND;
C  AT SLOWER SPEEDS, 1/2 THE SCREEN IS UPDATED EVERY SECOND ON THE
C  HALF SECOND, THE OTHER 1/2 IS UPDATED EVERY SECOND ON THE SECOND.
C  THIS ALLOWS ENJOYABLE GAMES ON TERMINALS AS SLOW AS 1200 BAUD.
C
C GET QUIKUP, INITIALIZE TERMINAL IO
C
C If supflg is .FALSE. then terminal type is NOT supported and we will
C exit and give him an explaination.
C If MYPLAY is .FALSE. then it must be OFFHOURS and we won't let him in!
C
      CALL GTCHAR(QUIKUP,supflg)
        If (supflg) goto 1000
        write(5,1999)
1999    format(' You obviously didn''t read the instructions
        1 about terminal setup.'
)
        call exit
1000    call daytim(myplay)
        call video('<')
        If (myplay) goto 1998
        call clear
        call outch(0,0)
        write(5,1995)
1995    format(' I''m sorry but the Galaxy is CLOSED now.',//,
        1' Entrance is allowed only to those who can',/,
        1'$demonstrate their worthiness. ')
        call inchar(pasbuf,19,.false.,3,nc,ierr)
        call clear
        call outch(0,0)
        if (ierr .ge. 0) goto 1993
        If (ierr .eq. -2) then
        call video('5')
        write(5,1992)
1992    format(' I''m sorry but you are clearly unworthy!',/
        1,' Come back during regular hours of play.')
        call video('0')
        call exit
        endif
1993    encode(19,9934,answer)pasbuf
9934    format(19a1)
        If (answer .ne. paswrd) goto 1996
        wizard=.true.
        goto 1998
1996    call video('5')
        write(5,1992)
        call video('0')
        call exit
1998    call clear
        call outch(0,0)
        call weekday(day)
        call date(today)
        If (day .eq. 0)header='Welcome to GALAXY '//V//' on Wednesday, '//today
        If (day .eq. 1) header='Welcome to GALAXY '//V//' on Thursday, '//today
        If (day .eq. 2) header='Welcome to GALAXY '//V//' on Friday, '//today
        If (day .eq. 3) header='Welcome to GALAXY '//V//' on Saturday, '//today
        If (day .eq. 4) header='Welcome to GALAXY '//V//' on Sunday, '//today
        If (day .eq. 5) header='Welcome to GALAXY '//V//' on Monday, '//today
        If (day .eq. 6) header='Welcome to GALAXY '//V//' on Tuesday, '//today
        If (day .gt. 6) header='Welcome to GALAXY '//V//', '//today
        ih=index(header,'-')
      WRITE(5, 1001)header(1:ih+6)
1001    format(' ',a)
2000  CONTINUE
        WRITE(5, 1011)
1011    FORMAT('0The following Vessels are available:'/)
        shpflg=.false.
        DO 2030 I = 1, 8
          IF (.NOT.(.NOT.XSHIP(I))) GOTO 2050
        If (busy(i)) goto 2050
            WRITE(5, 1021) I
1021        FORMAT(' Ship ', I1)
        shpflg=.true.
2050      CONTINUE
2030    CONTINUE
2040    CONTINUE
        if (shpflg) goto 1030
        write(5,1032)
1032    format(' I''m sorry but all Ships have launched...',/,
        1' It may be possible to share a Command...')
1030        WRITE(5, 1031)
1031    FORMAT(/'$Pick a Ship from our starfleet: ')
        CALL GETINT(0, IW, OK, 1, 8, 0)
        IF (.NOT.(OK)) GOTO 2070
          IF (.NOT.(IW .EQ. 0)) GOTO 2090
            OK = .FALSE.
            GOTO 2010
2090      CONTINUE
          WHO = IW
        If (.not.(busy(who))) goto 1039
        Write(5,9699)who
9699    format('0Sorry, ship ',i1,' is temporarily disabled!')
        goto 1042
1039          IF (.NOT.(XSHIP(WHO))) GOTO 2110
        If (share(who).eq.-1.or.share(who).eq.1) then
9918            WRITE(5, 1041)who
1041        FORMAT('0Ship ',i1' already has a full crew. Sorry!')
1042    call wait(60,1,m)
        goto 1998
        endif
            WRITE(5, 1051)who
1051        FORMAT('$Ship ',i1,' already has a Commander.',
        1' Do you wish to share this Command? ')
            CALL YESNO(0, OK)
        If ((ok) .and. (share(who) .eq. 1 .or. share(who) .eq. -1)) goto 9918
        If (ok) share(who)=1
2110      CONTINUE
          GOTO 2080
2070     CONTINUE
        call clear
        call outch(0,0)
        write(5,4554)
4554    format(' Those who cannot follow instructions
        1 cannot become Starfleet Commanders!'
)
          CALL EXIT
2080    CONTINUE
2010    IF (.NOT.(OK)) GOTO 1998
2020  CONTINUE
        If (.not.(xship(who))) then
        xship(who)=.true.
                If (share(who) .eq. 0) then
                header='Allow Sharing? '
                call respnd(header,yesshr)
                If (share(who) .eq. 0 .and. (.not.(yesshr))) share(who)=-1
                If (share(who) .eq. 1 .and. (.not.(yesshr))) then
                write(5,901)
901     format(' Oops, someone else has slipped into the cockpit!')
                endif
                else
                yesshr=.true.
                endif
        endif
        header='Silent Game? '
        call respnd(header,belflg)
        call video('h')
      REFRES = .TRUE.
      REFTOG = .FALSE.
      CREW(WHO) = CREW(WHO) + 1
      DEFSHP = WHO
      CALL STRMOV(BLUNK2, 1, 361, OBUFF, 1)
      CALL RBUFF
      IF (.NOT.(.NOT.QUIKUP)) GOTO 2130
C START 1 SECOND TIMER IF SLOW UPDATE
        CALL MARK(3, 30, 1, IDS)
2130  CONTINUE
C START 1/2 SECOND TIMER
      CALL MARK(2, 15, 1, IDS)
2150  CONTINUE
C
C       THE FOLLOWING CALL SPAWNS THE MTREKD UNIVERSE MANAGER TASK ON TT0:.
C       IF YOU CANNOT DO SOMETHING SIMILAR, YOU MUST START MTREKD YOURSELF
C       BEFORE PLAYING EACH GAME.
C
        IF (.NOT.(THRU)) GOTO 2180
C THEN MTREKD ISN'T RUNNING
c          CALL RUNMTR
C
C     PLACE LOCAL SCAN ON TERMINAL
C
2180    CONTINUE
        timcnt=timcnt+1
        if (timcnt .lt. 4) goto 9078
        timcnt=0
        call time(timbf)
        call tpos(12,70)
        encode(8,9009,mesbuf)timbf
9009    format (a8)
        call outch(mesbuf,8)
9078    call video('7')
        REFTOG = (.NOT.REFTOG) .OR. QUIKUP
        IF (.NOT.((XSHIP(WHO) .AND. REFTOG) .OR. REFRES)) GOTO 5555
C DON'T REFRESH IF BLOWN UP!
          CALL STRMOV(BLUNK, 1, 361, NBUFF, 1)
          ID = SCAN(WHO)
          MINID8 = MIN(ID, 8)
          IXX = XCORD(WHO)
          IYY = YCORD(WHO)
          IXLOW = MAX(2, IXX - ID)
          IXHI = MIN(99, IXX + ID)
          IYLOW = MAX(2, IYY - ID)
          IYHI = MIN(99, IYY + MINID8)
          DO 2220 IX1 = IXLOW, IXHI
            IX = IX1 - IXX
            DO 2240 IY1 = IYLOW, IYHI
              IY = IY1 - IYY
              ALPHA = UNIV(IX1, IY1)
              IF (.NOT.((ALPHA .GE. 48+1) .AND. (ALPHA .LE. 48+8) .AND.
     *(CLOAK(ALPHA-48)))) GOTO 2260
                NBUFF(IX, IY) = EMPTY
                GOTO 2270
2260           CONTINUE
                IF (.NOT.(ALPHA .LT. 0)) GOTO 2280
                  NBUFF(IX, IY) = '%'
                  GOTO 2290
2280             CONTINUE
                  NBUFF(IX, IY) = ALPHA
2290            CONTINUE
2270          CONTINUE
2240        CONTINUE
2250        CONTINUE
2220      CONTINUE
2230      CONTINUE
          IF (.NOT.(IXX-ID .LE. 1)) GOTO 2300
            CALL BNDRY(1, 1, MAX(1, IYY - ID), MIN(100, IYY + MINID8))
            GOTO 2310
2300       CONTINUE
            IF (.NOT.(IXX+ID .GE. 100)) GOTO 2320
              CALL BNDRY(100, 100, MAX(1, IYY - ID), MIN(100, IYY + MINI
     *D8))
2320        CONTINUE
2310      CONTINUE
          IF (.NOT.(IYY-ID .LE. 1)) GOTO 2340
            CALL BNDRY(MAX(1, IXX - ID), MIN(99, IXX + ID), 1, 1)
            GOTO 2350
2340       CONTINUE
            IF (.NOT.(IYY+ID .GE. 100)) GOTO 2360
              CALL BNDRY(MAX(1, IXX - ID), MIN(99, IXX + ID), 100, 100)
2360        CONTINUE
2350      CONTINUE
          IF (.NOT.(NBUFF(-ID, -ID) .EQ. EMPTY)) GOTO 2380
            NBUFF( - ID,  - ID) = '.'
2380      CONTINUE
          IF (.NOT.(NBUFF(-ID, MINID8) .EQ. EMPTY)) GOTO 2400
            NBUFF( - ID, MINID8) = '.'
2400      CONTINUE
          IF (.NOT.(NBUFF(ID, MINID8) .EQ. EMPTY)) GOTO 2420
            NBUFF(ID, MINID8) = '.'
2420      CONTINUE
          IF (.NOT.(NBUFF(ID, -ID) .EQ. EMPTY)) GOTO 2440
            NBUFF(ID,  - ID) = '.'
2440      CONTINUE
          DO 2460 IY =  - 9,  + 8
            ICURSX =  - 999
            DO 2480 IX =  - 9,  + 9
              IF (.NOT.(NBUFF(IX, IY) .NE. OBUFF(IX, IY))) GOTO 2500
                IF (.NOT.(ICURSX .GE. IX-2)) GOTO 2520
                  DO 2540 III = ICURSX + 1, IX
                    CALL OUTCH(' ', 1)
                    CALL OUTCH(NBUFF(III, IY), 1)
2540              CONTINUE
2550              CONTINUE
                  GOTO 2530
2520             CONTINUE
                  CALL TPOS(9 - IY, 2*IX + 43)
                  CALL OUTCH(NBUFF(IX, IY), 1)
2530            CONTINUE
                ICURSX = IX
                OBUFF(IX, IY) = NBUFF(IX, IY)
2500          CONTINUE
2480        CONTINUE
2490        CONTINUE
2460      CONTINUE
2470      CONTINUE
          CALL OUTCH(0,  - 1)
5555    call video('0')
C
C     THE FOLLOWING WAIT CONTROLS THE UPDATE RATE, WHICH IS NORMALLY
C     SET TO A HALF SECOND (30 CLOCK TICKS).
C
2200    CONTINUE
        IF (.NOT.(COMMND .NE. '  ' .AND. XSHIP(WHO))) GOTO 2560
          IF (.NOT.(REFTOG)) GOTO 2580
            CALL WAITFR(2, IDS)
            IF (.NOT.(QUIKUP)) GOTO 2600
C RESTART 1/2 SECOND TIMER
              CALL MARK(2, 15, 1, IDS)
2600        CONTINUE
            GOTO 2590
2580       CONTINUE
            CALL WAITFR(3, IDS)
C RESTART 1 SECOND TIMER
            CALL MARK(3, 30, 1, IDS)
C RESTART 1/2 SECOND TIMER
            CALL MARK(2, 15, 1, IDS)
2590      CONTINUE
2560    CONTINUE
        Do 7666 ibb=1,8
        If (share(ibb) .ne. -1) then
                If (shrflg(ibb) .ne. share(ibb)) then
        if (share(ibb) .eq. 1) then
        if (ibb .eq. who) then
        call video('1')
        else
        call video('7')
        endif
                call buffil((ibb+1),63,'Shr''d',5)
        If (ibb .eq. who) then
        call video('0')
        endif
        endif
        if (share(ibb) .eq. 0) then
                call buffil((ibb+1),63,'     ',5)
        endif
        shrflg(ibb)=share(ibb)
        endif
        endif
7666    continue
        If (playtm) goto 2998
        If (wizard) goto 2998
        crew(who)=crew(who)-1
        if (.not.(crew(who) .le. 400)) goto 9979
        xship(who)=.false.
        goto 9969
9979    xship(who)=.true.
9969    call outch(0,0)
        call purge
        call beeper(7)
        call tpos(23,20)
        call video('1')
        call outstr(.false.,'The GALAXY is now closed.  Thanks for playing
        1!'
,.false.)
        call video('0')
        call outch(0,0)
        If (share(who) .eq. 1) share(who)=0
        If (.not.(yesshr)) share(who)=0
        call exit
2998        NC = 1
        COMMND = '0 '
        IF (.NOT.(XSHIP(WHO))) GOTO 2620
          CALL TREAD(COMMND, NC)
C
C     CHECK FOR NO INPUT
C
2620    CONTINUE
        IF (.NOT.(COMMND .EQ. '0 ')) GOTO 2640
C
C     LONG RANGE SCAN COMMAND
C
          GOTO 2650
2640     CONTINUE
          IF (.NOT.(COMMND .EQ. 'L ')) GOTO 2660
            CALL GETINT('Target Ship? ', II, OK, 1, 8, DEFSHP)
            IF (.NOT.(OK)) GOTO 2680
              DEFSHP = II
              IX = XCORD(II)/10.
              IY = YCORD(II)/10.
              CALL TPOS(18, 75)
              ENCODE(5, 1071, MESBUF) IX, IY
1071          FORMAT(I2, ',', I2)
              CALL OUTCH(MESBUF, 5)
              XX = XCORD(WHO)
              YY = YCORD(WHO)
              X1 = XCORD(II)
              IF (.NOT.(X1 .LT. 51.)) GOTO 2700
                X2 = X1 + 100.
                GOTO 2710
2700           CONTINUE
                X2 = X1 - 100.
2710          CONTINUE
              Y1 = YCORD(II)
              IF (.NOT.(Y1 .LT. 51.)) GOTO 2720
                Y2 = Y1 + 100.
                GOTO 2730
2720           CONTINUE
                Y2 = Y1 - 100.
2730          CONTINUE
              D1(1) = ((XX - X1)**2 + (YY - Y1)**2)**.5
              D1(2) = ((XX - X1)**2 + (YY - Y2)**2)**.5
              D1(3) = ((XX - X2)**2 + (YY - Y1)**2)**.5
              D1(4) = ((XX - X2)**2 + (YY - Y2)**2)**.5
              IIT = 1
              DO 2740 J = 2, 4
                IF (.NOT.(D1(J) .LT. D1(IIT))) GOTO 2760
                  IIT = J
2760            CONTINUE
2740          CONTINUE
2750          CONTINUE
              D = D1(IIT)
              IF (.NOT.(IIT .EQ. 1)) GOTO 2780
                YD = Y1
                XD = X1
                GOTO 2790
2780           CONTINUE
                IF (.NOT.(IIT .EQ. 2)) GOTO 2800
                  YD = Y2
                  XD = X1
                  GOTO 2810
2800             CONTINUE
                  IF (.NOT.(IIT .EQ. 3)) GOTO 2820
                    YD = Y1
                    XD = X2
                    GOTO 2830
2820               CONTINUE
                    YD = Y2
                    XD = X2
2830              CONTINUE
2810            CONTINUE
2790          CONTINUE
              EDIS = D
              EDIR = ATAN3((YD - YY), (XD - XX))*57.29577951
              IF (.NOT.(EDIR .LT. 0.)) GOTO 2840
                EDIR = EDIR + 360.
2840          CONTINUE
              IF (.NOT.(EDIR .GT. 90.)) GOTO 2860
                EDIR = (450. - EDIR)/30.
                GOTO 2870
2860           CONTINUE
                EDIR = (90. - EDIR)/30.
2870          CONTINUE
              DEFDIR = EDIR
              CALL TPOS(17, 75)
              ENCODE(5, 1081, MESBUF) EDIS
1081          FORMAT(F5.2)
              CALL OUTCH(MESBUF, 5)
              CALL TPOS(16, 75)
              ENCODE(5, 1091, MESBUF) EDIR
1091          FORMAT(F5.2)
              CALL OUTCH(MESBUF, 5)
              CALL TPOS(15, 79)
              ENCODE(1, 1101, MESBUF) DEFSHP
1101          FORMAT(I1)
              CALL OUTCH(MESBUF, 1)
              CALL OUTCH(0,  - 1)
2680        CONTINUE

Cocos2d-x Programming

I'm fairly new to Cocos2d-x programming. This forced me spend some time pondering things that haven't seemed quite as easy as I would have expected. Therefore, I thought I'd share what I've learned in a series of posts.

There are also a number of very valuable posts in Chinese which I hope to bring to English. I need to scout these out and talk to their authors first but hopefully they will willing to have me translate them.

I've got code for most of the following topics which I will post as time permits. If there is a particular topic that interests you, or if a post needs clarification or correction, more let me know and I'll get to that sooner

A few things to understand about a Cocos2d-x program:

  • Cocos2d-x Scene Graph - The structure of a Cocos2d-x program,
  • Cocos2d-x Interface with Android - How is Cocos2d-x started,
  • Cocos2d-x Talking to Android - How to use Android services not coded in t Cocos2d-x,
  • Cocos2d-x AppDelegate - Starting up the Cocos2d-x program,
  • Cocos2d-x Talking to Linux Kernel - Socket programming,
  • Cocos2d-x Scene Hierarchy - Which objects can be used as scene root.

Some UI (User Interface) stuff:

  • Cocos2d-x UITextBMFont - Display a fast bit-map font (see below on how to create bit-mapped fonts for your own program,
  • Cocos2d-x UIWebView - Display a webpage within your scenes,
  • Cocos2d-x UIVideoPlayer - Display a video within a scene,
  • Cocos2d-x UITextField -
  • Cocos2d-x UITextAtlas -
  • Cocos2d-x UIText -
  • Cocos2d-x UISlider - Add a slider control to your form, with graduations,
  • Cocos2d-x UIScrollView -
  • Cocos2d-x UIRichText - Display font text with attributes,
  • Cocos2d-x UILoadingBar - Display a progress bar,
  • Cocos2d-x UIListView - Display a drop-down type list,
  • Cocos2d-x UILayout -
  • Cocos2d-x UIImageView - Display an image,
  • Cocos2d-x UIEditBox - Get text input from user,
  • Cocos2d-x UICheckBox - Setting up a checkbox.

Scheduling Functions:

  • Cocos2d-x Schedule Update - Asynchronous function calls to off-load GUI task and to use timing services,
  • Cocos2d-x Schedule Update - Calls the update function every frame,
  • Cocos2d-x Schedule a function once - One shot function call,
  • Cocos2d-x Schedule a function a set number of times with a set time gap between calls with an initial delay,
  • Cocos2d-x Schedule a function forever - With a set time gap between calls,
  • Cocos2d-x Schedule a custom function - To run every frame,
  • Cocos2d-x Unscheduling - Scheduled functions can be stopped very easily.

Miscellaneous Stuff:

  • Cocos2d-x Hello World - A better starting place,
  • Cocos2d-x PLIST - Reading of PLIST file from Resources, and Reading/Writing from/to Device memory,
  • Cocos2d-x Audio services both for effects and background music,
  • Cocos2d-x Accelerometer Input - Detect when the user has interacted with their device by tilting it,
  • Cocos2d-x Keyboard Input - detect when the user has interacted with their device using a keyboard,
  • Cocos2d-x Mouse Input - Detect when the user has interacted with their device using a mouse,
  • Cocos2d-x Single Touch Input - detect when the user has interacted with their device using touch primarily for mobile devices using a single finger,
  • Cocos2d-x Multi Touch Input - Detect when the user has interacted with their device using touch primarily for mobile devices using a multiple fingers,
  • Cocos2d-x Open URL - Opening up a web page from your Android app,
  • Cocos2d-x Clipping Node - Using a stencil object,
  • Cocos2d-x PageView - Scrolling pages,
  • Cocos2d-x Scene Transitions - The functions: pushScene, popScene, popToRootScene, popToSceneStackLevel,
  • Cocos2d-x Scene Transitions - Doing a scene transition with a transition effect, both push and pop.


Up and running…

Well apart from programming Android games ... at the moment I find myself learning WordPress. I used to program in raw HTML/CSS but I decided that I should proceed out of the stone age and thus ... here I am.

Obviously nothing particularly useful at the moment but I plan to add a number of posts on topics that I've learned something about that might be useful to others. Here are some of the things I've been working on that I'll start posting about (no particular order):

  • Android programming. Both in Java and through the NDK.
  • Cocos2d-x programming. I've published my first Android game created with Android-Studio and the Cocos2d-x game engine.
  • OpenCV. I've learned lots about vision software so now it's time to learn some OpenCV stuff. This will come in handy now that people are carrying around fairly powerful computers with included cameras.
    • My SFBC game tool for Android will be using OpenCV to convert camera images to electronic SSDs (Ship System Display -- schematics of the ship and its systems, weapons, engines etc). See Google Images for lots of examples.
  • Game programming. In particular some of the stuff that goes into game programming that isn't obvious (the stuff other than graphics and sound)
    • PCG (Procedural Content Generation). This is a way to generate games scenarios without going to all the trouble and space to create them individually. Pixel Dungeon and all its variants seem to use this. There seems to be a great amount of research work been done on PCG now and it looks like it is the technology to learn.
    • AI (Artificial Intelligence) makes the bots do their thing and makes them act in a way that makes the game challenging for the player. But an AI can't be to smart or the players get frustrated, or too stupid or the players get bored.
  • Compiler writing. I've got a Basic-to-C translator working already but I thought others could use some helpful notes on how to get started here.
    • A Fortran-to-C compiler is also in the back of my mind especially considering I have a few games in Fortran that really want to be converted to C.
    • BNFC is a program to convert between a BNF grammer and the Flex/Bison lexer and parser for C (and various other languages and compiler tools) and looks like a fairly quick way to implement the front end of a compiler ... I'll let you know.
    • Flex/Bison. I suspect that BNFC is a pretty good system but I'm not sure it will help with languages like Fortran with it's position specific code. As well BNFC produces Flex/Bison code so you have to know how to understand the error messages to know how adjust your BNFC code.
  • NCurses programming. Not terribly useful in the present day but some people are nostalgic for the old style games and this is a great way to build them (see Dwarf Fortress)