ITS Muddle.
[pdp10-muddle.git] / MUDDLE / stctst.2
1 <SETG PATH 
2  <FUNCTION TL ("STACK" START FINISH)
3    <PROG ("STACK" (VAL <FAILPOINT () <PATH1 .START .FINISH ()>
4                     ("STACK")
5                     <EXIT .TL <>>   >))
6     <FINALIZE .TL>
7     <RETURN .VAL>>>>\e
8
9
10 <SETG PATH1
11  <FUNCTION  ("STACK" START FINISH AVOID)
12    <COND (<==? .START .FINISH>
13           (.FINISH))
14          (<MEMBER .START .AVOID>
15           <FAIL>)
16          (T (.START 
17              !<PATH1
18                <FAILPOINT FP ("STACK" N (NODES <GET .START CONNECTED>))
19                         <FAIL> ("STACK")
20                         <COND (<EMPTY? .NODES> <FAIL>)
21                               (<SET N <1 .NODES>>
22                                <SET NODES <REST .NODES>>
23                                <RESTORE .FP .N>)>   >
24                .FINISH
25                (.START !.AVOID)>))>>   >\e
26
27
28 <PUT ALPHA CONNECTED (B D K)>\e
29 <PUT B CONNECTED (ALPHA I C)>\e\r\r
30 <PUT I CONNECTED (B H J)>\e
31 <PUT H CONNECTED (I)>\e
32 <PUT J CONNECTED (I)>\e
33 <PUT C CONNECTED (B G D)>\e
34 <PUT G CONNECTED (C)>\e
35 <PUT D CONNECTED (ALPHA C F)>\e
36 \r<PUT F CONNECTED (D)>\e
37 <PUT K CONNECTED (ALPHA M L)>\e
38 <PUT M CONNECTED (K L N O)>\e
39 <PUT L CONNECTED (K M)>\e
40 <PUT N CONNECTED (M)>\e
41 <PUT O CONNECTED (M P OMEGA)>\e
42 <PUT P CONNECTED (O)>\e
43 <PUT OMEGA CONNECTED (O)>\e\f\ 3\f