code (lit code (llit code (dlit code branch code ?branch code (loop code (+loop code (do (s l i -- ) code (?do (s l i -- ) code (leave (s -- ) code (?leave (s f -- ) HASH (s str-addr voc-ptr -- thread ) (FIND (s string link -- cfa true | str false ) ENCLOSE addr delim -- addr n1 n2 n3 code (' REL addr -- d.addr 16 wa->a ( 16-bit-addr -- 32-bit-addr ) wa@ ( addr -- address ) TRAVERSE addr1 direction -- addr2 Assuming that addr1 is an address somewhere within the name field of a word in the dictionary, addr2 is the address of the length byte if direction is -1, or the address of the last byte in the name field if direction is 1. CREATE COLD-CODE TUSER -- Local A defining word used in the form: TUSER When name is later executed, it leaves the address of its data storage area, which is in the USER area. Enough space to store a single token is allocated. This is similar to the standard word USER, except that the user doesn't have to keep track of which USER area locations have already been used. TRIM (s faddr voc-ADDR -- ) ?CONDITION (s F -- ) ?>MARK (s -- f ADDR ) ?>RESOLVE (s f ADDR -- ) ?