Copyright Bill Muench All rights reserved.
Permission is granted for non-commercial use, provided this notice is included.
Contact Bill Muench concerning commercial use.
CR .( search order extensions ) CR ( Copyright Bill Muench All rights reserved. ) ( Bill Muench \ OntoLogic ) ( \ Santa Cruz CA 95065 ) ( 971011 change .WID VOCS add WIDOF ) ( 950321 change back to search order stack ) ( !WID .WID VOCS ONLY ALSO ) ( 940928 change for linked search order ) ( 940912 remove environmental dependency ) ( 940711 fixed stack version ) MARKER E4.VOCS BASE @ !CSP HEX ( ============================================================ ) : >WID ( wid -- ) CELL+ ; : .WID ( wid -- ) SPACE DUP >WID CELL+ @ ?DUP IF .ID DROP EXIT THEN 0 U.R ; : !WID ( wid -- ) >WID CELL+ LAST @ SWAP ! ; : VOCS ( -- ) ( list all wordlists ) CR ." Vocs:" CURRENT CELL+ BEGIN @ ?DUP WHILE DUP .WID >WID REPEAT ; : ORDER ( -- ) ( list search order ) CR ." Search:" GET-ORDER BEGIN ?DUP WHILE SWAP .WID 1 - REPEAT CR ." Define:" GET-CURRENT .WID ; : ONLY ( -- ) -1 SET-ORDER ; : ALSO ( -- ) GET-ORDER OVER SWAP 1 + SET-ORDER ; : PREVIOUS ( -- ) GET-ORDER SWAP DROP 1 - SET-ORDER ; : >VOC ( wid 'name' -- ) CREATE DUP , !WID DOES> @ >R GET-ORDER SWAP DROP R> SWAP SET-ORDER ; : WIDOF ( "vocabulary" -- wid ) ' >BODY @ ; : VOCABULARY ( 'name' -- ) WORDLIST >VOC ; FORTH-WORDLIST >VOC FORTH ( ============================================================ ) ( tests ) ( ============================================================ ) WORDLIST CONSTANT W1 W1 !WID ( named ) WORDLIST CONSTANT W2 WORDLIST CONSTANT W3 W3 !WID ( named ) VOCABULARY V4 VOCABULARY V5 VOCABULARY V6 : LL ( -- ) FORTH-WORDLIST W1 W2 W3 W1 5 SET-ORDER ; W1 SET-CURRENT : _W1 ; W2 SET-CURRENT : _W2 ; W3 SET-CURRENT : _W3 ; WIDOF V4 SET-CURRENT : _V4 ; WIDOF V5 SET-CURRENT : _V5 ; WIDOF V6 SET-CURRENT : _V6 ; WIDOF FORTH SET-CURRENT ( ============================================================ ) ?CSP BASE ! FROM CON