SeqTest.mesa
Russ Atkinson, April 28, 1983 11:13 am
SeqTest: CEDAR PROGRAM = BEGIN
GrodyToTheMax: CARDINAL = LAST[INTEGER];
RT1: TYPE = REF ST1;
ST1: TYPE = RECORD [SEQUENCE len: NAT OF INT];
RT2: TYPE = REF ST2;
ST2: TYPE = RECORD [pos: NAT, elems: SEQUENCE len: NAT OF INT];
RT3: TYPE = REF ST3;
ST3: TYPE = RECORD [SEQUENCE len: [1..GrodyToTheMax] OF INT];
RT4: TYPE = REF ST4;
ST4: TYPE = RECORD [pos: NAT, elems: SEQUENCE len: [1..GrodyToTheMax] OF INT];
RT5: TYPE = REF ST5;
ST5: TYPE = RECORD [pos: NAT, elems: PACKED SEQUENCE len: [1..GrodyToTheMax] OF [1..4]];
PT0: TYPE = LONG POINTER TO CST0;
CST0: TYPE = RECORD [SEQUENCE COMPUTED NAT OF INT];
PT1: TYPE = LONG POINTER TO CST1;
CST1: TYPE = RECORD [pos: NAT, elems: SEQUENCE COMPUTED NAT OF INT];
PT2: TYPE = LONG POINTER TO CST2;
CST2: TYPE = RECORD [pos: NAT, max: NAT, elems: SEQUENCE COMPUTED NAT OF INT];
TestSignal: SIGNAL = CODE;
Test: PROC = TRUSTED {
rt1: RT1 ← NEW[ST1[4]];
rt2: RT2 ← NEW[ST2[4]];
rt3: RT3 ← NEW[ST3[4]];
rt4: RT4 ← NEW[ST4[4]];
rt5: RT5 ← NEW[ST5[4]];
pt01: PT0 ← LOOPHOLE[@rt1[0]];
pt02: PT0 ← LOOPHOLE[@rt2[0]];
pt1: PT1 ← LOOPHOLE[rt1];
pt2: PT2 ← LOOPHOLE[rt2];
rt1[0] ← 100; rt1[1] ← 101; rt1[2] ← 102; rt1[3] ← 103;
rt2[0] ← 200; rt2[1] ← 201; rt2[2] ← 202; rt2[3] ← 203;
rt3[1] ← 300; rt3[2] ← 301; rt3[3] ← 302; rt3[4] ← 303;
rt4[1] ← 400; rt4[2] ← 401; rt4[3] ← 402; rt4[4] ← 403;
rt5[1] ← 1; rt5[2] ← 2; rt5[3] ← 3; rt5[4] ← 4;
SIGNAL TestSignal;
};
END.