/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 11:09:51 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: RedBlackTreeImpl, module: RedBlackTreeImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [1624683341,2573725874] RedBlackTreeImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {W8 f; word r;} W9; typedef struct {W8 f; W2 r;} W10; typedef struct {word f0, f1, f2, f3, f4, f5;} W6; typedef struct {word f0, f1, f2;} W3; typedef struct {W8 f; W3 r;} W11; #define SOURCE(p, l) /* source p, l */ static void NoName_Q2316(); static void RedBlackTreeImpl_P0(); static void DoInner_P60(); static word NoName_Q2376(); static word Create_P120(); static word Size_P180(); static void inner_P1188(); static void Insert_P240(); static void InsertNode_P300(); static void inner_P1248(); static word Delete_P360(); static void inner_P1308(); static word LookupNode_P420(); static void inner_P1368(); static word Lookup_P480(); static void inner_P1428(); static void Lookup3_P540(); static void inner_P1488(); static word LookupSmallest_P600(); static void inner_P1548(); static word LookupNextLarger_P660(); static void inner_P1608(); static word LookupLargest_P720(); static void inner_P1668(); static word LookupNextSmaller_P780(); static void inner_P1728(); static void DestroyTable_P840(); static void inner_P1788(); static void EnumerateIncreasing_P900(); static void inner_P1848(); static word VisitSubtree_P1908(); static void EnumerateDecreasing_P960(); static void inner_P1968(); static word VisitSubtree_P2028(); static void CheckTable_P1020(); static void inner_P2088(); static void Assert_P2148(); static void Check1_P2208(); static word Balance_P1080(); static void NoName_Q2436(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\140\326\263\115\300\231\147\360\262\100\200\000\000"}; static struct {unsigned f; char r[4];} string2 = {131074, "\004\030\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\312\362\073\257\300\141\275\076\344\100\164\000\000"}; static struct {unsigned f; char r[4];} string4 = {131074, "\004\013\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\312\362\073\257\300\141\275\076\344\100\200\000\000"}; static struct {unsigned f; char r[4];} string6 = {131074, "\0040\000"}; static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\140\326\263\115\300\231\147\360\262\100\164\000\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\312\362\073\257\300\141\275\076\344\100\150\000\000"}; static struct { word f0[10]; word f10; word f11; 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[2]; } globalframe = { {0}, (word) Balance_P1080, 0, (word) CheckTable_P1020, 0, (word) EnumerateDecreasing_P960, 0, (word) EnumerateIncreasing_P900, 0, (word) DestroyTable_P840, 0, (word) LookupNextSmaller_P780, 0, (word) LookupLargest_P720, 0, (word) LookupNextLarger_P660, 0, (word) LookupSmallest_P600, 0, (word) Lookup3_P540, 0, (word) Lookup_P480, 0, (word) LookupNode_P420, 0, (word) Delete_P360, 0, (word) InsertNode_P300, 0, (word) Insert_P240, 0, (word) Size_P180, 0, (word) Create_P120, 0, (word) DoInner_P60, 0, (word) RedBlackTreeImpl_P0, {0} }; static void NoName_Q2316() { register ptr gf_c0227 = (ptr) &globalframe; word var_c13656; (* (( (ptr) gf_c0227)+4) ) = (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf_c0227)+5) ) = (word) XR_GetTypeIndex((word) &string3, 0, (word) &string4); (* (( (ptr) gf_c0227)+7) ) = (word) XR_GetTypeIndex((word) &string5, 0, (word) &string6); (void) XR_DeclareGlobalFrame((word) "RedBlackTreeImpl", &globalframe, (word) XR_GetTypeIndexS((word) (&string7)), (word) ( ( (bPt) gf_c0227)+184)/* var_c12216 */ ); var_c13656 = (word) XR_ExportInterface((word) "RedBlackTree", (word) XR_GetTypeIndexS((word) (&string8)), 18); (* (( (ptr) gf_c0227)+48)/* var_c13624 */ ) = var_c13656; (void) XR_ExportVar(var_c13656, 0, (word) (( (bPt) gf_c0227)+36)); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+168)/* var_c12152 */ , 67633410); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+72)/* var_c11768 */ , 262657); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+160)/* var_c12120 */ , 67371777); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+152)/* var_c12088 */ , 787459); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+144)/* var_c12056 */ , 787715); (void) XR_ExportVar(var_c13656, 6, (word) (( (bPt) gf_c0227)+32)); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+136)/* var_c12024 */ , 67634946); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+128)/* var_c11992 */ , 67635202); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+120)/* var_c11960 */ , 67635458); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+96)/* var_c11864 */ , 67635714); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+80)/* var_c11800 */ , 67635970); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+104)/* var_c11896 */ , 67374081); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+88)/* var_c11832 */ , 67374337); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+112)/* var_c11928 */ , 201854466); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+64)/* var_c11736 */ , 528130); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+56)/* var_c11704 */ , 528386); (void) XR_ExportProcS(var_c13656, (word) (( (bPt) gf_c0227)+48)/* var_c11672 */ , 266497); } static void RedBlackTreeImpl_P0(formal_c026, formal_c025) word formal_c026; word formal_c025; { /* RedBlackTreeImpl: */ } static void DoInner_P60(formal_c0289, formal_c0290) word formal_c0289; word formal_c0290; { W7 var_c13688; /* declaration of self_v3644 skipped */ /* declaration of inner_v3672 skipped */ /* declaration of var_c12248 skipped */ var_c13688.f4/* self_v3644 */ = formal_c0289; var_c13688.f5/* inner_v3672 */ = formal_c0290; /* DoInner: */ SOURCE(697, 265) (void) (XR_MonitorEntry(var_c13688.f4/* self_v3644 */ )); SOURCE(761, 201) { word var_c01; { word var_c0252; var_c0252 = (word) &var_c13688; var_c01 = (word) XR_Enable(( ((word) (fPt) NoName_Q2376) ), ( ((word) (fPt) NoName_Q2436) ), var_c0252); }; if ((var_c01 == 2)) { goto lab_L100002; }; }; SOURCE(697, 265) (void) (XR_MonitorExit(var_c13688.f4/* self_v3644 */ )); return; /* c2c skipped dead code */ lab_L100002: ; SOURCE(892, 26) (void) XR_RaiseError(var_c13688.f6/* var_c12248 */ , 0); } static word NoName_Q2376(formal_c0229) word formal_c0229; { register ptr gf_c0228 = (ptr) &globalframe; SOURCE(784, 41) { word private_v5708; word root_v5736; SOURCE(784, 41) private_v5708 = (* (( (ptr) (* (( (ptr) formal_c0229)+4) ))+5) ); SOURCE(827, 22) root_v5736 = (* (( (ptr) (* (( (ptr) formal_c0229)+4) ))+4) ); SOURCE(851, 67) if ((root_v5736 == 0) || ((* (ptr) root_v5736 ) != 0)) { SOURCE(892, 26) (* (( (ptr) formal_c0229)+6) ) = (word) (( (bPt) gf_c0228)+36); (void) (XR_MonitorExit(* (( (ptr) formal_c0229)+4) )); return(2); }; SOURCE(920, 42) { word pd9; pd9 = (* (( (ptr) formal_c0229)+5) ); (void) ( *( (fPt) ((* (ptr) pd9 ))))(private_v5708, (* (( (ptr) private_v5708)+3) ), (* (( (ptr) private_v5708)+4) ), root_v5736, pd9) ; }; }; return(0); } static word Create_P120(getKey_v3732, compare_v3760) word getKey_v3732; word compare_v3760; { register ptr gf_c13720 = (ptr) &globalframe; word table_v3804; word private_v5780; word root_v5808; word y_v5836; word z_v5864; /* Create: */ SOURCE(969, 484) SOURCE(969, 484) table_v3804 = 0; SOURCE(1051, 114) { word var_c12280; word var_c12344; word var_c12408; var_c12280 = XR_NewObject(16, (* (( (ptr) gf_c13720)+5) )); var_c12344 = XR_NewObject(16, (* (( (ptr) gf_c13720)+5) )); var_c12408 = XR_NewObject(20, (* (( (ptr) gf_c13720)+4) )); (* (( (ptr) var_c12408)+1) ) = XR_CheckProc(getKey_v3732); (* (( (ptr) var_c12408)+2) ) = XR_CheckProc(compare_v3760); (* (( (ptr) var_c12408)+3) ) = var_c12280; (* (( (ptr) var_c12408)+4) ) = var_c12344; private_v5780 = var_c12408; }; SOURCE(1167, 25) root_v5808 = XR_NewObject(16, (* (( (ptr) gf_c13720)+5) )); SOURCE(1194, 19) y_v5836 = (* (( (ptr) private_v5780)+3) ); SOURCE(1215, 19) z_v5864 = (* (( (ptr) private_v5780)+4) ); SOURCE(1236, 21) table_v3804 = XR_NewObject(24, (* (( (ptr) gf_c13720)+7) )); SOURCE(1259, 17) (* (( (ptr) table_v3804)+4) ) = root_v5808; SOURCE(1278, 23) (* (( (ptr) table_v3804)+5) ) = private_v5780; SOURCE(1303, 20) (* (( (ptr) root_v5808)+2) ) = 0; SOURCE(1325, 18) (* (ptr) root_v5808 ) = 0; SOURCE(1345, 16) (* (( (ptr) root_v5808)+1) ) = z_v5864; SOURCE(1363, 15) (* (( (ptr) y_v5836)+2) ) = 1; SOURCE(1380, 27) (* (( (ptr) y_v5836)+1) ) = 0; (* (ptr) y_v5836 ) = 0; SOURCE(1409, 17) (* (( (ptr) z_v5864)+2) ) = 0; SOURCE(1428, 25) (* (ptr) z_v5864 ) = y_v5836; (* (( (ptr) z_v5864)+1) ) = y_v5836; SOURCE(969, 484) return(table_v3804); } static word Size_P180(self_v3864) word self_v3864; { W7 var_c13752; /* declaration of size_v3908 skipped */ /* declaration of var_c12536 skipped */ /* Size: */ SOURCE(1459, 144) { word tmpAddr10; tmpAddr10 = (word) (( (ptr) &var_c13752)+5)/* var_c12536 */ ; (* (ptr) tmpAddr10 ) = ( ((word) (fPt) inner_P1188) ); (* (( (ptr) tmpAddr10) + 1) ) = 1; }; SOURCE(1459, 144) var_c13752.f4/* size_v3908 */ = 0; SOURCE(1564, 39) if ((self_v3864 != 0)) { SOURCE(1583, 20) (void) DoInner_P60(self_v3864, (word) (( (bPt) &var_c13752)+20)/* var_c12536 */ ); }; SOURCE(1459, 144) return(var_c13752.f4/* size_v3908 */ ); } static void inner_P1188(private_v9444, y_v9472, z_v9500, root_v9528, formal_c13784) word private_v9444; word y_v9472; word z_v9500; word root_v9528; word formal_c13784; { formal_c13784 = (formal_c13784 - 20); /* inner: */ SOURCE(1519, 40) SOURCE(1540, 19) (* (( (ptr) formal_c13784)+4) ) = (* (ptr) private_v9444 ); } static void Insert_P240(self_v3968, dataToInsert_v3996, insertKey_v4024) word self_v3968; word dataToInsert_v3996; word insertKey_v4024; { register ptr gf_c13816 = (ptr) &globalframe; word node_v5952; /* Insert: */ SOURCE(1609, 161) SOURCE(1687, 48) node_v5952 = XR_NewObject(16, (* (( (ptr) gf_c13816)+5) )); (* (( (ptr) node_v5952)+3) ) = dataToInsert_v3996; SOURCE(1737, 33) (void) InsertNode_P300(self_v3968, node_v5952, insertKey_v4024); } static void InsertNode_P300(self_v4084, formal_c0291, formal_c0292) word self_v4084; word formal_c0291; word formal_c0292; { W9 var_c13848; /* declaration of nodeToInsert_v4112 skipped */ /* declaration of insertKey_v4140 skipped */ register ptr gf_c13880 = (ptr) &globalframe; /* declaration of var_c12600 skipped */ /* declaration of keyAlreadyPresent_v5996 skipped */ (* (( (ptr) &var_c13848)+4)/* nodeToInsert_v4112 */ ) = formal_c0291; (* (( (ptr) &var_c13848)+5)/* insertKey_v4140 */ ) = formal_c0292; /* InsertNode: */ SOURCE(1776, 1078) { word tmpAddr11; tmpAddr11 = (word) (( (ptr) &var_c13848)+6)/* var_c12600 */ ; (* (ptr) tmpAddr11 ) = ( ((word) (fPt) inner_P1248) ); (* (( (ptr) tmpAddr11) + 1) ) = 1; }; SOURCE(1854, 31) (* (( (ptr) &var_c13848)+8)/* keyAlreadyPresent_v5996 */ ) = 0; SOURCE(2788, 20) (void) DoInner_P60(self_v4084, (word) (( (bPt) &var_c13848)+24)/* var_c12600 */ ); SOURCE(2810, 44) if ((0 != (* (( (ptr) &var_c13848)+8)/* keyAlreadyPresent_v5996 */ ))) { SOURCE(2836, 18) (void) XR_RaiseError((word) (( (bPt) gf_c13880)+32), 0); }; } static void inner_P1248(private_v9588, y_v9616, z_v9644, root_v9672, formal_c13912) word private_v9588; word y_v9616; word z_v9644; word root_v9672; word formal_c13912; { word x_v6068 = 0; word gg_v6096 = 0; word g_v6124 = 0; word f_v6152 = 0; word c_v6180 = 2; formal_c13912 = (formal_c13912 - 24); /* inner: */ SOURCE(1887, 873) SOURCE(2012, 8) f_v6152 = root_v9672; SOURCE(2022, 13) x_v6068 = (* (( (ptr) f_v6152)+1) ); SOURCE(2037, 684) lab_L100006: ; SOURCE(2040, 402) if ( ( ((* (( (ptr) (* (ptr) x_v6068 ))+2) ) == 1) ? ((* (( (ptr) (* (( (ptr) x_v6068)+1) ))+2) ) == 1) : 0 ) ) { SOURCE(2102, 209) if ((x_v6068 == z_v9644)) { SOURCE(2118, 43) if ((c_v6180 == 1)) { SOURCE(2137, 24) (* (( (ptr) formal_c13912)+8) ) = 1; SOURCE(2163, 4) goto lab_L100005; }; SOURCE(2170, 16) x_v6068 = (* (( (ptr) formal_c13912)+4) ); SOURCE(2188, 13) (* (ptr) x_v6068 ) = z_v9644; SOURCE(2203, 13) (* (( (ptr) x_v6068)+1) ) = z_v9644; SOURCE(2218, 49) if ((c_v6180 == 0)) { SOURCE(2235, 19) (* (ptr) f_v6152 ) = x_v6068; } else { SOURCE(2254, 13) (* (( (ptr) f_v6152)+1) ) = x_v6068; }; SOURCE(2269, 9) c_v6180 = 1; SOURCE(2280, 31) (* (ptr) private_v9588 ) = ((* (ptr) private_v9588 ) + 1); }; SOURCE(2316, 25) (* (( (ptr) (* (ptr) x_v6068 ))+2) ) = 0; SOURCE(2343, 25) (* (( (ptr) (* (( (ptr) x_v6068)+1) ))+2) ) = 0; SOURCE(2370, 15) (* (( (ptr) x_v6068)+2) ) = 1; SOURCE(2387, 55) if (((* (( (ptr) f_v6152)+2) ) == 1)) { SOURCE(2411, 24) g_v6124 = (word) Balance_P1080(gg_v6096, g_v6124, f_v6152, x_v6068); SOURCE(2437, 5) x_v6068 = g_v6124; }; }; SOURCE(2450, 18) if ((c_v6180 == 1)) { SOURCE(2468, 4) goto lab_L100005; }; SOURCE(2474, 6) gg_v6096 = g_v6124; SOURCE(2482, 5) g_v6124 = f_v6152; SOURCE(2489, 5) f_v6152 = x_v6068; SOURCE(2584, 38) { word pd12; pd12 = (* (( (ptr) private_v9588)+2) ); c_v6180 = (word) ( *( (fPt) ((* (ptr) pd12 ))))((* (( (ptr) formal_c13912)+5) ), (* (( (ptr) x_v6068)+3) ), pd12); }; SOURCE(2624, 43) if ((c_v6180 == 1)) { SOURCE(2643, 24) (* (( (ptr) formal_c13912)+8) ) = 1; SOURCE(2669, 4) goto lab_L100005; }; SOURCE(2676, 45) if ((c_v6180 == 0)) { x_v6068 = (* (ptr) x_v6068 ); } else { x_v6068 = (* (( (ptr) x_v6068)+1) ); }; goto lab_L100006; lab_L100005: ; SOURCE(2732, 28) (* (( (ptr) (* (( (ptr) root_v9672)+1) ))+2) ) = 0; } static word Delete_P360(self_v4200, formal_c0293) word self_v4200; word formal_c0293; { W8 var_c13944; /* declaration of deleteKey_v4228 skipped */ /* declaration of deletedNode_v4272 skipped */ /* declaration of var_c12632 skipped */ var_c13944.f4/* deleteKey_v4228 */ = formal_c0293; /* Delete: */ SOURCE(2860, 1894) { word tmpAddr13; tmpAddr13 = (word) (( (ptr) &var_c13944)+6)/* var_c12632 */ ; (* (ptr) tmpAddr13 ) = ( ((word) (fPt) inner_P1308) ); (* (( (ptr) tmpAddr13) + 1) ) = 1; }; SOURCE(2860, 1894) var_c13944.f5/* deletedNode_v4272 */ = 0; SOURCE(4734, 20) (void) DoInner_P60(self_v4200, (word) (( (bPt) &var_c13944)+24)/* var_c12632 */ ); SOURCE(2860, 1894) return(var_c13944.f5/* deletedNode_v4272 */ ); } static void inner_P1308(private_v9828, y_v9856, z_v9884, root_v9912, formal_c13976) word private_v9828; word y_v9856; word z_v9884; word root_v9912; word formal_c13976; { word f_v6268 = 0; word result_v6296 = 0; word parentOfResult_v6324 = 0; word x_v6352 = 0; word g_v6380 = 0; word b_v6408 = 0; word c_v6436; formal_c13976 = (formal_c13976 - 24); /* inner: */ SOURCE(2948, 1781) SOURCE(3032, 12) result_v6296 = 0; SOURCE(3046, 8) f_v6268 = root_v9912; SOURCE(3056, 13) x_v6352 = (* (( (ptr) f_v6268)+1) ); SOURCE(3071, 20) if ((x_v6352 == z_v9884)) { SOURCE(3085, 6) return; }; SOURCE(3093, 17) (* (( (ptr) y_v9856)+2) ) = 0; SOURCE(3183, 83) if ( ( ((* (( (ptr) (* (ptr) x_v6352 ))+2) ) == 0) ? ((* (( (ptr) (* (( (ptr) x_v6352)+1) ))+2) ) == 0) : 0 ) ) { SOURCE(3251, 15) (* (( (ptr) x_v6352)+2) ) = 1; }; SOURCE(3268, 89) { word pd14; pd14 = (* (( (ptr) private_v9828)+2) ); c_v6436 = (word) ( *( (fPt) ((* (ptr) pd14 ))))((* (( (ptr) formal_c13976)+4) ), (* (( (ptr) x_v6352)+3) ), pd14); }; if ((c_v6436 == 1)) { SOURCE(3327, 10) result_v6296 = x_v6352; SOURCE(3339, 18) parentOfResult_v6324 = f_v6268; }; SOURCE(3362, 924) lab_L100009: ; SOURCE(3365, 921) SOURCE(3367, 5) g_v6380 = f_v6268; SOURCE(3374, 5) f_v6268 = x_v6352; SOURCE(3381, 82) if ((c_v6436 == 0)) { SOURCE(3399, 13) b_v6408 = (* (( (ptr) x_v6352)+1) ); SOURCE(3414, 13) x_v6352 = (* (ptr) x_v6352 ); } else { SOURCE(3435, 13) b_v6408 = (* (ptr) x_v6352 ); SOURCE(3450, 13) x_v6352 = (* (( (ptr) x_v6352)+1) ); }; SOURCE(3466, 99) { word tc15; if ((x_v6352 != z_v9884)) { { word pd16; pd16 = (* (( (ptr) private_v9828)+2) ); c_v6436 = (word) ( *( (fPt) ((* (ptr) pd16 ))))((* (( (ptr) formal_c13976)+4) ), (* (( (ptr) x_v6352)+3) ), pd16); }; tc15 = (word) (c_v6436 == 1); } else { tc15 = (word) 0; }; if (tc15) { SOURCE(3535, 10) result_v6296 = x_v6352; SOURCE(3547, 18) parentOfResult_v6324 = f_v6268; }; }; SOURCE(3570, 72) if ((((* (( (ptr) x_v6352)+2) ) == 1) || ((* (( (ptr) (* (ptr) x_v6352 ))+2) ) == 1)) || ((* (( (ptr) (* (( (ptr) x_v6352)+1) ))+2) ) == 1)) { SOURCE(3642, 4) goto lab_L100009; }; SOURCE(3648, 236) if (((* (( (ptr) b_v6408)+2) ) == 1)) { SOURCE(3672, 109) if ((b_v6408 == (* (ptr) f_v6268 ))) { SOURCE(3696, 21) (* (ptr) f_v6268 ) = (* (( (ptr) b_v6408)+1) ); SOURCE(3720, 13) (* (( (ptr) b_v6408)+1) ) = f_v6268; } else { SOURCE(3744, 21) (* (( (ptr) f_v6268)+1) ) = (* (ptr) b_v6408 ); SOURCE(3768, 13) (* (ptr) b_v6408 ) = f_v6268; }; SOURCE(3786, 15) (* (( (ptr) f_v6268)+2) ) = 1; SOURCE(3804, 17) (* (( (ptr) b_v6408)+2) ) = 0; SOURCE(3823, 54) if ((f_v6268 == (* (ptr) g_v6380 ))) { SOURCE(3845, 19) (* (ptr) g_v6380 ) = b_v6408; } else { SOURCE(3864, 13) (* (( (ptr) g_v6380)+1) ) = b_v6408; }; SOURCE(3879, 5) x_v6352 = b_v6408; SOURCE(3887, 15) goto lab_L100010; }; SOURCE(3925, 14) if ((x_v6352 == z_v9884)) { SOURCE(3939, 4) goto lab_L100008; }; SOURCE(3945, 15) (* (( (ptr) x_v6352)+2) ) = 1; SOURCE(3962, 92) if (((* (( (ptr) (* (ptr) b_v6408 ))+2) ) == 1)) { SOURCE(3996, 25) (* (( (ptr) (* (ptr) b_v6408 ))+2) ) = 0; SOURCE(4023, 31) x_v6352 = (word) Balance_P1080(g_v6380, f_v6268, b_v6408, (* (ptr) b_v6408 )); SOURCE(4056, 15) goto lab_L100010; }; SOURCE(4076, 92) if (((* (( (ptr) (* (( (ptr) b_v6408)+1) ))+2) ) == 1)) { SOURCE(4110, 25) (* (( (ptr) (* (( (ptr) b_v6408)+1) ))+2) ) = 0; SOURCE(4137, 31) x_v6352 = (word) Balance_P1080(g_v6380, f_v6268, b_v6408, (* (( (ptr) b_v6408)+1) )); SOURCE(4170, 15) goto lab_L100010; }; SOURCE(4190, 17) (* (( (ptr) f_v6268)+2) ) = 0; SOURCE(4209, 15) (* (( (ptr) b_v6408)+2) ) = 1; goto lab_L100011; lab_L100010: ; SOURCE(4246, 38) { word pd17; pd17 = (* (( (ptr) private_v9828)+2) ); c_v6436 = (word) ( *( (fPt) ((* (ptr) pd17 ))))((* (( (ptr) formal_c13976)+4) ), (* (( (ptr) x_v6352)+3) ), pd17); }; lab_L100011: ; goto lab_L100009; lab_L100008: ; SOURCE(4298, 28) (* (( (ptr) (* (( (ptr) root_v9912)+1) ))+2) ) = 0; SOURCE(4328, 17) (* (( (ptr) z_v9884)+2) ) = 0; SOURCE(4347, 15) (* (( (ptr) y_v9856)+2) ) = 1; SOURCE(4385, 319) if ((result_v6296 != 0)) { SOURCE(4408, 54) if (((* (ptr) g_v6380 ) == f_v6268)) { SOURCE(4430, 19) (* (ptr) g_v6380 ) = z_v9884; } else { SOURCE(4449, 13) (* (( (ptr) g_v6380)+1) ) = z_v9884; }; SOURCE(4464, 204) if ((f_v6268 != result_v6296)) { SOURCE(4485, 98) if (((* (ptr) parentOfResult_v6324 ) == result_v6296)) { SOURCE(4525, 32) (* (ptr) parentOfResult_v6324 ) = f_v6268; } else { SOURCE(4557, 26) (* (( (ptr) parentOfResult_v6324)+1) ) = f_v6268; }; SOURCE(4585, 26) (* (ptr) f_v6268 ) = (* (ptr) result_v6296 ); SOURCE(4614, 26) (* (( (ptr) f_v6268)+1) ) = (* (( (ptr) result_v6296)+1) ); SOURCE(4642, 26) (* (( (ptr) f_v6268)+2) ) = (* (( (ptr) result_v6296)+2) ); }; SOURCE(4673, 31) (* (ptr) private_v9828 ) = ((* (ptr) private_v9828 ) - 1); }; SOURCE(4709, 20) (* (( (ptr) formal_c13976)+5) ) = result_v6296; } static word LookupNode_P420(self_v4332, formal_c0294) word self_v4332; word formal_c0294; { W8 var_c14008; /* declaration of lookupKey_v4360 skipped */ /* declaration of node_v4404 skipped */ /* declaration of var_c12664 skipped */ var_c14008.f4/* lookupKey_v4360 */ = formal_c0294; /* LookupNode: */ SOURCE(4760, 343) { word tmpAddr18; tmpAddr18 = (word) (( (ptr) &var_c14008)+6)/* var_c12664 */ ; (* (ptr) tmpAddr18 ) = ( ((word) (fPt) inner_P1368) ); (* (( (ptr) tmpAddr18) + 1) ) = 1; }; SOURCE(4760, 343) var_c14008.f5/* node_v4404 */ = 0; SOURCE(5083, 20) (void) DoInner_P60(self_v4332, (word) (( (bPt) &var_c14008)+24)/* var_c12664 */ ); SOURCE(4760, 343) return(var_c14008.f5/* node_v4404 */ ); } static void inner_P1368(private_v9972, y_v10000, z_v10028, root_v10056, formal_c14040) word private_v9972; word y_v10000; word z_v10028; word root_v10056; word formal_c14040; { formal_c14040 = (formal_c14040 - 24); /* inner: */ SOURCE(4845, 206) SOURCE(4866, 19) (* (( (ptr) formal_c14040)+5) ) = (* (( (ptr) root_v10056)+1) ); SOURCE(4887, 164) lab_L100014: ; SOURCE(4890, 28) if (((* (( (ptr) formal_c14040)+5) ) == z_v10028)) { SOURCE(4908, 10) (* (( (ptr) formal_c14040)+5) ) = 0; SOURCE(4920, 4) goto lab_L100013; }; SOURCE(4927, 124) { word var_c12696; { word pd19; pd19 = (* (( (ptr) private_v9972)+2) ); var_c12696 = (word) ( *( (fPt) ((* (ptr) pd19 ))))((* (( (ptr) formal_c14040)+4) ), (* (( (ptr) (* (( (ptr) formal_c14040)+5) ))+3) ), pd19); }; switch (var_c12696) { case 1: SOURCE(4986, 4) goto lab_L100013; case 0: SOURCE(5000, 19) (* (( (ptr) formal_c14040)+5) ) = (* (ptr) (* (( (ptr) formal_c14040)+5) ) ); break; case 2: SOURCE(5032, 19) (* (( (ptr) formal_c14040)+5) ) = (* (( (ptr) (* (( (ptr) formal_c14040)+5) ))+1) ); break; default: SOURCE(5064, 5) (void) XR_RaiseUnnamedError(); break; }; }; goto lab_L100014; lab_L100013: ; } static word Lookup_P480(self_v4464, formal_c0295) word self_v4464; word formal_c0295; { W8 var_c14072; /* declaration of lookupKey_v4492 skipped */ /* declaration of data_v4536 skipped */ /* declaration of var_c12728 skipped */ var_c14072.f4/* lookupKey_v4492 */ = formal_c0295; /* Lookup: */ SOURCE(5109, 395) { word tmpAddr20; tmpAddr20 = (word) (( (ptr) &var_c14072)+6)/* var_c12728 */ ; (* (ptr) tmpAddr20 ) = ( ((word) (fPt) inner_P1428) ); (* (( (ptr) tmpAddr20) + 1) ) = 1; }; SOURCE(5109, 395) var_c14072.f5/* data_v4536 */ = 0; SOURCE(5484, 20) (void) DoInner_P60(self_v4464, (word) (( (bPt) &var_c14072)+24)/* var_c12728 */ ); SOURCE(5109, 395) return(var_c14072.f5/* data_v4536 */ ); } static void inner_P1428(private_v10116, y_v10144, z_v10172, root_v10200, formal_c14104) word private_v10116; word y_v10144; word z_v10172; word root_v10200; word formal_c14104; { word equalNode_v6568; formal_c14104 = (formal_c14104 - 24); /* inner: */ SOURCE(5194, 285) SOURCE(5215, 30) equalNode_v6568 = (* (( (ptr) root_v10200)+1) ); SOURCE(5247, 182) lab_L100017: ; SOURCE(5250, 28) if ((equalNode_v6568 == z_v10172)) { SOURCE(5272, 6) return; }; SOURCE(5280, 149) { word var_c12760; { word pd21; pd21 = (* (( (ptr) private_v10116)+2) ); var_c12760 = (word) ( *( (fPt) ((* (ptr) pd21 ))))((* (( (ptr) formal_c14104)+4) ), (* (( (ptr) equalNode_v6568)+3) ), pd21) ; }; switch (var_c12760) { case 1: SOURCE(5344, 4) goto lab_L100016; case 0: SOURCE(5358, 29) equalNode_v6568 = (* (ptr) equalNode_v6568 ); break; case 2: SOURCE(5400, 29) equalNode_v6568 = (* (( (ptr) equalNode_v6568)+1) ); break; default: SOURCE(5442, 5) (void) XR_RaiseUnnamedError(); break; }; }; goto lab_L100017; lab_L100016: ; SOURCE(5458, 21) (* (( (ptr) formal_c14104)+5) ) = (* (( (ptr) equalNode_v6568)+3) ); } static void Lookup3_P540(formal_c0108, self_v4596, formal_c0296) word formal_c0108; word self_v4596; word formal_c0296; { W10 var_c14136; /* declaration of lookupKey_v4624 skipped */ /* declaration of leftData_v4668 skipped */ /* declaration of equalData_v4696 skipped */ /* declaration of rightData_v4724 skipped */ /* declaration of var_c12792 skipped */ (* (( (ptr) &var_c14136)+4)/* lookupKey_v4624 */ ) = formal_c0296; /* Lookup3: */ SOURCE(5510, 937) { word tmpAddr22; tmpAddr22 = (word) (( (ptr) &var_c14136)+8)/* var_c12792 */ ; (* (ptr) tmpAddr22 ) = ( ((word) (fPt) inner_P1488) ); (* (( (ptr) tmpAddr22) + 1) ) = 1; }; SOURCE(5510, 937) (* (( (ptr) &var_c14136)+5)/* leftData_v4668 */ ) = 0; SOURCE(5510, 937) (* (( (ptr) &var_c14136)+6)/* equalData_v4696 */ ) = 0; SOURCE(5510, 937) (* (( (ptr) &var_c14136)+7)/* rightData_v4724 */ ) = 0; SOURCE(6427, 20) (void) DoInner_P60(self_v4596, (word) (( (bPt) &var_c14136)+32)/* var_c12792 */ ); /* removed tail goto */ (* (ptr) formal_c0108 ) = (* (( (ptr) &var_c14136)+5)/* leftData_v4668 */ ); (* (( (ptr) formal_c0108)+1) ) = (* (( (ptr) &var_c14136)+6)/* equalData_v4696 */ ); (* (( (ptr) formal_c0108)+2) ) = (* (( (ptr) &var_c14136)+7)/* rightData_v4724 */ ); return; } static void inner_P1488(private_v10260, y_v10288, z_v10316, root_v10344, formal_c14168) word private_v10260; word y_v10288; word z_v10316; word root_v10344; word formal_c14168; { word equalNode_v6656; word leftNode_v6684 = 0; word rightNode_v6712 = 0; formal_c14168 = (formal_c14168 - 32); /* inner: */ SOURCE(5622, 800) SOURCE(5643, 30) equalNode_v6656 = (* (( (ptr) root_v10344)+1) ); SOURCE(5720, 520) lab_L100021: ; SOURCE(5723, 38) if ((equalNode_v6656 == z_v10316)) { SOURCE(5746, 15) equalNode_v6656 = 0; SOURCE(5763, 4) goto lab_L100020; }; SOURCE(5770, 470) { word var_c12824; { word pd23; pd23 = (* (( (ptr) private_v10260)+2) ); var_c12824 = (word) ( *( (fPt) ((* (ptr) pd23 ))))((* (( (ptr) formal_c14168)+4) ), (* (( (ptr) equalNode_v6656)+3) ), pd23) ; }; switch (var_c12824) { case 1: SOURCE(5836, 127) if (((* (ptr) equalNode_v6656 ) != z_v10316)) { SOURCE(5868, 28) leftNode_v6684 = (* (ptr) equalNode_v6656 ); SOURCE(5898, 65) lab_L100024: ; if (((* (( (ptr) leftNode_v6684)+1) ) != z_v10316)) { } else { goto lab_L100022; }; SOURCE(5928, 35) leftNode_v6684 = (* (( (ptr) leftNode_v6684)+1) ); goto lab_L100024; lab_L100022: ; }; SOURCE(5968, 131) if (((* (( (ptr) equalNode_v6656)+1) ) != z_v10316)) { SOURCE(6000, 29) rightNode_v6712 = (* (( (ptr) equalNode_v6656)+1) ); SOURCE(6031, 68) lab_L100027: ; if (((* (ptr) rightNode_v6712 ) != z_v10316)) { } else { goto lab_L100025; }; SOURCE(6062, 37) rightNode_v6712 = (* (ptr) rightNode_v6712 ); goto lab_L100027; lab_L100025: ; }; SOURCE(6104, 4) goto lab_L100020; case 0: SOURCE(6122, 21) rightNode_v6712 = equalNode_v6656; SOURCE(6145, 29) equalNode_v6656 = (* (ptr) equalNode_v6656 ); break; case 2: SOURCE(6189, 20) leftNode_v6684 = equalNode_v6656; SOURCE(6211, 29) equalNode_v6656 = (* (( (ptr) equalNode_v6656)+1) ); break; default: SOURCE(6255, 5) (void) XR_RaiseUnnamedError(); break; }; }; goto lab_L100021; lab_L100020: ; SOURCE(6271, 50) if ((equalNode_v6656 != 0)) { SOURCE(6295, 26) (* (( (ptr) formal_c14168)+6) ) = (* (( (ptr) equalNode_v6656)+3) ); }; SOURCE(6323, 47) if ((leftNode_v6684 != 0)) { SOURCE(6346, 24) (* (( (ptr) formal_c14168)+5) ) = (* (( (ptr) leftNode_v6684)+3) ); }; SOURCE(6372, 50) if ((rightNode_v6712 != 0)) { SOURCE(6396, 26) (* (( (ptr) formal_c14168)+7) ) = (* (( (ptr) rightNode_v6712)+3) ); }; } static word LookupSmallest_P600(self_v4784) word self_v4784; { W7 var_c14200; /* declaration of data_v4828 skipped */ /* declaration of var_c12856 skipped */ /* LookupSmallest: */ SOURCE(6453, 290) { word tmpAddr24; tmpAddr24 = (word) (( (ptr) &var_c14200)+5)/* var_c12856 */ ; (* (ptr) tmpAddr24 ) = ( ((word) (fPt) inner_P1548) ); (* (( (ptr) tmpAddr24) + 1) ) = 1; }; SOURCE(6453, 290) var_c14200.f4/* data_v4828 */ = 0; SOURCE(6723, 20) (void) DoInner_P60(self_v4784, (word) (( (bPt) &var_c14200)+20)/* var_c12856 */ ); SOURCE(6453, 290) return(var_c14200.f4/* data_v4828 */ ); } static void inner_P1548(private_v10404, y_v10432, z_v10460, root_v10488, formal_c14232) word private_v10404; word y_v10432; word z_v10460; word root_v10488; word formal_c14232; { word smallestNode_v6800; formal_c14232 = (formal_c14232 - 20); /* inner: */ SOURCE(6530, 188) SOURCE(6551, 33) smallestNode_v6800 = (* (( (ptr) root_v10488)+1) ); SOURCE(6586, 29) if ((smallestNode_v6800 == z_v10460)) { SOURCE(6609, 6) return; }; SOURCE(6617, 75) lab_L100030: ; if (((* (ptr) smallestNode_v6800 ) != z_v10460)) { } else { goto lab_L100028; }; SOURCE(6649, 43) smallestNode_v6800 = (* (ptr) smallestNode_v6800 ); goto lab_L100030; lab_L100028: ; SOURCE(6694, 24) (* (( (ptr) formal_c14232)+4) ) = (* (( (ptr) smallestNode_v6800)+3) ); } static word LookupNextLarger_P660(self_v4888, formal_c0297) word self_v4888; word formal_c0297; { W8 var_c14264; /* declaration of lookupKey_v4916 skipped */ /* declaration of data_v4960 skipped */ /* declaration of var_c12888 skipped */ var_c14264.f4/* lookupKey_v4916 */ = formal_c0297; /* LookupNextLarger: */ SOURCE(6749, 360) { word tmpAddr25; tmpAddr25 = (word) (( (ptr) &var_c14264)+6)/* var_c12888 */ ; (* (ptr) tmpAddr25 ) = ( ((word) (fPt) inner_P1608) ); (* (( (ptr) tmpAddr25) + 1) ) = 1; }; SOURCE(6749, 360) var_c14264.f5/* data_v4960 */ = 0; SOURCE(7089, 20) (void) DoInner_P60(self_v4888, (word) (( (bPt) &var_c14264)+24)/* var_c12888 */ ); SOURCE(6749, 360) return(var_c14264.f5/* data_v4960 */ ); } static void inner_P1608(private_v10548, y_v10576, z_v10604, root_v10632, formal_c14296) word private_v10548; word y_v10576; word z_v10604; word root_v10632; word formal_c14296; { word largerNode_v6888 = 0; word x_v6916; formal_c14296 = (formal_c14296 - 24); /* inner: */ SOURCE(6844, 240) SOURCE(6889, 22) x_v6916 = (* (( (ptr) root_v10632)+1) ); SOURCE(6913, 113) lab_L100033: ; if ((x_v6916 != z_v10604)) { } else { goto lab_L100031; }; SOURCE(6926, 100) { word pd26; pd26 = (* (( (ptr) private_v10548)+2) ); if (((word) ( *( (fPt) ((* (ptr) pd26 ))))((* (( (ptr) formal_c14296)+4) ), (* (( (ptr) x_v6916)+3) ), pd26) == 0)) { SOURCE(6977, 14) largerNode_v6888 = x_v6916; SOURCE(6993, 13) x_v6916 = (* (ptr) x_v6916 ); } else { SOURCE(7013, 13) x_v6916 = (* (( (ptr) x_v6916)+1) ); }; }; goto lab_L100033; lab_L100031: ; SOURCE(7037, 47) if ((largerNode_v6888 != 0)) { SOURCE(7062, 22) (* (( (ptr) formal_c14296)+5) ) = (* (( (ptr) largerNode_v6888)+3) ); }; } static word LookupLargest_P720(self_v5020) word self_v5020; { W7 var_c14328; /* declaration of data_v5064 skipped */ /* declaration of var_c12920 skipped */ /* LookupLargest: */ SOURCE(7115, 304) { word tmpAddr27; tmpAddr27 = (word) (( (ptr) &var_c14328)+5)/* var_c12920 */ ; (* (ptr) tmpAddr27 ) = ( ((word) (fPt) inner_P1668) ); (* (( (ptr) tmpAddr27) + 1) ) = 1; }; SOURCE(7115, 304) var_c14328.f4/* data_v5064 */ = 0; SOURCE(7399, 20) (void) DoInner_P60(self_v5020, (word) (( (bPt) &var_c14328)+20)/* var_c12920 */ ); SOURCE(7115, 304) return(var_c14328.f4/* data_v5064 */ ); } static void inner_P1668(private_v10692, y_v10720, z_v10748, root_v10776, formal_c14360) word private_v10692; word y_v10720; word z_v10748; word root_v10776; word formal_c14360; { word largestNode_v7004; formal_c14360 = (formal_c14360 - 20); /* inner: */ SOURCE(7191, 203) SOURCE(7212, 32) largestNode_v7004 = (* (( (ptr) root_v10776)+1) ); SOURCE(7246, 48) if ((largestNode_v7004 == z_v10748)) { SOURCE(7269, 17) largestNode_v7004 = 0; SOURCE(7288, 6) return; }; SOURCE(7297, 72) lab_L100036: ; if (((* (( (ptr) largestNode_v7004)+1) ) != z_v10748)) { } else { goto lab_L100034; }; SOURCE(7328, 41) largestNode_v7004 = (* (( (ptr) largestNode_v7004)+1) ); goto lab_L100036; lab_L100034: ; SOURCE(7371, 23) (* (( (ptr) formal_c14360)+4) ) = (* (( (ptr) largestNode_v7004)+3) ); } static word LookupNextSmaller_P780(self_v5124, formal_c0298) word self_v5124; word formal_c0298; { W8 var_c14392; /* declaration of lookupKey_v5152 skipped */ /* declaration of data_v5196 skipped */ /* declaration of var_c12952 skipped */ var_c14392.f4/* lookupKey_v5152 */ = formal_c0298; /* LookupNextSmaller: */ SOURCE(7425, 370) { word tmpAddr28; tmpAddr28 = (word) (( (ptr) &var_c14392)+6)/* var_c12952 */ ; (* (ptr) tmpAddr28 ) = ( ((word) (fPt) inner_P1728) ); (* (( (ptr) tmpAddr28) + 1) ) = 1; }; SOURCE(7425, 370) var_c14392.f5/* data_v5196 */ = 0; SOURCE(7775, 20) (void) DoInner_P60(self_v5124, (word) (( (bPt) &var_c14392)+24)/* var_c12952 */ ); SOURCE(7425, 370) return(var_c14392.f5/* data_v5196 */ ); } static void inner_P1728(private_v10836, y_v10864, z_v10892, root_v10920, formal_c14424) word private_v10836; word y_v10864; word z_v10892; word root_v10920; word formal_c14424; { word smallerNode_v7092 = 0; word x_v7120; formal_c14424 = (formal_c14424 - 24); /* inner: */ SOURCE(7521, 249) SOURCE(7567, 22) x_v7120 = (* (( (ptr) root_v10920)+1) ); SOURCE(7591, 119) lab_L100039: ; if ((x_v7120 != z_v10892)) { } else { goto lab_L100037; }; SOURCE(7604, 106) { word pd29; pd29 = (* (( (ptr) private_v10836)+2) ); if (((word) ( *( (fPt) ((* (ptr) pd29 ))))((* (( (ptr) formal_c14424)+4) ), (* (( (ptr) x_v7120)+3) ), pd29) == 2)) { SOURCE(7659, 15) smallerNode_v7092 = x_v7120; SOURCE(7676, 14) x_v7120 = (* (( (ptr) x_v7120)+1) ); } else { SOURCE(7697, 13) x_v7120 = (* (ptr) x_v7120 ); }; }; goto lab_L100039; lab_L100037: ; SOURCE(7721, 49) if ((smallerNode_v7092 != 0)) { SOURCE(7747, 23) (* (( (ptr) formal_c14424)+5) ) = (* (( (ptr) smallerNode_v7092)+3) ); }; } static void DestroyTable_P840(formal_c0299) word formal_c0299; { W7 var_c14456; /* declaration of self_v5256 skipped */ /* declaration of var_c12984 skipped */ var_c14456.f4/* self_v5256 */ = formal_c0299; /* DestroyTable: */ SOURCE(7801, 192) { word tmpAddr30; tmpAddr30 = (word) (( (ptr) &var_c14456)+5)/* var_c12984 */ ; (* (ptr) tmpAddr30 ) = ( ((word) (fPt) inner_P1788) ); (* (( (ptr) tmpAddr30) + 1) ) = 1; }; SOURCE(7973, 20) (void) DoInner_P60(var_c14456.f4/* self_v5256 */ , (word) (( (bPt) &var_c14456)+20)/* var_c12984 */ ); } static void inner_P1788(private_v10980, y_v11008, z_v11036, root_v11064, formal_c14488) word private_v10980; word y_v11008; word z_v11036; word root_v11064; word formal_c14488; { word new_v7208; formal_c14488 = (formal_c14488 - 20); /* inner: */ SOURCE(7845, 123) SOURCE(7866, 52) new_v7208 = (word) Create_P120((* (( (ptr) private_v10980)+1) ), (* (( (ptr) private_v10980)+2) )); SOURCE(7920, 26) (* (( (ptr) (* (( (ptr) formal_c14488)+4) ))+5) ) = (* (( (ptr) new_v7208)+5) ); SOURCE(7948, 20) (* (( (ptr) (* (( (ptr) formal_c14488)+4) ))+4) ) = (* (( (ptr) new_v7208)+4) ); } static void EnumerateIncreasing_P900(self_v5316, formal_c0300) word self_v5316; word formal_c0300; { W7 var_c14520; /* declaration of procToApply_v5344 skipped */ /* declaration of var_c13016 skipped */ var_c14520.f4/* procToApply_v5344 */ = formal_c0300; /* EnumerateIncreasing: */ SOURCE(7999, 461) { word tmpAddr31; tmpAddr31 = (word) (( (ptr) &var_c14520)+5)/* var_c13016 */ ; (* (ptr) tmpAddr31 ) = ( ((word) (fPt) inner_P1848) ); (* (( (ptr) tmpAddr31) + 1) ) = 1; }; SOURCE(8440, 20) (void) DoInner_P60(self_v5316, (word) (( (bPt) &var_c14520)+20)/* var_c13016 */ ); } static void inner_P1848(private_v11124, y_v11152, formal_c0301, root_v11208, formal_c14584) word private_v11124; word y_v11152; word formal_c0301; word root_v11208; word formal_c14584; { W7 var_c14552; /* declaration of z_v11180 skipped */ /* declaration of var_c13048 skipped */ formal_c14584 = (formal_c14584 - 20); var_c14552.f4/* z_v11180 */ = formal_c0301; var_c14552.f0 = formal_c14584; /* inner: */ SOURCE(8073, 362) { word tmpAddr32; tmpAddr32 = (word) (( (ptr) &var_c14552)+5)/* var_c13048 */ ; (* (ptr) tmpAddr32 ) = ( ((word) (fPt) VisitSubtree_P1908) ); (* (( (ptr) tmpAddr32) + 1) ) = 1; }; SOURCE(8357, 45) if ((root_v11208 == 0) || ((* (( (ptr) root_v11208)+1) ) == var_c14552.f4/* z_v11180 */ )) { SOURCE(8396, 6) return; }; SOURCE(8404, 31) { word var_c13080; var_c13080 = (word) VisitSubtree_P1908((* (( (ptr) root_v11208)+1) ), (word) (( (bPt) &var_c14552)+20)/* var_c13048 */ ); }; } static word VisitSubtree_P1908(node_v7372, formal_c14616) word node_v7372; word formal_c14616; { word stop_v7416; word link_v7444; formal_c14616 = (formal_c14616 - 20); /* VisitSubtree: */ SOURCE(8094, 258) SOURCE(8094, 258) stop_v7416 = 0; SOURCE(8159, 25) link_v7444 = (* (ptr) node_v7372 ); SOURCE(8186, 53) if ( ( (link_v7444 != (* (( (ptr) formal_c14616)+4) )) ? (0 != (word) VisitSubtree_P1908(link_v7444, (word) (( (bPt) formal_c14616)+20) )) : 0 ) ) { SOURCE(8226, 13) return(1); }; SOURCE(8241, 44) { word pd33; pd33 = (* (( (ptr) (* (ptr) formal_c14616 ))+4) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd33 ))))((* ((( (ptr) node_v7372)+3)) ), pd33))) { SOURCE(8272, 13) return(1); }; }; SOURCE(8287, 19) link_v7444 = (* (( (ptr) node_v7372)+1) ); SOURCE(8308, 44) if ((link_v7444 != (* (( (ptr) formal_c14616)+4) ))) { SOURCE(8325, 27) return((word) VisitSubtree_P1908(link_v7444, (word) (( (bPt) formal_c14616)+20))); }; SOURCE(8094, 258) return(stop_v7416); } static void EnumerateDecreasing_P960(self_v5404, formal_c0302) word self_v5404; word formal_c0302; { W7 var_c14648; /* declaration of procToApply_v5432 skipped */ /* declaration of var_c13144 skipped */ var_c14648.f4/* procToApply_v5432 */ = formal_c0302; /* EnumerateDecreasing: */ SOURCE(8466, 461) { word tmpAddr34; tmpAddr34 = (word) (( (ptr) &var_c14648)+5)/* var_c13144 */ ; (* (ptr) tmpAddr34 ) = ( ((word) (fPt) inner_P1968) ); (* (( (ptr) tmpAddr34) + 1) ) = 1; }; SOURCE(8907, 20) (void) DoInner_P60(self_v5404, (word) (( (bPt) &var_c14648)+20)/* var_c13144 */ ); } static void inner_P1968(private_v11268, y_v11296, formal_c0303, root_v11352, formal_c14712) word private_v11268; word y_v11296; word formal_c0303; word root_v11352; word formal_c14712; { W7 var_c14680; /* declaration of z_v11324 skipped */ /* declaration of var_c13176 skipped */ formal_c14712 = (formal_c14712 - 20); var_c14680.f4/* z_v11324 */ = formal_c0303; var_c14680.f0 = formal_c14712; /* inner: */ SOURCE(8540, 362) { word tmpAddr35; tmpAddr35 = (word) (( (ptr) &var_c14680)+5)/* var_c13176 */ ; (* (ptr) tmpAddr35 ) = ( ((word) (fPt) VisitSubtree_P2028) ); (* (( (ptr) tmpAddr35) + 1) ) = 1; }; SOURCE(8824, 45) if ((root_v11352 == 0) || ((* (( (ptr) root_v11352)+1) ) == var_c14680.f4/* z_v11324 */ )) { SOURCE(8863, 6) return; }; SOURCE(8871, 31) { word var_c13208; var_c13208 = (word) VisitSubtree_P2028((* (( (ptr) root_v11352)+1) ), (word) (( (bPt) &var_c14680)+20)/* var_c13176 */ ); }; } static word VisitSubtree_P2028(node_v7608, formal_c14744) word node_v7608; word formal_c14744; { word stop_v7652; word link_v7680; formal_c14744 = (formal_c14744 - 20); /* VisitSubtree: */ SOURCE(8561, 258) SOURCE(8561, 258) stop_v7652 = 0; SOURCE(8626, 25) link_v7680 = (* (( (ptr) node_v7608)+1) ); SOURCE(8653, 53) if ( ( (link_v7680 != (* (( (ptr) formal_c14744)+4) )) ? (0 != (word) VisitSubtree_P2028(link_v7680, (word) (( (bPt) formal_c14744)+20) )) : 0 ) ) { SOURCE(8693, 13) return(1); }; SOURCE(8708, 44) { word pd36; pd36 = (* (( (ptr) (* (ptr) formal_c14744 ))+4) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd36 ))))((* ((( (ptr) node_v7608)+3)) ), pd36))) { SOURCE(8739, 13) return(1); }; }; SOURCE(8754, 19) link_v7680 = (* (ptr) node_v7608 ); SOURCE(8775, 44) if ((link_v7680 != (* (( (ptr) formal_c14744)+4) ))) { SOURCE(8792, 27) return((word) VisitSubtree_P2028(link_v7680, (word) (( (bPt) formal_c14744)+20))); }; SOURCE(8561, 258) return(stop_v7652); } static void CheckTable_P1020(self_v5492) word self_v5492; { W6 var_c14776; /* declaration of var_c13272 skipped */ /* CheckTable: */ SOURCE(8933, 919) { word tmpAddr37; tmpAddr37 = (word) (( (ptr) &var_c14776)+4)/* var_c13272 */ ; (* (ptr) tmpAddr37 ) = ( ((word) (fPt) inner_P2088) ); (* (( (ptr) tmpAddr37) + 1) ) = 1; }; SOURCE(9832, 20) (void) DoInner_P60(self_v5492, (word) (( (bPt) &var_c14776)+16)/* var_c13272 */ ); } static void inner_P2088(formal_c0304, y_v11440, formal_c0305, root_v11496, formal_c14840) word formal_c0304; word y_v11440; word formal_c0305; word root_v11496; word formal_c14840; { W11 var_c14808; /* declaration of private_v11412 skipped */ /* declaration of z_v11468 skipped */ /* declaration of var_c13304 skipped */ /* declaration of var_c13336 skipped */ /* declaration of count_v7824 skipped */ formal_c14840 = (formal_c14840 - 16); (* (( (ptr) &var_c14808)+4)/* private_v11412 */ ) = formal_c0304; (* (( (ptr) &var_c14808)+5)/* z_v11468 */ ) = formal_c0305; (* (ptr) &var_c14808 ) = formal_c14840; /* inner: */ SOURCE(8976, 848) { word tmpAddr38; tmpAddr38 = (word) (( (ptr) &var_c14808)+6)/* var_c13304 */ ; (* (ptr) tmpAddr38 ) = ( ((word) (fPt) Check1_P2208) ); (* (( (ptr) tmpAddr38) + 1) ) = 1; }; { word tmpAddr39; tmpAddr39 = (word) (( (ptr) &var_c14808)+8)/* var_c13336 */ ; (* (ptr) tmpAddr39 ) = ( ((word) (fPt) Assert_P2148) ); (* (( (ptr) tmpAddr39) + 1) ) = 1; }; SOURCE(9584, 14) (* (( (ptr) &var_c14808)+10)/* count_v7824 */ ) = 0; SOURCE(9600, 19) (void) Assert_P2148(((* (ptr) (* (( (ptr) &var_c14808)+5)/* z_v11468 */ ) ) == y_v11440), (word) (( (bPt) &var_c14808)+32) /* var_c13336 */ ); SOURCE(9621, 19) (void) Assert_P2148(((* (( (ptr) (* (( (ptr) &var_c14808)+5)/* z_v11468 */ ))+1) ) == y_v11440), (word) (( (bPt) &var_c14808)+32) /* var_c13336 */ ); SOURCE(9643, 181) if (((* (( (ptr) root_v11496)+1) ) != (* (( (ptr) &var_c14808)+5)/* z_v11468 */ ))) { SOURCE(9668, 158) { word smallest_v8116; SOURCE(9670, 29) smallest_v8116 = (* (( (ptr) root_v11496)+1) ); SOURCE(9701, 65) lab_L100042: ; if (((* (ptr) smallest_v8116 ) != (* (( (ptr) &var_c14808)+5)/* z_v11468 */ ))) { } else { goto lab_L100040; }; SOURCE(9731, 35) smallest_v8116 = (* (ptr) smallest_v8116 ); goto lab_L100042; lab_L100040: ; SOURCE(9768, 56) { W3 var_c13400; { word var_c13368; { word pd40; pd40 = (* (( (ptr) (* (( (ptr) &var_c14808)+4)/* private_v11412 */ ))+1) ); var_c13368 = (word) ( *( (fPt) ((* (ptr) pd40 ))))((* ((( (ptr) smallest_v8116)+3)) ), pd40); }; (void) Check1_P2208((word) &var_c13400, (* (( (ptr) root_v11496)+1) ), var_c13368, (word) (( (bPt) &var_c14808)+24)/* var_c13304 */ ) ; }; }; }; }; } static void Assert_P2148(p_v7900, formal_c14904) word p_v7900; word formal_c14904; { register ptr gf_c14872 = (ptr) &globalframe; formal_c14904 = (formal_c14904 - 32); /* Assert: */ SOURCE(8997, 55) SOURCE(9023, 29) if ((0 == p_v7900)) { SOURCE(9037, 15) (void) XR_RaiseError((word) (( (bPt) gf_c14872)+36), 0); }; } static void Check1_P2208(formal_c0214, x_v7960, maxKey_v7988, formal_c14936) word formal_c0214; word x_v7960; word maxKey_v7988; word formal_c14936; { word var_c8032; word var_c8060; word var_c8088; word dl_v8160; word dr_v8188; word redChild_v8216; formal_c14936 = (formal_c14936 - 24); /* Check1: */ SOURCE(9055, 524) SOURCE(9157, 39) if ((x_v7960 == (* (( (ptr) formal_c14936)+5) ))) { SOURCE(9171, 25) var_c8032 = maxKey_v7988; var_c8060 = 0; var_c8088 = 0; goto lab_L100043; }; SOURCE(9198, 50) { W3 var_c13432; (void) Check1_P2208((word) &var_c13432, (* (ptr) x_v7960 ), maxKey_v7988, (word) (( (bPt) formal_c14936)+24)); redChild_v8216 = var_c13432.f2; dl_v8160 = var_c13432.f1; maxKey_v7988 = var_c13432.f0; }; SOURCE(9250, 39) (void) Assert_P2148( ( (0 == redChild_v8216) ? 1 : ((* (( (ptr) x_v7960)+2) ) != 1) ) , (word) (( (bPt) formal_c14936)+32) ); SOURCE(9291, 74) { word var_c13464; { word pd41; pd41 = (* (( (ptr) (* (( (ptr) formal_c14936)+4) ))+2) ); var_c13464 = ((word) ( *( (fPt) ((* (ptr) pd41 ))))(maxKey_v7988, (* (( (ptr) x_v7960)+3) ), pd41) == ( ( (int)(* (( (ptr) formal_c14936)+10) ) == (int)0) ? 1 : 0 ) ); }; (void) Assert_P2148(var_c13464, (word) (( (bPt) formal_c14936)+32)); }; SOURCE(9367, 17) (* (( (ptr) formal_c14936)+10) ) = ((* (( (ptr) formal_c14936)+10) ) + 1); SOURCE(9386, 66) { W3 var_c13528; { word var_c13496; { word pd42; pd42 = (* (( (ptr) (* (( (ptr) formal_c14936)+4) ))+1) ); var_c13496 = (word) ( *( (fPt) ((* (ptr) pd42 ))))((* ((( (ptr) x_v7960)+3)) ), pd42); }; (void) Check1_P2208((word) &var_c13528, (* (( (ptr) x_v7960)+1) ), var_c13496, (word) (( (bPt) formal_c14936)+24)); }; redChild_v8216 = var_c13528.f2; dr_v8188 = var_c13528.f1; maxKey_v7988 = var_c13528.f0; }; SOURCE(9454, 39) (void) Assert_P2148( ( (0 == redChild_v8216) ? 1 : ((* (( (ptr) x_v7960)+2) ) != 1) ) , (word) (( (bPt) formal_c14936)+32) ); SOURCE(9495, 13) (void) Assert_P2148(( (int)dl_v8160 == (int)dr_v8188), (word) (( (bPt) formal_c14936)+32)); SOURCE(9510, 69) { word var_c13560; var_c13560 = (dl_v8160 + ( ((* (( (ptr) x_v7960)+2) ) == 0) ? 1 : 0 ) ); var_c8088 = ((* (( (ptr) x_v7960)+2) ) == 1); var_c8032 = maxKey_v7988; var_c8060 = var_c13560; /* removed tail goto */ }; lab_L100043: ; (* (ptr) formal_c0214 ) = var_c8032; (* (( (ptr) formal_c0214)+1) ) = var_c8060; (* (( (ptr) formal_c0214)+2) ) = var_c8088; return; } static word Balance_P1080(gg_v5552, g_v5580, f_v5608, x_v5636) word gg_v5552; word g_v5580; word f_v5608; word x_v5636; { word var_c5680; word t_v8260 = 0; word tc_v8288; /* Balance: */ SOURCE(9859, 520) SOURCE(9936, 196) if ((f_v5608 == (* (ptr) g_v5580 ))) { SOURCE(9958, 80) if ((x_v5636 == (* (( (ptr) f_v5608)+1) ))) { SOURCE(9980, 21) (* (( (ptr) f_v5608)+1) ) = (* (ptr) x_v5636 ); SOURCE(10004, 13) (* (ptr) x_v5636 ) = f_v5608; SOURCE(10019, 5) t_v8260 = f_v5608; SOURCE(10026, 5) f_v5608 = x_v5636; SOURCE(10033, 5) x_v5636 = t_v8260; }; } else { SOURCE(10052, 80) if ((x_v5636 == (* (ptr) f_v5608 ))) { SOURCE(10074, 21) (* (ptr) f_v5608 ) = (* (( (ptr) x_v5636)+1) ); SOURCE(10098, 13) (* (( (ptr) x_v5636)+1) ) = f_v5608; SOURCE(10113, 5) t_v8260 = f_v5608; SOURCE(10120, 5) f_v5608 = x_v5636; SOURCE(10127, 5) x_v5636 = t_v8260; }; }; SOURCE(10140, 107) if ((x_v5636 == (* (ptr) f_v5608 ))) { SOURCE(10162, 21) (* (ptr) g_v5580 ) = (* (( (ptr) f_v5608)+1) ); SOURCE(10186, 13) (* (( (ptr) f_v5608)+1) ) = g_v5580; } else { SOURCE(10210, 21) (* (( (ptr) g_v5580)+1) ) = (* (ptr) f_v5608 ); SOURCE(10234, 13) (* (ptr) f_v5608 ) = g_v5580; }; SOURCE(10252, 57) if ((g_v5580 == (* (( (ptr) gg_v5552)+1) ))) { SOURCE(10275, 20) (* (( (ptr) gg_v5552)+1) ) = f_v5608; } else { SOURCE(10295, 14) (* (ptr) gg_v5552 ) = f_v5608; }; SOURCE(10311, 14) tc_v8288 = (* (( (ptr) g_v5580)+2) ); SOURCE(10328, 21) (* (( (ptr) g_v5580)+2) ) = (* (( (ptr) f_v5608)+2) ); SOURCE(10352, 14) (* (( (ptr) f_v5608)+2) ) = tc_v8288; SOURCE(10368, 11) return(f_v5608); } static void NoName_Q2436(formal_c0226, formal_c200000, formal_c200001, formal_c200002, formal_c200003) word formal_c0226; word formal_c200000; word formal_c200001; word formal_c200002; word formal_c200003; { if ((formal_c200001 == XR_Unwind)) { (void) (XR_MonitorExit(* (( (ptr) formal_c200000)+4) )); }; (* (ptr) formal_c0226 ) = 0; (* (( (ptr) formal_c0226)+1) ) = 0; return; } /* file: RedBlackTreeImpl, module: RedBlackTreeImpl, compiled at: February 21, 1992 11:09:50 pm PST */ extern void XR_install_RedBlackTreeImpl() { NoName_Q2316(); } extern void XR_run_RedBlackTreeImpl() { XR_Start(&globalframe); }