Commit | Line | Data |
---|---|---|
8e9db35f PB |
1 | \ @(#) private.fth 98/01/26 1.2 |
2 | \ PRIVATIZE | |
3 | \ | |
4 | \ Privatize words that are only needed within the file | |
5 | \ and do not need to be exported. | |
6 | \ | |
7 | \ Usage: | |
8 | \ PRIVATE{ | |
9 | \ : FOO ; \ Everything between PRIVATE{ and }PRIVATE will become private. | |
10 | \ : MOO ; | |
11 | \ }PRIVATE | |
12 | \ : GOO foo moo ; \ can use foo and moo | |
13 | \ PRIVATIZE \ smudge foo and moo | |
14 | \ ' foo \ will fail | |
15 | \ | |
16 | \ Copyright 1996 Phil Burk | |
17 | \ | |
18 | \ 19970701 PLB Use unsigned compares for machines with "negative" addresses. | |
19 | ||
20 | anew task-private.fth | |
21 | ||
22 | variable private-start | |
23 | variable private-stop | |
24 | $ 20 constant FLAG_SMUDGE | |
25 | ||
26 | : PRIVATE{ | |
064f3eb0 PB |
27 | private-start @ 0= not abort" ERROR: Missing PRIVATIZE" |
28 | private-stop @ 0= not abort" ERROR: Missing PRIVATIZE" | |
8e9db35f PB |
29 | latest private-start ! |
30 | 0 private-stop ! | |
31 | ; | |
064f3eb0 | 32 | |
8e9db35f | 33 | : }PRIVATE |
064f3eb0 | 34 | private-stop @ 0= not abort" ERROR: Extra }PRIVATE" |
8e9db35f PB |
35 | latest private-stop ! |
36 | ; | |
064f3eb0 | 37 | |
8e9db35f | 38 | : PRIVATIZE ( -- , smudge all words between PRIVATE{ and }PRIVATE ) |
064f3eb0 PB |
39 | private-start @ 0= abort" ERROR: Missing PRIVATE{" |
40 | private-stop @ 0= abort" ERROR: Missing }PRIVATE" | |
8e9db35f PB |
41 | private-stop @ |
42 | BEGIN | |
43 | dup private-start @ u> \ 19970701 | |
44 | WHILE | |
45 | \ ." Smudge " dup id. cr | |
46 | dup c@ flag_smudge or over c! | |
47 | prevname | |
48 | REPEAT | |
49 | drop | |
50 | 0 private-start ! | |
51 | 0 private-stop ! | |
52 | ; |