\ ** \ ** Prefix words for ficl \ ** submitted by Larry Hastings, larry@hastings.org \ ** \ (jws) To make a prefix, simply create a new definition in the \ wordlist. start-prefixes and end-prefixes handle the bookkeeping variable save-current : start-prefixes get-current save-current ! set-current ; : end-prefixes save-current @ set-current ; : show-prefixes >search words search> drop ; start-prefixes S" FICL_WANT_EXTENDED_PREFIX" ENVIRONMENT? drop [if] \ define " (double-quote) as an alias for s", and make it a prefix : " postpone s" ; immediate \ make .( a prefix (we just create an alias for it in the prefixes list) : .( postpone .( ; immediate \ make \ a prefix, and add // (same thing) as a prefix too : \ postpone \ ; immediate : // postpone \ ; immediate \ ** add 0b, 0o, 0d, 0x and $ as prefixes \ ** these temporarily shift the base to 2, 8, 10, and 16 respectively \ ** and consume the next number in the input stream, pushing/compiling \ ** as normal \ ** \ ** __tempbase is precompiled, see prefix.c : 0b 2 __tempbase ; immediate : 0o 8 __tempbase ; immediate [endif] : 0d 10 __tempbase ; immediate : 0x 16 __tempbase ; immediate : $ 16 __tempbase ; immediate end-prefixes