home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / LASER / FPC35_5.ZIP / FPCSRC.ZIP / CASE.SEQ < prev    next >
Encoding:
Text File  |  1989-09-26  |  958 b   |  28 lines

  1. \ CASE.SEQ      Case statment                           by Bob Smith
  2.  
  3.  
  4. : CASE          ( -- )
  5.                 COMPILE DOCASE
  6.                 <MARK 0 ;                                       IMMEDIATE
  7.  
  8.  
  9. : ENDOF         ( -- )
  10.                 COMPILE DOENDOF >MARK SWAP >RESOLVE ;           IMMEDIATE
  11.  
  12. : OF            ( n1 n2 -- n1 )  ( n1 n1 -- )
  13.                 COMPILE (OF)  >MARK ;                           IMMEDIATE
  14.  
  15. : NRESOLVE   ( 0 n1 n2 ... n -- )
  16.                 BEGIN   DUP
  17.                         IF      >RESOLVE 0
  18.                         ELSE    -1  THEN
  19.                 UNTIL   DROP ;
  20.  
  21. : ENDCASE       ( -- )
  22. \                cr seqhandle count type 24 #out @ - spaces
  23. \                loadline @ 3 .r
  24. \                ."  Warning ENDCASE has changed, IT now does the DROP!"
  25.                 COMPILE DOENDCASE       \ <- DOENDCASE does a DROP!!
  26.                 NRESOLVE DROP ;                                 IMMEDIATE
  27.  
  28.