home *** CD-ROM | disk | FTP | other *** search
- \ WORDS.SEQ The WORDS definition Enhancements by Tom Zimmer
-
- VARIABLE VYET \ DID WE PRINT VOCABULARY YET
- VARIABLE VADDR \ VOCABULARY NAME ADDRESS
-
- : .VYET ( --- ) VYET @ IF EXIT THEN
- VADDR @ CR ." --[ " .ID ." ]--" VYET ON
- CR LMARGIN @ SPACES ;
-
- VARIABLE INWFLG
- VARIABLE ALLFLAG
- VARIABLE CODEWRDS
- VARIABLE TOTALWORDS
-
- : W.NAME ( NFA --- ) \ Print name filtered by HERE
- INWFLG @ \ if INWFLG is ON.
- IF ALLFLAG @ CODEWRDS @
- IF OVER NAME> C@ 232 <> AND \ to display CODE words ONLY.
- THEN
- IF TRUE
- ELSE YSEG @ OVER ?CS: HERE 100 + 31 CMOVEL
- HERE COUNT HERE 100 + COUNT 31 AND
- 2DUP + 1- DUP C@ 127 AND SWAP C!
- SEARCH SWAP DROP
- THEN
- ELSE TRUE
- THEN IF .VYET 17 ?LINE .ID #OUT @ 64 < IF TAB THEN
- TOTALWORDS INCR
- ELSE DROP THEN ;
-
- : .VOCWORDS ( A1 --- )
- DUP HERE 500 + #THREADS 2* CMOVE
- BODY> >NAME VADDR ! VYET OFF
- BEGIN HERE 500 + #THREADS LARGEST DUP
- ?KEYPAUSE
- WHILE DUP L>NAME W.NAME Y@ SWAP !
- REPEAT 2DROP ;
-
- \ WORDS <return> print words in current vocabulary.
- \ WORDS <string> print words containing string in all vocabularies.
- \ WORDS *.* print all words of all vocabularies.
-
- \ WORDS enhancements by Tom Zimmer
-
- : WORDS ( <t1> -- ) INWFLG OFF TOTALWORDS OFF
- SAVESTATE
- 78 RMARGIN !
- 15 TABSIZE !
- LMARGIN OFF
- CR ." ** Press SPACE to pause, or ESC to exit ** "
- >IN @ SPAN @ <>
- IF BL WORD 1+ " *.*" COMP 0= ALLFLAG ! CODEWRDS OFF
- HERE 1+ " CODE.*" CAPS-COMP 0=
- IF CODEWRDS ON ALLFLAG ON
- THEN INWFLG ON VOC-LINK @
- BEGIN DUP #THREADS 2* - .VOCWORDS
- @ DUP 0=
- UNTIL DROP
- ELSE CONTEXT @ .VOCWORDS
- THEN CR TOTALWORDS @ U. ." Words printed" CR
- RESTORESTATE ;
-
- ROOT DEFINITIONS
-
- ' WORDS ALIAS WORDS \ : WORDS WORDS ;
-
- FORTH DEFINITIONS
-
-