1*afc2ba1dSToomas Soome\ ** 2*afc2ba1dSToomas Soome\ ** Prefix words for ficl 3*afc2ba1dSToomas Soome\ ** submitted by Larry Hastings, larry@hastings.org 4*afc2ba1dSToomas Soome\ ** 5*afc2ba1dSToomas Soome\ (jws) To make a prefix, simply create a new definition in the <prefixes> 6*afc2ba1dSToomas Soome\ wordlist. start-prefixes and end-prefixes handle the bookkeeping 7*afc2ba1dSToomas Soome 8*afc2ba1dSToomas Soomevariable save-current 9*afc2ba1dSToomas Soome 10*afc2ba1dSToomas Soome: start-prefixes get-current save-current ! <prefixes> set-current ; 11*afc2ba1dSToomas Soome: end-prefixes save-current @ set-current ; 12*afc2ba1dSToomas Soome: show-prefixes <prefixes> >search words search> drop ; 13*afc2ba1dSToomas Soome 14*afc2ba1dSToomas Soomestart-prefixes 15*afc2ba1dSToomas Soome 16*afc2ba1dSToomas SoomeS" FICL_WANT_EXTENDED_PREFIX" ENVIRONMENT? drop [if] 17*afc2ba1dSToomas Soome 18*afc2ba1dSToomas Soome\ define " (double-quote) as an alias for s", and make it a prefix 19*afc2ba1dSToomas Soome: " postpone s" ; immediate 20*afc2ba1dSToomas Soome 21*afc2ba1dSToomas Soome 22*afc2ba1dSToomas Soome\ make .( a prefix (we just create an alias for it in the prefixes list) 23*afc2ba1dSToomas Soome: .( postpone .( ; immediate 24*afc2ba1dSToomas Soome 25*afc2ba1dSToomas Soome 26*afc2ba1dSToomas Soome\ make \ a prefix, and add // (same thing) as a prefix too 27*afc2ba1dSToomas Soome: \ postpone \ ; immediate 28*afc2ba1dSToomas Soome: // postpone \ ; immediate 29*afc2ba1dSToomas Soome 30*afc2ba1dSToomas Soome 31*afc2ba1dSToomas Soome\ ** add 0b, 0o, 0d, and 0x as prefixes 32*afc2ba1dSToomas Soome\ ** these temporarily shift the base to 2, 8, 10, and 16 respectively 33*afc2ba1dSToomas Soome\ ** and consume the next number in the input stream, pushing/compiling 34*afc2ba1dSToomas Soome\ ** as normal 35*afc2ba1dSToomas Soome\ ** 36*afc2ba1dSToomas Soome\ ** __tempbase is precompiled, see prefix.c 37*afc2ba1dSToomas Soome 38*afc2ba1dSToomas Soome: 0b 2 __tempbase ; immediate 39*afc2ba1dSToomas Soome: 0o 8 __tempbase ; immediate 40*afc2ba1dSToomas Soome 41*afc2ba1dSToomas Soome[endif] 42*afc2ba1dSToomas Soome 43*afc2ba1dSToomas Soome: 0d 10 __tempbase ; immediate 44*afc2ba1dSToomas Soome: 0x 16 __tempbase ; immediate 45*afc2ba1dSToomas Soome 46*afc2ba1dSToomas Soomeend-prefixes 47