/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 5:10:15 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: ListImpl, module: ListImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1364247912,3431180257] ListImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
#define SOURCE(p, l) /* source p, l */
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q2676();
static void ListImpl←P0();
static word EqLists←P120();
static word Memb←P180();
static word Append←P240();
static word Reverse←P300();
static word Remove←P360();
static word Union←P420();
static word Intersection←P480();
static word ListDifference←P540();
static word LDiff←P600();
static word Nconc←P660();
static word Nconc1←P720();
static word DReverse←P780();
static word DRemove←P840();
static word DSubst←P900();
static word NthTail←P960();
static word NthElement←P1020();
static word DotCons←P1080();
static word Assoc←P1140();
static word PutAssoc←P1200();
static word Length←P1260();
static void Map←P1320();
static word Subst←P1380();
static void Kill←P1440();
static word Sort←P1500();
static void innerSort←P2028();
static word Merge←P1560();
static word UniqueSort←P1620();
static word Compare←P1680();
static struct {unsigned f; char r[20];} string1 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\200\000\000"};
static struct {unsigned f; char r[48];} string4 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\055\153\222\376\300\327\164\352\142\100\200\005\004\162\145\163\164\214\216\257\300\055\153\222\376\300\327\164\352\142\100\200\261\000\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string6 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[4];} string7 = {65540, "\242\000\000"};
static struct {unsigned f; char r[4];} string8 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\121\120\305\150\300\314\203\247\341\100\164\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {
word f0[12]; word f12; word f13; word f14;
word f15; word f16; word f17; word f18;
word f19; word f20; word f21; word f22;
word f23; word f24; word f25; word f26;
word f27; word f28; word f29; word f30;
word f31; word f32; word f33; word f34;
word f35; word f36; word f37; word f38;
word f39; word f40; word f41; word f42;
word f43; word f44; word f45; word f46;
word f47; word f48; word f49; word f50;
word f51; word f52; word f53; word f54;
word f55; word f56; word f57; word f58;
word f59; word f60; word f61; word f62;
word f63; word f64; word f65; word f66;
word f67[4];
} globalframe = {
{0}, (word) Compare←P1680, 0, (word) UniqueSort←P1620,
0, (word) Merge←P1560, 0, (word) Sort←P1500,
0, (word) Kill←P1440, 0, (word) Subst←P1380,
0, (word) Map←P1320, 0, (word) Length←P1260,
0, (word) PutAssoc←P1200, 0, (word) Assoc←P1140,
0, (word) DotCons←P1080, 0, (word) NthElement←P1020,
0, (word) NthTail←P960, 0, (word) DSubst←P900,
0, (word) DRemove←P840, 0, (word) DReverse←P780,
0, (word) Nconc1←P720, 0, (word) Nconc←P660,
0, (word) LDiff←P600, 0, (word) ListDifference←P540,
0, (word) Intersection←P480, 0, (word) Union←P420,
0, (word) Remove←P360, 0, (word) Reverse←P300,
0, (word) Append←P240, 0, (word) Memb←P180,
0, (word) EqLists←P120, 0, (word) ListImpl←P0,
{0}
};
static void NoName←Q2676()
{
register ptr gf←c0206 = (ptr) &globalframe;
word var←c16496;
(* (( (ptr) gf←c0206)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c0206)+5) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
(* (( (ptr) gf←c0206)+6) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string2);
(* (( (ptr) gf←c0206)+7) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(* (( (ptr) gf←c0206)+9) ) = (word) XR←GetTypeIndexS((word) (&string7));
(* (( (ptr) gf←c0206)+10) ) = (word) XR←GetTypeIndexS((word) (&string8));
(void) XR←DeclareGlobalFrame((word) "ListImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string9)), (word) (( (bPt) gf←c0206)+264)
/* var←c14928 */ );
var←c16496 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string10)), 16);
(* (( (ptr) gf←c0206)+69)/* var←c16240 */ ) = var←c16496;
(void) XR←ImportProcS(var←c16496, 67372289);
var←c16496 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string11)), 43);
(* (( (ptr) gf←c0206)+68)/* var←c16080 */ ) = var←c16496;
(void) XR←ImportProcS(var←c16496, 67896067);
var←c16496 = (word) XR←ExportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string12)), 28);
(* (( (ptr) gf←c0206)+70)/* var←c16528 */ ) = var←c16496;
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+256)/* var←c14896 */ , 67633154);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+248)/* var←c14864 */ , 67633410);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+240)/* var←c14832 */ , 67633666);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+224)/* var←c14768 */ , 67633922);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+232)/* var←c14800 */ , 67372033);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+216)/* var←c14736 */ , 67634434);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+208)/* var←c14704 */ , 67634690);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+200)/* var←c14672 */ , 67634946);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+192)/* var←c14640 */ , 67635202);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+184)/* var←c14608 */ , 67635458);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+176)/* var←c14576 */ , 67635714);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+160)/* var←c14512 */ , 67635970);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+168)/* var←c14544 */ , 67374081);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+152)/* var←c14480 */ , 67898627);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+144)/* var←c14448 */ , 67636738);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+136)/* var←c14416 */ , 67636994);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+120)/* var←c14352 */ , 67637250);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+128)/* var←c14384 */ , 67637506);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+112)/* var←c14320 */ , 67899907);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+104)/* var←c14288 */ , 67375873);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+96)/* var←c14256 */ , 529410);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+88)/* var←c14224 */ , 67900675);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+80)/* var←c14192 */ , 267777);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+72)/* var←c14160 */ , 67639042);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+56)/* var←c14096 */ , 67639298);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+64)/* var←c14128 */ , 67901699);
(void) XR←ExportProcS(var←c16496, (word) (( (bPt) gf←c0206)+48)/* var←c14064 */ , 67639810);
(void) XR←ExportVar(var←c16496, 27, (word) (( (bPt) gf←c0206)+44)/* var←c14032 */ );
}
static void ListImpl←P0(formal←c036, formal←c035)
word formal←c036;
word formal←c035;
{
/* ListImpl: */
}
static word EqLists←P120(l1←v3724, l2←v3752)
word l1←v3724;
word l2←v3752;
{
word var←c3796;
/* EqLists: */
SOURCE(400, 289)
SOURCE(455, 28)
if ((l1←v3724 == l2←v3752)) {
SOURCE(471, 12)
return(1);
};
SOURCE(485, 42)
if ((l1←v3724 == 0) || (l2←v3752 == 0)) {
SOURCE(514, 13)
return(0);
};
SOURCE(529, 133)
lab←L100002: ;
if ((l1←v3724 != 0)) {
}
else {
goto lab←L100000;
};
{
word var←c14960;
word x←v13880;
word y←v13908;
SOURCE(548, 30)
if ((l2←v3752 == 0)) {
SOURCE(565, 13)
return(0);
};
SOURCE(580, 54)
x←v13880 = (* (ptr) l1←v3724 );
y←v13908 = (* (ptr) l2←v3752 );
SOURCE(383, 13)
var←c14960 = (x←v13880 == y←v13908);
if (((0 != var←c14960)
)) {
}
else {
SOURCE(621, 13)
return(0);
};
SOURCE(636, 12)
l1←v3724 = (* (( (ptr) l1←v3724)+1) );
SOURCE(650, 12)
l2←v3752 = (* (( (ptr) l2←v3752)+1) );
};
goto lab←L100002;
lab←L100000: ;
SOURCE(673, 16)
return((l2←v3752 == 0));
}
static word Memb←P180(ref←v3856, list←v3884)
word ref←v3856;
word list←v3884;
{
word var←c3940;
/* Memb: */
SOURCE(695, 163)
SOURCE(759, 75)
lab←L100006: ;
if ((list←v3884 != 0)) {
}
else {
goto lab←L100004;
};
SOURCE(779, 37)
if (((* (ptr) list←v3884 ) == ref←v3856)) {
SOURCE(804, 12)
return(1);
};
SOURCE(818, 16)
list←v3884 = (* (( (ptr) list←v3884)+1) );
goto lab←L100006;
lab←L100004: ;
SOURCE(845, 13)
return(0);
}
static word Append←P240(l1←v4000, l2←v4028)
word l1←v4000;
word l2←v4028;
{
register ptr gf←c16560 = (ptr) &globalframe;
word val←v4072;
word z←v7280 = 0;
/* Append: */
SOURCE(865, 256)
SOURCE(865, 256)
val←v4072 = 0;
SOURCE(950, 8)
val←v4072 = l2←v4028;
SOURCE(960, 28)
if ((l1←v4000 == 0)) {
SOURCE(977, 11)
return(val←v4072);
};
SOURCE(990, 25)
{
word var←c14992;
var←c14992 = XR←NewObject(8, (* (( (ptr) gf←c16560)+4) ));
(* (ptr) var←c14992 ) = (* (ptr) l1←v4000 );
(* (( (ptr) var←c14992)+1) ) = val←v4072;
val←v4072 = var←c14992;
};
SOURCE(1017, 7)
z←v7280 = val←v4072;
SOURCE(1026, 73)
lab←L100009: ;
l1←v4000 = (* (( (ptr) l1←v4000)+1) );
if ((l1←v4000 != 0)) {
}
else {
goto lab←L100007;
};
SOURCE(1056, 31)
{
word var←c15024;
var←c15024 = XR←NewObject(8, (* (( (ptr) gf←c16560)+4) ));
(* (ptr) var←c15024 ) = (* (ptr) l1←v4000 );
(* (( (ptr) var←c15024)+1) ) = (* (( (ptr) z←v7280)+1) );
(* (( (ptr) z←v7280)+1) ) = var←c15024;
};
SOURCE(1089, 10)
z←v7280 = (* (( (ptr) z←v7280)+1) );
goto lab←L100009;
lab←L100007: ;
SOURCE(1110, 11)
return(val←v4072);
}
static word Reverse←P300(list←v4132)
word list←v4132;
{
register ptr gf←c16592 = (ptr) &globalframe;
word val←v4176;
/* Reverse: */
SOURCE(1140, 155)
SOURCE(1140, 155)
val←v4176 = 0;
SOURCE(1197, 9)
val←v4176 = 0;
SOURCE(1208, 65)
lab←L100012: ;
if ((list←v4132 != 0)) {
}
else {
goto lab←L100010;
};
SOURCE(1228, 27)
{
word var←c15056;
var←c15056 = XR←NewObject(8, (* (( (ptr) gf←c16592)+4) ));
(* (ptr) var←c15056 ) = (* (ptr) list←v4132 );
(* (( (ptr) var←c15056)+1) ) = val←v4176;
val←v4176 = var←c15056;
};
SOURCE(1257, 16)
list←v4132 = (* (( (ptr) list←v4132)+1) );
goto lab←L100012;
lab←L100010: ;
SOURCE(1284, 11)
return(val←v4176);
}
static word Remove←P360(ref←v4236, list←v4264)
word ref←v4236;
word list←v4264;
{
register ptr gf←c16624 = (ptr) &globalframe;
word val←v4320;
word z←v7324 = 0;
/* Remove: */
SOURCE(1315, 275)
SOURCE(1315, 275)
val←v4320 = 0;
SOURCE(1401, 9)
val←v4320 = 0;
SOURCE(1412, 178)
lab←L100015: ;
if ((list←v4264 != 0)) {
}
else {
goto lab←L100013;
};
{
word var←c15088;
word x←v13804;
word y←v13832;
SOURCE(1432, 138)
x←v13804 = (* (ptr) list←v4264 );
y←v13832 = ref←v4236;
SOURCE(383, 13)
var←c15088 = (x←v13804 == y←v13832);
if (((0 == var←c15088)
)) {
SOURCE(1462, 108)
if ((val←v4320 == 0)) {
SOURCE(1481, 27)
{
word var←c15120;
var←c15120 = XR←NewObject(8, (* (( (ptr) gf←c16624)+4) ));
(* (ptr) var←c15120 ) = (* (ptr) list←v4264 );
val←v4320 = var←c15120;
};
SOURCE(1510, 7)
z←v7324 = val←v4320;
}
else {
SOURCE(1525, 33)
{
word var←c15152;
var←c15152 = XR←NewObject(8, (* (( (ptr) gf←c16624)+4) ));
(* (ptr) var←c15152 ) = (* (ptr) list←v4264 );
(* (( (ptr) var←c15152)+1) ) = (* (( (ptr) z←v7324)+1) );
(* (( (ptr) z←v7324)+1) ) = var←c15152;
};
SOURCE(1560, 10)
z←v7324 = (* (( (ptr) z←v7324)+1) );
};
};
SOURCE(1574, 16)
list←v4264 = (* (( (ptr) list←v4264)+1) );
};
goto lab←L100015;
lab←L100013: ;
SOURCE(1315, 275)
return(val←v4320);
}
static word Union←P420(l1←v4380, l2←v4408)
word l1←v4380;
word l2←v4408;
{
register ptr gf←c16656 = (ptr) &globalframe;
word var←c4452;
word l←v7368;
/* Union: */
SOURCE(1622, 166)
SOURCE(1674, 12)
l←v7368 = l2←v4408;
SOURCE(1688, 80)
lab←L100019: ;
if ((l1←v4380 != 0)) {
}
else {
goto lab←L100017;
};
SOURCE(1706, 48)
if ((0 == (word) Memb←P180((* (ptr) l1←v4380 ), l←v7368))) {
SOURCE(1733, 21)
{
word var←c15184;
var←c15184 = XR←NewObject(8, (* (( (ptr) gf←c16656)+4) ));
(* (ptr) var←c15184 ) = (* (ptr) l1←v4380 );
(* (( (ptr) var←c15184)+1) ) = l←v7368;
l←v7368 = var←c15184;
};
};
SOURCE(1756, 12)
l1←v4380 = (* (( (ptr) l1←v4380)+1) );
goto lab←L100019;
lab←L100017: ;
SOURCE(1779, 9)
return(l←v7368);
}
static word Intersection←P480(l1←v4512, l2←v4540)
word l1←v4512;
word l2←v4540;
{
register ptr gf←c16688 = (ptr) &globalframe;
word var←c4584;
word l←v7412 = 0;
/* Intersection: */
SOURCE(1806, 174)
SOURCE(1880, 80)
lab←L100022: ;
if ((l1←v4512 != 0)) {
}
else {
goto lab←L100020;
};
SOURCE(1898, 48)
if ((0 != (word) Memb←P180((* (ptr) l1←v4512 ), l2←v4540))) {
SOURCE(1925, 21)
{
word var←c15216;
var←c15216 = XR←NewObject(8, (* (( (ptr) gf←c16688)+4) ));
(* (ptr) var←c15216 ) = (* (ptr) l1←v4512 );
(* (( (ptr) var←c15216)+1) ) = l←v7412;
l←v7412 = var←c15216;
};
};
SOURCE(1948, 12)
l1←v4512 = (* (( (ptr) l1←v4512)+1) );
goto lab←L100022;
lab←L100020: ;
SOURCE(1971, 9)
return(l←v7412);
}
static word ListDifference←P540(l1←v4644, l2←v4672)
word l1←v4644;
word l2←v4672;
{
word var←c4716;
word l←v7456 = 0;
/* ListDifference: */
SOURCE(2005, 208)
SOURCE(2081, 27)
if ((l2←v4672 == 0)) {
SOURCE(2098, 10)
return(l1←v4644);
};
SOURCE(2110, 83)
lab←L100025: ;
if ((l1←v4644 != 0)) {
}
else {
goto lab←L100023;
};
SOURCE(2128, 51)
if ((0 == (word) Memb←P180((* (ptr) l1←v4644 ), l2←v4672))) {
SOURCE(2156, 23)
l←v7456 = (word) Nconc1←P720(l←v7456, (* (ptr) l1←v4644 ));
};
SOURCE(2181, 12)
l1←v4644 = (* (( (ptr) l1←v4644)+1) );
goto lab←L100025;
lab←L100023: ;
SOURCE(2204, 9)
return(l←v7456);
}
static word LDiff←P600(list←v4776, tailOfList←v4804)
word list←v4776;
word tailOfList←v4804;
{
register ptr gf←c16720 = (ptr) &globalframe;
word var←c4848;
word endOfL←v7500 = 0;
word l←v7528 = 0;
/* LDiff: */
SOURCE(2240, 376)
SOURCE(2325, 37)
if ((tailOfList←v4804 == 0)) {
SOURCE(2350, 12)
return(list←v4776);
};
SOURCE(2364, 200)
lab←L100028: ;
if ((list←v4776 != 0)) {
}
else {
goto lab←L100026;
};
SOURCE(2384, 35)
if ((list←v4776 == tailOfList←v4804)) {
SOURCE(2410, 9)
return(l←v7528);
};
SOURCE(2421, 124)
if ((endOfL←v7500 == 0)) {
SOURCE(2443, 25)
{
word var←c15248;
var←c15248 = XR←NewObject(8, (* (( (ptr) gf←c16720)+4) ));
(* (ptr) var←c15248 ) = (* (ptr) list←v4776 );
l←v7528 = var←c15248;
};
SOURCE(2470, 10)
endOfL←v7500 = l←v7528;
}
else {
SOURCE(2488, 35)
{
word var←c15280;
var←c15280 = XR←NewObject(8, (* (( (ptr) gf←c16720)+4) ));
(* (ptr) var←c15280 ) = (* (ptr) list←v4776 );
(* (( (ptr) endOfL←v7500)+1) ) = var←c15280;
};
SOURCE(2525, 20)
endOfL←v7500 = (* (( (ptr) endOfL←v7500)+1) );
};
SOURCE(2548, 16)
list←v4776 = (* (( (ptr) list←v4776)+1) );
goto lab←L100028;
lab←L100026: ;
SOURCE(2575, 41)
{
W2 var←c085;
(* (ptr) (word) &var←c085 ) = list←v4776;
(* (( (ptr) (word) &var←c085) + 1) ) = tailOfList←v4804;
{
word var←c086;
(void) (XR←RaiseSignal((word) (( (bPt) gf←c16720)+44)/* var←c14032 */ , (word) &var←c086, (word) &var←c085));
return(var←c086);
};
};
}
static word Nconc←P660(l1←v4908, l2←v4936)
word l1←v4908;
word l2←v4936;
{
word var←c4980;
word z←v7572;
/* Nconc: */
SOURCE(2623, 160)
SOURCE(2675, 12)
z←v7572 = l1←v4908;
SOURCE(2689, 26)
if ((z←v7572 == 0)) {
SOURCE(2705, 10)
return(l2←v4936);
};
SOURCE(2717, 32)
lab←L100031: ;
if (((* (( (ptr) z←v7572)+1) ) != 0)) {
}
else {
goto lab←L100029;
};
SOURCE(2739, 10)
z←v7572 = (* (( (ptr) z←v7572)+1) );
goto lab←L100031;
lab←L100029: ;
SOURCE(2760, 11)
(* (( (ptr) z←v7572)+1) ) = l2←v4936;
SOURCE(2773, 10)
return(l1←v4908);
}
static word Nconc1←P720(list←v5040, ref←v5068)
word list←v5040;
word ref←v5068;
{
register ptr gf←c16752 = (ptr) &globalframe;
word var←c5124;
word z←v7616;
word new←v7644;
/* Nconc1: */
SOURCE(2789, 202)
SOURCE(2854, 14)
z←v7616 = list←v5040;
SOURCE(2870, 21)
{
word var←c15376;
new←v7644 = XR←NewObject(8, (* (( (ptr) gf←c16752)+4) ));
var←c15376 = new←v7644;
(* (ptr) var←c15376 ) = ref←v5068;
};
SOURCE(2893, 27)
if ((z←v7616 == 0)) {
SOURCE(2909, 11)
return(new←v7644);
};
SOURCE(2922, 32)
lab←L100034: ;
if (((* (( (ptr) z←v7616)+1) ) != 0)) {
}
else {
goto lab←L100032;
};
SOURCE(2944, 10)
z←v7616 = (* (( (ptr) z←v7616)+1) );
goto lab←L100034;
lab←L100032: ;
SOURCE(2965, 12)
(* (( (ptr) z←v7616)+1) ) = new←v7644;
SOURCE(2979, 12)
return(list←v5040);
}
static word DReverse←P780(list←v5184)
word list←v5184;
{
word var←c5228;
word l1←v7688 = 0;
word l2←v7716 = 0;
word l3←v7744 = 0;
/* DReverse: */
SOURCE(2997, 202)
SOURCE(3075, 30)
if ((list←v5184 == 0)) {
SOURCE(3094, 11)
return(0);
};
SOURCE(3107, 9)
l3←v7744 = list←v5184;
SOURCE(3118, 60)
lab←L100037: ;
l1←v7688 = l3←v7744;
if ((l3←v7744 != 0)) {
}
else {
goto lab←L100035;
};
SOURCE(3143, 12)
l3←v7744 = (* (( (ptr) l3←v7744)+1) );
SOURCE(3157, 12)
(* (( (ptr) l1←v7688)+1) ) = l2←v7716;
SOURCE(3171, 7)
l2←v7716 = l1←v7688;
goto lab←L100037;
lab←L100035: ;
SOURCE(3189, 10)
return(l2←v7716);
}
static word DRemove←P840(ref←v5288, list←v5316)
word ref←v5288;
word list←v5316;
{
word var←c5372;
word l←v7788 = 0;
word l1←v7816 = 0;
/* DRemove: */
SOURCE(3220, 282)
SOURCE(3306, 8)
l←v7788 = list←v5316;
SOURCE(3316, 162)
lab←L100040: ;
if ((l←v7788 != 0)) {
}
else {
goto lab←L100038;
};
{
word var←c15408;
word x←v13728;
word y←v13756;
SOURCE(3333, 122)
x←v13728 = (* (ptr) l←v7788 );
y←v13756 = ref←v5288;
SOURCE(383, 13)
var←c15408 = (x←v13728 == y←v13756);
if (((0 != var←c15408)
)) {
SOURCE(3360, 31)
if ((l1←v7816 == 0)) {
SOURCE(3377, 14)
return((* (( (ptr) l←v7788)+1) ));
};
SOURCE(3425, 16)
(* (( (ptr) l1←v7816)+1) ) = (* (( (ptr) l←v7788)+1) );
SOURCE(3443, 12)
return(list←v5316);
};
SOURCE(3460, 6)
l1←v7816 = l←v7788;
SOURCE(3468, 10)
l←v7788 = (* (( (ptr) l←v7788)+1) );
};
goto lab←L100040;
lab←L100038: ;
SOURCE(3489, 13)
return(list←v5316);
}
static word DSubst←P900(new←v5432, old←v5460, expr←v5488)
word new←v5432;
word old←v5460;
word expr←v5488;
{
register ptr gf←c16784 = (ptr) &globalframe;
word var←c5544;
/* DSubst: */
SOURCE(3523, 282)
SOURCE(3593, 30)
if ((expr←v5488 == 0)) {
SOURCE(3612, 11)
return(0);
};
SOURCE(3625, 148)
{
register word l←v7860;
l←v7860 = expr←v5488;
lab←L100045: ;
if ((l←v7860 != 0)) {
}
else {
goto lab←L100042;
};
{
word var←c15440;
word x←v13652;
word y←v13680;
SOURCE(3669, 39)
x←v13652 = (* (ptr) l←v7860 );
y←v13680 = old←v5460;
SOURCE(383, 13)
var←c15440 = (x←v13652 == y←v13680);
if (((0 != var←c15440)
)) {
SOURCE(3695, 13)
(* (ptr) l←v7860 ) = new←v5432;
};
SOURCE(3710, 63)
{
word var←c15472;
var←c15472 = (* (ptr) l←v7860 );
if ((var←c15472 == 0)) {
goto lab←L100047;
};
if (((* (( (ptr) gf←c16784)+4) ) == XR←GetReferentType(var←c15472))) {
{
word z←v7904;
z←v7904 = var←c15472;
SOURCE(3746, 27)
(* (ptr) l←v7860 ) = (word) DSubst←P900(new←v5432, old←v5460, z←v7904);
};
}
else {
lab←L100047: ;
};
};
};
l←v7860 = (* (( (ptr) l←v7860)+1) );
goto lab←L100045;
lab←L100042: ;
};
SOURCE(3793, 12)
return(expr←v5488);
}
static word NthTail←P960(list←v5604, n←v5632)
word list←v5604;
word n←v5632;
{
word var←c5676;
/* NthTail: */
SOURCE(3823, 357)
SOURCE(3882, 24)
if (( (int)n←v5632 == (int)0)) {
SOURCE(3894, 12)
return(list←v5604);
};
SOURCE(3908, 30)
if ((list←v5604 == 0)) {
SOURCE(3927, 11)
return(0);
};
SOURCE(3940, 240)
if (( (int)n←v5632 > (int)0)) {
SOURCE(3954, 100)
{
register word noName←c15504 = 0;
register word noName←c15536;
noName←c15536 = n←v5632;
if (( (int)noName←c15504 >= (int)noName←c15536)) {
goto lab←L100048;
};
lab←L100051: ;
SOURCE(3973, 16)
list←v5604 = (* (( (ptr) list←v5604)+1) );
SOURCE(3991, 30)
if ((list←v5604 == 0)) {
SOURCE(4010, 11)
return(0);
};
noName←c15504 = (noName←c15504 + 1);
if (( (int)noName←c15504 < (int)noName←c15536)) {
goto lab←L100051;
};
lab←L100048: ;
SOURCE(4042, 12)
return(list←v5604);
};
}
else {
SOURCE(4070, 112)
{
word lead←v7948;
SOURCE(4071, 30)
lead←v7948 = (word) NthTail←P960(list←v5604, INEG(n←v5632));
SOURCE(4103, 54)
lab←L100054: ;
if ((lead←v7948 != 0)) {
}
else {
goto lab←L100052;
};
SOURCE(4123, 16)
lead←v7948 = (* (( (ptr) lead←v7948)+1) );
SOURCE(4141, 16)
list←v5604 = (* (( (ptr) list←v5604)+1) );
goto lab←L100054;
lab←L100052: ;
SOURCE(4168, 12)
return(list←v5604);
};
};
}
static word NthElement←P1020(list←v5736, n←v5764)
word list←v5736;
word n←v5764;
{
word var←c5808;
word tail←v7992 = 0;
/* NthElement: */
SOURCE(4203, 261)
SOURCE(4281, 12)
if (( (int)n←v5764 == (int)0)) {
SOURCE(4293, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(4300, 118)
if (( (int)n←v5764 > (int)0)) {
SOURCE(4315, 25)
tail←v7992 = (word) NthTail←P960(list←v5736, (n←v5764 - 1));
SOURCE(4342, 19)
if ((tail←v7992 == 0)) {
SOURCE(4361, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(4368, 18)
return((* (ptr) tail←v7992 ));
}
else {
SOURCE(4395, 23)
tail←v7992 = (word) NthTail←P960(list←v5736, n←v5764);
};
SOURCE(4420, 19)
if ((tail←v7992 == 0)) {
SOURCE(4439, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(4446, 18)
return((* (ptr) tail←v7992 ));
}
static word DotCons←P1080(key←v5880, val←v5908)
word key←v5880;
word val←v5908;
{
register ptr gf←c16816 = (ptr) &globalframe;
word var←c5964;
/* DotCons: */
SOURCE(4488, 106)
SOURCE(4554, 40)
{
word var←c15600;
var←c15600 = XR←NewObject(8, (* (( (ptr) gf←c16816)+5) ));
(* (ptr) var←c15600 ) = key←v5880;
(* (( (ptr) var←c15600)+1) ) = val←v5908;
return(var←c15600);
};
}
static word Assoc←P1140(key←v6024, aList←v6052)
word key←v6024;
word aList←v6052;
{
word var←c6108;
/* Assoc: */
SOURCE(4600, 169)
SOURCE(4600, 169)
var←c6108 = 0;
SOURCE(4675, 94)
lab←L100057: ;
if ((aList←v6052 != 0)) {
}
else {
goto lab←L100055;
};
SOURCE(4696, 53)
if (((* (ptr) (* (ptr) aList←v6052 ) ) == key←v6024)) {
SOURCE(4726, 23)
return((* (( (ptr) (* (ptr) aList←v6052 ))+1) ));
};
SOURCE(4751, 18)
aList←v6052 = (* (( (ptr) aList←v6052)+1) );
goto lab←L100057;
lab←L100055: ;
SOURCE(4600, 169)
return(var←c6108);
}
static word PutAssoc←P1200(key←v6180, val←v6208, aList←v6236)
word key←v6180;
word val←v6208;
word aList←v6236;
{
register ptr gf←c16848 = (ptr) &globalframe;
word var←c6304;
word lag←v8036 = 0;
word new←v8064 = 0;
/* PutAssoc: */
SOURCE(4784, 361)
SOURCE(4904, 134)
{
register word each←v8108;
each←v8108 = aList←v6236;
lab←L100061: ;
if ((each←v8108 != 0)) {
}
else {
goto lab←L100058;
};
SOURCE(4959, 66)
if (((* (ptr) (* (ptr) each←v8108 ) ) == key←v6180)) {
SOURCE(4989, 20)
(* (( (ptr) (* (ptr) each←v8108 ))+1) ) = val←v6208;
SOURCE(5011, 14)
return(aList←v6236);
};
SOURCE(5028, 10)
lag←v8036 = each←v8108;
each←v8108 = (* (( (ptr) each←v8108)+1) );
goto lab←L100061;
lab←L100058: ;
};
SOURCE(5049, 29)
{
word var←c15632;
word var←c15664;
var←c15632 = XR←NewObject(8, (* (( (ptr) gf←c16848)+6) ));
var←c15664 = var←c15632;
(* (ptr) var←c15664 ) = (word) DotCons←P1080(key←v6180, val←v6208);
new←v8064 = var←c15632;
};
SOURCE(5080, 49)
if ((lag←v8036 == 0)) {
SOURCE(5098, 17)
aList←v6236 = new←v8064;
}
else {
SOURCE(5115, 14)
(* (( (ptr) lag←v8036)+1) ) = new←v8064;
};
SOURCE(5131, 14)
return(aList←v6236);
}
static word Length←P1260(list←v6364)
word list←v6364;
{
word n←v6408;
/* Length: */
SOURCE(5152, 102)
SOURCE(5152, 102)
n←v6408 = 0;
SOURCE(5209, 45)
lab←L100064: ;
if ((list←v6364 != 0)) {
}
else {
goto lab←L100062;
};
SOURCE(5229, 7)
n←v6408 = (n←v6408 + 1);
SOURCE(5238, 16)
list←v6364 = (* (( (ptr) list←v6364)+1) );
goto lab←L100064;
lab←L100062: ;
SOURCE(5152, 102)
return(n←v6408);
}
static void Map←P1320(list←v6468, proc←v6496)
word list←v6468;
word proc←v6496;
{
/* Map: */
SOURCE(5269, 122)
SOURCE(5331, 60)
lab←L100067: ;
if ((list←v6468 != 0)) {
}
else {
goto lab←L100065;
};
SOURCE(5351, 22)
(void) ( *( (fPt) ((* (ptr) proc←v6496 ))))((* (ptr) list←v6468 ), list←v6468, proc←v6496);
SOURCE(5375, 16)
list←v6468 = (* (( (ptr) list←v6468)+1) );
goto lab←L100067;
lab←L100065: ;
}
static word Subst←P1380(new←v6656, old←v6684, expr←v6712)
word new←v6656;
word old←v6684;
word expr←v6712;
{
register ptr gf←c16880 = (ptr) &globalframe;
word head←v6768;
word tail←v8152 = 0;
/* Subst: */
SOURCE(5406, 280)
SOURCE(5406, 280)
head←v6768 = 0;
SOURCE(5505, 181)
lab←L100070: ;
if ((expr←v6712 != 0)) {
}
else {
goto lab←L100068;
};
{
word first←v8196;
word cons←v8224;
SOURCE(5525, 23)
first←v8196 = (* (ptr) expr←v6712 );
SOURCE(5550, 51)
cons←v8224 = XR←NewObject(8, (* (( (ptr) gf←c16880)+4) ));
{
word var←c15760;
var←c15760 = cons←v8224;
if ((first←v8196 == old←v6684)) {
(* (ptr) var←c15760 ) = new←v6656;
}
else {
(* (ptr) var←c15760 ) = old←v6684;
};
};
SOURCE(5603, 52)
if ((tail←v8152 == 0)) {
SOURCE(5622, 17)
head←v6768 = cons←v8224;
}
else {
SOURCE(5639, 16)
(* (( (ptr) tail←v8152)+1) ) = cons←v8224;
};
SOURCE(5657, 11)
tail←v8152 = cons←v8224;
SOURCE(5670, 16)
expr←v6712 = (* (( (ptr) expr←v6712)+1) );
};
goto lab←L100070;
lab←L100068: ;
SOURCE(5406, 280)
return(head←v6768);
}
static void Kill←P1440(list←v6828)
word list←v6828;
{
/* Kill: */
SOURCE(5701, 125)
SOURCE(5736, 90)
lab←L100073: ;
if ((list←v6828 != 0)) {
}
else {
goto lab←L100071;
};
{
word next←v8280;
SOURCE(5756, 22)
next←v8280 = (* (( (ptr) list←v6828)+1) );
SOURCE(5780, 15)
(* (( (ptr) list←v6828)+1) ) = 0;
SOURCE(5797, 16)
(* (ptr) list←v6828 ) = 0;
SOURCE(5815, 11)
list←v6828 = next←v8280;
};
goto lab←L100073;
lab←L100071: ;
}
static word Sort←P1500(list←v6888, formal←c0223)
word list←v6888;
word formal←c0223;
{
W7 var←c16912;
/* declaration of compareProc←v6916 skipped */
word var←c6960;
/* declaration of var←c15792 skipped */
var←c16912.f4/* compareProc←v6916 */ = formal←c0223;
/* Sort: */
SOURCE(5842, 858)
{
word tmpAddr13;
tmpAddr13 = (word) (( (ptr) &var←c16912)+5)/* var←c15792 */ ;
(* (ptr) tmpAddr13 ) = ( ((word) (fPt) innerSort←P2028) );
(* (( (ptr) tmpAddr13) + 1) ) = 1;
};
SOURCE(6615, 51)
if ((list←v6888 == 0) || ((* (( (ptr) list←v6888)+1) ) == 0)) {
SOURCE(6653, 13)
return(list←v6888);
};
SOURCE(6668, 32)
{
word var←c0220;
W2 var←c0164;
(void) innerSort←P2028((word) &var←c0164, list←v6888, 32, (word) (( (bPt) &var←c16912)+20)/* var←c15792 */ );
var←c0220 = var←c0164.f0;
return(var←c0220);
};
}
static void innerSort←P2028(formal←c0175, head←v8400, max←v8428, formal←c16944)
word formal←c0175;
word head←v8400;
word max←v8428;
word formal←c16944;
{
word new←v8472;
word next←v8500;
word mid←v8528;
formal←c16944 = (formal←c16944 - 20);
/* innerSort: */
SOURCE(5919, 682)
SOURCE(5919, 682)
new←v8472 = 0;
SOURCE(5919, 682)
next←v8500 = 0;
SOURCE(5989, 29)
new←v8472 = head←v8400;
mid←v8528 = (* (( (ptr) head←v8400)+1) );
SOURCE(6020, 24)
if ((mid←v8528 == 0)) {
SOURCE(6038, 6)
goto lab←L100074;
};
SOURCE(6046, 15)
next←v8500 = (* (( (ptr) mid←v8528)+1) );
SOURCE(6063, 91)
{
word pd14;
pd14 = (* (( (ptr) formal←c16944)+4) );
if (((word) ( *( (fPt) ((* (ptr) pd14 ))))((* (ptr) new←v8472 ), (* (ptr) mid←v8528 ), pd14) == 2)) {
SOURCE(6117, 14)
(* (( (ptr) mid←v8528)+1) ) = new←v8472;
SOURCE(6133, 9)
new←v8472 = mid←v8528;
SOURCE(6144, 10)
mid←v8528 = head←v8400;
};
};
SOURCE(6159, 14)
(* (( (ptr) mid←v8528)+1) ) = 0;
SOURCE(6175, 25)
if ((next←v8500 == 0)) {
SOURCE(6194, 6)
goto lab←L100074;
};
SOURCE(6203, 24)
mid←v8528 = next←v8500;
next←v8500 = (* (( (ptr) next←v8500)+1) );
SOURCE(6229, 173)
if ((next←v8500 != 0)) {
SOURCE(6248, 156)
{
word temp←v8572;
SOURCE(6250, 17)
temp←v8572 = next←v8500;
SOURCE(6269, 16)
next←v8500 = (* (( (ptr) temp←v8572)+1) );
SOURCE(6287, 15)
(* (( (ptr) temp←v8572)+1) ) = 0;
SOURCE(6304, 98)
{
word pd15;
pd15 = (* (( (ptr) formal←c16944)+4) );
if (((word) ( *( (fPt) ((* (ptr) pd15 ))))((* (ptr) mid←v8528 ), (* (ptr) temp←v8572 ), pd15) == 2)) {
SOURCE(6359, 14)
(* (( (ptr) mid←v8528)+1) ) = 0;
SOURCE(6375, 15)
(* (( (ptr) temp←v8572)+1) ) = mid←v8528;
SOURCE(6392, 10)
mid←v8528 = temp←v8572;
};
};
};
};
SOURCE(6408, 34)
new←v8472 = (word) Merge←P1560(new←v8472, mid←v8528, (* (( (ptr) formal←c16944)+4) ));
SOURCE(6444, 25)
if ((next←v8500 == 0)) {
SOURCE(6463, 6)
goto lab←L100074;
};
SOURCE(6472, 129)
{
register word depth←v8616 = 2;
register word noName←c15856;
noName←c15856 = max←v8428;
if ((depth←v8616 >= noName←c15856)) {
goto lab←L100075;
};
lab←L100078: ;
SOURCE(6502, 36)
{
W2 var←c15888;
(void) innerSort←P2028((word) &var←c15888, next←v8500, depth←v8616, (word) (( (bPt) formal←c16944)+20));
next←v8500 = var←c15888.f1;
mid←v8528 = var←c15888.f0;
};
SOURCE(6540, 34)
new←v8472 = (word) Merge←P1560(new←v8472, mid←v8528, (* (( (ptr) formal←c16944)+4) ));
SOURCE(6576, 25)
if ((next←v8500 == 0)) {
SOURCE(6595, 6)
goto lab←L100074;
};
depth←v8616 = (depth←v8616 + 1);
if ((depth←v8616 < noName←c15856)) {
goto lab←L100078;
};
lab←L100075: ;
};
/* removed tail goto */
lab←L100074: ;
(* (ptr) formal←c0175 ) = new←v8472;
(* (( (ptr) formal←c0175)+1) ) = next←v8500;
return;
}
static word Merge←P1560(x←v7020, y←v7048, compareProc←v7076)
word x←v7020;
word y←v7048;
word compareProc←v7076;
{
word new←v7120;
word tail←v8660 = 0;
/* Merge: */
SOURCE(6706, 533)
SOURCE(6706, 533)
new←v7120 = 0;
SOURCE(6806, 26)
if ((x←v7020 == 0)) {
SOURCE(6822, 10)
return(y←v7048);
};
SOURCE(6834, 26)
if ((y←v7048 == 0)) {
SOURCE(6850, 10)
return(x←v7020);
};
SOURCE(6863, 7)
new←v7120 = x←v7020;
SOURCE(6872, 74)
if (((word) ( *( (fPt) ((* (ptr) compareProc←v7076 ))))((* (ptr) x←v7020 ), (* (ptr) y←v7048 ), compareProc←v7076) == 2)) {
SOURCE(6921, 7)
new←v7120 = y←v7048;
SOURCE(6931, 5)
y←v7048 = x←v7020;
SOURCE(6939, 7)
x←v7020 = new←v7120;
};
SOURCE(6950, 289)
lab←L100081: ;
SOURCE(6953, 115)
lab←L100084: ;
SOURCE(6956, 8)
tail←v8660 = x←v7020;
SOURCE(6967, 10)
x←v7020 = (* (( (ptr) x←v7020)+1) );
SOURCE(6979, 38)
if ((x←v7020 == 0)) {
SOURCE(6996, 13)
(* (( (ptr) tail←v8660)+1) ) = y←v7048;
SOURCE(7011, 6)
return(new←v7120);
};
SOURCE(7020, 48)
if (((word) ( *( (fPt) ((* (ptr) compareProc←v7076 ))))((* (ptr) x←v7020 ), (* (ptr) y←v7048 ), compareProc←v7076) == 2)) {
SOURCE(7068, 4)
goto lab←L100083;
};
goto lab←L100084;
lab←L100083: ;
SOURCE(7083, 13)
(* (( (ptr) tail←v8660)+1) ) = y←v7048;
SOURCE(7099, 112)
lab←L100087: ;
SOURCE(7102, 8)
tail←v8660 = y←v7048;
SOURCE(7113, 10)
y←v7048 = (* (( (ptr) y←v7048)+1) );
SOURCE(7125, 38)
if ((y←v7048 == 0)) {
SOURCE(7142, 13)
(* (( (ptr) tail←v8660)+1) ) = x←v7020;
SOURCE(7157, 6)
return(new←v7120);
};
SOURCE(7166, 45)
if (((word) ( *( (fPt) ((* (ptr) compareProc←v7076 ))))((* (ptr) x←v7020 ), (* (ptr) y←v7048 ), compareProc←v7076) == 0)) {
SOURCE(7211, 4)
goto lab←L100086;
};
goto lab←L100087;
lab←L100086: ;
SOURCE(7226, 13)
(* (( (ptr) tail←v8660)+1) ) = x←v7020;
goto lab←L100081;
}
static word UniqueSort←P1620(list←v7180, compareProc←v7208)
word list←v7180;
word compareProc←v7208;
{
word var←c7252;
word lag←v8704;
/* UniqueSort: */
SOURCE(7254, 302)
SOURCE(7335, 42)
list←v7180 = (word) Sort←P1500(list←v7180, compareProc←v7208);
lag←v8704 = list←v7180;
SOURCE(7379, 154)
lab←L100090: ;
if ((lag←v8704 != 0)) {
}
else {
goto lab←L100088;
};
{
word rest←v8748;
SOURCE(7398, 21)
rest←v8748 = (* (( (ptr) lag←v8704)+1) );
SOURCE(7421, 19)
if ((rest←v8748 == 0)) {
SOURCE(7440, 4)
goto lab←L100089;
};
SOURCE(7446, 87)
if (((word) ( *( (fPt) ((* (ptr) compareProc←v7208 ))))((* (ptr) lag←v8704 ), (* (ptr) rest←v8748 ), compareProc←v7208)
== 1)) {
SOURCE(7497, 26)
(* (( (ptr) lag←v8704)+1) ) = (* (( (ptr) rest←v8748)+1) );
}
else {
SOURCE(7523, 10)
lag←v8704 = rest←v8748;
};
};
goto lab←L100090;
lab←L100088: ;
lab←L100089: ;
SOURCE(7544, 12)
return(list←v7180);
}
static word Compare←P1680(ref1←v10916, ref2←v10944)
word ref1←v10916;
word ref2←v10944;
{
register ptr gf←c16976 = (ptr) &globalframe;
word var←c10988;
/* Compare: */
SOURCE(7562, 413)
SOURCE(7594, 381)
{
word var←c15920;
word var←c15952;
var←c15920 = ref1←v10916;
if ((var←c15920 == 0)) {
goto lab←L100091;
};
var←c15952 = XR←GetReferentType(var←c15920);
{
word tc17;
if (((* (( (ptr) gf←c16976)+7) ) == var←c15952)) {
tc17 = (word) ((*(int*)var←c15920<0) == 0);
}
else {
tc17 = (word) 0;
};
if (tc17) {
{
word rope←v8792;
rope←v8792 = var←c15920;
SOURCE(7630, 60)
{
word var←c16048;
word var←c16016;
var←c16048 = XR←Narrow(ref2←v10944, (* (( (ptr) gf←c16976)+7) ));
if ((var←c16048 == 0)) {
goto lab←L100092;
};
if (((*(int*)var←c16048<0) == 0)) {
goto lab←L100092;
};
(void) XR←RaiseError(XR←NarrowFault, 0);
lab←L100092: ;
var←c16016 = (word) var←c16048;
{
word pd18;
pd18 = (* (( (ptr) (* (( (ptr) gf←c16976)+68)/* var←c16080 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd18 ))))(rope←v8792, var←c16016, 1, pd18));
};
};
};
};
if (((* (( (ptr) gf←c16976)+9) ) == var←c15952)) {
{
word rli←v8836;
rli←v8836 = var←c15920;
SOURCE(7708, 55)
{
word var←c16144;
word a←v13956;
word b←v13984;
a←v13956 = (* (ptr) rli←v8836 );
b←v13984 = (* (ptr) XR←Narrow(ref2←v10944, (* (( (ptr) gf←c16976)+9) )) );
{
word idx19;
var←c16144 = (
idx19 = (word) ( ( (int)a←v13956 == (int)b←v13984) ? 1 : ( ( (int)a←v13956 > (int)b←v13984) ? 2 : 0 ) ) ,
BCK(idx19, 3)
);
};
return(var←c16144);
};
};
};
if (((* (( (ptr) gf←c16976)+10) ) == var←c15952)) {
{
word atom←v8904;
atom←v8904 = var←c15920;
SOURCE(7779, 90)
{
word var←c16208;
word var←c16272;
word var←c16304;
{
word pd20;
pd20 = (* (( (ptr) (* (( (ptr) gf←c16976)+69)/* var←c16240 */ ))+9) );
var←c16208 = (word) ( *( (fPt) ((* (ptr) pd20 ))))(atom←v8904, pd20);
};
{
word pd21;
var←c16304 = XR←Narrow(ref2←v10944, (* (( (ptr) gf←c16976)+10) ));
pd21 = (* (( (ptr) (* (( (ptr) gf←c16976)+69)/* var←c16240 */ ))+9) );
var←c16272 = (word) ( *( (fPt) ((* (ptr) pd21 ))))(var←c16304, pd21);
};
{
word pd22;
pd22 = (* (( (ptr) (* (( (ptr) gf←c16976)+68)/* var←c16080 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd22 ))))(var←c16208, var←c16272, 1, pd22));
};
};
};
};
lab←L100091: ;
SOURCE(7882, 93)
if ((ref1←v10916 == 0)) {
SOURCE(7901, 74)
{
word var←c16400;
word var←c16368;
word var←c16432;
word var←c16464;
var←c16400 = XR←Narrow(ref1←v10916, (* (( (ptr) gf←c16976)+7) ));
if ((var←c16400 == 0)) {
goto lab←L100094;
};
if (((*(int*)var←c16400<0) == 0)) {
goto lab←L100094;
};
(void) XR←RaiseError(XR←NarrowFault, 0);
lab←L100094: ;
var←c16368 = (word) var←c16400;
var←c16464 = XR←Narrow(ref2←v10944, (* (( (ptr) gf←c16976)+7) ));
if ((var←c16464 == 0)) {
goto lab←L100095;
};
if (((*(int*)var←c16464<0) == 0)) {
goto lab←L100095;
};
(void) XR←RaiseError(XR←NarrowFault, 0);
lab←L100095: ;
var←c16432 = (word) var←c16464;
{
word pd23;
pd23 = (* (( (ptr) (* (( (ptr) gf←c16976)+68)/* var←c16080 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd23 ))))(var←c16368, var←c16432, 1, pd23));
};
};
}
else {
SOURCE(7975, 5)
(void) XR←RaiseUnnamedError();
};
goto endif016;
endif016: ;
};
};
}
/* file: ListImpl, module: ListImpl, compiled at: February 21, 1992 5:10:14 pm PST */
extern void XR←install←ListImpl() {
NoName←Q2676();
}
extern void XR←run←ListImpl() { XR←Start(&globalframe); }