home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / FFA.ZIP / WORDS.SEQ < prev   
Encoding:
Text File  |  1988-01-06  |  2.5 KB  |  70 lines

  1. \ WORDS.SEQ     The WORDS definition       Enhancements by Tom Zimmer
  2.  
  3. VARIABLE VYET   \ DID WE PRINT VOCABULARY YET
  4. VARIABLE VADDR  \ VOCABULARY NAME ADDRESS
  5.  
  6. : .VYET         ( --- ) VYET @ IF EXIT THEN
  7.                 VADDR @ CR ." --[ " .ID ."  ]--" VYET ON
  8.                 CR LMARGIN @ SPACES  ;
  9.  
  10. VARIABLE INWFLG
  11. VARIABLE ALLFLAG
  12. VARIABLE CODEWRDS
  13. VARIABLE TOTALWORDS
  14.  
  15. : W.NAME        ( NFA --- )     \ Print name filtered by HERE
  16.                 INWFLG @          \ if INWFLG is ON.
  17.         IF      ALLFLAG @ CODEWRDS @
  18.                 IF      OVER NAME> C@ 232 <> AND \ to display CODE words ONLY.
  19.                 THEN
  20.                 IF      TRUE
  21.                 ELSE    YSEG @ OVER ?CS: HERE 100 + 31 CMOVEL
  22.                         HERE COUNT HERE 100 + COUNT 31 AND
  23.                         2DUP + 1- DUP C@ 127 AND SWAP C!
  24.                         SEARCH SWAP DROP
  25.                 THEN
  26.         ELSE    TRUE
  27.         THEN    IF      .VYET 17 ?LINE .ID #OUT @ 64 < IF TAB THEN
  28.                         TOTALWORDS INCR
  29.                 ELSE    DROP THEN    ;
  30.  
  31. : .VOCWORDS     ( A1 --- )
  32.                 DUP HERE 500 + #THREADS 2* CMOVE
  33.                 BODY> >NAME VADDR !     VYET OFF
  34.                 BEGIN   HERE 500 + #THREADS LARGEST DUP
  35.                         ?KEYPAUSE
  36.                 WHILE   DUP L>NAME W.NAME Y@ SWAP !
  37.                 REPEAT  2DROP ;
  38.  
  39. \ WORDS <return>        print words in current vocabulary.
  40. \ WORDS <string>        print words containing string in all vocabularies.
  41. \ WORDS *.*             print all words of all vocabularies.
  42.  
  43. \ WORDS enhancements by Tom Zimmer
  44.  
  45.  : WORDS       ( <t1> -- )   INWFLG OFF TOTALWORDS OFF
  46.                 SAVESTATE
  47.                78 RMARGIN !
  48.                15 TABSIZE !
  49.                   LMARGIN OFF
  50.                 CR ."  ** Press SPACE to pause, or ESC to exit ** "
  51.                 >IN @ SPAN @ <>
  52.                 IF      BL WORD 1+ " *.*" COMP 0= ALLFLAG ! CODEWRDS OFF
  53.                         HERE 1+ " CODE.*" CAPS-COMP 0=
  54.                         IF      CODEWRDS ON ALLFLAG ON
  55.                         THEN    INWFLG ON VOC-LINK @
  56.                         BEGIN   DUP #THREADS 2* - .VOCWORDS
  57.                                 @ DUP 0=
  58.                         UNTIL   DROP
  59.                 ELSE    CONTEXT @ .VOCWORDS
  60.                 THEN    CR TOTALWORDS @ U. ." Words printed" CR
  61.                 RESTORESTATE ;
  62.  
  63. ROOT DEFINITIONS
  64.  
  65. ' WORDS ALIAS WORDS \ : WORDS    WORDS ;
  66.  
  67. FORTH DEFINITIONS
  68.  
  69.  
  70.