BEGIN
XMesaProcs.Isequal[XMesaCmplr13Defs4.DefaultProc1[],1,600,"Def. Procedure 1"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.ReturnProc1[53][],1,601,"Def. Return Type11"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.PassProc1[XMesaCmplr13Defs4.DefaultProc1],1,602,"Def. Pass Type11"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.DefaultProc2[2],6,610,"Def. Procedure 2"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ReturnProc2[53][2],6,611,"Def. Return Type22"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.PassProc2[XMesaCmplr13Defs4.DefaultProc2],6,612, "Def. Pass Type22"];
XMesaCmplr13Defs4.ProcVar1 ¬ XMesaCmplr13Defs4.Type11;
XMesaProcs.Isequal[XMesaCmplr13Defs4.ProcVar1[],1,630,"ProcVar1 ¬ Type11"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.ReturnProc1[1][],1,631,"Return Type11"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.PassProc1[XMesaCmplr13Defs4.Type11],1,632,"Pass Type11"];
XMesaCmplr13Defs4.ProcVar1 ¬ XMesaCmplr13Defs4.Type12;
XMesaProcs.Isequal[XMesaCmplr13Defs4.ProcVar1[],2,640,"ProcVar1 ¬ Type12"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.ReturnProc1[2][],2,641,"Return Type12"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.PassProc1[XMesaCmplr13Defs4.Type12],2,642,"Pass Type12"];
XMesaCmplr13Defs4.ProcVar2 ¬ XMesaCmplr13Defs4.Type21;
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ProcVar2[2],4,650,"ProcVar2 ¬ Type21"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ReturnProc2[1][2],4,651,"Return Type21"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.PassProc2[XMesaCmplr13Defs4.Type21],4,652,"Pass Type21"];
XMesaCmplr13Defs4.ProcVar2 ¬ XMesaCmplr13Defs4.Type22;
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ProcVar2[2],6,660,"ProcVar2 ¬ Type22"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ReturnProc2[2][2],6,661,"Return Type22"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.PassProc2[XMesaCmplr13Defs4.Type22],6,662,"Pass Type22"];
BEGIN
aBoringPR: XMesaCmplr13Defs4.PackedRec ¬ [
-- arm1 -- [' ,' ,' ],
-- arm2 -- [1,1,1],
-- arm3 -- [TRUE,TRUE,TRUE],
-- arm4 -- [white,white,white],
-- arm5 -- [[' ,' ,' ],[' ,' ,' ],[' ,' ,' ]]
];
all1PR: XMesaCmplr13Defs4.PackedRec ¬ [
-- arm1 -- ALL['a],
-- arm2 -- ALL[2],
-- arm3 -- ALL[FALSE],
-- arm4 -- ALL[red],
-- arm5 -- ALL[ALL['x]]
];
all2PR: XMesaCmplr13Defs4.PackedRec ¬ [
arm1: ALL[XMesaCmplr10Defs1.Getchar[]],
arm2: all1PR.arm2,
arm3: all1PR.arm3,
arm4: all1PR.arm4,
arm5: [ALL['x], ALL['y], ALL['z]]
];
aBoringRofR: XMesaCmplr13Defs4.RecOfRec ¬ [
-- arm1 -- TRUE,
-- arm2 -- aBoringPR,
-- arm3 -- [' , TRUE, white, aBoringPR]
];
aRofR: XMesaCmplr13Defs4.RecOfRec ¬ [
-- arm1 -- FALSE,
-- arm2 -- [
['c,'c,'c],
[3,3,3],
[FALSE,FALSE,FALSE],
[blue,blue,blue],
[['j,'j,'j], ['k,'k,'k], ['h,'h,'h]]
],
-- arm3 -- [
-- a -- 'm,
-- b -- FALSE,
-- c -- red,
-- PackedRec -- [
-- arm1 -- ['n,'n,'n],
-- arm2 -- [5,5,5],
-- arm3 -- [TRUE,TRUE,FALSE],
-- arm4 -- [red,white,blue],
-- arm5 -- [['k,'e,'v],['i,'n,'&],['t,'w,'o]]
]
]
];
thePR: XMesaCmplr13Defs4.PackedRec ¬ aBoringPR;
theRofR: XMesaCmplr13Defs4.RecOfRec ¬ aBoringRofR;
XMesaProcs.Ischarequal[thePR.arm1[1], ' , 700, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm1[3], ' , 701, "ModHb"L];
IF thePR.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[702, "ModHb"L];
IF thePR.arm2[3] # 1 THEN XMesaProcs.PutFailMessage[703, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[1],TRUE, 704, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[3],TRUE, 705, "ModHb"L];
IF thePR.arm4[1] # white THEN XMesaProcs.PutFailMessage[706, "ModHb"L];
IF thePR.arm4[3] # white THEN XMesaProcs.PutFailMessage[707, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[1][1], ' , 708, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[3][3], ' , 709, "ModHb"L];
thePR ¬ all1PR;
XMesaProcs.Ischarequal[thePR.arm1[1], 'a, 710, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm1[3], 'a, 711, "ModHb"L];
IF thePR.arm2[1] # 2 THEN XMesaProcs.PutFailMessage[712, "ModHb"L];
IF thePR.arm2[3] # 2 THEN XMesaProcs.PutFailMessage[713, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[1],FALSE, 714, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[3],FALSE, 715, "ModHb"L];
IF thePR.arm4[1] # red THEN XMesaProcs.PutFailMessage[716, "ModHb"L];
IF thePR.arm4[3] # red THEN XMesaProcs.PutFailMessage[717, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[1][1], 'x, 718, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[3][3], 'x, 719, "ModHb"L];
thePR ¬ all2PR;
XMesaProcs.Ischarequal[thePR.arm1[1], 'b, 720, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm1[3], 'b, 721, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[1],FALSE, 724, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[3],FALSE, 725, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[1][1], 'x, 728, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[3][3], 'z, 729, "ModHb"L];
Now testing theRofR which was initialized to aBoringRofR above.
XMesaProcs.Isboolequal[theRofR.arm1, TRUE, 740, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[1], ' , 740, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[3], ' , 741, "ModHb"L];
IF theRofR.arm2.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[742, "ModHb"L];
IF theRofR.arm2.arm2[3] # 1 THEN XMesaProcs.PutFailMessage[743, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[1],TRUE, 744, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[3],TRUE, 745, "ModHb"L];
IF theRofR.arm2.arm4[1] # white THEN XMesaProcs.PutFailMessage[746, "ModHb"L];
IF theRofR.arm2.arm4[3] # white THEN XMesaProcs.PutFailMessage[747, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[1][1], ' , 748, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[3][3], ' , 749, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.a, ' , 750, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.b,TRUE, 751, "ModHb"L];
IF theRofR.arm3.c # white THEN XMesaProcs.PutFailMessage[752, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[1], ' , 750, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[3], ' , 751, "ModHb"L];
IF theRofR.arm3.p.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[752, "ModHb"L];
IF theRofR.arm3.p.arm2[3] # 1 THEN XMesaProcs.PutFailMessage[753, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[1],TRUE, 754, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[3],TRUE, 755, "ModHb"L];
IF theRofR.arm3.p.arm4[1] # white THEN XMesaProcs.PutFailMessage[756, "ModHb"L];
IF theRofR.arm3.p.arm4[3] # white THEN XMesaProcs.PutFailMessage[757, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[1][1], ' , 758, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[3][3], ' , 759, "ModHb"L];
theRofR ¬ aRofR;
XMesaProcs.Isboolequal[theRofR.arm1, FALSE, 760, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[1], 'c, 760, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[3], 'c, 761, "ModHb"L];
IF theRofR.arm2.arm2[1] # 3 THEN XMesaProcs.PutFailMessage[762, "ModHb"L];
IF theRofR.arm2.arm2[3] # 3 THEN XMesaProcs.PutFailMessage[763, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[1],FALSE, 764, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[3],FALSE, 765, "ModHb"L];
IF theRofR.arm2.arm4[1] # blue THEN XMesaProcs.PutFailMessage[766, "ModHb"L];
IF theRofR.arm2.arm4[3] # blue THEN XMesaProcs.PutFailMessage[767, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[1][1], 'j, 768, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[3][3], 'h, 769, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.a, 'm, 770, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.b,FALSE, 771, "ModHb"L];
IF theRofR.arm3.c # red THEN XMesaProcs.PutFailMessage[772, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[1], 'n, 770, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[3], 'n, 771, "ModHb"L];
IF theRofR.arm3.p.arm2[1] # 5 THEN XMesaProcs.PutFailMessage[772, "ModHb"L];
IF theRofR.arm3.p.arm2[3] # 5 THEN XMesaProcs.PutFailMessage[773, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[1],TRUE, 774, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[3],FALSE, 775, "ModHb"L];
IF theRofR.arm3.p.arm4[1] # red THEN XMesaProcs.PutFailMessage[776, "ModHb"L];
IF theRofR.arm3.p.arm4[3] # blue THEN XMesaProcs.PutFailMessage[777, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[1][1], 'k, 778, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[3][3], 'o, 779, "ModHb"L];
BEGIN
aPSR: XMesaCmplr13Defs4.PointerSizeRec ¬ [2, 'b, 'e];
bPSR: XMesaCmplr13Defs4.PointerSizeRec ¬ [4, 'd, 'j];
aPSRPointer: XMesaCmplr13Defs4.PSRPointer ¬ @aPSR;
arrayOfPSR: XMesaCmplr13Defs4.ArrayOfPSR ¬ ALL[bPSR];
aBoringPR: XMesaCmplr13Defs4.PackedRec ¬ [
-- arm1 -- [' ,' ,' ],
-- arm2 -- [1,1,1],
-- arm3 -- [TRUE,TRUE,TRUE],
-- arm4 -- [white,white,white],
-- arm5 -- [[' ,' ,' ],[' ,' ,' ],[' ,' ,' ]]
];
aBoringRofR: XMesaCmplr13Defs4.RecOfRec ¬ [
-- arm1 -- TRUE,
-- arm2 -- aBoringPR,
-- arm3 -- [' , TRUE, white, aBoringPR]
];
a1,a2,a11: XMesaCmplr13Defs4.PA1;
a3,a4,a12: XMesaCmplr13Defs4.PA2;
a5,a6,a13: XMesaCmplr13Defs4.PA3;
a7,a14: XMesaCmplr13Defs4.PA4;
a9,a15: XMesaCmplr13Defs4.PA5;
b1,b2,b3,b4: BOOLEAN;
c1,c2: XMesaCmplr13Defs4.Color;
ch1,ch2,ch3,ch4,--ch5,ch6,--ch7,ch8, ch9,ch10,ch11: CHAR;
ch12,ch13,ch14,ch15,ch16,ch17,ch18--,ch19,ch20--: CHAR;
i1,--i2,-- i3, i4,i5,i6,i7,i8--,i9--: INTEGER;
lp: LONG POINTER ¬ LOOPHOLE[aPSR]; bogus test
li: LONG INTEGER ¬ LOOPHOLE[bPSR]; bogus test
r1,r2,r3: XMesaCmplr13Defs4.PackedRec;
ReturnPSR: PROCEDURE RETURNS [r: XMesaCmplr13Defs4.PointerSizeRec] = {
RETURN [aPSR];
};
RetPSRPoint: PROCEDURE RETURNS [p: XMesaCmplr13Defs4.PSRPointer] = {
RETURN [aPSRPointer];
};
ReturnBoringPR: PROCEDURE RETURNS [r: XMesaCmplr13Defs4.PackedRec] = {
RETURN [aBoringPR];
};
left hand side emphasis
[a1, a3, a5, a7, a9] ¬ aBoringPR;
[b1, r1, [ch1, b2, c1, r2]] ¬ aBoringRofR;
[b3, r3, [ch2, b4, c2, [a2, a4, a6]]] ¬ aBoringRofR;
XMesaProcs.Ischarequal[a1[1],' ,800, "ModHc"L];
IF a3[1] # 1 THEN XMesaProcs.PutFailMessage[801, "ModHc"L];
XMesaProcs.Isboolequal[a5[1], TRUE, 802, "ModHc"L];
IF a7[1] # white THEN XMesaProcs.PutFailMessage[803, "ModHc"L];
XMesaProcs.Ischarequal[a9[1][1],' ,804, "ModHc"L];
XMesaProcs.Ischarequal[a9[3][3],' ,805, "ModHc"L];
XMesaProcs.Isboolequal[b1, TRUE, 810, "ModHc"L];
XMesaProcs.Ischarequal[r1.arm1[1], ' , 811, "ModHc"L];
IF r1.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[812, "ModHc"L];
XMesaProcs.Isboolequal[r1.arm3[1],TRUE, 813, "ModHc"L];
IF r1.arm4[1] # white THEN XMesaProcs.PutFailMessage[814, "ModHc"L];
XMesaProcs.Ischarequal[r1.arm5[1][1], ' , 815, "ModHc"L];
XMesaProcs.Ischarequal[r1.arm5[3][3], ' , 816, "ModHc"L];
XMesaProcs.Ischarequal[ch1, ' ,817, "ModHc"L];
XMesaProcs.Isboolequal[b2, TRUE, 818, "ModHc"L];
IF c1 # white THEN XMesaProcs.PutFailMessage[819, "ModHc"L];
XMesaProcs.Ischarequal[r2.arm1[1], ' , 820, "ModHc"L];
IF r2.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[821, "ModHc"L];
XMesaProcs.Isboolequal[r2.arm3[1],TRUE, 822, "ModHc"L];
IF r2.arm4[1] # white THEN XMesaProcs.PutFailMessage[823, "ModHc"L];
XMesaProcs.Ischarequal[r2.arm5[1][1], ' , 824, "ModHc"L];
XMesaProcs.Ischarequal[r2.arm5[3][3], ' , 825, "ModHc"L];
XMesaProcs.Isboolequal[b3, TRUE, 830, "ModHc"L];
XMesaProcs.Ischarequal[r3.arm1[1], ' , 831, "ModHc"L];
IF r3.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[832, "ModHc"L];
XMesaProcs.Isboolequal[r3.arm3[1],TRUE, 833, "ModHc"L];
IF r3.arm4[1] # white THEN XMesaProcs.PutFailMessage[834, "ModHc"L];
XMesaProcs.Ischarequal[r3.arm5[1][1], ' , 835, "ModHc"L];
XMesaProcs.Ischarequal[r3.arm5[3][3], ' , 836, "ModHc"L];
XMesaProcs.Ischarequal[ch2, ' ,837, "ModHc"L];
XMesaProcs.Isboolequal[b4, TRUE, 838, "ModHc"L];
IF c2 # white THEN XMesaProcs.PutFailMessage[839, "ModHc"L];
XMesaProcs.Ischarequal[a2[1], ' , 840, "ModHc"L];
IF a4[1] # 1 THEN XMesaProcs.PutFailMessage[841, "ModHc"L];
XMesaProcs.Isboolequal[a6[1],TRUE, 842, "ModHc"L];
right hand side emphasis
[[a11, a12, a13, a14, a15]] ¬ ReturnBoringPR[];
[[i1, ch3, ch4]] ¬ ReturnPSR[];
[i2, ch5, ch6] ¬ LOOPHOLE [lp, XMesaCmplr13Defs4.PointerSizeRec]; This is a bogus test
[i3, ch7, ch8] ¬ IF XMesaCmplr10Defs1.Getb[] THEN aPSR ELSE bPSR;
[i4, ch9, ch10] ¬ RetPSRPoint[];
[i5, ch11, ch12] ¬ arrayOfPSR[2];
[i6, ch13, ch14] ¬ XMesaCmplr13Defs4.PointerSizeRec[XMesaCmplr10Defs1.Geti[],
XMesaCmplr10Defs1.Getchar[],XMesaCmplr10Defs1.Getchar[]];
[i7, ch15, ch16] ¬ bPSR ¬ RetPSRPoint[]; --bPSR is changed to aPSR here
[[i8, ch17, ch18]] ¬ XMesaCmplr13Defs4.InlineRetPSR[aPSR];
[i9, ch19, ch20] ¬ LOOPHOLE [li, XMesaCmplr13Defs4.PointerSizeRec]; bogus test
check for aBoringPR
XMesaProcs.Ischarequal[a11[1],' ,850, "ModHc"L];
IF a12[1] # 1 THEN XMesaProcs.PutFailMessage[851, "ModHc"L];
XMesaProcs.Isboolequal[a13[1], TRUE, 852, "ModHc"L];
IF a14[1] # white THEN XMesaProcs.PutFailMessage[853, "ModHc"L];
XMesaProcs.Ischarequal[a15[1][1],' ,854, "ModHc"L];
XMesaProcs.Ischarequal[a15[3][3],' ,855, "ModHc"L];
aPSR from ReturnPSR
XMesaProcs.Isequal[i1, 2, 860, "ModHc"L];
XMesaProcs.Ischarequal[ch3, 'b, 861, "ModHc"L];
XMesaProcs.Ischarequal[ch4, 'e, 862, "ModHc"L];
aPSR from LOOPHOLE of a LONG POINTER
<<Bogus test
XMesaProcs.Isequal[i2, 2, 870, "ModHc"L];
XMesaProcs.Ischarequal[ch5, 'b, 871, "ModHc"L];
XMesaProcs.Ischarequal[ch6, 'e, 872, "ModHc"L];
>>
bPSR from conditional r.h.s.
XMesaProcs.Isequal[i3, 4, 880, "ModHc"L];
XMesaProcs.Ischarequal[ch7, 'd, 881, "ModHc"L];
XMesaProcs.Ischarequal[ch8, 'j, 882, "ModHc"L];
aPSR from RetPSRPoint
XMesaProcs.Isequal[i4, 2, 890, "ModHc"L];
XMesaProcs.Ischarequal[ch9, 'b, 891, "ModHc"L];
XMesaProcs.Ischarequal[ch10, 'e, 892, "ModHc"L];
bPSR from arrayOfPSR
XMesaProcs.Isequal[i5, 4, 900, "ModHc"L];
XMesaProcs.Ischarequal[ch11, 'd, 901, "ModHc"L];
XMesaProcs.Ischarequal[ch12, 'j, 902, "ModHc"L];
extract from constructor made by importing the 3 fields
XMesaProcs.Isequal[i6, 2, 910, "ModHc"L];
XMesaProcs.Ischarequal[ch13, 'b, 911, "ModHc"L];
XMesaProcs.Ischarequal[ch14, 'b, 912, "ModHc"L];
aPSR from r.h.s. assignment from RetPSRPoint
XMesaProcs.Isequal[i7, 2, 920, "ModHc"L];
XMesaProcs.Ischarequal[ch15, 'b, 921, "ModHc"L];
XMesaProcs.Ischarequal[ch16, 'e, 922, "ModHc"L];
aPSR from InlineRetPSR
XMesaProcs.Isequal[i8, 2, 930, "ModHc"L];
XMesaProcs.Ischarequal[ch17, 'b, 931, "ModHc"L];
XMesaProcs.Ischarequal[ch18, 'e, 932, "ModHc"L];
bPSR from LOOPHOLE of a LONG INTEGER
<< Bogus test
XMesaProcs.Isequal[i9, 4, 940, "ModHc"L];
XMesaProcs.Ischarequal[ch19, 'd, 941, "ModHc"L];
XMesaProcs.Ischarequal[ch20, 'j, 942, "ModHc"L];
>>