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