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