blob: 596e6c50812bbbfbc5619627ea176993ef7da233 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
How to bring up Spider on MS-DOS (adapted from instructions kindly
provided by David Ness). Assumes Microsoft C 5.1 and MS overlay
linker V 3.65.
1. Get \MASTER\PATHOPEN.* COMMON.*
2. Get TANGLE.C from C.ZIP
3. Compile with 'CL /AH TANGLE.C COMMON.C PATHOPEN.C'. (If your
compiler does not define the symbol MSDOS automatically, you should
use 'CL /DMSDOS' or whatever the appropriate incantation is.) This will
produce lots of warnings because the code has labels after '#endif'.
This produces your official C tangle, so perhaps
'REN TANGLE.EXE CTANGLE.EXE' is in order.
4. Get TANGLE.C from AWK.ZIP, and
'CL /AH TANGLE.C COMMON.OBJ PATHOPEN.OBJ' followed by
'REN TANGLE.EXE ATANGLE.EXE' should give you an Awk tangle.
5. Not that the copies of C TANGLE and Awk TANGLE have been produced
from the bootstrap TANGLE.C, not from TANGLE.WEB. Our next task
is to produce good TANGLEs from the WEB. This will require SPIDER,
and SPIDER REQUIRES Awk.
6. First we can regenerate PATHOPEN.C and PATHOPEN.H from PATHOPEN.WEB
with 'CTANGLE PATHOPEN'. This is done just for consistency.
7. Now begin by creating SPIDER.AWK from SPIDER.WEB: 'ATANGLE SPIDER'.
8. Run Awk on SPIDER, giving it C.SPI: 'AWK -F SPIDER.AWK C.SPI'.
This produces OUTTOKS.WEB needed for TANGLE.WEB and GRAMMAR.WEB and
SCRAPS.WEB needed for WEAVE.
9. However, there is one problem. As is, the function `translate()'
generates a code segment too big to handle. By wild good luck, if
the appropriate calls to the `reduce()' function are replaced with
calls on `squash()', then it just fits. (SPIDER doesn't generate
calls on `squash()', although `squash()' is still defined in
WEAVE.)
DNN.WEB will generate an Awk script that does this reduction.
For MKS Awk this is done with
ATANGLE DNN.WEB
AWK -F DNN GRAMMAR.WEB
COPY OUT.TMP GRAMMAR.WEB
10.Then 'CTANGLE WEAVE' to produce WEAVE.C
11.And finally 'CL /AH WEAVE.C COMMON.OBJ PATHOPEN.OBJ'
and 'REN WEAVE.EXE CWEAVE.EXE'.
12.We can generate AWEAVE (for Awk) by starting again at step 8 and
substituting `A' for `C' where appropriate.
|