comsat: move uid/gid setting earlier
[freebsd/src.git] / stand / ficl / softwords / ficllocal.fr
blob86de6f9b6ea55eecf503009b1a2820dbdcf55e45
1 \ ** ficl/softwords/ficllocal.fr
2 \ ** stack comment style local syntax...
3 \ {{ a b c -- d e }}
4 \ variables before the "--" are initialized in reverse order
5 \ from the stack. Those after the "--" are zero initialized
6 \ Uses locals...
7 \ locstate: 0 = looking for -- or }}
8 \           1 = found --
11 hide
12 0 constant zero
14 : ?--   s" --" compare 0= ;
15 : ?}}   s" }}" compare 0= ;
17 set-current
19 : {{
20     0 dup  locals| nLocs locstate |
21     begin
22         parse-word 
23         ?dup 0= abort" Error: out of text without seeing }}"
24         2dup 2dup  ?-- -rot ?}} or 0=
25     while
26         nLocs 1+ to nLocs
27     repeat
29     ?-- if 1 to locstate endif
31     nLocs 0 do
32         (local) 
33     loop
35     locstate 1 = if
36         begin
37             parse-word
38             2dup ?}} 0=
39         while
40             postpone zero  (local)
41         repeat
42         2drop
43     endif
45     0 0 (local)
46 ; immediate compile-only
48 previous