\ LIBRARY.ANS: Simple Source Code Library system uho Mar 95 \ $Id: library.ans,v 1.3 2004/03/24 19:41:03 uho Exp $ : \\ ( -- ) SOURCE-ID 1+ 1 U> IF BEGIN REFILL 0= UNTIL THEN POSTPONE \ ; IMMEDIATE : desired ( c-addr1 len1 c-addr2 len2 -- c-addr1 len1 false | true ) 2OVER COMPARE 0= DUP IF NIP NIP THEN ; : desires ( ccc c-addr len -- c-addr len false | true ) BL WORD COUNT desired ; CREATE $library 256 CHARS ALLOT : from ( ccc -- ) BL WORD COUNT $library CHAR+ SWAP DUP >R CMOVE R> $library C! ; : required ( c-addr len -- ) DUP ALLOCATE THROW DUP >R SWAP 2DUP 2>R CMOVE 2R> $library COUNT DUP ALLOCATE THROW SWAP 2DUP 2>R 2DUP 2>R CMOVE 2R> ['] INCLUDED CATCH 2R> 2DUP $library CHAR+ SWAP CMOVE $library C! FREE THROW R> FREE THROW THROW ; : require ( ccc -- ) BL WORD COUNT required ; from sample.lib CR .( Simple Source Code Library System initialized! )