Create readable text `.bas' for each tokenized BASIC `,ffb' file.
[ssr] / StraySrc / Libraries / Sapphire / bsh / options.bas
1 REM Sapphire options macro library -- © 1995 Straylight
2
3 DEF FNoptions_test=0
4
5 DEF FNoption(o%,t%,n$)
6 IF FNalign
7 opt__l=opt__l
8 IF opt__l THEN !(opt__l+O%-P%+4)=P%-opt__l
9 [ opt 4
10 .opt__l
11 dcd 0
12 dcd 0
13 dcd o%
14 dcd t%
15 equs n$+CHR$(0)
16 FNalign
17 ]
18 =0
19
20 DEF FNopt__f(f%)
21 !(opt__l+O%-P%)=!(opt__l+O%-P%) OR f%
22 =0
23
24 DEF FNoptions_end
25 [ opt 4
26 FNopt__f(optFlag_last)
27 FNalign
28 ]
29 !(opt__l+O%-P%+4)=P%-opt__l
30 =0
31
32 DEF FNoptions_string(o%,n$,s%)
33 [ opt 4
34 FNoption(o%,optType_string,n$)
35 dcd s%
36 ]
37 =0
38
39 DEF FNoptions_integer(o%,n$,b%)
40 IF FNoption(o%,optType_integer,n$)
41 IF b% THEN [opt 4:dcd b%:]
42 =0
43
44 DEF FNoptions_literal
45 IF FNoption(0,optType_literal,"")
46 IF FNopt__f(optFlag_ignore)
47 =0
48
49 DEF FNoptions_enum(o%,n$)=FNoption(o%,optType_enum,n$)
50
51 DEF FNoptions_bool(o%,n$,f%)
52 [ opt 4
53 FNoption(o%,optType_bool,n$)
54 dcd f%
55 ]
56 =0
57
58 DEF FNoptions_version(o%,n$)=FNoption(o%,optType_version,n$)