anchor.diff:        CASE(ERR)
           CALL SCNERR(INP,I)
         CASE(NEW)
  -        BUFLN = 1
  -        BUFF = C
  +        STRT = I
  +        TKLN = 1
         CASE(PUSH)
  -        BUFLN = BUFLN + 1
  -        BUFF(BUFLN:BUFLN) = C
  +        TKLN = TKLN + 1
         CASE(FLSH)
  -        WRITE(6,9031) STATE,BUFLN,BUFF(1:BUFLN)
  -        BUFLN = 1
  -        BUFF = C
  +        WRITE(6,9031) STATE,TKLN,INP(STRT:(STRT+TKLN-1))
  +        STRT = I
  +        TKLN = 1
         END SELECT
         STATE = NXTST
   *
  
positive.code:       BLOCK DATA ASCTAB
        IMPLICIT NONE
  * ----------------------------------------------------------------------
        INTEGER    NRWS
        PARAMETER (NRWS=7)
        INTEGER    UNKN,     WHIT,      IDEN
        PARAMETER (UNKN=0,   WHIT=1001, IDEN=1002 )
        INTEGER     ERR,      NEW,      PUSH,      FLSH
        PARAMETER ( ERR=0,    NEW=1001, PUSH=1002, FLSH=1003 )
        INTEGER TABLE(5,NRWS)
        COMMON /CASTAB/ TABLE
  * ----------------------------------------------------------------------
        DATA TABLE /
  *****      STATE       START          END      ACTION       NEXTSTATE
       &      UNKN,         32,          32,        NEW,           WHIT, 
       &      UNKN,         65,          90,        NEW,           IDEN, 
       &      UNKN,         97,         122,        NEW,           IDEN, 
  *
       &      WHIT,         32,          32,       PUSH,           WHIT, 
       &      WHIT,         65,          90,       FLSH,           IDEN, 
       &      WHIT,         97,         122,       FLSH,           IDEN, 
  *
       &      IDEN,         32,          32,       FLSH,           WHIT, 
       &      IDEN,         65,          90,       PUSH,           IDEN, 
       &      IDEN,         97,         122,       PUSH,           IDEN, 
  *
       &     99999,      99999,       99999,        ERR,           UNKN /
        END BLOCK DATA ASCTAB
  ************************************************************************
  *               97 - 122  a - z
  *               65 -  80  A - Z
  ************************************************************************
  
negative.code:       PROGRAM EVAL
        IMPLICIT NONE
        CHARACTER*64 RAW
        PARAMETER (RAW='STORE A .314 ** 2')
        CALL SCAN(RAW)
   8999 GOTO 9999
   9999 STOP
  