/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: October 5, 1992 5:58:13 pm PDT */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: RopeImpl, module: RopeImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [2372217448,2569016102] RopeImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {unsigned u1:1, f:15;} * P15x1h; typedef word (*fPt)(); typedef struct {unsigned f:14, u2:2;} * P14x0h; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {word f0, f1;} W2; typedef struct {W8 f; word r;} W9; typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef struct {W8 f; W8 r;} W16; typedef struct {W8 f; W2 r;} W10; typedef W10 *W10Pt; typedef struct {word f0, f1, f2;} W3; typedef struct {word f0, f1, f2, f3, f4, f5;} W6; typedef struct {W8 f; W6 r;} W14; typedef struct {W16 f; W16 r;} W32; typedef struct {W32 f; W32 r;} W64; typedef struct {W64 f; W32 r;} W96; typedef struct {W16 f; W2 r;} W18; typedef struct {W64 f; W18 r;} W82; typedef struct {W64 f; W16 r;} W80; typedef W80 *W80Pt; typedef W2 *W2Pt; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) #define INEG(x) ( (word) ( - ((int) (word) (x)) ) ) #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) #define IOP2(op, x, y) ( (word) ((x) op (y)) ) #define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) ) #define IABS(i) ( ((int)(word)(i) > 0) ? (i) : (word)(-(int)(word)(i)) ) static void NoName←Q13464(); static void RopeImpl←P0(); static word NewText←P60(); static word Substr←P120(); static word Cat←P180(); static word Concat←P240(); static word AddChar←P3252(); static word Replace←P300(); static word AddChar←P3456(); static word Fetch←P420(); static word Map←P480(); static word Translate←P540(); static word each←P4476(); static word Lower←P600(); static word Upper←P660(); static word Flatten←P720(); static word MakeRope←P780(); static word FromProc←P840(); static word FromChars←P900(); static void genRopesFromChars←P4728(); static void putChar←P4788(); static word FromRopes←P960(); static void putRope←P4848(); static word FromChar←P1020(); static word MakeConstantRope←P1080(); static word ConstFetch←P1140(); static word ConstMap←P1200(); static word ConstMove←P1260(); static word FromRefText←P1320(); static word ToRefText←P1380(); static void DoMoveChars←P1440(); static word action←P5436(); static word AppendChars←P1500(); static word UnsafeMoveChars←P1560(); static word Equal←P1620(); static word Compare←P1680(); static word CompareSubstrs←P1740(); static word EqualSubstrs←P1800(); static void ContainingPiece←P1860(); static word IsEmpty←P1920(); static word Length←P1980(); static word InlineSize←P2040(); static word Size←P2100(); static word Run←P2220(); static word IsPrefix←P2280(); static word Index←P2340(); static word Cmp←P6648(); static word LCmp←P6756(); static word Find←P2400(); static word FindBackward←P2460(); static word Match←P2520(); static word submatch←P7056(); static word SkipTo←P2580(); static word CharMatch←P7356(); static word SkipOver←P2640(); static word CharMatch←P7512(); static void VerifyStructure←P2700(); static void InitMinSizeForHeight←P2760(); static word PartIsBalanced←P2820(); static word Balance←P2880(); static word NewBalance←P2940(); static void StoreA←P8004(); static void ASub←P8064(); static void SavePart←P8124(); static word BalanceRange←P8184(); static void MapParts←P3000(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"}; static struct {unsigned f; char r[24];} string2 = {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[16];} string3 = {851984, "\257\300\215e*h\300\231 \023&B<\000\000"}; static struct {unsigned f; char r[44];} string4 = {2752556, "\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\000"}; static struct {unsigned f; char r[8];} string5 = {393224, "\205\210\242\000\037\242\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\215\145\052\150\300\231\040\023\046\105\000\000\000"}; static struct {unsigned f; char r[12];} string7 = {720907, "\006\002\004\010\000\010(\001AD\001"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\215\145\052\150\300\231\040\023\046\100\164\000\000"}; static struct {unsigned f; char r[24];} string9 = {1441814, "\006\007\020\001\024\001\030\001\034\001\040\001\044\010\000\004\101\000\001\104\044\001\000"}; static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"}; static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\277\374\326\303\300\302\136\022\175\100\150\000\000"}; static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"}; static struct { word f0[284]; word f284; word f285; word f286; word f287; word f288; word f289; word f290; word f291; word f292; word f293; word f294; word f295; word f296; word f297; word f298; word f299; word f300; word f301; word f302; word f303; word f304; word f305; word f306; word f307; word f308; word f309; word f310; word f311; word f312; word f313; word f314; word f315; word f316; word f317; word f318; word f319; word f320; word f321; word f322; word f323; word f324; word f325; word f326; word f327; word f328; word f329; word f330; word f331; word f332; word f333; word f334; word f335; word f336; word f337; word f338; word f339; word f340; word f341; word f342; word f343; word f344; word f345; word f346; word f347; word f348; word f349; word f350; word f351; word f352; word f353; word f354; word f355; word f356; word f357; word f358; word f359; word f360; word f361; word f362; word f363; word f364; word f365; word f366; word f367; word f368; word f369; word f370; word f371; word f372; word f373; word f374; word f375; word f376; word f377; word f378; word f379; word f380; word f381[4]; } globalframe = { {0}, (word) MapParts←P3000, 0, (word) NewBalance←P2940, 0, (word) Balance←P2880, 0, (word) PartIsBalanced←P2820, 0, (word) InitMinSizeForHeight←P2760, 0, (word) VerifyStructure←P2700, 0, (word) SkipOver←P2640, 0, (word) SkipTo←P2580, 0, (word) Match←P2520, 0, (word) FindBackward←P2460, 0, (word) Find←P2400, 0, (word) Index←P2340, 0, (word) IsPrefix←P2280, 0, (word) Run←P2220, 0, (word) Size←P2100, 0, (word) InlineSize←P2040, 0, (word) Length←P1980, 0, (word) IsEmpty←P1920, 0, (word) ContainingPiece←P1860, 0, (word) EqualSubstrs←P1800, 0, (word) CompareSubstrs←P1740, 0, (word) Compare←P1680, 0, (word) Equal←P1620, 0, (word) UnsafeMoveChars←P1560, 0, (word) AppendChars←P1500, 0, (word) DoMoveChars←P1440, 0, (word) ToRefText←P1380, 0, (word) FromRefText←P1320, 0, (word) ConstMove←P1260, 0, (word) ConstMap←P1200, 0, (word) ConstFetch←P1140, 0, (word) MakeConstantRope←P1080, 0, (word) FromChar←P1020, 0, (word) FromRopes←P960, 0, (word) FromChars←P900, 0, (word) FromProc←P840, 0, (word) MakeRope←P780, 0, (word) Flatten←P720, 0, (word) Upper←P660, 0, (word) Lower←P600, 0, (word) Translate←P540, 0, (word) Map←P480, 0, (word) Fetch←P420, 0, (word) Replace←P300, 0, (word) Concat←P240, 0, (word) Cat←P180, 0, (word) Substr←P120, 0, (word) NewText←P60, 0, (word) RopeImpl←P0, {0} }; static void NoName←Q13464() { register ptr gf←c0830 = (ptr) &globalframe; word var←c49112; (* (( (ptr) gf←c0830)+266) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf←c0830)+276) ) = (word) XR←GetTypeIndexS((word) (&string3)); (* (( (ptr) gf←c0830)+277) ) = (word) XR←GetTypeIndexS((word) (&string4)); (* (( (ptr) gf←c0830)+278) ) = (word) XR←GetTypeIndexS((word) (&string5)); (* (( (ptr) gf←c0830)+279) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7); (void) XR←DeclareGlobalFrame((word) "RopeImpl", &globalframe, (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9) , (word) (( (bPt) gf←c0830)+1520)/* var←c40696 */ ); var←c49112 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string10)), 26); (* (( (ptr) gf←c0830)+383)/* var←c43800 */ ) = var←c49112; (void) XR←ImportProcS(var←c49112, 262913); (void) XR←ImportProcS(var←c49112, 67371521); var←c49112 = (word) XR←ImportInterface((word) "SafeStorage", (word) XR←GetTypeIndexS((word) (&string11)), 27); (* (( (ptr) gf←c0830)+382)/* var←c40760 */ ) = var←c49112; (void) XR←ImportProcS(var←c49112, 67109376); var←c49112 = (word) XR←ExportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string12)), 43); (* (( (ptr) gf←c0830)+384)/* var←c49144 */ ) = var←c49112; (void) XR←ExportVar(var←c49112, 0, (word) (( (bPt) gf←c0830)+1124)); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1496)/* var←c40600 */ , 68419845); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1488)/* var←c40568 */ , 67633666); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1304)/* var←c39832 */ , 67896067); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1312)/* var←c39864 */ , 67896323); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1472)/* var←c40504 */ , 67634434); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1224)/* var←c39512 */ , 68158980); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1216)/* var←c39480 */ , 68159236); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1208)/* var←c39448 */ , 68159492); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1272)/* var←c39704 */ , 67373313); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1264)/* var←c39672 */ , 67373569); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1248)/* var←c39608 */ , 67373825); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1480)/* var←c40536 */ , 68160516); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1504)/* var←c40632 */ , 67898627); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1296)/* var←c39800 */ , 68947463); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1288)/* var←c39768 */ , 68947719); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1240)/* var←c39576 */ , 68686086); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1232)/* var←c39544 */ , 67899907); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1200)/* var←c39416 */ , 67900163); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1192)/* var←c39384 */ , 67900419); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1184)/* var←c39352 */ , 67900675); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1464)/* var←c40472 */ , 68163076); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1456)/* var←c40440 */ , 68163332); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1448)/* var←c40408 */ , 67377153); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1440)/* var←c40376 */ , 67377409); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1432)/* var←c40344 */ , 67901955); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1416)/* var←c40280 */ , 67902211); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1408)/* var←c40248 */ , 67378177); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1400)/* var←c40216 */ , 67378433); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1512)/* var←c40664 */ , 67378689); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1352)/* var←c40024 */ , 67903235); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1344)/* var←c39992 */ , 67379201); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1392)/* var←c40184 */ , 67379457); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1424)/* var←c40312 */ , 68428293); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1384)/* var←c40152 */ , 67642114); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1328)/* var←c39928 */ , 68166660); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1320)/* var←c39896 */ , 68429059); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1280)/* var←c39736 */ , 201860610); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1152)/* var←c39224 */ , 68167428); (void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1176)/* var←c39320 */ , 201598977); (void) XR←ExportVar(var←c49112, 41, (word) (( (bPt) gf←c0830)+1128)); } static void RopeImpl←P0(formal←c065, formal←c063) word formal←c065; word formal←c063; { register ptr gf←c49176 = (ptr) &globalframe; /* RopeImpl: */ SOURCE(68, 33760) SOURCE(376, 33) { word var←c40728; var←c40728 = XR←NewObject(4, (* (( (ptr) gf←c49176)+266) )); ((P15x1h) (( (hPt) var←c40728) + 1))->f = 0; (* (( (ptr) gf←c49176)+4)/* emptyRope←v2804 */ ) = var←c40728; }; SOURCE(33782, 46) SOURCE(33783, 44) { word pd13; pd13 = (* (( (ptr) (* (( (ptr) gf←c49176)+382)/* var←c40760 */ ))+6) ); (* (( (ptr) gf←c49176)+8)/* untracedZone←v2916 */ ) = (word) ( *( (fPt) ((* (ptr) pd13 ))))(pd13); }; } static word NewText←P60(size←v4752) word size←v4752; { register ptr gf←c49208 = (ptr) &globalframe; word text←v4796; /* NewText: */ SOURCE(546, 159) SOURCE(546, 159) text←v4796 = 0; SOURCE(610, 35) if ((size←v4752 == 0)) { SOURCE(627, 18) return((* (( (ptr) gf←c49208)+4)/* emptyRope←v2804 */ )); }; SOURCE(647, 38) { word var←c40792; word var←c40824; var←c40792 = (((size←v4752 + 3) >> 2) << 2); { word pd14; pd14 = (* (ptr) (* (( (ptr) gf←c49208)+8)/* untracedZone←v2916 */ ) ); var←c40824 = (word) ( *( (fPt) ((* (ptr) pd14 ))))((* (( (ptr) gf←c49208)+8)/* untracedZone←v2916 */ ), (4 + var←c40792), (* ( ( (ptr) gf←c49208)+266) ), pd14); }; ((P15x1h) (( (hPt) var←c40824) + 1))->f = ( (((unsigned)size←v4752 << 17) >> 17) ); text←v4796 = var←c40824; }; SOURCE(687, 18) ((P15x1h) text←v4796)->f = ( (((unsigned)size←v4752 << 17) >> 17) ); SOURCE(546, 159) return(text←v4796); } static word Substr←P120(base←v4856, start←v4884, len←v4912) word base←v4856; word start←v4884; word len←v4912; { register ptr gf←c49240 = (ptr) &globalframe; word new←v4956; word size←v13060; word rem←v13088; word depth←v13116 = 1; /* Substr: */ SOURCE(711, 1317) SOURCE(711, 1317) new←v4956 = 0; SOURCE(811, 28) size←v13060 = (word) InlineSize←P2040(base←v4856); SOURCE(841, 39) { word x←v39080; x←v39080 = (size←v13060 - start←v4884); rem←v13088 = SGNCK(x←v39080); }; SOURCE(902, 68) if (( (int)len←v4912 <= (int)0)) { SOURCE(919, 24) return((* (( (ptr) gf←c49240)+4)/* emptyRope←v2804 */ )); } else { SOURCE(943, 27) if (( (int)len←v4912 > (int)rem←v13088)) { SOURCE(961, 9) len←v4912 = rem←v13088; }; }; SOURCE(972, 45) if ( ( ( (int)start←v4884 == (int)0) ? ( (int)len←v4912 == (int)rem←v13088) : 0 ) ) { SOURCE(1004, 13) return(base←v4856); }; SOURCE(1019, 57) if (( (int)len←v4912 <= (int)24)) { SOURCE(1042, 34) return((word) Flatten←P720(base←v4856, start←v4884, len←v4912)); }; SOURCE(1078, 745) lab←L100003: ; SOURCE(1082, 671) { word var←c40920; var←c40920 = (*(( short *)base←v4856 + 1)<0); if ((var←c40920 == 0)) { SOURCE(1115, 4) goto lab←L100002; } else { if ((var←c40920 == 1)) { SOURCE(1129, 599) { word var←c40952; var←c40952 = ((* (( (bPt) base←v4856)+3) ) & 3); switch (var←c40952) { case 0: SOURCE(1163, 23) start←v4884 = (start←v4884 + (* (( (ptr) base←v4856)+3) )); SOURCE(1188, 13) base←v4856 = (* (( (ptr) base←v4856)+2) ); break; case 1: SOURCE(1216, 139) { word rem←v13160; SOURCE(1218, 24) rem←v13160 = ((* (( (ptr) base←v4856)+4) ) - start←v4884); SOURCE(1244, 108) if (( (int)rem←v13160 > (int)0)) { SOURCE(1261, 34) if (( (int)len←v4912 > (int)rem←v13160)) { SOURCE(1280, 15) /*1*/ depth←v13116 = (((unsigned)(* (( (hPt) base←v4856)+1) ) << 17) >> 19); SOURCE(1297, 4) /*1*/ goto lab←L100002; /*1*/ }; SOURCE(1304, 13) base←v4856 = (* (( (ptr) base←v4856)+2) ); } else { SOURCE(1325, 12) start←v4884 = INEG(rem←v13160); SOURCE(1339, 13) base←v4856 = (* (( (ptr) base←v4856)+3) ); }; }; break; case 2: SOURCE(1369, 317) { word len1←v13204; SOURCE(1371, 27) len1←v13204 = ((* (( (ptr) base←v4856)+4) ) - start←v4884); SOURCE(1400, 278) if (( (int)len1←v13204 > (int)0)) { SOURCE(1419, 35) if (( (int)len←v4912 > (int)len1←v13204)) { SOURCE(1439, 15) /*1*/ depth←v13116 = (((unsigned)(* (( (hPt) base←v4856)+1) ) << 17) >> 19); SOURCE(1456, 4) /*1*/ goto lab←L100002; /*1*/ }; SOURCE(1463, 13) base←v4856 = (* (( (ptr) base←v4856)+2) ); } else { SOURCE(1485, 198) { /*1*/ word xnew←v13248; /*1*/ word len2←v13276; SOURCE(1487, 20) /*1*/ xnew←v13248 = (* (( (ptr) base←v4856)+6) ); SOURCE(1509, 24) /*1*/ len2←v13276 = (xnew←v13248 - start←v4884); SOURCE(1535, 143) /*1*/ if (( (int)len2←v13276 > (int)0)) { SOURCE(1554, 35) /*1*/ if (( (int)len←v4912 > (int)len2←v13276)) { SOURCE(1574, 15) /*1*/ depth←v13116 = (((unsigned)(* (( (hPt) base←v4856)+1) ) << 17) >> 19); SOURCE(1591, 4) /*1*/ goto lab←L100002; /*1*/ }; SOURCE(1598, 13) /*1*/ start←v4884 = INEG(len1←v13204); SOURCE(1613, 16) /*1*/ base←v4856 = (* (( (ptr) base←v4856)+3) ); /*1*/ } /*1*/ else { SOURCE(1640, 23) /*1*/ start←v4884 = ((* (( (ptr) base←v4856)+5) ) - len2←v13276); SOURCE(1665, 13) /*1*/ base←v4856 = (* (( (ptr) base←v4856)+2) ); /*1*/ }; /*1*/ }; }; }; break; case 3: SOURCE(1699, 4) goto lab←L100002; default: SOURCE(1716, 12) (void) XR←RaiseError((word) (( (bPt) gf←c49240)+1124), 0); break; }; }; } else { SOURCE(1741, 12) (void) XR←RaiseError((word) (( (bPt) gf←c49240)+1124), 0); }; }; }; SOURCE(1755, 18) if (( (int)start←v4884 != (int)0)) { SOURCE(1773, 4) goto lab←L100003; }; SOURCE(1779, 44) if (( (int)len←v4912 == (int)(word) InlineSize←P2040(base←v4856))) { SOURCE(1810, 13) return(base←v4856); }; goto lab←L100003; lab←L100002: ; SOURCE(1872, 110) { word var←c40984; var←c40984 = XR←NewObject(16, (* (( (ptr) gf←c49240)+266) )); ((P14x0h) (( (hPt) var←c40984) + 1))->f = ( (((unsigned)(BCK((depth←v13116 + 1), 8192) + 8192) << 18) >> 18) ); (* (( (ptr) var←c40984)+1) ) = len←v4912; (* (( (ptr) var←c40984)+2) ) = base←v4856; (* (( (ptr) var←c40984)+3) ) = start←v4884; new←v4956 = var←c40984; }; SOURCE(1984, 44) if (( (int)depth←v13116 >= (int)32)) { SOURCE(2010, 18) new←v4956 = (word) Balance←P2880(new←v4956, 0, 2147483647, 24); }; SOURCE(711, 1317) return(new←v4956); } static word Cat←P180(r1←v5016, r2←v5044, r3←v5072, r4←v5100, r5←v5128) word r1←v5016; word r2←v5044; word r3←v5072; word r4←v5100; word r5←v5128; { word var←c5172; /* Cat: */ SOURCE(2034, 129) SOURCE(2105, 58) { word var←c41048; word var←c41080; word var←c41112; var←c41048 = (word) Concat←P240(r1←v5016, r2←v5044); var←c41112 = (word) Concat←P240(r3←v5072, r4←v5100); var←c41080 = (word) Concat←P240(var←c41112, r5←v5128); return((word) Concat←P240(var←c41048, var←c41080)); }; } static word Concat←P240(base←v5232, rest←v5260) word base←v5232; word rest←v5260; { W8 var←c49272; register ptr gf←c49304 = (ptr) &globalframe; word new←v5304; /* declaration of var←c41144 skipped */ word baseStr←v13320 = 0; word restStr←v13348 = 0; word baseLen←v13376; word restLen←v13404; word size←v13432; word depth←v13460 = 1; /* Concat: */ SOURCE(2170, 1612) { word tmpAddr15; tmpAddr15 = (word) (( (ptr) &var←c49272)+4)/* var←c41144 */ ; (* (ptr) tmpAddr15 ) = ( ((word) (fPt) AddChar←P3252) ); (* (( (ptr) tmpAddr15) + 1) ) = 1; }; SOURCE(2170, 1612) new←v5304 = 0; SOURCE(2314, 32) if ((rest←v5260 == 0)) { SOURCE(2333, 13) return(base←v5232); }; SOURCE(2348, 37) { W2 var←c41336; { word var←c41208; var←c41208 = base←v5232; if ((var←c41208 == 0)) { goto lab←L100004; }; { word var←c41304; var←c41304 = (*(( short *)var←c41208 + 1)<0); if ((var←c41304 == 0)) { { word text←v29144; text←v29144 = var←c41208; (* (ptr) (word) &var←c41336 ) = ( (((unsigned)(* (hPt) text←v29144 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c41336) + 1) ) = text←v29144; }; } else { if ((var←c41304 == 1)) { { word node←v29176; word var←c41272; word base←v29516; node←v29176 = var←c41208; base←v29516 = node←v29176; var←c41272 = (* (( (ptr) base←v29516)+1) ); (* (ptr) (word) &var←c41336 ) = var←c41272; (* (( (ptr) (word) &var←c41336) + 1) ) = 0; }; } else { lab←L100004: ; (* (ptr) (word) &var←c41336 ) = 0; (* (( (ptr) (word) &var←c41336) + 1) ) = 0; goto lab←L100005; }; }; }; }; lab←L100005: ; baseStr←v13320 = var←c41336.f1; baseLen←v13376 = var←c41336.f0; }; SOURCE(2387, 33) if (( (int)baseLen←v13376 == (int)0)) { SOURCE(2407, 13) return(rest←v5260); }; SOURCE(2422, 37) { W2 var←c41528; { word var←c41400; var←c41400 = rest←v5260; if ((var←c41400 == 0)) { goto lab←L100007; }; { word var←c41496; var←c41496 = (*(( short *)var←c41400 + 1)<0); if ((var←c41496 == 0)) { { word text←v38228; text←v38228 = var←c41400; (* (ptr) (word) &var←c41528 ) = ( (((unsigned)(* (hPt) text←v38228 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c41528) + 1) ) = text←v38228; }; } else { if ((var←c41496 == 1)) { { word node←v38272; word var←c41464; word base←v38316; node←v38272 = var←c41400; base←v38316 = node←v38272; var←c41464 = (* (( (ptr) base←v38316)+1) ); (* (ptr) (word) &var←c41528 ) = var←c41464; (* (( (ptr) (word) &var←c41528) + 1) ) = 0; }; } else { lab←L100007: ; (* (ptr) (word) &var←c41528 ) = 0; (* (( (ptr) (word) &var←c41528) + 1) ) = 0; goto lab←L100008; }; }; }; }; lab←L100008: ; restStr←v13348 = var←c41528.f1; restLen←v13404 = var←c41528.f0; }; SOURCE(2461, 33) if (( (int)restLen←v13404 == (int)0)) { SOURCE(2481, 13) return(base←v5232); }; SOURCE(2496, 36) size←v13432 = (baseLen←v13376 + restLen←v13404); SOURCE(2534, 556) if (( (int)size←v13432 <= (int)24)) { SOURCE(2558, 534) { /* declaration of str←v13504 skipped */ /* declaration of index←v13532 skipped */ SOURCE(2560, 33) var←c49272.f6/* str←v13504 */ = (word) NewText←P60(size←v13432); SOURCE(2595, 19) var←c49272.f7/* index←v13532 */ = 0; SOURCE(2728, 164) if ((baseStr←v13320 == 0)) { SOURCE(2750, 41) { word var←c41560; var←c41560 = (word) Map←P480(base←v5232, 0, baseLen←v13376, (word) (( (bPt) &var←c49272)+16)/* var←c41144 */ ); }; } else { SOURCE(2791, 101) { register word i←v13708 = 0; register word noName←c41592; noName←c41592 = baseLen←v13376; if ((i←v13708 >= noName←c41592)) { goto lab←L100010; }; lab←L100013: ; SOURCE(2835, 38) { word c←v37292; c←v37292 = (word) (* ((( (bPt) baseStr←v13320)+4)+i←v13708) ); (* ((( (bPt) var←c49272.f6/* str←v13504 */ )+4)+var←c49272.f7/* index←v13532 */ ) ) = c←v37292; }; SOURCE(2875, 17) var←c49272.f7/* index←v13532 */ = (var←c49272.f7/* index←v13532 */ + 1); i←v13708 = (i←v13708 + 1); if ((i←v13708 < noName←c41592)) { goto lab←L100013; }; lab←L100010: ; }; }; SOURCE(2903, 164) if ((restStr←v13348 == 0)) { SOURCE(2925, 41) { word var←c41624; var←c41624 = (word) Map←P480(rest←v5260, 0, restLen←v13404, (word) (( (bPt) &var←c49272)+16)/* var←c41144 */ ); }; } else { SOURCE(2966, 101) { register word i←v13752 = 0; register word noName←c41656; noName←c41656 = restLen←v13404; if ((i←v13752 >= noName←c41656)) { goto lab←L100014; }; lab←L100017: ; SOURCE(3010, 38) { word c←v37244; c←v37244 = (word) (* ((( (bPt) restStr←v13348)+4)+i←v13752) ); (* ((( (bPt) var←c49272.f6/* str←v13504 */ )+4)+var←c49272.f7/* index←v13532 */ ) ) = c←v37244; }; SOURCE(3050, 17) var←c49272.f7/* index←v13532 */ = (var←c49272.f7/* index←v13532 */ + 1); i←v13752 = (i←v13752 + 1); if ((i←v13752 < noName←c41656)) { goto lab←L100017; }; lab←L100014: ; }; }; SOURCE(3078, 12) return(var←c49272.f6/* str←v13504 */ ); }; }; if (( (int)restLen←v13404 < (int)24)) { SOURCE(3135, 159) { word var←c41688; var←c41688 = (*(( short *)base←v5232 + 1)<0); if ((var←c41688 == 1)) { SOURCE(3168, 126) { word var←c41720; var←c41720 = ((* (( (bPt) base←v5232)+3) ) & 3); if ((var←c41720 == 1)) { SOURCE(3200, 94) if (( (int)((* (( (ptr) base←v5232)+1) ) - (* (( (ptr) base←v5232)+4) )) < (int)12)) { SOURCE(3235, 15) baseLen←v13376 = (* (( (ptr) base←v5232)+4) ); SOURCE(3252, 27) rest←v5260 = (word) Concat←P240((* (( (ptr) base←v5232)+3) ), rest←v5260); SOURCE(3281, 13) base←v5232 = (* (( (ptr) base←v5232)+2) ); }; }; }; }; }; } else { if (( (int)baseLen←v13376 < (int)24)) { SOURCE(3343, 160) { word var←c41752; var←c41752 = (*(( short *)base←v5232 + 1)<0); if ((var←c41752 == 1)) { SOURCE(3376, 127) { word var←c41784; var←c41784 = ((* (( (bPt) base←v5232)+3) ) & 3); if ((var←c41784 == 1)) { SOURCE(3408, 95) if (( (int)(* (( (ptr) base←v5232)+4) ) < (int)12)) { SOURCE(3436, 13) rest←v5260 = (* (( (ptr) base←v5232)+3) ); SOURCE(3451, 23) baseLen←v13376 = ((* (( (ptr) base←v5232)+4) ) + baseLen←v13376); SOURCE(3476, 27) base←v5232 = (word) Concat←P240(base←v5232, (* (( (ptr) base←v5232)+2) )); }; }; }; }; }; }; }; SOURCE(3536, 25) { word var←c41848; { word x←v39032; x←v39032 = (size←v13432 - baseLen←v13376); var←c41848 = SGNCK(x←v39032); }; }; SOURCE(3563, 53) { word var←c41880; word var←c41944; if ((base←v5232 == 0)) { var←c41880 = 0; goto lab←L100019; }; { word var←c41912; var←c41912 = base←v5232; if ((var←c41912 == 0)) { goto lab←L100020; }; if (((*(( short *)var←c41912 + 1)<0) == 1)) { { word node←v30928; node←v30928 = var←c41912; var←c41880 = (((unsigned)(* (( (hPt) node←v30928)+1) ) << 17) >> 19); }; } else { lab←L100020: ; var←c41880 = 1; goto lab←L100019; }; }; lab←L100019: ; if ((rest←v5260 == 0)) { var←c41944 = 0; goto lab←L100021; }; { word var←c41976; var←c41976 = rest←v5260; if ((var←c41976 == 0)) { goto lab←L100022; }; if (((*(( short *)var←c41976 + 1)<0) == 1)) { { word node←v37060; node←v37060 = var←c41976; var←c41944 = (((unsigned)(* (( (hPt) node←v37060)+1) ) << 17) >> 19); }; } else { lab←L100022: ; var←c41944 = 1; goto lab←L100021; }; }; lab←L100021: ; depth←v13460 = ((MAX((int)(word), var←c41880, var←c41944)) + 1); }; SOURCE(3618, 119) { word var←c42008; var←c42008 = XR←NewObject(20, (* (( (ptr) gf←c49304)+266) )); (* (( (hPt) var←c42008)+1) ) = ((BCK(depth←v13460, 8192) << 2) + 32769); (* (( (ptr) var←c42008)+1) ) = size←v13432; (* (( (ptr) var←c42008)+2) ) = base←v5232; (* (( (ptr) var←c42008)+3) ) = rest←v5260; (* (( (ptr) var←c42008)+4) ) = baseLen←v13376; new←v5304 = var←c42008; }; SOURCE(3739, 43) if (( (int)depth←v13460 > (int)32)) { SOURCE(3764, 18) new←v5304 = (word) Balance←P2880(new←v5304, 0, 2147483647, 24); }; SOURCE(2170, 1612) return(new←v5304); } static word AddChar←P3252(c←v13636, formal←c49336) word c←v13636; word formal←c49336; { word var←c13680; formal←c49336 = (formal←c49336 - 16); /* AddChar: */ SOURCE(2616, 15) SOURCE(2667, 21) (* ((( (bPt) (* (( (ptr) formal←c49336)+6) ))+4)+(* (( (ptr) formal←c49336)+7) )) ) = c←v13636; SOURCE(2690, 17) (* (( (ptr) formal←c49336)+7) ) = ((* (( (ptr) formal←c49336)+7) ) + 1); SOURCE(2709, 14) return(0); } static word Replace←P300(base←v5364, start←v5392, len←v5420, with←v5448) word base←v5364; word start←v5392; word len←v5420; word with←v5448; { W8 var←c49368; register ptr gf←c49400 = (ptr) &globalframe; word new←v5492; /* declaration of var←c42040 skipped */ word baseSize←v13796; word repSize←v13824; word rem←v13852; word depth←v13880 = 0; word oldPos←v13908; word newPos←v13936; word size←v13964; /* Replace: */ SOURCE(3788, 1733) { word tmpAddr16; tmpAddr16 = (word) (( (ptr) &var←c49368)+4)/* var←c42040 */ ; (* (ptr) tmpAddr16 ) = ( ((word) (fPt) AddChar←P3456) ); (* (( (ptr) tmpAddr16) + 1) ) = 1; }; SOURCE(3788, 1733) new←v5492 = 0; SOURCE(3907, 32) baseSize←v13796 = (word) InlineSize←P2040(base←v5364); SOURCE(3941, 32) repSize←v13824 = (word) InlineSize←P2040(with←v5448); SOURCE(3975, 43) { word x←v38984; x←v38984 = (baseSize←v13796 - start←v5392); rem←v13852 = SGNCK(x←v38984); }; SOURCE(4040, 89) { word var←c0874; { word tc17; if (( (int)len←v5420 < (int)0)) { len←v5420 = 0; tc17 = (word) 0; } else { if (( (int)len←v5420 > (int)rem←v13852)) { len←v5420 = rem←v13852; tc17 = (word) rem←v13852; } else { tc17 = (word) len←v5420; }; }; var←c0874 = tc17; }; oldPos←v13908 = (start←v5392 + var←c0874); }; SOURCE(4131, 41) newPos←v13936 = (start←v5392 + repSize←v13824); SOURCE(4174, 47) { word x←v37340; x←v37340 = (baseSize←v13796 - len←v5420); size←v13964 = SGNCK((x←v37340 + repSize←v13824)); }; SOURCE(4223, 36) if (( (int)size←v13964 == (int)repSize←v13824)) { SOURCE(4246, 13) return(with←v5448); }; SOURCE(4261, 45) if ( ( ( (int)len←v5420 == (int)0) ? ( (int)repSize←v13824 == (int)0) : 0 ) ) { SOURCE(4293, 13) return(base←v5364); }; SOURCE(4327, 386) if (( (int)size←v13964 <= (int)24)) { SOURCE(4351, 364) { /* declaration of str←v14008 skipped */ /* declaration of index←v14036 skipped */ SOURCE(4353, 33) var←c49368.f6/* str←v14008 */ = (word) NewText←P60(size←v13964); SOURCE(4388, 20) var←c49368.f7/* index←v14036 */ = 0; SOURCE(4522, 51) if (( (int)start←v5392 > (int)0)) { SOURCE(4540, 33) { word var←c42136; var←c42136 = (word) Map←P480(base←v5364, 0, start←v5392, (word) (( (bPt) &var←c49368)+16)/* var←c42040 */ ); }; }; SOURCE(4575, 55) if (( (int)repSize←v13824 > (int)0)) { SOURCE(4595, 35) { word var←c42168; var←c42168 = (word) Map←P480(with←v5448, 0, repSize←v13824, (word) (( (bPt) &var←c49368)+16)/* var←c42040 */ ); }; }; SOURCE(4632, 67) if (( (int)oldPos←v13908 < (int)baseSize←v13796)) { SOURCE(4658, 41) { word var←c42200; var←c42200 = (word) Map←P480(base←v5364, oldPos←v13908, baseSize←v13796, (word) (( (bPt) &var←c49368)+16)/* var←c42040 */ ) ; }; }; SOURCE(4701, 12) return(var←c49368.f6/* str←v14008 */ ); }; }; SOURCE(4718, 391) { word var←c42232; var←c42232 = (*(( short *)base←v5364 + 1)<0); if ((var←c42232 == 1)) { SOURCE(4751, 358) { word var←c42264; var←c42264 = ((* (( (bPt) base←v5364)+3) ) & 3); if ((var←c42264 == 2)) { SOURCE(4784, 342) { word xnewPos←v14212; word xstart←v14240; SOURCE(4786, 23) xnewPos←v14212 = (* (( (ptr) base←v5364)+6) ); SOURCE(4811, 21) xstart←v14240 = (* (( (ptr) base←v5364)+4) ); if ( ( ( (int)start←v5392 <= (int)xstart←v14240) ? ( (int)oldPos←v13908 >= (int)xnewPos←v14212) : 0 ) ) { SOURCE(4894, 38) oldPos←v13908 = ((* (( (ptr) base←v5364)+5) ) + (oldPos←v13908 - xnewPos←v14212)); SOURCE(4934, 13) base←v5364 = (* (( (ptr) base←v5364)+2) ); } else { if (( (int)start←v5392 == (int)xnewPos←v14212)) { SOURCE(4973, 136) if (( (int)(repSize←v13824 + (xnewPos←v14212 - xstart←v14240)) <= (int)24)) { SOURCE(5023, 30) with←v5448 = (word) Concat←P240((* (( (ptr) base←v5364)+3) ), with←v5448); SOURCE(5055, 14) start←v5392 = xstart←v14240; SOURCE(5071, 23) oldPos←v13908 = ((* (( (ptr) base←v5364)+5) ) + len←v5420); SOURCE(5096, 13) base←v5364 = (* (( (ptr) base←v5364)+2) ); }; }; }; }; }; }; }; }; SOURCE(5147, 43) { word var←c42328; { word x←v38936; x←v38936 = (newPos←v13936 - start←v5392); var←c42328 = SGNCK(x←v38936); }; }; SOURCE(5192, 35) { word var←c42392; { word x←v38888; x←v38888 = (oldPos←v13908 - start←v5392); var←c42392 = SGNCK(x←v38888); }; }; SOURCE(5229, 34) { word var←c42456; { word x←v38840; x←v38840 = (size←v13964 - newPos←v13936); var←c42456 = SGNCK(x←v38840); }; }; SOURCE(5265, 53) { word var←c42488; word var←c42552; if ((base←v5364 == 0)) { var←c42488 = 0; goto lab←L100028; }; { word var←c42520; var←c42520 = base←v5364; if ((var←c42520 == 0)) { goto lab←L100029; }; if (((*(( short *)var←c42520 + 1)<0) == 1)) { { word node←v37016; node←v37016 = var←c42520; var←c42488 = (((unsigned)(* (( (hPt) node←v37016)+1) ) << 17) >> 19); }; } else { lab←L100029: ; var←c42488 = 1; goto lab←L100028; }; }; lab←L100028: ; if ((with←v5448 == 0)) { var←c42552 = 0; goto lab←L100030; }; { word var←c42584; var←c42584 = with←v5448; if ((var←c42584 == 0)) { goto lab←L100031; }; if (((*(( short *)var←c42584 + 1)<0) == 1)) { { word node←v36972; node←v36972 = var←c42584; var←c42552 = (((unsigned)(* (( (hPt) node←v36972)+1) ) << 17) >> 19); }; } else { lab←L100031: ; var←c42552 = 1; goto lab←L100030; }; }; lab←L100030: ; depth←v13880 = ((MAX((int)(word), var←c42488, var←c42552)) + 1); }; SOURCE(5320, 156) { word var←c42616; var←c42616 = XR←NewObject(28, (* (( (ptr) gf←c49400)+266) )); (* (( (hPt) var←c42616)+1) ) = ((BCK(depth←v13880, 8192) << 2) + 32770); (* (( (ptr) var←c42616)+1) ) = size←v13964; (* (( (ptr) var←c42616)+2) ) = base←v5364; (* (( (ptr) var←c42616)+3) ) = with←v5448; (* (( (ptr) var←c42616)+4) ) = start←v5392; (* (( (ptr) var←c42616)+5) ) = oldPos←v13908; (* (( (ptr) var←c42616)+6) ) = newPos←v13936; new←v5492 = var←c42616; }; SOURCE(5478, 43) if (( (int)depth←v13880 > (int)32)) { SOURCE(5503, 18) new←v5492 = (word) Balance←P2880(new←v5492, 0, 2147483647, 24); }; SOURCE(3788, 1733) return(new←v5492); } static word AddChar←P3456(c←v14140, formal←c49432) word c←v14140; word formal←c49432; { word var←c14184; formal←c49432 = (formal←c49432 - 16); /* AddChar: */ SOURCE(4410, 15) SOURCE(4461, 21) (* ((( (bPt) (* (( (ptr) formal←c49432)+6) ))+4)+(* (( (ptr) formal←c49432)+7) )) ) = c←v14140; SOURCE(4484, 17) { word idx18; (* (( (ptr) formal←c49432)+7) ) = ( idx18 = (word) ((* (( (ptr) formal←c49432)+7) ) + 1), BCK(idx18, 32768) ); }; SOURCE(4503, 14) return(0); } static word Fetch←P420(base←v5684, index←v5712) word base←v5684; word index←v5712; { register ptr gf←c49464 = (ptr) &globalframe; word var←c5756; /* Fetch: */ SOURCE(5628, 823) SOURCE(5703, 176) { word var←c42648; var←c42648 = base←v5684; if ((var←c42648 == 0)) { goto lab←L100032; }; { word var←c42776; var←c42776 = (*(( short *)var←c42648 + 1)<0); if ((var←c42776 == 0)) { { word text←v14284; text←v14284 = var←c42648; SOURCE(5739, 20) { word limit19; return((word) (* ((( (bPt) text←v14284)+4)+( limit19 = (word) ( (((unsigned)(* (( (hPt) text←v14284)+1) ) << 17) >> 17) ), BCK(index←v5712, limit19) )) )); }; }; } else { if ((var←c42776 == 1)) { { word node←v14328; node←v14328 = var←c42648; SOURCE(5789, 49) { word var←c42744; { word arg←v36808; word limit←v36836; arg←v36808 = index←v5712; { word var←c42712; word base←v37388; base←v37388 = node←v14328; var←c42712 = (* (( (ptr) base←v37388)+1) ); limit←v36836 = SGNCK(var←c42712); }; if ((arg←v36808 >= limit←v36836)) { (void) XR←RaiseBoundsFault(); }; var←c42744 = BCK(arg←v36808, 2147483647); }; }; }; } else { lab←L100032: ; SOURCE(5854, 25) (void) XR←RaiseBoundsFault(); }; }; }; }; SOURCE(5899, 552) lab←L100037: ; SOURCE(5902, 549) { word var←c42808; var←c42808 = base←v5684; if ((var←c42808 == 0)) { goto lab←L100038; }; { word var←c42968; var←c42968 = (*(( short *)var←c42808 + 1)<0); if ((var←c42968 == 0)) { { word x←v14384; x←v14384 = var←c42808; SOURCE(5943, 24) { word var←c42872; word base←v37168; word index←v37196; base←v37168 = x←v14384; index←v37196 = BCK(index←v5712, 65536); var←c42872 = (word) (* ((( (bPt) base←v37168)+4)+index←v37196) ); return(var←c42872); }; }; } else { if ((var←c42968 == 1)) { { word x←v14440; x←v14440 = var←c42808; SOURCE(5993, 433) { word var←c42904; var←c42904 = ((* (( (bPt) x←v14440)+3) ) & 3); switch (var←c42904) { case 0: SOURCE(6026, 23) index←v5712 = (index←v5712 + (* (( (ptr) x←v14440)+3) )); SOURCE(6051, 13) base←v5684 = (* (( (ptr) x←v14440)+2) ); break; case 1: SOURCE(6080, 36) if (( (int)index←v5712 < (int)(* (( (ptr) x←v14440)+4) ))) { SOURCE(6103, 13) /*1*/ base←v5684 = (* (( (ptr) x←v14440)+2) ); SOURCE(6118, 4) /*1*/ goto lab←L100037; /*1*/ }; SOURCE(6125, 21) index←v5712 = (index←v5712 - (* (( (ptr) x←v14440)+4) )); SOURCE(6148, 13) base←v5684 = (* (( (ptr) x←v14440)+3) ); break; case 2: SOURCE(6179, 38) if (( (int)index←v5712 < (int)(* (( (ptr) x←v14440)+4) ))) { SOURCE(6204, 13) /*1*/ base←v5684 = (* (( (ptr) x←v14440)+2) ); SOURCE(6219, 4) /*1*/ goto lab←L100037; /*1*/ }; SOURCE(6226, 68) if (( (int)index←v5712 < (int)(* (( (ptr) x←v14440)+6) ))) { SOURCE(6253, 23) /*1*/ index←v5712 = (index←v5712 - (* (( (ptr) x←v14440)+4) )); SOURCE(6278, 16) /*1*/ base←v5684 = (* (( (ptr) x←v14440)+3) ); SOURCE(6296, 4) /*1*/ goto lab←L100037; /*1*/ }; SOURCE(6305, 35) index←v5712 = ((index←v5712 - (* (( (ptr) x←v14440)+6) )) + (* (( (ptr) x←v14440)+5) )); SOURCE(6342, 13) base←v5684 = (* (( (ptr) x←v14440)+2) ); break; case 3: SOURCE(6370, 31) { /*1*/ word pd20; /*1*/ pd20 = (* (( (ptr) x←v14440)+3) ); /*1*/ return((word) ( *( (fPt) ((* (ptr) pd20 ))))((* (( (ptr) x←v14440)+2) ), index←v5712, pd20)); /*1*/ }; default: SOURCE(6414, 12) (void) XR←RaiseError((word) (( (bPt) gf←c49464)+1124), 0); break; }; }; }; } else { lab←L100038: ; SOURCE(6439, 12) (void) XR←RaiseError((word) (( (bPt) gf←c49464)+1124), 0); }; }; }; }; goto lab←L100037; } static word Map←P480(base←v5816, start←v5844, len←v5872, action←v5900) word base←v5816; word start←v5844; word len←v5872; word action←v5900; { register ptr gf←c49496 = (ptr) &globalframe; word var←c5944; word rem←v14496; /* Map: */ SOURCE(6466, 1611) SOURCE(6579, 51) { word x←v38792; x←v38792 = ((word) InlineSize←P2040(base←v5816) - start←v5844); rem←v14496 = SGNCK(x←v38792); }; SOURCE(6632, 27) if (( (int)len←v5872 > (int)rem←v14496)) { SOURCE(6650, 9) len←v5872 = rem←v14496; }; SOURCE(6661, 1391) lab←L100043: ; if (( (int)len←v5872 > (int)0)) { } else { goto lab←L100041; }; SOURCE(6678, 1374) { word var←c43032; var←c43032 = (*(( short *)base←v5816 + 1)<0); if ((var←c43032 == 0)) { SOURCE(6711, 146) { word st←v14540; SOURCE(6713, 29) st←v14540 = start←v5844; SOURCE(6744, 86) { register word i←v14584; register word noName←c43064; word var←c43096; i←v14584 = st←v14540; noName←c43064 = (st←v14540 + len←v5872); if ((i←v14584 >= noName←c43064)) { goto lab←L100044; }; lab←L100047: ; SOURCE(6788, 42) { word var←c43128; word base←v37120; base←v37120 = (word) base←v5816; var←c43128 = (word) (* ((( (bPt) base←v37120)+4)+i←v14584) ); var←c43096 = var←c43128; }; if ((0 != (word) ( *( (fPt) ((* (ptr) action←v5900 ))))(var←c43096, action←v5900))) { SOURCE(6817, 13) return(1); }; i←v14584 = (i←v14584 + 1); if ((i←v14584 < noName←c43064)) { goto lab←L100047; }; lab←L100044: ; }; SOURCE(6841, 14) return(0); }; } else { if ((var←c43032 == 1)) { SOURCE(6868, 1159) { word var←c43160; var←c43160 = ((* (( (bPt) base←v5816)+3) ) & 3); switch (var←c43160) { case 0: SOURCE(6901, 23) start←v5844 = (start←v5844 + (* (( (ptr) base←v5816)+3) )); SOURCE(6926, 13) base←v5816 = (* (( (ptr) base←v5816)+2) ); SOURCE(6941, 4) goto lab←L100043; case 1: SOURCE(6959, 252) { word xpos←v14628; SOURCE(6961, 17) xpos←v14628 = (* (( (ptr) base←v5816)+4) ); SOURCE(6980, 40) if (( (int)(start←v5844 + len←v5872) <= (int)xpos←v14628)) { SOURCE(7007, 13) base←v5816 = (* (( (ptr) base←v5816)+2) ); SOURCE(7022, 4) goto lab←L100043; }; SOURCE(7029, 140) if (( (int)start←v5844 < (int)xpos←v14628)) { SOURCE(7051, 120) { /*1*/ word subLen←v14672; SOURCE(7053, 24) /*1*/ subLen←v14672 = (xpos←v14628 - start←v5844); SOURCE(7079, 56) /*1*/ if ((0 != (word) Map←P480((* (( (ptr) base←v5816)+2) ), start←v5844, subLen←v14672, action←v5900))) { SOURCE(7122, 13) /*1*/ return(1); /*1*/ }; SOURCE(7137, 12) /*1*/ start←v5844 = xpos←v14628; SOURCE(7151, 18) /*1*/ len←v5872 = (len←v5872 - subLen←v14672); /*1*/ }; }; SOURCE(7174, 20) start←v5844 = (start←v5844 - xpos←v14628); SOURCE(7196, 13) base←v5816 = (* (( (ptr) base←v5816)+3) ); }; break; case 2: SOURCE(7225, 518) { word xstart←v14716; word xnew←v14744; SOURCE(7227, 21) xstart←v14716 = (* (( (ptr) base←v5816)+4) ); SOURCE(7250, 20) xnew←v14744 = (* (( (ptr) base←v5816)+6) ); SOURCE(7272, 190) if (( (int)start←v5844 < (int)xstart←v14716)) { SOURCE(7295, 169) { /*1*/ word subLen←v14788; SOURCE(7297, 26) /*1*/ subLen←v14788 = (xstart←v14716 - start←v5844); SOURCE(7325, 36) /*1*/ if (( (int)subLen←v14788 >= (int)len←v5872)) { SOURCE(7348, 13) /*1*/ base←v5816 = (* (( (ptr) base←v5816)+2) ); SOURCE(7363, 4) /*1*/ goto lab←L100043; /*1*/ }; SOURCE(7370, 56) /*1*/ if ((0 != (word) Map←P480((* (( (ptr) base←v5816)+2) ), start←v5844, subLen←v14788, action←v5900))) { SOURCE(7413, 13) /*1*/ return(1); /*1*/ }; SOURCE(7428, 14) /*1*/ start←v5844 = xstart←v14716; SOURCE(7444, 18) /*1*/ len←v5872 = (len←v5872 - subLen←v14788); /*1*/ }; }; SOURCE(7467, 225) if (( (int)start←v5844 < (int)xnew←v14744)) { SOURCE(7488, 206) { /*1*/ word subLen←v14832; /*1*/ word st←v14860; SOURCE(7490, 24) /*1*/ subLen←v14832 = (xnew←v14744 - start←v5844); SOURCE(7516, 24) /*1*/ st←v14860 = (start←v5844 - xstart←v14716); SOURCE(7542, 51) /*1*/ if (( (int)subLen←v14832 >= (int)len←v5872)) { SOURCE(7565, 10) /*1*/ start←v5844 = st←v14860; SOURCE(7577, 16) /*1*/ base←v5816 = (* (( (ptr) base←v5816)+3) ); SOURCE(7595, 4) /*1*/ goto lab←L100043; /*1*/ }; SOURCE(7602, 56) /*1*/ if ((0 != (word) Map←P480((* (( (ptr) base←v5816)+3) ), st←v14860, subLen←v14832, action←v5900))) { SOURCE(7645, 13) /*1*/ return(1); /*1*/ }; SOURCE(7660, 12) /*1*/ start←v5844 = xnew←v14744; SOURCE(7674, 18) /*1*/ len←v5872 = (len←v5872 - subLen←v14832); /*1*/ }; }; SOURCE(7697, 31) start←v5844 = ((start←v5844 - xnew←v14744) + (* (( (ptr) base←v5816)+5) )); SOURCE(7730, 13) base←v5816 = (* (( (ptr) base←v5816)+2) ); }; break; case 3: SOURCE(7756, 245) { word map←v14904; word data←v14932; SOURCE(7758, 20) map←v14904 = (* (( (ptr) base←v5816)+4) ); SOURCE(7780, 18) data←v14932 = (* (( (ptr) base←v5816)+2) ); SOURCE(7800, 196) if ((map←v14904 != 0)) { SOURCE(7818, 43) return((word) ( *( (fPt) ((* (ptr) map←v14904 ))))(data←v14932, start←v5844, len←v5872, action←v5900, map←v14904)); } else { SOURCE(7861, 137) { /*1*/ word fetch←v14988; SOURCE(7863, 26) /*1*/ fetch←v14988 = (* (( (ptr) base←v5816)+3) ); SOURCE(7891, 80) /*1*/ { /*1*/ register word i←v15032; /*1*/ register word noName←c43224; /*1*/ word var←c43256; /*1*/ i←v15032 = start←v5844; /*1*/ noName←c43224 = (start←v5844 + len←v5872); /*1*/ if (( (int)i←v15032 >= (int)noName←c43224)) { /*1*/ goto lab←L100049; /*1*/ }; /*1*/ lab←L100052: ; SOURCE(7927, 44) /*1*/ var←c43256 = (word) ( *( (fPt) ((* (ptr) fetch←v14988 ))))(data←v14932, i←v15032, fetch←v14988); /*1*/ if ((0 != (word) ( *( (fPt) ((* (ptr) action←v5900 ))))(var←c43256, action←v5900))) { SOURCE(7958, 13) /*1*/ return(1); /*1*/ }; /*1*/ i←v15032 = (i←v15032 + 1); /*1*/ if (( (int)i←v15032 < (int)noName←c43224)) { /*1*/ goto lab←L100052; /*1*/ }; /*1*/ lab←L100049: ; /*1*/ }; SOURCE(7982, 14) /*1*/ return(0); /*1*/ }; }; }; default: SOURCE(8015, 12) (void) XR←RaiseError((word) (( (bPt) gf←c49496)+1124), 0); break; }; }; } else { SOURCE(8040, 12) (void) XR←RaiseError((word) (( (bPt) gf←c49496)+1124), 0); }; }; }; goto lab←L100043; lab←L100041: ; SOURCE(8063, 14) return(0); } static word Translate←P540(formal←c0908, start←v6032, len←v6060, formal←c0909) word formal←c0908; word start←v6032; word len←v6060; word formal←c0909; { W9 var←c49528; /* declaration of base←v6004 skipped */ /* declaration of translator←v6088 skipped */ register ptr gf←c49560 = (ptr) &globalframe; word new←v6132; /* declaration of var←c43288 skipped */ /* declaration of index←v15076 skipped */ word intRem←v15104; word rem←v15132; word text←v15160 = 0; (* (( (ptr) &var←c49528)+4)/* base←v6004 */ ) = formal←c0908; (* (( (ptr) &var←c49528)+5)/* translator←v6088 */ ) = formal←c0909; /* Translate: */ SOURCE(8083, 763) { word tmpAddr21; tmpAddr21 = (word) (( (ptr) &var←c49528)+6)/* var←c43288 */ ; (* (ptr) tmpAddr21 ) = ( ((word) (fPt) each←P4476) ); (* (( (ptr) tmpAddr21) + 1) ) = 1; }; SOURCE(8083, 763) new←v6132 = 0; SOURCE(8221, 18) (* (( (ptr) &var←c49528)+8)/* index←v15076 */ ) = start←v6032; SOURCE(8241, 54) { word x←v38744; x←v38744 = ((word) InlineSize←P2040((* ((( (ptr) &var←c49528)+4)/* base←v6004 */ ) )) - start←v6032); intRem←v15104 = SGNCK(x←v38744); }; SOURCE(8297, 17) rem←v15132 = intRem←v15104; SOURCE(8334, 46) if (( (int)len←v6060 <= (int)0) || ( (int)rem←v15132 == (int)0)) { SOURCE(8362, 18) return((* (( (ptr) gf←c49560)+4)/* emptyRope←v2804 */ )); }; SOURCE(8382, 27) if (( (int)len←v6060 < (int)rem←v15132)) { SOURCE(8400, 9) rem←v15132 = len←v6060; }; SOURCE(8411, 435) { word var←c43352; var←c43352 = (* (( (ptr) &var←c49528)+4)/* base←v6004 */ ); if ((var←c43352 == 0)) { goto lab←L100054; }; if (((*(( short *)var←c43352 + 1)<0) == 0)) { { word t←v15204; t←v15204 = var←c43352; SOURCE(8444, 206) { word short←v15248; SOURCE(8446, 24) { word idx22; short←v15248 = ( idx22 = (* (( (ptr) &var←c49528)+8)/* index←v15076 */ ), BCK(idx22, 32768) ); }; SOURCE(8472, 19) text←v15160 = (word) NewText←P60(BCK(rem←v15132, 32768)); SOURCE(8493, 134) { register word i←v15292 = 0; register word noName←c43384; noName←c43384 = SGNCK(rem←v15132); if ((i←v15292 >= noName←c43384)) { goto lab←L100055; }; lab←L100058: ; { word c←v15336; SOURCE(8525, 26) c←v15336 = (word) (* ((( (bPt) t←v15204)+4)+short←v15248) ); SOURCE(8553, 42) if (((* (( (ptr) &var←c49528)+5)/* translator←v6088 */ ) != 0)) { SOURCE(8578, 17) { word pd23; pd23 = (* (( (ptr) &var←c49528)+5)/* translator←v6088 */ ); c←v15336 = (word) ( *( (fPt) ((* (ptr) pd23 ))))(c←v15336, pd23); }; }; SOURCE(8597, 11) { word limit24; (* ((( (bPt) text←v15160)+4)+( /*1*/ limit24 = (word) ( (((unsigned)(* (( (hPt) text←v15160)+1) ) << 17) >> 17) ), /*1*/ BCK(i←v15292, limit24) /*1*/ )) ) = c←v15336; }; SOURCE(8610, 17) short←v15248 = BCK((short←v15248 + 1), 32768); }; i←v15292 = (i←v15292 + 1); if ((i←v15292 < noName←c43384)) { goto lab←L100058; }; lab←L100055: ; }; SOURCE(8638, 10) new←v6132 = text←v15160; }; }; } else { lab←L100054: ; SOURCE(8664, 184) SOURCE(8818, 28) return((word) FromProc←P840(rem←v15132, (word) (( (bPt) &var←c49528)+24)/* var←c43288 */ , 2147483647)); }; }; SOURCE(8083, 763) return(new←v6132); } static word each←P4476(formal←c49592) word formal←c49592; { word var←c15456; word c←v15484; formal←c49592 = (formal←c49592 - 24); /* each: */ SOURCE(8666, 20) SOURCE(8704, 34) c←v15484 = (word) Fetch←P420((* (( (ptr) formal←c49592)+4) ), (* (( (ptr) formal←c49592)+8) )); SOURCE(8740, 17) (* (( (ptr) formal←c49592)+8) ) = ((* (( (ptr) formal←c49592)+8) ) + 1); SOURCE(8759, 42) if (((* (( (ptr) formal←c49592)+5) ) != 0)) { SOURCE(8784, 17) { word pd25; pd25 = (* (( (ptr) formal←c49592)+5) ); c←v15484 = (word) ( *( (fPt) ((* (ptr) pd25 ))))(c←v15484, pd25); }; }; SOURCE(8803, 10) return(c←v15484); } static word Lower←P600(old←v28104) word old←v28104; { word var←c28148; /* Lower: */ SOURCE(8856, 59) SOURCE(8889, 26) if (((old←v28104 - 65) <= 25)) { return((old←v28104 + 32)); } else { return(old←v28104); }; } static word Upper←P660(old←v28208) word old←v28208; { word var←c28252; /* Upper: */ SOURCE(8919, 59) SOURCE(8952, 26) if (((old←v28208 - 97) <= 25)) { return((old←v28208 - 32)); } else { return(old←v28208); }; } static word Flatten←P720(base←v6192, start←v6220, len←v6248) word base←v6192; word start←v6220; word len←v6248; { register ptr gf←c49624 = (ptr) &globalframe; word var←c6292; word size←v15528; word rem←v15556; /* Flatten: */ SOURCE(8982, 470) SOURCE(9078, 28) size←v15528 = (word) InlineSize←P2040(base←v6192); SOURCE(9108, 39) { word x←v38696; x←v38696 = (size←v15528 - start←v6220); rem←v15556 = SGNCK(x←v38696); }; SOURCE(9149, 27) if (( (int)len←v6248 > (int)rem←v15556)) { SOURCE(9167, 9) len←v6248 = rem←v15556; }; SOURCE(9178, 114) if ( ( ( (int)start←v6220 == (int)0) ? ( (int)len←v6248 == (int)rem←v15556) : 0 ) ) { SOURCE(9212, 31) if ((base←v6192 == 0)) { SOURCE(9231, 12) return(0); }; SOURCE(9245, 47) if (((*(( short *)base←v6192 + 1)<0) == 0)) { SOURCE(9269, 23) return(base←v6192); }; }; SOURCE(9297, 155) if (( (int)len←v6248 <= (int)0)) { SOURCE(9314, 24) return((* (( (ptr) gf←c49624)+4)/* emptyRope←v2804 */ )); } else { SOURCE(9338, 116) { word rtn←v15600; SOURCE(9340, 31) rtn←v15600 = (word) NewText←P60(len←v6248); SOURCE(9373, 14) ((P15x1h) rtn←v15600)->f = 0; SOURCE(9389, 49) { word var←c43480; var←c43480 = (word) AppendChars←P1500(rtn←v15600, base←v6192, start←v6220, len←v6248); }; SOURCE(9440, 12) return(rtn←v15600); }; }; } static word MakeRope←P780(base←v6352, size←v6380, fetch←v6408, map←v6436, move←v6464) word base←v6352; word size←v6380; word fetch←v6408; word map←v6436; word move←v6464; { register ptr gf←c49656 = (ptr) &globalframe; word var←c6524; /* MakeRope: */ SOURCE(9461, 285) SOURCE(9581, 35) if (( (int)size←v6380 == (int)0)) { SOURCE(9598, 18) return((* (( (ptr) gf←c49656)+4)/* emptyRope←v2804 */ )); }; SOURCE(9618, 128) { word var←c43544; var←c43544 = XR←NewObject(24, (* (( (ptr) gf←c49656)+266) )); (* (( (hPt) var←c43544)+1) ) = 32775; (* (( (ptr) var←c43544)+1) ) = size←v6380; (* (( (ptr) var←c43544)+2) ) = base←v6352; (* (( (ptr) var←c43544)+3) ) = fetch←v6408; (* (( (ptr) var←c43544)+4) ) = map←v6436; (* (( (ptr) var←c43544)+5) ) = move←v6464; return(var←c43544); }; } static word FromProc←P840(len←v6584, p←v6612, maxPiece←v6640) word len←v6584; word p←v6612; word maxPiece←v6640; { register ptr gf←c49688 = (ptr) &globalframe; word var←c6744; /* FromProc: */ SOURCE(9752, 520) SOURCE(9860, 35) if (( (int)len←v6584 <= (int)0)) { SOURCE(9877, 18) return((* (( (ptr) gf←c49688)+4)/* emptyRope←v2804 */ )); }; SOURCE(9897, 99) { word var←c43576; var←c43576 = maxPiece←v6640; if (( (int)var←c43576 < (int)24)) { SOURCE(9931, 18) maxPiece←v6640 = 24; } else { if (( (int)var←c43576 > (int)32767)) { SOURCE(9971, 25) maxPiece←v6640 = 32767; }; }; }; SOURCE(10007, 265) if (( (int)len←v6584 <= (int)maxPiece←v6640)) { SOURCE(10031, 113) { word rtn←v15644; SOURCE(10033, 32) rtn←v15644 = (word) NewText←P60(len←v6584); SOURCE(10067, 52) { register word i←v15688 = 0; register word noName←c43608; noName←c43608 = len←v6584; if ((i←v15688 >= noName←c43608)) { goto lab←L100060; }; lab←L100063: ; SOURCE(10107, 12) { word var←c43640; var←c43640 = (word) ( *( (fPt) ((* (ptr) p←v6612 ))))(p←v6612); { word limit26; (* ((( (bPt) rtn←v15644)+4)+( limit26 = (word) ( (((unsigned)(* (( (hPt) rtn←v15644)+1) ) << 17) >> 17) ), BCK(i←v15688, limit26) )) ) = var←c43640; }; }; i←v15688 = (i←v15688 + 1); if ((i←v15688 < noName←c43608)) { goto lab←L100063; }; lab←L100060: ; }; SOURCE(10130, 12) return(rtn←v15644); }; } else { SOURCE(10151, 123) { word left←v15732; word right←v15760; SOURCE(10153, 41) left←v15732 = (word) FromProc←P840(IOP2( / , (int)len←v6584, (int)2), p←v6612, maxPiece←v6640); SOURCE(10196, 46) right←v15760 = (word) FromProc←P840(IOP2( / , (int)(len←v6584 + 1), (int)2), p←v6612, maxPiece←v6640); SOURCE(10244, 28) return((word) Concat←P240(left←v15732, right←v15760)); }; }; } static word FromChars←P900(formal←c0910) word formal←c0910; { W7 var←c49720; /* declaration of genChars←v6804 skipped */ word var←c6968; /* declaration of var←c43704 skipped */ var←c49720.f4/* genChars←v6804 */ = formal←c0910; /* FromChars: */ SOURCE(10281, 489) { word tmpAddr27; tmpAddr27 = (word) (( (ptr) &var←c49720)+5)/* var←c43704 */ ; (* (ptr) tmpAddr27 ) = ( ((word) (fPt) genRopesFromChars←P4728) ); (* (( (ptr) tmpAddr27) + 1) ) = 1; }; SOURCE(10734, 36) return((word) FromRopes←P960((word) ((( (bPt) &var←c49720)+20)/* var←c43704 */ ))); } static void genRopesFromChars←P4728(formal←c0911, formal←c49816) word formal←c0911; word formal←c49816; { W8 var←c49752; /* declaration of putRope←v15880 skipped */ register ptr gf←c49784 = (ptr) &globalframe; /* declaration of var←c43768 skipped */ /* declaration of buf←v15968 skipped */ formal←c49816 = (formal←c49816 - 20); var←c49752.f4/* putRope←v15880 */ = formal←c0911; var←c49752.f0 = formal←c49816; /* genRopesFromChars: */ SOURCE(10354, 375) { word tmpAddr28; tmpAddr28 = (word) (( (ptr) &var←c49752)+5)/* var←c43768 */ ; (* (ptr) tmpAddr28 ) = ( ((word) (fPt) putChar←P4788) ); (* (( (ptr) tmpAddr28) + 1) ) = 1; }; SOURCE(10405, 42) { word pd29; pd29 = (* (( (ptr) (* (( (ptr) gf←c49784)+383)/* var←c43800 */ ))+6) ); var←c49752.f7/* buf←v15968 */ = (word) ( *( (fPt) ((* (ptr) pd29 ))))(512, pd29); }; SOURCE(10635, 17) { word pd30; pd30 = (* (( (ptr) formal←c49816)+4) ); (void) ( *( (fPt) ((* (ptr) pd30 ))))((word) ((( (bPt) &var←c49752)+20)/* var←c43768 */ ), pd30); }; SOURCE(10654, 46) if (((* (hPt) var←c49752.f7/* buf←v15968 */ ) > 0)) { SOURCE(10675, 25) { word var←c43832; var←c43832 = (word) FromRefText←P1320(var←c49752.f7/* buf←v15968 */ , 0, 32767); { word pd31; pd31 = (word) (var←c49752.f4/* putRope←v15880 */ ); (void) ( *( (fPt) ((* (ptr) pd31 ))))(var←c43832, pd31); }; }; }; SOURCE(10702, 27) { word pd32; pd32 = (* (( (ptr) (* (( (ptr) gf←c49784)+383)/* var←c43800 */ ))+7) ); (void) ( *( (fPt) ((* (ptr) pd32 ))))(var←c49752.f7/* buf←v15968 */ , pd32); }; } static void putChar←P4788(c←v16084, formal←c49848) word c←v16084; word formal←c49848; { word text←v16112; word len←v16140; formal←c49848 = (formal←c49848 - 20); /* putChar: */ SOURCE(10449, 181) SOURCE(10477, 20) text←v16112 = (* (( (ptr) formal←c49848)+7) ); SOURCE(10499, 22) len←v16140 = (* (hPt) text←v16112 ); SOURCE(10523, 68) if ((len←v16140 >= (* (( (hPt) text←v16112)+1) ))) { SOURCE(10556, 26) { word var←c43864; var←c43864 = (word) FromRefText←P1320(text←v16112, 0, 32767); { word pd33; pd33 = (* (( (ptr) formal←c49848)+4) ); (void) ( *( (fPt) ((* (ptr) pd33 ))))(var←c43864, pd33); }; }; SOURCE(10584, 7) len←v16140 = 0; }; SOURCE(10596, 13) { word limit34; (* ((( (bPt) text←v16112)+4)+( limit34 = (word) (* (( (hPt) text←v16112)+1) ), BCK(len←v16140, limit34) )) ) = c←v16084; }; SOURCE(10611, 19) (* (hPt) text←v16112 ) = BCK((len←v16140 + 1), 32768); } static word FromRopes←P960(genRopes←v7028) word genRopes←v7028; { W16 var←c49880; word result←v7192; /* declaration of var←c43896 skipped */ /* declaration of s←v16224 skipped */ /* FromRopes: */ SOURCE(10776, 452) { word tmpAddr35; tmpAddr35 = (word) (( (ptr) &var←c49880)+4)/* var←c43896 */ ; (* (ptr) tmpAddr35 ) = ( ((word) (fPt) putRope←P4848) ); (* (( (ptr) tmpAddr35) + 1) ) = 1; }; SOURCE(10776, 452) result←v7192 = 0; SOURCE(10884, 42) XR←FillWords(&(* (W10Pt) ((( (ptr) &var←c49880)+6)/* s←v16224 */ )), 10, 0); SOURCE(11118, 17) (void) ( *( (fPt) ((* (ptr) genRopes←v7028 ))))((word) ((( (bPt) &var←c49880)+16)/* var←c43896 */ ), genRopes←v7028); SOURCE(11137, 91) { register word i←v16392 = 9; lab←L100067: ; SOURCE(11180, 48) if (((* ((( (ptr) &var←c49880)+6)/* s←v16224 */ +BCK(i←v16392, 10)) ) != 0)) { SOURCE(11199, 29) result←v7192 = (word) Concat←P240((* ((( (ptr) &var←c49880)+6)/* s←v16224 */ +BCK(i←v16392, 10)) ), result←v7192); }; if ((0 >= i←v16392)) { goto lab←L100064; }; i←v16392 = (i←v16392 - 1); goto lab←L100067; lab←L100064: ; }; SOURCE(10776, 452) return(result←v7192); } static void putRope←P4848(rope←v16364, formal←c49912) word rope←v16364; word formal←c49912; { formal←c49912 = (formal←c49912 - 16); /* putRope: */ SOURCE(10928, 185) SOURCE(10959, 131) { register word i←v16436 = 9; lab←L100071: ; SOURCE(11002, 88) if (((* ((( (ptr) formal←c49912)+6)+BCK(i←v16436, 10)) ) == 0)) { SOURCE(11023, 11) (* ((( (ptr) formal←c49912)+6)+BCK(i←v16436, 10)) ) = rope←v16364; SOURCE(11036, 7) return; } else { SOURCE(11052, 25) rope←v16364 = (word) Concat←P240((* ((( (ptr) formal←c49912)+6)+BCK(i←v16436, 10)) ), rope←v16364); SOURCE(11079, 11) (* ((( (ptr) formal←c49912)+6)+BCK(i←v16436, 10)) ) = 0; }; if ((0 >= i←v16436)) { goto lab←L100068; }; i←v16436 = (i←v16436 - 1); goto lab←L100071; lab←L100068: ; }; SOURCE(11102, 11) (* (( (ptr) formal←c49912)+6) ) = rope←v16364; } static word FromChar←P1020(c←v7268) word c←v7268; { register ptr gf←c49944 = (ptr) &globalframe; word var←c7312; word rtn←v16480; /* FromChar: */ SOURCE(11286, 188) SOURCE(11345, 24) rtn←v16480 = (* ((( (ptr) gf←c49944)+9)/* fromChars←v3392 */ +c←v7268) ); SOURCE(11371, 66) if ((rtn←v16480 == 0)) { SOURCE(11389, 16) rtn←v16480 = (word) NewText←P60(1); SOURCE(11407, 10) { word limit36; (* ((( (bPt) rtn←v16480)+4)+( limit36 = (word) ( (((unsigned)(* (( (hPt) rtn←v16480)+1) ) << 17) >> 17) ), BCK(0, limit36) )) ) = c←v7268; }; SOURCE(11419, 18) (* ((( (ptr) gf←c49944)+9)/* fromChars←v3392 */ +c←v7268) ) = rtn←v16480; }; SOURCE(11462, 12) return(rtn←v16480); } static word MakeConstantRope←P1080(char←v7372, length←v7400) word char←v7372; word length←v7400; { register ptr gf←c49976 = (ptr) &globalframe; word var←c7444; /* MakeConstantRope: */ SOURCE(11480, 164) SOURCE(11555, 89) { word var←c43992; word var←c43960; var←c43992 = XR←NewObject(8, (* (( (ptr) gf←c49976)+276) )); (* (ptr) var←c43992 ) = char←v7372; (* (( (ptr) var←c43992)+1) ) = length←v7400; var←c43960 = var←c43992; return((word) MakeRope←P780(var←c43960, length←v7400, (word) (( (bPt) gf←c49976)+1376)/* var←c40120 */ , (word) (( (bPt) gf←c49976)+1368) /* var←c40088 */ , (word) (( (bPt) gf←c49976)+1360)/* var←c40056 */ )); }; } static word ConstFetch←P1140(data←v7576, index←v7604) word data←v7576; word index←v7604; { register ptr gf←c50008 = (ptr) &globalframe; word var←c7660; word c←v16524; /* ConstFetch: */ SOURCE(11700, 107) SOURCE(11760, 30) c←v16524 = XR←Narrow(data←v7576, (* (( (ptr) gf←c50008)+276) )); SOURCE(11792, 15) return((* (ptr) c←v16524 )); } static word ConstMap←P1200(base←v7720, start←v7748, len←v7776, action←v7804) word base←v7720; word start←v7748; word len←v7776; word action←v7804; { register ptr gf←c50040 = (ptr) &globalframe; word quit←v7860; word c←v16580; /* ConstMap: */ SOURCE(11811, 233) SOURCE(11811, 233) quit←v7860 = 0; SOURCE(11908, 30) c←v16580 = XR←Narrow(base←v7720, (* (( (ptr) gf←c50040)+276) )); SOURCE(11940, 79) { register word noName←c44024 = 1; register word noName←c44056; { word x37; noName←c44056 = (x37 = ((* (( (ptr) c←v16580)+1) ) - start←v7748), MIN((int)(word), x37, len←v7776)); }; if (( (int)noName←c44024 > (int)noName←c44056)) { goto lab←L100072; }; lab←L100075: ; SOURCE(11983, 36) if ((0 != (word) ( *( (fPt) ((* (ptr) action←v7804 ))))((* (ptr) (c←v16580) ), action←v7804))) { SOURCE(12006, 13) return(1); }; if (( (int)noName←c44024 >= (int)noName←c44056)) { goto lab←L100072; }; noName←c44024 = (noName←c44024 + 1); goto lab←L100075; lab←L100072: ; }; SOURCE(12030, 14) return(0); } static word ConstMove←P1260(block←v7920, data←v7948, start←v7976) W3 block←v7920; word data←v7948; word start←v7976; { register ptr gf←c50072 = (ptr) &globalframe; word charsMoved←v8032; word c←v16636; word value←v16664; word n←v16692; /* ConstMove: */ SOURCE(12048, 427) SOURCE(12048, 427) charsMoved←v8032 = 0; SOURCE(12166, 30) c←v16636 = XR←Narrow(data←v7948, (* (( (ptr) gf←c50072)+276) )); SOURCE(12198, 25) value←v16664 = (* (ptr) c←v16636 ); SOURCE(12225, 41) { word x38; word x39; n←v16692 = (x38 = ((* (( (ptr) c←v16636)+1) ) - start←v7976), x39 = block←v7920.f2, MIN((int)(word), x38, x39)); }; SOURCE(12268, 207) lab←L100078: ; if (( (int)charsMoved←v8032 < (int)n←v16692)) { } else { goto lab←L100076; }; { word count←v16748; SOURCE(12290, 48) count←v16748 = (MIN( (unsigned) , (n←v16692 - charsMoved←v8032), 65535)); SOURCE(12340, 104) (void) Basics←FillBytes(block←v7920.f0, (block←v7920.f1 + charsMoved←v8032), count←v16748, value←v16664); SOURCE(12446, 29) charsMoved←v8032 = (charsMoved←v8032 + count←v16748); }; goto lab←L100078; lab←L100076: ; SOURCE(12048, 427) return(charsMoved←v8032); } static word FromRefText←P1320(s←v8092, start←v8120, len←v8148) word s←v8092; word start←v8120; word len←v8148; { register ptr gf←c50104 = (ptr) &globalframe; word rtn←v8204; /* FromRefText: */ SOURCE(12490, 416) SOURCE(12490, 416) rtn←v8204 = 0; SOURCE(12631, 275) if ((s←v8092 != 0)) { SOURCE(12655, 253) { word rem←v16792; SOURCE(12657, 31) { word idx40; rem←v16792 = ( idx40 = (word) ((* (hPt) s←v8092 ) - start←v8120), BCK(idx40, 32768) ); }; SOURCE(12690, 25) if ((rem←v16792 < len←v8148)) { SOURCE(12706, 9) len←v8148 = rem←v16792; }; SOURCE(12717, 34) if ((len←v8148 == 0)) { SOURCE(12733, 18) return((* (( (ptr) gf←c50104)+4)/* emptyRope←v2804 */ )); }; SOURCE(12753, 18) rtn←v8204 = (word) NewText←P60(len←v8148); SOURCE(12773, 133) { word var←c44088; { word text←v36712; text←v36712 = s←v8092; var←c44088 = (text←v36712 + 4); }; (void) Basics←CopyBytes((rtn←v8204 + 4), 0, var←c44088, start←v8120, len←v8148); }; }; }; SOURCE(12490, 416) return(rtn←v8204); } static word ToRefText←P1380(base←v8264) word base←v8264; { register ptr gf←c50136 = (ptr) &globalframe; word var←c8308; word len←v16836; word rtn←v16864; /* ToRefText: */ SOURCE(12915, 434) SOURCE(12982, 40) { word x←v36760; x←v36760 = (word) InlineSize←P2040(base←v8264); len←v16836 = BCK(x←v36760, 32768); }; SOURCE(13024, 43) { word var←c44184; word var←c44216; var←c44184 = (((len←v16836 + 3) >> 2) << 2); { word pd41; pd41 = (* (ptr) (* (( (ptr) gf←c50136)+8)/* untracedZone←v2916 */ ) ); var←c44216 = (word) ( *( (fPt) ((* (ptr) pd41 ))))((* (( (ptr) gf←c50136)+8)/* untracedZone←v2916 */ ), (4 + var←c44184), (* ( ( (ptr) gf←c50136)+277) ), pd41); }; (* (( (hPt) var←c44216)+1) ) = len←v16836; rtn←v16864 = var←c44216; }; SOURCE(13069, 263) if ((len←v16836 != 0)) { SOURCE(13087, 245) { word var←c44248; var←c44248 = base←v8264; if ((var←c44248 == 0)) { goto lab←L100081; }; if (((*(( short *)var←c44248 + 1)<0) == 0)) { { word txt←v16920; txt←v16920 = var←c44248; SOURCE(13130, 153) SOURCE(13132, 131) { word var←c44280; { word text←v36664; text←v36664 = rtn←v16864; var←c44280 = (text←v36664 + 4); }; (void) Basics←CopyBytes(var←c44280, 0, (txt←v16920 + 4), 0, len←v16836); }; SOURCE(13265, 16) (* (hPt) rtn←v16864 ) = len←v16836; }; } else { lab←L100081: ; SOURCE(13297, 35) { word var←c44344; var←c44344 = (word) AppendChars←P1500(rtn←v16864, base←v8264, 0, len←v16836); }; }; }; }; SOURCE(13337, 12) return(rtn←v16864); } static void DoMoveChars←P1440(pointer←v8380, index←v8408, rope←v8436, start←v8464, len←v8492) word pointer←v8380; word index←v8408; word rope←v8436; word start←v8464; word len←v8492; { W9 var←c50168; register ptr gf←c50200 = (ptr) &globalframe; /* declaration of var←c44376 skipped */ /* DoMoveChars: */ SOURCE(13355, 1636) { word tmpAddr42; tmpAddr42 = (word) (( (ptr) &var←c50168)+4)/* var←c44376 */ ; (* (ptr) tmpAddr42 ) = ( ((word) (fPt) action←P5436) ); (* (( (ptr) tmpAddr42) + 1) ) = 1; }; SOURCE(13468, 1523) lab←L100085: ; if (( (int)len←v8492 != (int)0)) { } else { goto lab←L100083; }; { word base←v16964 = 0; word bStart←v16992; word bLen←v17020; SOURCE(13516, 51) { W3 var←c44408; (void) ContainingPiece←P1860((word) &var←c44408, rope←v8436, start←v8464); bLen←v17020 = var←c44408.f2; bStart←v16992 = var←c44408.f1; base←v16964 = var←c44408.f0; }; SOURCE(13569, 29) if (( (int)bLen←v17020 > (int)len←v8492)) { SOURCE(13588, 10) bLen←v17020 = len←v8492; }; SOURCE(13600, 29) if (( (int)bLen←v17020 == (int)0)) { SOURCE(13617, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50200)+1124), 0); }; SOURCE(13631, 1271) { word var←c44440; var←c44440 = base←v16964; if ((var←c44440 == 0)) { goto lab←L100086; }; { word var←c44632; var←c44632 = (*(( short *)var←c44440 + 1)<0); if ((var←c44632 == 0)) { { word txt←v17064; txt←v17064 = var←c44440; SOURCE(13674, 129) SOURCE(13676, 125) (void) Basics←CopyBytes(pointer←v8380, SGNCK(index←v8408), (txt←v17064 + 4), SGNCK(bStart←v16992), SGNCK(bLen←v17020)); }; } else { if ((var←c44632 == 1)) { { word n←v17108; n←v17108 = var←c44440; SOURCE(13831, 1016) { word var←c44472; var←c44472 = n←v17108; if ((var←c44472 == 0)) { goto lab←L100087; }; if ((((* (( (bPt) var←c44472)+3) ) & 3) == 3)) { { /*1*/ word obj←v17164; /*1*/ obj←v17164 = var←c44472; /*1*/ if (((* (( (ptr) obj←v17164)+5) ) != 0)) { SOURCE(13925, 102) /*1*/ { /*1*/ word moved←v17220; SOURCE(13927, 63) /*1*/ { /*1*/ W3 var←c44504; /*1*/ var←c44504.f0 = pointer←v8380; /*1*/ var←c44504.f1 = index←v8408; /*1*/ var←c44504.f2 = bLen←v17020; /*1*/ { /*1*/ word pd43; /*1*/ pd43 = (* (( (ptr) obj←v17164)+5) ); /*1*/ moved←v17220 = (word) ( *( (fPt) ((* (ptr) pd43 ))))(var←c44504, (* (( (ptr) obj←v17164)+2) ), bStart←v16992, pd43); /*1*/ }; /*1*/ }; SOURCE(13992, 33) /*1*/ if (( (int)moved←v17220 != (int)bLen←v17020)) { SOURCE(14013, 12) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50200)+1124), 0); /*1*/ }; /*1*/ }; /*1*/ } /*1*/ else { /*1*/ if (((* (( (ptr) obj←v17164)+4) ) != 0)) { SOURCE(14047, 397) /*1*/ { /*1*/ /* declaration of toPointer←v17264 skipped */ /*1*/ /* declaration of toIndex←v17292 skipped */ /*1*/ /* declaration of moved←v17320 skipped */ SOURCE(14049, 42) /*1*/ (* (( (ptr) &var←c50168)+6)/* toPointer←v17264 */ ) = pointer←v8380; SOURCE(14093, 20) /*1*/ (* (( (ptr) &var←c50168)+7)/* toIndex←v17292 */ ) = index←v8408; SOURCE(14115, 14) /*1*/ (* (( (ptr) &var←c50168)+8)/* moved←v17320 */ ) = 0; SOURCE(14363, 44) /*1*/ { /*1*/ word var←c44536; /*1*/ word pd44; /*1*/ pd44 = (* (( (ptr) obj←v17164)+4) ); /*1*/ var←c44536 = (word) ( *( (fPt) ((* (ptr) pd44 ))))((* (( (ptr) obj←v17164)+2) ), bStart←v16992, bLen←v17020, (word) (( (bPt) &var←c50168)+16) /*1*/ /* var←c44376 */ , pd44); /*1*/ }; SOURCE(14409, 33) /*1*/ if (( (int)(* (( (ptr) &var←c50168)+8)/* moved←v17320 */ ) != (int)bLen←v17020)) { SOURCE(14430, 12) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50200)+1124), 0); /*1*/ }; /*1*/ }; /*1*/ } /*1*/ else { SOURCE(14466, 355) /*1*/ { /*1*/ word toPointer←v17392; /*1*/ word toIndex←v17420; /*1*/ word fetch←v17448; /*1*/ word data←v17476; SOURCE(14468, 42) /*1*/ toPointer←v17392 = pointer←v8380; SOURCE(14512, 20) /*1*/ toIndex←v17420 = index←v8408; SOURCE(14534, 28) /*1*/ fetch←v17448 = (* (( (ptr) obj←v17164)+3) ); SOURCE(14564, 20) /*1*/ data←v17476 = (* (( (ptr) obj←v17164)+2) ); SOURCE(14586, 224) /*1*/ { /*1*/ register word i←v17532 = 0; /*1*/ register word noName←c44568; /*1*/ noName←c44568 = bLen←v17020; /*1*/ if (( (int)i←v17532 >= (int)noName←c44568)) { /*1*/ goto lab←L100088; /*1*/ }; /*1*/ lab←L100091: ; SOURCE(14613, 127) /*1*/ if (( (int)toIndex←v17420 > (int)32767)) { SOURCE(14648, 56) /*1*/ toPointer←v17392 = (toPointer←v17392 + IOP2( * , (int)IOP2( / , (int)toIndex←v17420, (int)4), (int)4)); SOURCE(14706, 34) /*1*/ toIndex←v17420 = IOP2( % , (int)toIndex←v17420, (int)4); /*1*/ }; SOURCE(14745, 42) /*1*/ { /*1*/ word var←c44600; /*1*/ var←c44600 = (word) ( *( (fPt) ((* (ptr) fetch←v17448 ))))(data←v17476, (bStart←v16992 + i←v17532), fetch←v17448); /*1*/ (* (( (bPt) toPointer←v17392)+toIndex←v17420) ) = var←c44600; /*1*/ }; SOURCE(14789, 21) /*1*/ toIndex←v17420 = (toIndex←v17420 + 1); /*1*/ i←v17532 = (i←v17532 + 1); /*1*/ if (( (int)i←v17532 < (int)noName←c44568)) { /*1*/ goto lab←L100091; /*1*/ }; /*1*/ lab←L100088: ; /*1*/ }; /*1*/ }; /*1*/ }; /*1*/ }; /*1*/ }; } else { lab←L100087: ; SOURCE(14835, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50200)+1124), 0); }; }; }; } else { lab←L100086: ; SOURCE(14890, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50200)+1124), 0); }; }; }; }; SOURCE(14931, 16) len←v8492 = (len←v8492 - bLen←v17020); SOURCE(14949, 20) start←v8464 = (start←v8464 + bLen←v17020); SOURCE(14971, 20) index←v8408 = (index←v8408 + bLen←v17020); }; goto lab←L100085; lab←L100083: ; } static word action←P5436(c←v34100, formal←c50232) word c←v34100; word formal←c50232; { word quit←v34144; formal←c50232 = (formal←c50232 - 16); /* action: */ SOURCE(14131, 29) SOURCE(14131, 29) quit←v34144 = 0; SOURCE(14162, 127) if (( (int)(* (( (ptr) formal←c50232)+7) ) > (int)32767)) { SOURCE(14197, 56) (* (( (ptr) formal←c50232)+6) ) = ((* (( (ptr) formal←c50232)+6) ) + IOP2( * , (int)IOP2( / , (int)(* (( (ptr) formal←c50232)+7) ), (int)4), (int)4)); SOURCE(14255, 34) (* (( (ptr) formal←c50232)+7) ) = IOP2( % , (int)(* (( (ptr) formal←c50232)+7) ), (int)4); }; SOURCE(14294, 22) (* (( (bPt) (* (( (ptr) formal←c50232)+6) ))+(* (( (ptr) formal←c50232)+7) )) ) = c←v34100; SOURCE(14318, 21) (* (( (ptr) formal←c50232)+7) ) = ((* (( (ptr) formal←c50232)+7) ) + 1); SOURCE(14341, 17) (* (( (ptr) formal←c50232)+8) ) = ((* (( (ptr) formal←c50232)+8) ) + 1); SOURCE(14131, 29) return(quit←v34144); } static word AppendChars←P1500(buffer←v8564, rope←v8592, start←v8620, len←v8648) word buffer←v8564; word rope←v8592; word start←v8620; word len←v8648; { word charsMoved←v8704; word rem←v17576; /* AppendChars: */ SOURCE(15006, 535) SOURCE(15006, 535) charsMoved←v8704 = 0; SOURCE(15140, 49) { word x←v38648; x←v38648 = ((word) InlineSize←P2040(rope←v8592) - start←v8620); rem←v17576 = SGNCK(x←v38648); }; SOURCE(15191, 27) if (( (int)rem←v17576 > (int)len←v8648)) { SOURCE(15209, 9) rem←v17576 = len←v8648; }; SOURCE(15220, 321) if ( ( ( (int)rem←v17576 > (int)0) ? (buffer←v8564 != 0) : 0 ) ) { SOURCE(15261, 282) { word bufPos←v17620; word bufRem←v17648; SOURCE(15263, 33) bufPos←v17620 = (* (hPt) buffer←v8564 ); SOURCE(15298, 45) { word idx45; bufRem←v17648 = ( idx45 = (word) ((* (( (hPt) buffer←v8564)+1) ) - bufPos←v17620), BCK(idx45, 32768) ); }; SOURCE(15345, 41) if (( (int)bufRem←v17648 > (int)rem←v17576)) { SOURCE(15366, 20) bufRem←v17648 = rem←v17576; }; SOURCE(15388, 105) { word var←c44696; { word text←v36616; text←v36616 = buffer←v8564; var←c44696 = (text←v36616 + 4); }; (void) DoMoveChars←P1440(var←c44696, bufPos←v17620, rope←v8592, start←v8620, bufRem←v17648); }; SOURCE(15495, 29) (* (hPt) buffer←v8564 ) = BCK((bufPos←v17620 + bufRem←v17648), 32768); SOURCE(15526, 15) return(bufRem←v17648); }; }; SOURCE(15006, 535) return(charsMoved←v8704); } static word UnsafeMoveChars←P1560(block←v8764, rope←v8792, start←v8820) W3 block←v8764; word rope←v8792; word start←v8820; { word charsMoved←v8864; word rem←v17692; /* UnsafeMoveChars: */ SOURCE(15550, 359) SOURCE(15550, 359) charsMoved←v8864 = 0; SOURCE(15669, 49) { word x←v38600; x←v38600 = ((word) InlineSize←P2040(rope←v8792) - start←v8820); rem←v17692 = SGNCK(x←v38600); }; SOURCE(15720, 43) if (( (int)rem←v17692 > (int)block←v8764.f2)) { SOURCE(15746, 17) rem←v17692 = block←v8764.f2; }; SOURCE(15765, 144) if (( (int)rem←v17692 > (int)0)) { SOURCE(15789, 120) SOURCE(15791, 102) (void) DoMoveChars←P1440(block←v8764.f0, block←v8764.f1, rope←v8792, start←v8820, rem←v17692); SOURCE(15895, 12) return(rem←v17692); }; SOURCE(15550, 359) return(charsMoved←v8864); } static word Equal←P1620(s1←v8924, s2←v8952, case←v8980) word s1←v8924; word s2←v8952; word case←v8980; { word var←c9024; word len1←v17736; word len2←v17764; word str1←v17792 = 0; word str2←v17820 = 0; /* Equal: */ SOURCE(15916, 811) SOURCE(16037, 29) { W2 var←c44952; { word var←c44824; var←c44824 = s1←v8924; if ((var←c44824 == 0)) { goto lab←L100095; }; { word var←c44920; var←c44920 = (*(( short *)var←c44824 + 1)<0); if ((var←c44920 == 0)) { { word text←v38096; text←v38096 = var←c44824; (* (ptr) (word) &var←c44952 ) = ( (((unsigned)(* (hPt) text←v38096 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c44952) + 1) ) = text←v38096; }; } else { if ((var←c44920 == 1)) { { word node←v38140; word var←c44888; word base←v38184; node←v38140 = var←c44824; base←v38184 = node←v38140; var←c44888 = (* (( (ptr) base←v38184)+1) ); (* (ptr) (word) &var←c44952 ) = var←c44888; (* (( (ptr) (word) &var←c44952) + 1) ) = 0; }; } else { lab←L100095: ; (* (ptr) (word) &var←c44952 ) = 0; (* (( (ptr) (word) &var←c44952) + 1) ) = 0; goto lab←L100096; }; }; }; }; lab←L100096: ; str1←v17792 = var←c44952.f1; len1←v17736 = var←c44952.f0; }; SOURCE(16068, 29) { W2 var←c45144; { word var←c45016; var←c45016 = s2←v8952; if ((var←c45016 == 0)) { goto lab←L100098; }; { word var←c45112; var←c45112 = (*(( short *)var←c45016 + 1)<0); if ((var←c45112 == 0)) { { word text←v37964; text←v37964 = var←c45016; (* (ptr) (word) &var←c45144 ) = ( (((unsigned)(* (hPt) text←v37964 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c45144) + 1) ) = text←v37964; }; } else { if ((var←c45112 == 1)) { { word node←v38008; word var←c45080; word base←v38052; node←v38008 = var←c45016; base←v38052 = node←v38008; var←c45080 = (* (( (ptr) base←v38052)+1) ); (* (ptr) (word) &var←c45144 ) = var←c45080; (* (( (ptr) (word) &var←c45144) + 1) ) = 0; }; } else { lab←L100098: ; (* (ptr) (word) &var←c45144 ) = 0; (* (( (ptr) (word) &var←c45144) + 1) ) = 0; goto lab←L100099; }; }; }; }; lab←L100099: ; str2←v17820 = var←c45144.f1; len2←v17764 = var←c45144.f0; }; if (( (int)len1←v17736 != (int)len2←v17764)) { SOURCE(16131, 14) return(0); } else { if ((s1←v8924 == s2←v8952) || ( (int)len1←v17736 == (int)0)) { SOURCE(16170, 13) return(1); } else { if ( ( ( (0 != case←v8980) ? (str1←v17792 != 0) : 0 ) ? (str2←v17820 != 0) : 0 ) ) { SOURCE(16223, 454) { word len←v17864; word wp1←v17892; word wp2←v17920; SOURCE(16225, 29) len←v17864 = len1←v17736; SOURCE(16256, 54) wp1←v17892 = (str1←v17792 + 4); SOURCE(16312, 54) wp2←v17920 = (str2←v17820 + 4); SOURCE(16368, 139) lab←L100103: ; if ((len←v17864 >= 4)) { } else { goto lab←L100101; }; SOURCE(16397, 34) if (((* (ptr) wp1←v17892 ) != (* (ptr) wp2←v17920 ))) { SOURCE(16417, 14) return(0); }; SOURCE(16433, 23) wp1←v17892 = (wp1←v17892 + 4); SOURCE(16458, 23) wp2←v17920 = (wp2←v17920 + 4); SOURCE(16483, 24) len←v17864 = BCK((len←v17864 - 4), 32768); goto lab←L100103; lab←L100101: ; SOURCE(16518, 133) { register word i←v17964 = 0; register word noName←c45176; noName←c45176 = (len←v17864 & 3); if ((i←v17964 >= noName←c45176)) { goto lab←L100104; }; lab←L100107: ; SOURCE(16567, 84) if (((word) (* (( (bPt) wp1←v17892)+i←v17964) ) != (word) (* (( (bPt) wp2←v17920)+i←v17964) ))) { SOURCE(16637, 14) return(0); }; i←v17964 = (i←v17964 + 1); if ((i←v17964 < noName←c45176)) { goto lab←L100107; }; lab←L100104: ; }; SOURCE(16662, 13) return(1); }; } else { SOURCE(16691, 36) return(((word) Compare←P1680(s1←v8924, s2←v8952, case←v8980) == 1)); }; }; }; } static word Compare←P1680(s1←v9084, s2←v9112, case←v9140) word s1←v9084; word s2←v9112; word case←v9140; { word var←c9184; word len1←v18008; word len2←v18036; word str1←v18064 = 0; word str2←v18092 = 0; /* Compare: */ SOURCE(16733, 1568) SOURCE(16862, 29) { W2 var←c45400; { word var←c45272; var←c45272 = s1←v9084; if ((var←c45272 == 0)) { goto lab←L100108; }; { word var←c45368; var←c45368 = (*(( short *)var←c45272 + 1)<0); if ((var←c45368 == 0)) { { word text←v37832; text←v37832 = var←c45272; (* (ptr) (word) &var←c45400 ) = ( (((unsigned)(* (hPt) text←v37832 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c45400) + 1) ) = text←v37832; }; } else { if ((var←c45368 == 1)) { { word node←v37876; word var←c45336; word base←v37920; node←v37876 = var←c45272; base←v37920 = node←v37876; var←c45336 = (* (( (ptr) base←v37920)+1) ); (* (ptr) (word) &var←c45400 ) = var←c45336; (* (( (ptr) (word) &var←c45400) + 1) ) = 0; }; } else { lab←L100108: ; (* (ptr) (word) &var←c45400 ) = 0; (* (( (ptr) (word) &var←c45400) + 1) ) = 0; goto lab←L100109; }; }; }; }; lab←L100109: ; str1←v18064 = var←c45400.f1; len1←v18008 = var←c45400.f0; }; SOURCE(16893, 29) { W2 var←c45592; { word var←c45464; var←c45464 = s2←v9112; if ((var←c45464 == 0)) { goto lab←L100111; }; { word var←c45560; var←c45560 = (*(( short *)var←c45464 + 1)<0); if ((var←c45560 == 0)) { { word text←v37700; text←v37700 = var←c45464; (* (ptr) (word) &var←c45592 ) = ( (((unsigned)(* (hPt) text←v37700 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c45592) + 1) ) = text←v37700; }; } else { if ((var←c45560 == 1)) { { word node←v37744; word var←c45528; word base←v37788; node←v37744 = var←c45464; base←v37788 = node←v37744; var←c45528 = (* (( (ptr) base←v37788)+1) ); (* (ptr) (word) &var←c45592 ) = var←c45528; (* (( (ptr) (word) &var←c45592) + 1) ) = 0; }; } else { lab←L100111: ; (* (ptr) (word) &var←c45592 ) = 0; (* (( (ptr) (word) &var←c45592) + 1) ) = 0; goto lab←L100112; }; }; }; }; lab←L100112: ; str2←v18092 = var←c45592.f1; len2←v18036 = var←c45592.f0; }; SOURCE(16924, 671) if ( ( (str1←v18064 != 0) ? (str2←v18092 != 0) : 0 ) ) { SOURCE(16958, 639) { word sz1←v18136; word sz2←v18164; word sz←v18192; SOURCE(16960, 29) sz1←v18136 = len1←v18008; SOURCE(16991, 29) sz2←v18164 = len2←v18036; SOURCE(17022, 29) sz←v18192 = (MIN( (unsigned) , sz1←v18136, sz2←v18164)); SOURCE(17053, 448) if ((0 != case←v9140)) { SOURCE(17067, 160) { register word i←v18236 = 0; register word noName←c45624; noName←c45624 = sz←v18192; if ((i←v18236 >= noName←c45624)) { goto lab←L100114; }; lab←L100117: ; { word c1←v18280; word c2←v18308; SOURCE(17098, 26) c1←v18280 = (word) (* ((( (bPt) str1←v18064)+4)+i←v18236) ); SOURCE(17126, 26) c2←v18308 = (word) (* ((( (bPt) str2←v18092)+4)+i←v18236) ); SOURCE(17154, 16) if ((c1←v18280 == c2←v18308)) { SOURCE(17170, 4) goto lab←L100116; }; SOURCE(17176, 51) if ((c1←v18280 < c2←v18308)) { SOURCE(17192, 19) return(0); } else { SOURCE(17211, 16) return(2); }; }; lab←L100116: ; i←v18236 = (i←v18236 + 1); if ((i←v18236 < noName←c45624)) { goto lab←L100117; }; lab←L100114: ; }; } else { SOURCE(17243, 258) { register word i←v18352 = 0; register word noName←c45656; noName←c45656 = sz←v18192; if ((i←v18352 >= noName←c45656)) { goto lab←L100118; }; lab←L100121: ; { word c1←v18396; word c2←v18424; SOURCE(17274, 26) c1←v18396 = (word) (* ((( (bPt) str1←v18064)+4)+i←v18352) ); SOURCE(17302, 26) c2←v18424 = (word) (* ((( (bPt) str2←v18092)+4)+i←v18352) ); SOURCE(17330, 47) if ( ( (c1←v18396 <= 90) ? (c1←v18396 >= 65) : 0 ) ) { SOURCE(17360, 17) c1←v18396 = BCK((c1←v18396 + 32), 256); }; SOURCE(17379, 47) if ( ( (c2←v18424 <= 90) ? (c2←v18424 >= 65) : 0 ) ) { SOURCE(17409, 17) c2←v18424 = BCK((c2←v18424 + 32), 256); }; SOURCE(17428, 16) if ((c1←v18396 == c2←v18424)) { SOURCE(17444, 4) goto lab←L100120; }; SOURCE(17450, 51) if ((c1←v18396 < c2←v18424)) { SOURCE(17466, 19) return(0); } else { SOURCE(17485, 16) return(2); }; }; lab←L100120: ; i←v18352 = (i←v18352 + 1); if ((i←v18352 < noName←c45656)) { goto lab←L100121; }; lab←L100118: ; }; }; SOURCE(17512, 34) if ((sz1←v18136 > sz2←v18164)) { SOURCE(17530, 16) return(2); }; SOURCE(17548, 31) if ((sz1←v18136 < sz2←v18164)) { SOURCE(17566, 13) return(0); }; SOURCE(17581, 14) return(1); }; }; SOURCE(17600, 712) { word r1←v18468 = 0; word r2←v18496 = 0; word pos1←v18524 = 0; word st1←v18552 = 0; word sz1←v18580 = 0; word lm1←v18608 = 0; word pos2←v18636 = 0; word st2←v18664 = 0; word sz2←v18692 = 0; word lm2←v18720 = 0; word c1←v18748; word c2←v18776; SOURCE(17688, 613) lab←L100124: ; SOURCE(17691, 183) if (( (int)st1←v18552 == (int)lm1←v18608)) { { word var←c0875; SOURCE(17711, 79) pos1←v18524 = (pos1←v18524 + sz1←v18580); var←c0875 = pos1←v18524; if (( (int)var←c0875 == (int)len1←v18008)) { SOURCE(17746, 44) { word idx46; return(( idx46 = (word) ( ( (int)pos1←v18524 == (int)len2←v18036) ? 1 : 0 ) , BCK(idx46, 3) )); }; }; SOURCE(17792, 42) { W3 var←c45688; (void) ContainingPiece←P1860((word) &var←c45688, s1←v9084, pos1←v18524); sz1←v18580 = var←c45688.f2; st1←v18552 = var←c45688.f1; r1←v18468 = var←c45688.f0; }; SOURCE(17836, 16) if (( (int)sz1←v18580 == (int)0)) { SOURCE(17852, 5) (void) XR←RaiseUnnamedError(); }; SOURCE(17859, 15) lm1←v18608 = (st1←v18552 + sz1←v18580); }; }; SOURCE(17879, 155) if (( (int)st2←v18664 == (int)lm2←v18720)) { { word var←c0876; SOURCE(17899, 51) pos2←v18636 = (pos2←v18636 + sz2←v18692); var←c0876 = pos2←v18636; if (( (int)var←c0876 == (int)len2←v18036)) { SOURCE(17934, 16) return(2); }; SOURCE(17952, 42) { W3 var←c45720; (void) ContainingPiece←P1860((word) &var←c45720, s2←v9112, pos2←v18636); sz2←v18692 = var←c45720.f2; st2←v18664 = var←c45720.f1; r2←v18496 = var←c45720.f0; }; SOURCE(17996, 16) if (( (int)sz2←v18692 == (int)0)) { SOURCE(18012, 5) (void) XR←RaiseUnnamedError(); }; SOURCE(18019, 15) lm2←v18720 = (st2←v18664 + sz2←v18692); }; }; SOURCE(18039, 25) c1←v18748 = (word) Fetch←P420(r1←v18468, st1←v18552); SOURCE(18066, 25) c2←v18776 = (word) Fetch←P420(r2←v18496, st2←v18664); SOURCE(18093, 115) if ((0 == case←v9140)) { SOURCE(18112, 47) if ( ( (c1←v18748 <= 90) ? (c1←v18748 >= 65) : 0 ) ) { SOURCE(18142, 17) c1←v18748 = BCK((c1←v18748 + 32), 256); }; SOURCE(18161, 47) if ( ( (c2←v18776 <= 90) ? (c2←v18776 >= 65) : 0 ) ) { SOURCE(18191, 17) c2←v18776 = BCK((c2←v18776 + 32), 256); }; }; SOURCE(18213, 58) if ((c1←v18748 != c2←v18776)) { SOURCE(18229, 42) { word idx47; return(( idx47 = (word) ( (c1←v18748 < c2←v18776) ? 0 : 2 ) , BCK(idx47, 3) )); }; }; SOURCE(18273, 13) st1←v18552 = (st1←v18552 + 1); SOURCE(18288, 13) st2←v18664 = (st2←v18664 + 1); goto lab←L100124; }; } static word CompareSubstrs←P1740(s1←v9244, start1←v9272, len1←v9300, s2←v9328, start2←v9356, len2←v9384, case←v9412) word s1←v9244; word start1←v9272; word len1←v9300; word s2←v9328; word start2←v9356; word len2←v9384; word case←v9412; { word var←c9456; word rem1←v18820; word rem2←v18848; word rem←v18876; word r1←v18904 = 0; word r2←v18932 = 0; word st1←v18960 = 0; word sz1←v18988 = 0; word lm1←v19016 = 0; word st2←v19044 = 0; word sz2←v19072 = 0; word lm2←v19100 = 0; /* CompareSubstrs: */ SOURCE(18319, 1101) SOURCE(18489, 85) if (( (int)len1←v9300 <= (int)0)) { rem1←v18820 = 0; } else { { word var←c45752; word x←v38552; x←v38552 = ((word) InlineSize←P2040(s1←v9244) - start1←v9272); var←c45752 = SGNCK(x←v38552); rem1←v18820 = (MIN((int)(word), len1←v9300, var←c45752)); }; }; SOURCE(18576, 85) if (( (int)len2←v9384 <= (int)0)) { rem2←v18848 = 0; } else { { word var←c45784; word x←v38504; x←v38504 = ((word) InlineSize←P2040(s2←v9328) - start2←v9356); var←c45784 = SGNCK(x←v38504); rem2←v18848 = (MIN((int)(word), len2←v9384, var←c45784)); }; }; SOURCE(18663, 26) rem←v18876 = (MIN((int)(word), rem1←v18820, rem2←v18848)); SOURCE(18759, 612) lab←L100129: ; if (( (int)rem←v18876 != (int)0)) { } else { goto lab←L100127; }; SOURCE(18776, 118) if (( (int)st1←v18960 == (int)lm1←v19016)) { SOURCE(18796, 59) { W3 var←c45816; { W3 var←c0494; { word var←c0877; start1←v9272 = (start1←v9272 + sz1←v18988); var←c0877 = start1←v9272; (void) ContainingPiece←P1860((word) &var←c0494, s1←v9244, var←c0877); }; var←c45816 = var←c0494; }; sz1←v18988 = var←c45816.f2; st1←v18960 = var←c45816.f1; r1←v18904 = var←c45816.f0; }; SOURCE(18857, 16) if (( (int)sz1←v18988 == (int)0)) { SOURCE(18873, 4) goto lab←L100128; }; SOURCE(18879, 15) lm1←v19016 = (st1←v18960 + sz1←v18988); }; SOURCE(18899, 118) if (( (int)st2←v19044 == (int)lm2←v19100)) { SOURCE(18919, 59) { W3 var←c45848; { W3 var←c0496; { word var←c0878; start2←v9356 = (start2←v9356 + sz2←v19072); var←c0878 = start2←v9356; (void) ContainingPiece←P1860((word) &var←c0496, s2←v9328, var←c0878); }; var←c45848 = var←c0496; }; sz2←v19072 = var←c45848.f2; st2←v19044 = var←c45848.f1; r2←v18932 = var←c45848.f0; }; SOURCE(18980, 16) if (( (int)sz2←v19072 == (int)0)) { SOURCE(18996, 4) goto lab←L100128; }; SOURCE(19002, 15) lm2←v19100 = (st2←v19044 + sz2←v19072); }; SOURCE(19022, 303) { word c1←v19144; word c2←v19172; SOURCE(19024, 31) c1←v19144 = (word) Fetch←P420(r1←v18904, st1←v18960); SOURCE(19057, 31) c2←v19172 = (word) Fetch←P420(r2←v18932, st2←v19044); SOURCE(19090, 232) if ((c1←v19144 != c2←v19172)) { SOURCE(19106, 216) SOURCE(19108, 133) if ((0 == case←v9412)) { SOURCE(19127, 47) if ( ( (c1←v19144 <= 90) ? (c1←v19144 >= 65) : 0 ) ) { SOURCE(19157, 17) c1←v19144 = BCK((c1←v19144 + 32), 256); }; SOURCE(19176, 47) if ( ( (c2←v19172 <= 90) ? (c2←v19172 >= 65) : 0 ) ) { SOURCE(19206, 17) c2←v19172 = BCK((c2←v19172 + 32), 256); }; SOURCE(19225, 16) if ((c1←v19144 == c2←v19172)) { SOURCE(19241, 11) goto lab←L100130; }; }; SOURCE(19257, 44) { word var←c45880; { word a←v36540; word b←v36568; a←v36540 = c1←v19144; b←v36568 = c2←v19172; { word idx48; var←c45880 = ( idx48 = (word) ( ( (int)a←v36540 == (int)b←v36568) ? 1 : ( ( (int)a←v36540 > (int)b←v36568) ? 2 : 0 ) ) , BCK(idx48, 3) ); }; }; return(var←c45880); }; /* c2c skipped dead code */ lab←L100130: ; }; }; SOURCE(19328, 13) st1←v18960 = (st1←v18960 + 1); SOURCE(19343, 13) st2←v19044 = (st2←v19044 + 1); SOURCE(19358, 13) rem←v18876 = (rem←v18876 - 1); goto lab←L100129; lab←L100127: ; lab←L100128: ; SOURCE(19382, 38) if (( (int)rem1←v18820 == (int)rem2←v18848)) { return(1); } else { if (( (int)rem1←v18820 > (int)rem2←v18848)) { return(2); } else { return(0); }; }; } static word EqualSubstrs←P1800(s1←v9516, start1←v9544, len1←v9572, s2←v9600, start2←v9628, len2←v9656, case←v9684) word s1←v9516; word start1←v9544; word len1←v9572; word s2←v9600; word start2←v9628; word len2←v9656; word case←v9684; { word var←c9728; word rem1←v19216; word rem2←v19244; /* EqualSubstrs: */ SOURCE(19426, 1054) SOURCE(19588, 85) if (( (int)len1←v9572 <= (int)0)) { rem1←v19216 = 0; } else { { word var←c45944; word x←v38456; x←v38456 = ((word) InlineSize←P2040(s1←v9516) - start1←v9544); var←c45944 = SGNCK(x←v38456); rem1←v19216 = (MIN((int)(word), len1←v9572, var←c45944)); }; }; SOURCE(19675, 85) if (( (int)len2←v9656 <= (int)0)) { rem2←v19244 = 0; } else { { word var←c45976; word x←v38408; x←v38408 = ((word) InlineSize←P2040(s2←v9600) - start2←v9628); var←c45976 = SGNCK(x←v38408); rem2←v19244 = (MIN((int)(word), len2←v9656, var←c45976)); }; }; SOURCE(19762, 699) if (( (int)rem1←v19216 == (int)rem2←v19244)) { SOURCE(19782, 681) { word r1←v19288 = 0; word r2←v19316 = 0; word st1←v19344 = 0; word sz1←v19372 = 0; word lm1←v19400 = 0; word st2←v19428 = 0; word sz2←v19456 = 0; word lm2←v19484 = 0; SOURCE(19852, 585) lab←L100137: ; if (( (int)rem1←v19216 != (int)0)) { } else { goto lab←L100135; }; SOURCE(19870, 118) if (( (int)st1←v19344 == (int)lm1←v19400)) { SOURCE(19890, 59) { W3 var←c46008; { W3 var←c0525; { word var←c0879; start1←v9544 = (start1←v9544 + sz1←v19372); var←c0879 = start1←v9544; (void) ContainingPiece←P1860((word) &var←c0525, s1←v9516, var←c0879); }; var←c46008 = var←c0525; }; sz1←v19372 = var←c46008.f2; st1←v19344 = var←c46008.f1; r1←v19288 = var←c46008.f0; }; SOURCE(19951, 16) if (( (int)sz1←v19372 == (int)0)) { SOURCE(19967, 4) goto lab←L100136; }; SOURCE(19973, 15) lm1←v19400 = (st1←v19344 + sz1←v19372); }; SOURCE(19993, 118) if (( (int)st2←v19428 == (int)lm2←v19484)) { SOURCE(20013, 59) { W3 var←c46040; { W3 var←c0527; { word var←c0880; start2←v9628 = (start2←v9628 + sz2←v19456); var←c0880 = start2←v9628; (void) ContainingPiece←P1860((word) &var←c0527, s2←v9600, var←c0880); }; var←c46040 = var←c0527; }; sz2←v19456 = var←c46040.f2; st2←v19428 = var←c46040.f1; r2←v19316 = var←c46040.f0; }; SOURCE(20074, 16) if (( (int)sz2←v19456 == (int)0)) { SOURCE(20090, 4) goto lab←L100136; }; SOURCE(20096, 15) lm2←v19484 = (st2←v19428 + sz2←v19456); }; SOURCE(20116, 273) { word c1←v19528; word c2←v19556; SOURCE(20118, 31) c1←v19528 = (word) Fetch←P420(r1←v19288, st1←v19344); SOURCE(20151, 31) c2←v19556 = (word) Fetch←P420(r2←v19316, st2←v19428); SOURCE(20184, 202) if ((c1←v19528 != c2←v19556)) { SOURCE(20200, 186) SOURCE(20202, 133) if ((0 == case←v9684)) { SOURCE(20221, 47) if ( ( (c1←v19528 <= 90) ? (c1←v19528 >= 65) : 0 ) ) { SOURCE(20251, 17) c1←v19528 = BCK((c1←v19528 + 32), 256); }; SOURCE(20270, 47) if ( ( (c2←v19556 <= 90) ? (c2←v19556 >= 65) : 0 ) ) { SOURCE(20300, 17) c2←v19556 = BCK((c2←v19556 + 32), 256); }; SOURCE(20319, 16) if ((c1←v19528 == c2←v19556)) { SOURCE(20335, 11) goto lab←L100138; }; }; SOURCE(20351, 14) return(0); /* c2c skipped dead code */ lab←L100138: ; }; }; SOURCE(20392, 13) st1←v19344 = (st1←v19344 + 1); SOURCE(20407, 13) st2←v19428 = (st2←v19428 + 1); SOURCE(20422, 15) rem1←v19216 = (rem1←v19216 - 1); goto lab←L100137; lab←L100135: ; lab←L100136: ; SOURCE(20448, 13) return(1); }; }; SOURCE(20466, 14) return(0); } static void ContainingPiece←P1860(formal←c0541, rope←v9788, index←v9816) word formal←c0541; word rope←v9788; word index←v9816; { register ptr gf←c50264 = (ptr) &globalframe; word base←v9860; word start←v9888; word len←v9916; /* ContainingPiece: */ SOURCE(20486, 935) SOURCE(20486, 935) base←v9860 = 0; SOURCE(20599, 22) len←v9916 = (word) InlineSize←P2040(rope←v9788); SOURCE(20623, 52) if (( (int)index←v9816 < (int)0) || ( (int)index←v9816 >= (int)len←v9916)) { SOURCE(20657, 18) base←v9860 = 0; start←v9888 = 0; len←v9916 = 0; goto lab←L100140; }; SOURCE(20677, 11) base←v9860 = rope←v9788; SOURCE(20690, 13) start←v9888 = index←v9816; SOURCE(20705, 17) len←v9916 = (len←v9916 - start←v9888); SOURCE(20724, 697) lab←L100143: ; SOURCE(20724, 697) { word nlen←v19600; SOURCE(20727, 15) nlen←v19600 = len←v9916; SOURCE(20744, 638) { word var←c46072; var←c46072 = (*(( short *)base←v9860 + 1)<0); if ((var←c46072 == 0)) { SOURCE(20777, 6) goto lab←L100140; } else { if ((var←c46072 == 1)) { SOURCE(20793, 564) { word var←c46104; var←c46104 = ((* (( (bPt) base←v9860)+3) ) & 3); switch (var←c46104) { case 0: SOURCE(20827, 21) nlen←v19600 = ((* (( (ptr) base←v9860)+1) ) - start←v9888); SOURCE(20850, 23) start←v9888 = (start←v9888 + (* (( (ptr) base←v9860)+3) )); SOURCE(20875, 13) base←v9860 = (* (( (ptr) base←v9860)+2) ); break; case 1: SOURCE(20903, 135) { word del1←v19644; SOURCE(20905, 25) del1←v19644 = ((* (( (ptr) base←v9860)+4) ) - start←v9888); SOURCE(20932, 103) if (( (int)del1←v19644 > (int)0)) { SOURCE(20950, 11) /*1*/ nlen←v19600 = del1←v19644; SOURCE(20963, 13) /*1*/ base←v9860 = (* (( (ptr) base←v9860)+2) ); /*1*/ } else { SOURCE(20984, 21) /*1*/ nlen←v19600 = ((* (( (ptr) base←v9860)+1) ) - start←v9888); SOURCE(21007, 13) /*1*/ start←v9888 = INEG(del1←v19644); SOURCE(21022, 13) /*1*/ base←v9860 = (* (( (ptr) base←v9860)+3) ); /*1*/ }; }; break; case 2: SOURCE(21052, 259) { word del2←v19688; word del1←v19716; SOURCE(21054, 28) del2←v19688 = ((* (( (ptr) base←v9860)+6) ) - start←v9888); SOURCE(21084, 27) del1←v19716 = ((* (( (ptr) base←v9860)+4) ) - start←v9888); if (( (int)del1←v19716 > (int)0)) { SOURCE(21143, 11) /*1*/ nlen←v19600 = del1←v19716; SOURCE(21156, 13) /*1*/ base←v9860 = (* (( (ptr) base←v9860)+2) ); /*1*/ } else { /*1*/ if (( (int)del2←v19688 > (int)0)) { SOURCE(21185, 13) /*1*/ start←v9888 = INEG(del1←v19716); SOURCE(21200, 11) /*1*/ nlen←v19600 = del2←v19688; SOURCE(21213, 16) /*1*/ base←v9860 = (* (( (ptr) base←v9860)+3) ); /*1*/ } /*1*/ else { SOURCE(21245, 21) /*1*/ nlen←v19600 = ((* (( (ptr) base←v9860)+1) ) - start←v9888); SOURCE(21268, 23) /*1*/ start←v9888 = ((* (( (ptr) base←v9860)+5) ) - del2←v19688); SOURCE(21293, 13) /*1*/ base←v9860 = (* (( (ptr) base←v9860)+2) ); /*1*/ }; /*1*/ }; }; break; case 3: SOURCE(21325, 6) goto lab←L100140; default: SOURCE(21345, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50264)+1124), 0); break; }; }; } else { SOURCE(21370, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50264)+1124), 0); }; }; }; SOURCE(21384, 37) if (( (int)nlen←v19600 < (int)len←v9916)) { SOURCE(21403, 18) len←v9916 = nlen←v19600; }; }; goto lab←L100143; lab←L100140: ; (* (ptr) formal←c0541 ) = base←v9860; (* (( (ptr) formal←c0541)+1) ) = start←v9888; (* (( (ptr) formal←c0541)+2) ) = len←v9916; return; } static word IsEmpty←P1920(r←v9976) word r←v9976; { word var←c10020; /* IsEmpty: */ SOURCE(21436, 69) SOURCE(21487, 18) return(( (int)(word) Size←P2100(r←v9976) == (int)0)); } static word Length←P1980(base←v10080) word base←v10080; { word var←c10124; /* Length: */ SOURCE(21511, 71) SOURCE(21563, 19) return((word) Size←P2100(base←v10080)); } static word InlineSize←P2040(base←v10184) word base←v10184; { word var←c10228; /* InlineSize: */ SOURCE(21588, 196) if ((base←v10184 == 0)) { SOURCE(21667, 10) return(0); } else { if (((*(( short *)base←v10184 + 1)<0) == 0)) { SOURCE(21698, 20) return(( (((unsigned)(* (hPt) base←v10184 ) << 17) >> 17) )); } else { SOURCE(21739, 45) SOURCE(21741, 41) return((* (( (ptr) base←v10184)+1) )); }; }; } static word Size←P2100(base←v10288) word base←v10288; { word var←c10332; /* Size: */ SOURCE(21791, 282) SOURCE(21841, 232) { word var←c46200; var←c46200 = base←v10288; if ((var←c46200 == 0)) { goto lab←L100144; }; { word var←c46232; var←c46232 = (*(int*)var←c46200<0); if ((var←c46232 == 0)) { { word base←v19772; base←v19772 = var←c46200; SOURCE(21896, 44) if (((*(( short *)base←v19772 + 1)<0) == 0)) { SOURCE(21920, 20) return(( (((unsigned)(* (hPt) base←v19772 ) << 17) >> 17) )); }; SOURCE(21950, 45) SOURCE(21952, 41) return((* (( (ptr) base←v19772)+1) )); }; } else { if ((var←c46232 == 1)) { { word base←v19840; base←v19840 = var←c46200; SOURCE(22032, 18) return(( (((unsigned)(* (ptr) base←v19840 ) << 1) >> 1) )); }; } else { lab←L100144: ; SOURCE(22063, 10) return(0); }; }; }; }; } static word Run←P2220(s1←v10496, pos1←v10524, s2←v10552, pos2←v10580, case←v10608, len←v10636) word s1←v10496; word pos1←v10524; word s2←v10552; word pos2←v10580; word case←v10608; word len←v10636; { word result←v10680; word len1←v19896; word str1←v19924 = 0; /* Run: */ SOURCE(22165, 948) SOURCE(22165, 948) result←v10680 = 0; SOURCE(22325, 29) { W2 var←c46424; { word var←c46296; var←c46296 = s1←v10496; if ((var←c46296 == 0)) { goto lab←L100145; }; { word var←c46392; var←c46392 = (*(( short *)var←c46296 + 1)<0); if ((var←c46392 == 0)) { { word text←v37568; text←v37568 = var←c46296; (* (ptr) (word) &var←c46424 ) = ( (((unsigned)(* (hPt) text←v37568 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c46424) + 1) ) = text←v37568; }; } else { if ((var←c46392 == 1)) { { word node←v37612; word var←c46360; word base←v37656; node←v37612 = var←c46296; base←v37656 = node←v37612; var←c46360 = (* (( (ptr) base←v37656)+1) ); (* (ptr) (word) &var←c46424 ) = var←c46360; (* (( (ptr) (word) &var←c46424) + 1) ) = 0; }; } else { lab←L100145: ; (* (ptr) (word) &var←c46424 ) = 0; (* (( (ptr) (word) &var←c46424) + 1) ) = 0; goto lab←L100146; }; }; }; }; lab←L100146: ; str1←v19924 = var←c46424.f1; len1←v19896 = var←c46424.f0; }; SOURCE(22356, 757) if (( (int)pos1←v10524 < (int)len1←v19896)) { SOURCE(22384, 743) { word len2←v19968; word str2←v19996 = 0; SOURCE(22410, 29) { W2 var←c46616; { word var←c46488; var←c46488 = s2←v10552; if ((var←c46488 == 0)) { goto lab←L100148; }; { word var←c46584; var←c46584 = (*(( short *)var←c46488 + 1)<0); if ((var←c46584 == 0)) { { word text←v37436; text←v37436 = var←c46488; (* (ptr) (word) &var←c46616 ) = ( (((unsigned)(* (hPt) text←v37436 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c46616) + 1) ) = text←v37436; }; } else { if ((var←c46584 == 1)) { { word node←v37480; word var←c46552; word base←v37524; node←v37480 = var←c46488; base←v37524 = node←v37480; var←c46552 = (* (( (ptr) base←v37524)+1) ); (* (ptr) (word) &var←c46616 ) = var←c46552; (* (( (ptr) (word) &var←c46616) + 1) ) = 0; }; } else { lab←L100148: ; (* (ptr) (word) &var←c46616 ) = 0; (* (( (ptr) (word) &var←c46616) + 1) ) = 0; goto lab←L100149; }; }; }; }; lab←L100149: ; str2←v19996 = var←c46616.f1; len2←v19968 = var←c46616.f0; }; SOURCE(22441, 672) if (( (int)pos2←v10580 < (int)len2←v19968)) { SOURCE(22469, 655) { word r1←v20040 = 0; word r2←v20068 = 0; word st1←v20096 = 0; word sz1←v20124 = 0; word lm1←v20152 = 0; word st2←v20180 = 0; word sz2←v20208 = 0; word lm2←v20236 = 0; SOURCE(22534, 579) lab←L100153: ; if (( (int)result←v10680 < (int)len←v10636)) { } else { goto lab←L100151; }; SOURCE(22554, 116) if (( (int)st1←v20096 == (int)lm1←v20152)) { SOURCE(22574, 55) { W3 var←c46648; { W3 var←c0588; { word var←c0881; pos1←v10524 = (pos1←v10524 + sz1←v20124); var←c0881 = pos1←v10524; (void) ContainingPiece←P1860((word) &var←c0588, s1←v10496, var←c0881); }; var←c46648 = var←c0588; }; sz1←v20124 = var←c46648.f2; st1←v20096 = var←c46648.f1; r1←v20040 = var←c46648.f0; }; SOURCE(22631, 22) if (( (int)sz1←v20124 == (int)0)) { SOURCE(22647, 6) return(result←v10680); }; SOURCE(22655, 15) lm1←v20152 = (st1←v20096 + sz1←v20124); }; SOURCE(22675, 116) if (( (int)st2←v20180 == (int)lm2←v20236)) { SOURCE(22695, 55) { W3 var←c46680; { W3 var←c0590; { word var←c0882; pos2←v10580 = (pos2←v10580 + sz2←v20208); var←c0882 = pos2←v10580; (void) ContainingPiece←P1860((word) &var←c0590, s2←v10552, var←c0882); }; var←c46680 = var←c0590; }; sz2←v20208 = var←c46680.f2; st2←v20180 = var←c46680.f1; r2←v20068 = var←c46680.f0; }; SOURCE(22752, 22) if (( (int)sz2←v20208 == (int)0)) { SOURCE(22768, 6) return(result←v10680); }; SOURCE(22776, 15) lm2←v20236 = (st2←v20180 + sz2←v20208); }; SOURCE(22796, 265) { word c1←v20280; word c2←v20308; SOURCE(22798, 31) c1←v20280 = (word) Fetch←P420(r1←v20040, st1←v20096); SOURCE(22831, 31) c2←v20308 = (word) Fetch←P420(r2←v20068, st2←v20180); SOURCE(22864, 194) if ((c1←v20280 != c2←v20308)) { SOURCE(22880, 178) SOURCE(22882, 133) if ((0 == case←v10608)) { SOURCE(22901, 47) if ( ( (c1←v20280 <= 90) ? (c1←v20280 >= 65) : 0 ) ) { SOURCE(22931, 17) c1←v20280 = BCK((c1←v20280 + 32), 256); }; SOURCE(22950, 47) if ( ( (c2←v20308 <= 90) ? (c2←v20308 >= 65) : 0 ) ) { SOURCE(22980, 17) c2←v20308 = BCK((c2←v20308 + 32), 256); }; SOURCE(22999, 16) if ((c1←v20280 == c2←v20308)) { SOURCE(23015, 11) goto lab←L100154; }; }; SOURCE(23031, 6) return(result←v10680); /* c2c skipped dead code */ lab←L100154: ; }; }; SOURCE(23064, 19) result←v10680 = (result←v10680 + 1); SOURCE(23085, 13) st1←v20096 = (st1←v20096 + 1); SOURCE(23100, 13) st2←v20180 = (st2←v20180 + 1); goto lab←L100153; lab←L100151: ; }; }; }; }; SOURCE(22165, 948) return(result←v10680); } static word IsPrefix←P2280(prefix←v10740, subject←v10768, case←v10796) word prefix←v10740; word subject←v10768; word case←v10796; { word var←c10840; /* IsPrefix: */ SOURCE(23134, 150) SOURCE(23224, 60) return(( (int)(word) Run←P2220(prefix←v10740, 0, subject←v10768, 0, case←v10796, 2147483647) == (int)(word) InlineSize←P2040( prefix←v10740))); } static word Index←P2340(formal←c0912, formal←c0913, formal←c0914, formal←c0915) word formal←c0912; word formal←c0913; word formal←c0914; word formal←c0915; { W14 var←c50296; /* declaration of s1←v10900 skipped */ /* declaration of pos1←v10928 skipped */ /* declaration of s2←v10956 skipped */ /* declaration of case←v10984 skipped */ word var←c11028; /* declaration of var←c46744 skipped */ /* declaration of var←c46776 skipped */ word len1←v20352; /* declaration of len2←v20380 skipped */ word rem←v20408; word both←v20436; (* (( (ptr) &var←c50296)+4)/* s1←v10900 */ ) = formal←c0912; (* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ ) = formal←c0913; (* (( (ptr) &var←c50296)+6)/* s2←v10956 */ ) = formal←c0914; (* (( (ptr) &var←c50296)+7)/* case←v10984 */ ) = formal←c0915; /* Index: */ SOURCE(23290, 876) { word tmpAddr49; tmpAddr49 = (word) (( (ptr) &var←c50296)+8)/* var←c46744 */ ; (* (ptr) tmpAddr49 ) = ( ((word) (fPt) LCmp←P6756) ); (* (( (ptr) tmpAddr49) + 1) ) = 1; }; { word tmpAddr50; tmpAddr50 = (word) (( (ptr) &var←c50296)+10)/* var←c46776 */ ; (* (ptr) tmpAddr50 ) = ( ((word) (fPt) Cmp←P6648) ); (* (( (ptr) tmpAddr50) + 1) ) = 1; }; SOURCE(23419, 37) { W3 var←c47224; { word s1←v36340; word s2←v36368; word both←v36396; { word t1←v35072 = 0; word t2←v35104 = 0; { W2 var←c47000; { word var←c46872; var←c46872 = (* (( (ptr) &var←c50296)+4)/* s1←v10900 */ ); if ((var←c46872 == 0)) { goto lab←L100156; }; { word var←c46968; var←c46968 = (*(( short *)var←c46872 + 1)<0); if ((var←c46968 == 0)) { { word text←v35576; text←v35576 = var←c46872; (* (ptr) (word) &var←c47000 ) = ( (((unsigned)(* (hPt) text←v35576 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c47000) + 1) ) = text←v35576; }; } else { if ((var←c46968 == 1)) { { /*1*/ word node←v35624; /*1*/ word var←c46936; /*1*/ word base←v35656; /*1*/ node←v35624 = var←c46872; /*1*/ base←v35656 = node←v35624; /*1*/ var←c46936 = (* (( (ptr) base←v35656)+1) ); /*1*/ (* (ptr) (word) &var←c47000 ) = var←c46936; /*1*/ (* (( (ptr) (word) &var←c47000) + 1) ) = 0; /*1*/ }; } else { lab←L100156: ; (* (ptr) (word) &var←c47000 ) = 0; (* (( (ptr) (word) &var←c47000) + 1) ) = 0; goto lab←L100157; }; }; }; }; lab←L100157: ; t1←v35072 = var←c47000.f1; s1←v36340 = var←c47000.f0; }; { W2 var←c47192; { word var←c47064; var←c47064 = (* (( (ptr) &var←c50296)+6)/* s2←v10956 */ ); if ((var←c47064 == 0)) { goto lab←L100159; }; { word var←c47160; var←c47160 = (*(( short *)var←c47064 + 1)<0); if ((var←c47160 == 0)) { { word text←v35720; text←v35720 = var←c47064; (* (ptr) (word) &var←c47192 ) = ( (((unsigned)(* (hPt) text←v35720 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c47192) + 1) ) = text←v35720; }; } else { if ((var←c47160 == 1)) { { /*1*/ word node←v35768; /*1*/ word var←c47128; /*1*/ word base←v35800; /*1*/ node←v35768 = var←c47064; /*1*/ base←v35800 = node←v35768; /*1*/ var←c47128 = (* (( (ptr) base←v35800)+1) ); /*1*/ (* (ptr) (word) &var←c47192 ) = var←c47128; /*1*/ (* (( (ptr) (word) &var←c47192) + 1) ) = 0; /*1*/ }; } else { lab←L100159: ; (* (ptr) (word) &var←c47192 ) = 0; (* (( (ptr) (word) &var←c47192) + 1) ) = 0; goto lab←L100160; }; }; }; }; lab←L100160: ; t2←v35104 = var←c47192.f1; s2←v36368 = var←c47192.f0; }; if ((t1←v35072 != 0)) { both←v36396 = (t2←v35104 != 0); } else { both←v36396 = 0; }; (* (ptr) (word) &var←c47224 ) = s1←v36340; (* (( (ptr) (word) &var←c47224) + 1) ) = s2←v36368; (* (( (ptr) (word) &var←c47224) + 2) ) = both←v36396; }; }; both←v20436 = var←c47224.f2; (* (( (ptr) &var←c50296)+12)/* len2←v20380 */ ) = var←c47224.f1; len1←v20352 = var←c47224.f0; }; SOURCE(23458, 53) if (( (int)(* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ ) >= (int)len1←v20352)) { rem←v20408 = 0; } else { rem←v20408 = (len1←v20352 - (* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ )); }; SOURCE(23513, 632) if (( (int)rem←v20408 >= (int)(* (( (ptr) &var←c50296)+12)/* len2←v20380 */ ))) { SOURCE(23533, 617) { /* declaration of c←v20480 skipped */ SOURCE(23544, 30) if (( (int)(* (( (ptr) &var←c50296)+12)/* len2←v20380 */ ) == (int)0)) { SOURCE(23561, 13) return((* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ )); }; SOURCE(23576, 22) (* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) = (word) Fetch←P420((* (( (ptr) &var←c50296)+6)/* s2←v10956 */ ), 0); SOURCE(23600, 20) rem←v20408 = ((rem←v20408 - (* (( (ptr) &var←c50296)+12)/* len2←v20380 */ )) + 1); SOURCE(23622, 523) if ((0 != (* (( (ptr) &var←c50296)+7)/* case←v10984 */ ))) { SOURCE(23635, 204) SOURCE(23793, 46) if ((0 != (word) Map←P480((* (( (ptr) &var←c50296)+4)/* s1←v10900 */ ), (* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ ), rem←v20408, (word) ( ( (bPt) &var←c50296)+40)/* var←c46776 */ ))) { SOURCE(23825, 14) return((* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ )); }; } else { SOURCE(23846, 301) SOURCE(24054, 43) if ( ( ((* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) <= 90) ? ((* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) >= 65) : 0 ) ) { SOURCE(24082, 15) { word idx51; (* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) = ( idx51 = (word) ((* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) + 32), BCK(idx51, 256) ); }; }; SOURCE(24099, 46) if ((0 != (word) Map←P480((* (( (ptr) &var←c50296)+4)/* s1←v10900 */ ), (* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ ), rem←v20408, (word) ( ( (bPt) &var←c50296)+32)/* var←c46744 */ ))) { SOURCE(24132, 13) return((* (( (ptr) &var←c50296)+5)/* pos1←v10928 */ )); }; }; }; }; SOURCE(24153, 13) return(len1←v20352); } static word Cmp←P6648(cc←v20600, formal←c50328) word cc←v20600; word formal←c50328; { word var←c20644; formal←c50328 = (formal←c50328 - 40); /* Cmp: */ SOURCE(23637, 11) SOURCE(23685, 70) if ( ( ((* (( (ptr) formal←c50328)+13) ) == cc←v20600) ? ( (int)((word) Run←P2220((* (( (ptr) formal←c50328)+4) ), ((* (( (ptr) formal←c50328)+5) ) + 1), (* (( (ptr) formal←c50328)+6) ), 1, (* (( (ptr) formal←c50328)+7) ), 2147483647) + 1) == (int)(* (( (ptr) formal←c50328)+12) )) : 0 ) ) { SOURCE(23742, 13) return(1); }; SOURCE(23757, 15) (* (( (ptr) formal←c50328)+5) ) = ((* (( (ptr) formal←c50328)+5) ) + 1); SOURCE(23774, 14) return(0); } static word LCmp←P6756(cc←v20748, formal←c50360) word cc←v20748; word formal←c50360; { word var←c20792; formal←c50360 = (formal←c50360 - 32); /* LCmp: */ SOURCE(23848, 12) SOURCE(23897, 47) if ( ( (cc←v20748 <= 90) ? (cc←v20748 >= 65) : 0 ) ) { SOURCE(23927, 17) cc←v20748 = BCK((cc←v20748 + 32), 256); }; SOURCE(23946, 70) if ( ( ((* (( (ptr) formal←c50360)+13) ) == cc←v20748) ? ( (int)((word) Run←P2220((* (( (ptr) formal←c50360)+4) ), ((* (( (ptr) formal←c50360)+5) ) + 1), (* (( (ptr) formal←c50360)+6) ), 1, (* (( (ptr) formal←c50360)+7) ), 2147483647) + 1) == (int)(* (( (ptr) formal←c50360)+12) )) : 0 ) ) { SOURCE(24003, 13) return(1); }; SOURCE(24018, 15) (* (( (ptr) formal←c50360)+5) ) = ((* (( (ptr) formal←c50360)+5) ) + 1); SOURCE(24035, 14) return(0); } static word Find←P2400(s1←v11088, s2←v11116, pos1←v11144, case←v11172) word s1←v11088; word s2←v11116; word pos1←v11144; word case←v11172; { word var←c11216; word index←v20820; /* Find: */ SOURCE(24173, 183) SOURCE(24258, 38) index←v20820 = (word) Index←P2340(s1←v11088, pos1←v11144, s2←v11116, case←v11172); SOURCE(24298, 42) if (( (int)index←v20820 == (int)(word) InlineSize←P2040(s1←v11088))) { SOURCE(24329, 11) return( (word) -1); }; SOURCE(24342, 14) return(index←v20820); } static word FindBackward←P2460(s1←v11276, s2←v11304, pos1←v11332, case←v11360) word s1←v11276; word s2←v11304; word pos1←v11332; word case←v11360; { word var←c11404; word len1←v20864; word len2←v20892; word both←v20920; /* FindBackward: */ SOURCE(24362, 848) SOURCE(24489, 37) { W3 var←c47672; { word s1←v35916; word s2←v35944; word both←v35972; { word t1←v36004 = 0; word t2←v36032 = 0; { W2 var←c47448; { word var←c47320; var←c47320 = s1←v11276; if ((var←c47320 == 0)) { goto lab←L100163; }; { word var←c47416; var←c47416 = (*(( short *)var←c47320 + 1)<0); if ((var←c47416 == 0)) { { word text←v36076; text←v36076 = var←c47320; (* (ptr) (word) &var←c47448 ) = ( (((unsigned)(* (hPt) text←v36076 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c47448) + 1) ) = text←v36076; }; } else { if ((var←c47416 == 1)) { { /*1*/ word node←v36120; /*1*/ word var←c47384; /*1*/ word base←v36164; /*1*/ node←v36120 = var←c47320; /*1*/ base←v36164 = node←v36120; /*1*/ var←c47384 = (* (( (ptr) base←v36164)+1) ); /*1*/ (* (ptr) (word) &var←c47448 ) = var←c47384; /*1*/ (* (( (ptr) (word) &var←c47448) + 1) ) = 0; /*1*/ }; } else { lab←L100163: ; (* (ptr) (word) &var←c47448 ) = 0; (* (( (ptr) (word) &var←c47448) + 1) ) = 0; goto lab←L100164; }; }; }; }; lab←L100164: ; t1←v36004 = var←c47448.f1; s1←v35916 = var←c47448.f0; }; { W2 var←c47640; { word var←c47512; var←c47512 = s2←v11304; if ((var←c47512 == 0)) { goto lab←L100166; }; { word var←c47608; var←c47608 = (*(( short *)var←c47512 + 1)<0); if ((var←c47608 == 0)) { { word text←v36208; text←v36208 = var←c47512; (* (ptr) (word) &var←c47640 ) = ( (((unsigned)(* (hPt) text←v36208 ) << 17) >> 17) ); (* (( (ptr) (word) &var←c47640) + 1) ) = text←v36208; }; } else { if ((var←c47608 == 1)) { { /*1*/ word node←v36252; /*1*/ word var←c47576; /*1*/ word base←v36296; /*1*/ node←v36252 = var←c47512; /*1*/ base←v36296 = node←v36252; /*1*/ var←c47576 = (* (( (ptr) base←v36296)+1) ); /*1*/ (* (ptr) (word) &var←c47640 ) = var←c47576; /*1*/ (* (( (ptr) (word) &var←c47640) + 1) ) = 0; /*1*/ }; } else { lab←L100166: ; (* (ptr) (word) &var←c47640 ) = 0; (* (( (ptr) (word) &var←c47640) + 1) ) = 0; goto lab←L100167; }; }; }; }; lab←L100167: ; t2←v36032 = var←c47640.f1; s2←v35944 = var←c47640.f0; }; if ((t1←v36004 != 0)) { both←v35972 = (t2←v36032 != 0); } else { both←v35972 = 0; }; (* (ptr) (word) &var←c47672 ) = s1←v35916; (* (( (ptr) (word) &var←c47672) + 1) ) = s2←v35944; (* (( (ptr) (word) &var←c47672) + 2) ) = both←v35972; }; }; both←v20920 = var←c47672.f2; len2←v20892 = var←c47672.f1; len1←v20864 = var←c47672.f0; }; SOURCE(24528, 37) if (( (int)pos1←v11332 > (int)len1←v20864)) { SOURCE(24554, 11) pos1←v11332 = len1←v20864; }; SOURCE(24567, 30) if (( (int)len2←v20892 == (int)0)) { SOURCE(24584, 13) return(pos1←v11332); }; SOURCE(24599, 583) if (( (int)len1←v20864 >= (int)len2←v20892)) { SOURCE(24620, 576) { word c2←v20964; word rem2←v20992; SOURCE(24622, 29) c2←v20964 = (word) Fetch←P420(s2←v11304, 0); SOURCE(24678, 18) rem2←v20992 = (len2←v20892 - 1); SOURCE(24728, 41) if (( (int)(len1←v20864 - pos1←v11332) < (int)len2←v20892)) { SOURCE(24753, 16) pos1←v11332 = (len1←v20864 - len2←v20892); }; SOURCE(24771, 411) if ((0 != case←v11360)) { SOURCE(24786, 139) { register word i←v21036; i←v21036 = pos1←v11332; if (( (int)0 > (int)i←v21036)) { goto lab←L100170; }; lab←L100173: ; { word c1←v21080; SOURCE(24823, 29) c1←v21080 = (word) Fetch←P420(s1←v11276, i←v21036); SOURCE(24854, 71) if ( ( (c1←v21080 == c2←v20964) ? ( ( (int)rem2←v20992 == (int)0) ? 1 : ( (int)(word) Run←P2220(s1←v11276, (i←v21036 + 1), s2←v11304, 1, case←v11360, 2147483647) == (int)rem2←v20992) ) : 0 ) ) { SOURCE(24915, 10) return(i←v21036); }; }; if (( (int)0 >= (int)i←v21036)) { goto lab←L100170; }; i←v21036 = (i←v21036 - 1); goto lab←L100173; lab←L100170: ; }; } else { SOURCE(24945, 47) if ( ( (c2←v20964 <= 90) ? (c2←v20964 >= 65) : 0 ) ) { SOURCE(24975, 17) c2←v20964 = BCK((c2←v20964 + 32), 256); }; SOURCE(24994, 188) { register word i←v21124; i←v21124 = pos1←v11332; if (( (int)0 > (int)i←v21124)) { goto lab←L100174; }; lab←L100177: ; { word c1←v21168; SOURCE(25031, 29) c1←v21168 = (word) Fetch←P420(s1←v11276, i←v21124); SOURCE(25062, 47) if ( ( (c1←v21168 <= 90) ? (c1←v21168 >= 65) : 0 ) ) { SOURCE(25092, 17) c1←v21168 = BCK((c1←v21168 + 32), 256); }; SOURCE(25111, 71) if ( ( (c1←v21168 == c2←v20964) ? ( ( (int)rem2←v20992 == (int)0) ? 1 : ( (int)(word) Run←P2220(s1←v11276, (i←v21124 + 1), s2←v11304, 1, case←v11360, 2147483647) == (int)rem2←v20992) ) : 0 ) ) { SOURCE(25172, 10) return(i←v21124); }; }; if (( (int)0 >= (int)i←v21124)) { goto lab←L100174; }; i←v21124 = (i←v21124 - 1); goto lab←L100177; lab←L100174: ; }; }; }; }; SOURCE(25199, 11) return( (word) -1); } static word Match←P2520(formal←c0916, formal←c0917, formal←c0918) word formal←c0916; word formal←c0917; word formal←c0918; { W9 var←c50392; /* declaration of pattern←v11464 skipped */ /* declaration of object←v11492 skipped */ /* declaration of case←v11520 skipped */ word var←c11564; /* declaration of var←c47704 skipped */ word len1←v21240; word len2←v21268; (* (( (ptr) &var←c50392)+4)/* pattern←v11464 */ ) = formal←c0916; (* (( (ptr) &var←c50392)+5)/* object←v11492 */ ) = formal←c0917; (* (( (ptr) &var←c50392)+6)/* case←v11520 */ ) = formal←c0918; /* Match: */ SOURCE(25216, 1289) { word tmpAddr52; tmpAddr52 = (word) (( (ptr) &var←c50392)+7)/* var←c47704 */ ; (* (ptr) tmpAddr52 ) = ( ((word) (fPt) submatch←P7056) ); (* (( (ptr) tmpAddr52) + 1) ) = 1; }; SOURCE(26045, 31) len1←v21240 = (word) InlineSize←P2040((* ((( (ptr) &var←c50392)+4)/* pattern←v11464 */ ) )); SOURCE(26078, 30) len2←v21268 = (word) InlineSize←P2040((* ((( (ptr) &var←c50392)+5)/* object←v11492 */ ) )); SOURCE(26110, 348) lab←L100180: ; if (( (int)len1←v21240 > (int)0)) { } else { goto lab←L100178; }; { word n←v21500; word c1←v21528; word c2←v21556; SOURCE(26128, 17) n←v21500 = (len1←v21240 - 1); SOURCE(26147, 34) c1←v21528 = (word) Fetch←P420((* (( (ptr) &var←c50392)+4)/* pattern←v11464 */ ), n←v21500); SOURCE(26193, 16) if ((c1←v21528 == 42)) { SOURCE(26209, 4) goto lab←L100179; }; SOURCE(26215, 31) if (( (int)len2←v21268 == (int)0)) { SOURCE(26232, 14) return(0); }; SOURCE(26248, 8) len1←v21240 = n←v21500; SOURCE(26258, 15) len2←v21268 = (len2←v21268 - 1); SOURCE(26275, 30) c2←v21556 = (word) Fetch←P420((* (( (ptr) &var←c50392)+5)/* object←v11492 */ ), len2←v21268); SOURCE(26307, 116) if ((0 == (* (( (ptr) &var←c50392)+6)/* case←v11520 */ ))) { SOURCE(26327, 47) if ( ( (c1←v21528 <= 90) ? (c1←v21528 >= 65) : 0 ) ) { SOURCE(26357, 17) c1←v21528 = BCK((c1←v21528 + 32), 256); }; SOURCE(26376, 47) if ( ( (c2←v21556 <= 90) ? (c2←v21556 >= 65) : 0 ) ) { SOURCE(26406, 17) c2←v21556 = BCK((c2←v21556 + 32), 256); }; }; SOURCE(26428, 30) if ((c1←v21528 != c2←v21556)) { SOURCE(26444, 14) return(0); }; }; goto lab←L100180; lab←L100178: ; lab←L100179: ; SOURCE(26469, 36) return((word) submatch←P7056(0, len1←v21240, 0, len2←v21268, (word) (( (bPt) &var←c50392)+28)/* var←c47704 */ )); } static word submatch←P7056(i1←v21344, len1←v21372, i2←v21400, len2←v21428, formal←c50424) word i1←v21344; word len1←v21372; word i2←v21400; word len2←v21428; word formal←c50424; { word var←c21472; formal←c50424 = (formal←c50424 - 28); /* submatch: */ SOURCE(25305, 735) SOURCE(25388, 624) lab←L100183: ; if (( (int)len1←v21372 > (int)0)) { } else { goto lab←L100181; }; { word c1←v21600; SOURCE(25406, 35) c1←v21600 = (word) Fetch←P420((* (( (ptr) formal←c50424)+4) ), i1←v21344); SOURCE(25443, 280) if ((c1←v21600 == 42)) { SOURCE(25461, 30) if (( (int)len1←v21372 == (int)1)) { SOURCE(25478, 13) return(1); }; SOURCE(25493, 213) { word j1←v21644; word nlen1←v21672; word j2←v21700; word nlen2←v21728; SOURCE(25517, 16) j1←v21644 = (i1←v21344 + 1); SOURCE(25535, 21) nlen1←v21672 = (len1←v21372 - 1); SOURCE(25558, 12) j2←v21700 = i2←v21400; SOURCE(25572, 17) nlen2←v21728 = len2←v21428; SOURCE(25591, 104) lab←L100186: ; if (( (int)nlen2←v21728 >= (int)0)) { } else { goto lab←L100184; }; SOURCE(25611, 52) if ((0 != (word) submatch←P7056(j1←v21644, nlen1←v21672, j2←v21700, nlen2←v21728, (word) (( (bPt) formal←c50424)+28)))) { SOURCE(25650, 13) return(1); }; SOURCE(25665, 11) j2←v21700 = (j2←v21700 + 1); SOURCE(25678, 17) nlen2←v21728 = (nlen2←v21728 - 1); goto lab←L100186; lab←L100184: ; }; SOURCE(25709, 14) return(0); }; SOURCE(25728, 32) if (( (int)len2←v21428 <= (int)0)) { SOURCE(25746, 14) return(0); }; SOURCE(25762, 189) { word c2←v21772; SOURCE(25763, 34) c2←v21772 = (word) Fetch←P420((* (( (ptr) formal←c50424)+5) ), i2←v21400); SOURCE(25799, 115) if ((0 == (* (( (ptr) formal←c50424)+6) ))) { SOURCE(25818, 47) if ( ( (c1←v21600 <= 90) ? (c1←v21600 >= 65) : 0 ) ) { SOURCE(25848, 17) c1←v21600 = BCK((c1←v21600 + 32), 256); }; SOURCE(25867, 47) if ( ( (c2←v21772 <= 90) ? (c2←v21772 >= 65) : 0 ) ) { SOURCE(25897, 17) c2←v21772 = BCK((c2←v21772 + 32), 256); }; }; SOURCE(25919, 30) if ((c1←v21600 != c2←v21772)) { SOURCE(25935, 14) return(0); }; }; SOURCE(25954, 11) i1←v21344 = (i1←v21344 + 1); SOURCE(25967, 15) len1←v21372 = (len1←v21372 - 1); SOURCE(25984, 11) i2←v21400 = (i2←v21400 + 1); SOURCE(25997, 15) len2←v21428 = (len2←v21428 - 1); }; goto lab←L100183; lab←L100181: ; SOURCE(26023, 17) return(( (int)len2←v21428 == (int)0)); } static word SkipTo←P2580(s←v11624, formal←c0919, skip←v11680) word s←v11624; word formal←c0919; word skip←v11680; { W9 var←c50456; /* declaration of pos←v11652 skipped */ word var←c11724; /* declaration of var←c47768 skipped */ word len←v21816; /* declaration of skipText←v21844 skipped */ /* declaration of skiplen←v21872 skipped */ (* (( (ptr) &var←c50456)+4)/* pos←v11652 */ ) = formal←c0919; /* SkipTo: */ SOURCE(26512, 475) { word tmpAddr53; tmpAddr53 = (word) (( (ptr) &var←c50456)+5)/* var←c47768 */ ; (* (ptr) tmpAddr53 ) = ( ((word) (fPt) CharMatch←P7356) ); (* (( (ptr) tmpAddr53) + 1) ) = 1; }; SOURCE(26590, 24) len←v21816 = (word) InlineSize←P2040(s←v11624); SOURCE(26616, 35) (* (( (ptr) &var←c50456)+7)/* skipText←v21844 */ ) = (word) Flatten←P720(skip←v11680, 0, 2147483647); SOURCE(26653, 60) { word tc54; if (((* (( (ptr) &var←c50456)+7)/* skipText←v21844 */ ) == 0)) { tc54 = (word) 0; } else { tc54 = (word) ( (((unsigned)(* (hPt) (* (( (ptr) &var←c50456)+7)/* skipText←v21844 */ ) ) << 17) >> 17) ); }; (* (( (ptr) &var←c50456)+8)/* skiplen←v21872 */ ) = tc54; }; SOURCE(26715, 255) if ( ( ( (int)(* (( (ptr) &var←c50456)+4)/* pos←v11652 */ ) < (int)len←v21816) ? ((* (( (ptr) &var←c50456)+8)/* skiplen←v21872 */ ) != 0) : 0 ) ) { SOURCE(26749, 223) SOURCE(26916, 54) if ((0 != (word) Map←P480(s←v11624, (* (( (ptr) &var←c50456)+4)/* pos←v11652 */ ), (len←v21816 - (* (( (ptr) &var←c50456)+4) /* pos←v11652 */ )), (word) (( (bPt) &var←c50456)+20)/* var←c47768 */ ))) { SOURCE(26958, 12) return((* (( (ptr) &var←c50456)+4)/* pos←v11652 */ )); }; }; SOURCE(26975, 12) return(len←v21816); } static word CharMatch←P7356(c←v21992, formal←c50488) word c←v21992; word formal←c50488; { word var←c22036; formal←c50488 = (formal←c50488 - 20); /* CharMatch: */ SOURCE(26751, 17) SOURCE(26804, 67) { register word i←v22064 = 0; register word noName←c47800; noName←c47800 = (* (( (ptr) formal←c50488)+8) ); if ((i←v22064 >= noName←c47800)) { goto lab←L100187; }; lab←L100190: ; SOURCE(26834, 37) { word limit55; if ((c←v21992 == (word) (* ((( (bPt) (* (( (ptr) formal←c50488)+7) ))+4)+( limit55 = (word) ( (((unsigned)(* (( (hPt) (* (( (ptr) formal←c50488)+7) ))+1) ) << 17) >> 17) ), BCK(i←v22064, limit55) )) ))) { SOURCE(26858, 13) return(1); }; }; i←v22064 = (i←v22064 + 1); if ((i←v22064 < noName←c47800)) { goto lab←L100190; }; lab←L100187: ; }; SOURCE(26882, 13) (* (( (ptr) formal←c50488)+4) ) = ((* (( (ptr) formal←c50488)+4) ) + 1); SOURCE(26897, 14) return(0); } static word SkipOver←P2640(s←v11784, formal←c0920, skip←v11840) word s←v11784; word formal←c0920; word skip←v11840; { W9 var←c50520; /* declaration of pos←v11812 skipped */ word var←c11884; /* declaration of var←c47832 skipped */ word len←v22108; /* declaration of skipText←v22136 skipped */ /* declaration of skiplen←v22164 skipped */ (* (( (ptr) &var←c50520)+4)/* pos←v11812 */ ) = formal←c0920; /* SkipOver: */ SOURCE(26995, 526) { word tmpAddr56; tmpAddr56 = (word) (( (ptr) &var←c50520)+5)/* var←c47832 */ ; (* (ptr) tmpAddr56 ) = ( ((word) (fPt) CharMatch←P7512) ); (* (( (ptr) tmpAddr56) + 1) ) = 1; }; SOURCE(27075, 24) len←v22108 = (word) InlineSize←P2040(s←v11784); SOURCE(27101, 35) (* (( (ptr) &var←c50520)+7)/* skipText←v22136 */ ) = (word) Flatten←P720(skip←v11840, 0, 2147483647); SOURCE(27138, 60) { word tc57; if (((* (( (ptr) &var←c50520)+7)/* skipText←v22136 */ ) == 0)) { tc57 = (word) 0; } else { tc57 = (word) ( (((unsigned)(* (hPt) (* (( (ptr) &var←c50520)+7)/* skipText←v22136 */ ) ) << 17) >> 17) ); }; (* (( (ptr) &var←c50520)+8)/* skiplen←v22164 */ ) = tc57; }; SOURCE(27200, 31) if (( (int)(* (( (ptr) &var←c50520)+4)/* pos←v11812 */ ) >= (int)len←v22108)) { SOURCE(27219, 12) return(len←v22108); }; SOURCE(27233, 271) if (((* (( (ptr) &var←c50520)+8)/* skiplen←v22164 */ ) != 0)) { SOURCE(27253, 253) SOURCE(27450, 54) if ((0 != (word) Map←P480(s←v11784, (* (( (ptr) &var←c50520)+4)/* pos←v11812 */ ), (len←v22108 - (* (( (ptr) &var←c50520)+4) /* pos←v11812 */ )), (word) (( (bPt) &var←c50520)+20)/* var←c47832 */ ))) { SOURCE(27492, 12) return((* (( (ptr) &var←c50520)+4)/* pos←v11812 */ )); }; }; SOURCE(27509, 12) return((* (( (ptr) &var←c50520)+4)/* pos←v11812 */ )); } static word CharMatch←P7512(c←v22284, formal←c50552) word c←v22284; word formal←c50552; { word var←c22328; formal←c50552 = (formal←c50552 - 20); /* CharMatch: */ SOURCE(27255, 17) SOURCE(27306, 141) SOURCE(27308, 54) { register word i←v22356 = 0; register word noName←c47864; noName←c47864 = (* (( (ptr) formal←c50552)+8) ); if ((i←v22356 >= noName←c47864)) { goto lab←L100192; }; lab←L100195: ; SOURCE(27338, 24) { word limit58; if ((c←v22284 == (word) (* ((( (bPt) (* (( (ptr) formal←c50552)+7) ))+4)+( limit58 = (word) ( (((unsigned)(* (( (hPt) (* (( (ptr) formal←c50552)+7) ))+1) ) << 17) >> 17) ), BCK(i←v22356, limit58) )) ))) { SOURCE(27362, 11) goto lab←L100191; }; }; i←v22356 = (i←v22356 + 1); if ((i←v22356 < noName←c47864)) { goto lab←L100195; }; lab←L100192: ; }; SOURCE(27384, 13) return(1); /* c2c skipped dead code */ lab←L100191: ; SOURCE(27415, 13) (* (( (ptr) formal←c50552)+4) ) = ((* (( (ptr) formal←c50552)+4) ) + 1); SOURCE(27430, 14) return(0); } static void VerifyStructure←P2700(formal←c0753, s←v11944) word formal←c0753; word s←v11944; { register ptr gf←c50584 = (ptr) &globalframe; word leaves←v11988; word nodes←v12016; word maxDepth←v12044; /* VerifyStructure: */ SOURCE(27527, 1715) SOURCE(27527, 1715) leaves←v11988 = 0; SOURCE(27527, 1715) nodes←v12016 = 0; SOURCE(27527, 1715) maxDepth←v12044 = 0; { word var←c48120; SOURCE(27619, 22) if ((s←v11944 == 0)) { SOURCE(27635, 6) goto lab←L100197; }; SOURCE(27643, 1520) { word var←c47896; var←c47896 = (*(( short *)s←v11944 + 1)<0); if ((var←c47896 == 0)) { SOURCE(27675, 10) leaves←v11988 = 1; SOURCE(27687, 43) if ((( (((unsigned)(* (hPt) s←v11944 ) << 17) >> 17) ) > ( (((unsigned)(* (( (hPt) s←v11944)+1) ) << 17) >> 17) ))) { SOURCE(27712, 18) (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); }; } else { if ((var←c47896 == 1)) { SOURCE(27741, 1397) { word var←c47928; var←c47928 = ((* (( (bPt) s←v11944)+3) ) & 3); switch (var←c47928) { case 0: SOURCE(27773, 222) { word ref←v22400; word len1←v22428; SOURCE(27775, 18) ref←v22400 = (* (( (ptr) s←v11944)+2) ); SOURCE(27795, 24) len1←v22428 = (word) Size←P2100((* ((( (ptr) s←v11944)+2)) )); SOURCE(27821, 53) if (( (int)(* (( (ptr) s←v11944)+3) ) < (int)0) || ( (int)(* (( (ptr) s←v11944)+1) ) <= (int)0)) { SOURCE(27856, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; SOURCE(27876, 50) if (( (int)len1←v22428 < (int)((* (( (ptr) s←v11944)+3) ) + (* (( (ptr) s←v11944)+1) )))) { SOURCE(27908, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; SOURCE(27928, 48) { /*1*/ W3 var←c47960; /*1*/ (void) VerifyStructure←P2700((word) &var←c47960, ref←v22400); /*1*/ maxDepth←v12044 = var←c47960.f2; /*1*/ nodes←v12016 = var←c47960.f1; /*1*/ leaves←v11988 = var←c47960.f0; /*1*/ }; SOURCE(27978, 17) nodes←v12016 = (nodes←v12016 + 1); }; break; case 1: SOURCE(28008, 432) { word leaves1←v22472; word nodes1←v22500; word maxDepth1←v22528; word left←v22556; word lSize←v22584; word right←v22612; word rSize←v22640; SOURCE(28041, 19) left←v22556 = (* (( (ptr) s←v11944)+2) ); SOURCE(28062, 23) lSize←v22584 = (word) Size←P2100(left←v22556); SOURCE(28087, 20) right←v22612 = (* (( (ptr) s←v11944)+3) ); SOURCE(28109, 24) rSize←v22640 = (word) Size←P2100(right←v22612); SOURCE(28135, 52) { /*1*/ W3 var←c47992; /*1*/ (void) VerifyStructure←P2700((word) &var←c47992, left←v22556); /*1*/ maxDepth1←v22528 = var←c47992.f2; /*1*/ nodes1←v22500 = var←c47992.f1; /*1*/ leaves1←v22472 = var←c47992.f0; /*1*/ }; SOURCE(28189, 50) { /*1*/ W3 var←c48024; /*1*/ (void) VerifyStructure←P2700((word) &var←c48024, right←v22612); /*1*/ maxDepth←v12044 = var←c48024.f2; /*1*/ nodes←v12016 = var←c48024.f1; /*1*/ leaves←v11988 = var←c48024.f0; /*1*/ }; SOURCE(28241, 25) leaves←v11988 = (leaves←v11988 + leaves1←v22472); SOURCE(28268, 26) nodes←v12016 = ((nodes←v12016 + nodes1←v22500) + 1); SOURCE(28296, 49) if (( (int)maxDepth1←v22528 > (int)maxDepth←v12044)) { SOURCE(28325, 20) /*1*/ maxDepth←v12044 = maxDepth1←v22528; /*1*/ }; SOURCE(28347, 49) if (( (int)(* (( (ptr) s←v11944)+1) ) != (int)(lSize←v22584 + rSize←v22640))) { SOURCE(28378, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; SOURCE(28398, 40) if (( (int)(* (( (ptr) s←v11944)+4) ) != (int)lSize←v22584)) { SOURCE(28420, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; }; break; case 2: SOURCE(28454, 575) { word leaves1←v22684; word nodes1←v22712; word maxDepth1←v22740; word old←v22768; word oldSize←v22796; word repl←v22824; word replSize←v22852; SOURCE(28487, 18) old←v22768 = (* (( (ptr) s←v11944)+2) ); SOURCE(28507, 24) oldSize←v22796 = (word) Size←P2100(old←v22768); SOURCE(28533, 22) repl←v22824 = (* (( (ptr) s←v11944)+3) ); SOURCE(28557, 26) replSize←v22852 = (word) Size←P2100(repl←v22824); SOURCE(28585, 48) { /*1*/ W3 var←c48056; /*1*/ (void) VerifyStructure←P2700((word) &var←c48056, old←v22768); /*1*/ maxDepth←v12044 = var←c48056.f2; /*1*/ nodes←v12016 = var←c48056.f1; /*1*/ leaves←v11988 = var←c48056.f0; /*1*/ }; SOURCE(28635, 52) { /*1*/ W3 var←c48088; /*1*/ (void) VerifyStructure←P2700((word) &var←c48088, repl←v22824); /*1*/ maxDepth1←v22740 = var←c48088.f2; /*1*/ nodes1←v22712 = var←c48088.f1; /*1*/ leaves1←v22684 = var←c48088.f0; /*1*/ }; SOURCE(28689, 25) leaves←v11988 = (leaves←v11988 + leaves1←v22684); SOURCE(28716, 26) nodes←v12016 = ((nodes←v12016 + nodes1←v22712) + 1); SOURCE(28744, 49) if (( (int)maxDepth←v12044 < (int)maxDepth1←v22740)) { SOURCE(28773, 20) /*1*/ maxDepth←v12044 = maxDepth1←v22740; /*1*/ }; SOURCE(28795, 67) if (( (int)(* (( (ptr) s←v11944)+4) ) > (int)(* (( (ptr) s←v11944)+5) )) || ( (int)(* (( (ptr) s←v11944)+4) ) > (int)(* ( /*1*/ ( (ptr) s←v11944)+6) ))) { SOURCE(28844, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; SOURCE(28864, 56) if (( (int)((* (( (ptr) s←v11944)+6) ) - (* (( (ptr) s←v11944)+4) )) != (int)replSize←v22852)) { SOURCE(28902, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; SOURCE(28922, 58) if (( (int)(* (( (ptr) s←v11944)+4) ) < (int)0) || ( (int)(* (( (ptr) s←v11944)+4) ) > (int)(* (( (ptr) s←v11944)+1) ))) { SOURCE(28962, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; SOURCE(28982, 45) if (( (int)(* (( (ptr) s←v11944)+5) ) > (int)oldSize←v22796)) { SOURCE(29009, 18) /*1*/ (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); /*1*/ }; }; break; case 3: SOURCE(29044, 10) leaves←v11988 = 1; SOURCE(29056, 54) if (( (int)(* (( (ptr) s←v11944)+1) ) < (int)0) || ((* (( (ptr) s←v11944)+3) ) == 0)) { SOURCE(29092, 18) (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); }; break; default: SOURCE(29126, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1124), 0); break; }; }; } else { SOURCE(29151, 12) (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1124), 0); }; }; }; SOURCE(29165, 23) maxDepth←v12044 = (maxDepth←v12044 + 1); SOURCE(29190, 52) { word x59; if ((s←v11944 == 0)) { var←c48120 = 0; goto lab←L100198; }; { word var←c48152; var←c48152 = s←v11944; if ((var←c48152 == 0)) { goto lab←L100199; }; if (((*(( short *)var←c48152 + 1)<0) == 1)) { { word node←v36928; node←v36928 = var←c48152; var←c48120 = (((unsigned)(* (( (hPt) node←v36928)+1) ) << 17) >> 19); }; } else { lab←L100199: ; var←c48120 = 1; goto lab←L100198; }; }; lab←L100198: ; x59 = (word) ( (int)maxDepth←v12044 != (int)var←c48120); if (x59) { SOURCE(29224, 18) (void) XR←RaiseError((word) (( (bPt) gf←c50584)+1128), 0); }; }; }; /* removed tail goto */ lab←L100197: ; (* (ptr) formal←c0753 ) = leaves←v11988; (* (( (ptr) formal←c0753)+1) ) = nodes←v12016; (* (( (ptr) formal←c0753)+2) ) = maxDepth←v12044; return; } static void InitMinSizeForHeight←P2760() { register ptr gf←c50616 = (ptr) &globalframe; /* InitMinSizeForHeight: */ SOURCE(29493, 311) SOURCE(29524, 280) if (((* (( (ptr) gf←c50616)+265)/* minSizeForHeight←v4372 */ ) == 0)) { SOURCE(29555, 251) { word h←v22896; SOURCE(29557, 50) { word pd60; pd60 = (* (ptr) (* (( (ptr) gf←c50616)+8)/* untracedZone←v2916 */ ) ); h←v22896 = (word) ( *( (fPt) ((* (ptr) pd60 ))))((* (( (ptr) gf←c50616)+8)/* untracedZone←v2916 */ ), 128, (* (( (ptr) gf←c50616)+278) ), pd60); }; SOURCE(29609, 8) (* (ptr) h←v22896 ) = 0; SOURCE(29619, 8) (* (( (ptr) h←v22896)+1) ) = 1; SOURCE(29629, 21) (* (( (ptr) h←v22896)+2) ) = 25; SOURCE(29652, 121) { register word i←v22952 = 3; lab←L100203: ; SOURCE(29695, 78) if (( (int)(2147483647 - (* (( (ptr) h←v22896)+BCK((i←v22952 - 1), 32)) )) < (int)(* (( (ptr) h←v22896)+BCK((i←v22952 - 2), 32) ) ))) { SOURCE(29730, 21) (* (( (ptr) h←v22896)+BCK(i←v22952, 32)) ) = 2147483647; } else { SOURCE(29751, 22) (* (( (ptr) h←v22896)+BCK(i←v22952, 32)) ) = ((* (( (ptr) h←v22896)+BCK((i←v22952 - 1), 32)) ) + (* (( (ptr) h←v22896)+BCK( (i←v22952 - 2), 32)) )); }; if ((i←v22952 >= 31)) { goto lab←L100200; }; i←v22952 = (i←v22952 + 1); goto lab←L100203; lab←L100200: ; }; SOURCE(29784, 20) (* (( (ptr) gf←c50616)+265)/* minSizeForHeight←v4372 */ ) = h←v22896; }; }; } static word PartIsBalanced←P2820(part←v28344) W3 part←v28344; { register ptr gf←c50648 = (ptr) &globalframe; word var←c28388; word size←v22996; word height←v23024; /* PartIsBalanced: */ SOURCE(29813, 516) SOURCE(29841, 33) size←v22996 = (word) InlineSize←P2040(part←v28344.f0); SOURCE(29876, 36) if ((part←v28344.f0 == 0)) { height←v23024 = 0; goto lab←L100204; }; { word var←c48216; var←c48216 = part←v28344.f0; if ((var←c48216 == 0)) { goto lab←L100205; }; if (((*(( short *)var←c48216 + 1)<0) == 1)) { { word node←v36884; node←v36884 = var←c48216; height←v23024 = (((unsigned)(* (( (hPt) node←v36884)+1) ) << 17) >> 19); }; } else { lab←L100205: ; height←v23024 = 1; goto lab←L100204; }; }; lab←L100204: ; SOURCE(29914, 78) if ((( (int)part←v28344.f1 != (int)0) || ( (int)part←v28344.f2 != (int)size←v22996)) || ( (int)height←v23024 >= (int)32)) { SOURCE(29978, 14) return(0); }; SOURCE(29994, 53) if (((* (( (ptr) gf←c50648)+265)/* minSizeForHeight←v4372 */ ) == 0)) { SOURCE(30025, 22) (void) InitMinSizeForHeight←P2760(); }; SOURCE(30049, 54) if (( (int)size←v22996 < (int)(* (( (ptr) (* (( (ptr) gf←c50648)+265)/* minSizeForHeight←v4372 */ ))+BCK(height←v23024, 32) ) ))) { SOURCE(30089, 14) return(0); }; SOURCE(30105, 224) { word var←c48248; var←c48248 = part←v28344.f0; if ((var←c48248 == 0)) { goto lab←L100206; }; { word tc62; word tc63; word tc64; if (((*(( short *)var←c48248 + 1)<0) == 1)) { tc62 = (word) (((* (( (bPt) var←c48248)+3) ) & 3) == 0); } else { tc62 = (word) 0; }; if (tc62) { { word substr←v23068; substr←v23068 = var←c48248; SOURCE(30172, 18) return(( (int)height←v23024 <= (int)1)); }; }; if (((*(( short *)var←c48248 + 1)<0) == 1)) { tc63 = (word) (((* (( (bPt) var←c48248)+3) ) & 3) == 1); } else { tc63 = (word) 0; }; if (tc63) { { word concat←v23124; concat←v23124 = var←c48248; SOURCE(30232, 13) return(1); }; }; if (((*(( short *)var←c48248 + 1)<0) == 1)) { tc64 = (word) (((* (( (bPt) var←c48248)+3) ) & 3) == 2); } else { tc64 = (word) 0; }; if (tc64) { { word replace←v23180; replace←v23180 = var←c48248; SOURCE(30289, 14) return(0); }; }; lab←L100206: ; SOURCE(30316, 13) return(1); }; }; } static word Balance←P2880(base←v12388, start←v12416, len←v12444, flat←v12472) word base←v12388; word start←v12416; word len←v12444; word flat←v12472; { word var←c12516; /* Balance: */ SOURCE(30335, 154) SOURCE(30444, 45) { word var←c48312; var←c48312 = (word) NewBalance←P2940(base←v12388); return((word) Substr←P120(var←c48312, start←v12416, len←v12444)); }; } static word NewBalance←P2940(rope←v12796) word rope←v12796; { W96 var←c50680; register ptr gf←c50712 = (ptr) &globalframe; word var←c12840; /* declaration of var←c48344 skipped */ /* declaration of var←c48376 skipped */ /* declaration of var←c48408 skipped */ /* declaration of var←c48440 skipped */ /* declaration of a←v23236 skipped */ /* declaration of accel←v23264 skipped */ /* declaration of aN←v23292 skipped */ W3 part←v23432; /* NewBalance: */ SOURCE(30644, 1576) { word tmpAddr65; tmpAddr65 = (word) (( (ptr) &var←c50680)+4)/* var←c48344 */ ; (* (ptr) tmpAddr65 ) = ( ((word) (fPt) BalanceRange←P8184) ); (* (( (ptr) tmpAddr65) + 1) ) = 1; }; { word tmpAddr66; tmpAddr66 = (word) (( (ptr) &var←c50680)+6)/* var←c48376 */ ; (* (ptr) tmpAddr66 ) = ( ((word) (fPt) SavePart←P8124) ); (* (( (ptr) tmpAddr66) + 1) ) = 1; }; { word tmpAddr67; tmpAddr67 = (word) (( (ptr) &var←c50680)+8)/* var←c48408 */ ; (* (ptr) tmpAddr67 ) = ( ((word) (fPt) ASub←P8064) ); (* (( (ptr) tmpAddr67) + 1) ) = 1; }; { word tmpAddr68; tmpAddr68 = (word) (( (ptr) &var←c50680)+10)/* var←c48440 */ ; (* (ptr) tmpAddr68 ) = ( ((word) (fPt) StoreA←P8004) ); (* (( (ptr) tmpAddr68) + 1) ) = 1; }; SOURCE(30693, 7) (* (( (ptr) &var←c50680)+12) ) = 0; { W2 var←c48504; var←c48504.f0 = 0; var←c48504.f1 = 0; XR←FillLongWords(&(* (W80Pt) ((( (ptr) &var←c50680)+13))), &var←c48504, 2, 40); }; (* (( (ptr) &var←c50680)+93) ) = 0; SOURCE(30760, 21) (* (( (ptr) &var←c50680)+94)/* accel←v23264 */ ) = 0; SOURCE(30783, 11) (* (( (ptr) &var←c50680)+95)/* aN←v23292 */ ) = 0; SOURCE(32092, 34) part←v23432.f0 = rope←v12796; part←v23432.f1 = 0; part←v23432.f2 = (word) Size←P2100(rope←v12796); SOURCE(32128, 40) (void) MapParts←P3000(part←v23432, (word) (( (bPt) &var←c50680)+24)/* var←c48376 */ , (word) (( (bPt) gf←c50712)+1160)/* var←c39256 */ ) ; SOURCE(32170, 50) return((word) BalanceRange←P8184(0, (* (( (ptr) &var←c50680)+95)/* aN←v23292 */ ), (part←v23432.f2 - part←v23432.f1), (word) ( ( (bPt) &var←c50680)+16)/* var←c48344 */ )); } static void StoreA←P8004(i←v23520, e←v23548, formal←c50776) word i←v23520; W2 e←v23548; word formal←c50776; { register ptr gf←c50744 = (ptr) &globalframe; formal←c50776 = (formal←c50776 - 40); /* StoreA: */ SOURCE(30796, 366) SOURCE(30835, 327) if (( (int)(i←v23520 - (* (( (ptr) formal←c50776)+12) )) < (int)40)) { SOURCE(30857, 26) { word idx69; (* (( (W2Pt) (( (ptr) formal←c50776)+13))+( idx69 = (word) (i←v23520 - (* (( (ptr) formal←c50776)+12) )), BCK(idx69, 40) )) ) = e←v23548; }; } else { SOURCE(30885, 65) if (((* (( (ptr) formal←c50776)+93) ) == 0)) { SOURCE(30907, 26) { word var←c48600; var←c48600 = XR←NewObject(328, (* (( (ptr) gf←c50744)+279) )); (* (( (ptr) formal←c50776)+94) ) = var←c48600; (* (( (ptr) formal←c50776)+93) ) = var←c48600; }; SOURCE(30935, 15) (* (ptr) (* (( (ptr) formal←c50776)+94) ) ) = 40; }; SOURCE(30953, 38) if (( (int)i←v23520 < (int)(* (ptr) (* (( (ptr) formal←c50776)+94) ) ))) { SOURCE(30977, 14) (* (( (ptr) formal←c50776)+94) ) = (* (( (ptr) formal←c50776)+93) ); }; SOURCE(30993, 130) lab←L100209: ; if (( (int)(i←v23520 - (* (ptr) (* (( (ptr) formal←c50776)+94) ) )) >= (int)40)) { } else { goto lab←L100207; }; SOURCE(31021, 81) if (((* (( (ptr) (* (( (ptr) formal←c50776)+94) ))+81) ) == 0)) { SOURCE(31048, 22) (* (( (ptr) (* (( (ptr) formal←c50776)+94) ))+81) ) = XR←NewObject(328, (* (( (ptr) gf←c50744)+279) )); SOURCE(31072, 30) (* (ptr) (* (( (ptr) (* (( (ptr) formal←c50776)+94) ))+81) ) ) = ((* (ptr) (* (( (ptr) formal←c50776)+94) ) ) + 40); }; SOURCE(31105, 18) (* (( (ptr) formal←c50776)+94) ) = (* (( (ptr) (* (( (ptr) formal←c50776)+94) ))+81) ); goto lab←L100209; lab←L100207: ; SOURCE(31134, 28) { word idx70; (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c50776)+94) ))+1))+( idx70 = (word) (i←v23520 - (* (ptr) (* (( (ptr) formal←c50776)+94) ) )), BCK(idx70, 40) )) ) = e←v23548; }; }; } static void ASub←P8064(formal←c0788, i←v23608, formal←c50808) word formal←c0788; word i←v23608; word formal←c50808; { W2 e←v23652; formal←c50808 = (formal←c50808 - 32); /* ASub: */ SOURCE(31170, 220) SOURCE(31170, 220) e←v23652.f0 = 0; e←v23652.f1 = 0; SOURCE(31216, 174) if (( (int)(i←v23608 - (* (( (ptr) formal←c50808)+12) )) < (int)40)) { SOURCE(31238, 26) { word idx71; e←v23652 = (* (( (W2Pt) (( (ptr) formal←c50808)+13))+( idx71 = (word) (i←v23608 - (* (( (ptr) formal←c50808)+12) )), BCK(idx71, 40) )) ); }; } else { SOURCE(31266, 38) if (( (int)i←v23608 < (int)(* (ptr) (* (( (ptr) formal←c50808)+94) ) ))) { SOURCE(31290, 14) (* (( (ptr) formal←c50808)+94) ) = (* (( (ptr) formal←c50808)+93) ); }; SOURCE(31306, 54) lab←L100213: ; if (( (int)(i←v23608 - (* (ptr) (* (( (ptr) formal←c50808)+94) ) )) >= (int)40)) { } else { goto lab←L100211; }; SOURCE(31334, 26) (* (( (ptr) formal←c50808)+94) ) = (* (( (ptr) (* (( (ptr) formal←c50808)+94) ))+81) ); goto lab←L100213; lab←L100211: ; SOURCE(31362, 28) { word idx72; e←v23652 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c50808)+94) ))+1))+( idx72 = (word) (i←v23608 - (* (ptr) (* (( (ptr) formal←c50808)+94) ) )), BCK(idx72, 40) )) ); }; }; /* removed tail goto */ (* (W2Pt) formal←c0788 ) = e←v23652; return; } static void SavePart←P8124(part←v23712, formal←c50840) W3 part←v23712; word formal←c50840; { formal←c50840 = (formal←c50840 - 24); /* SavePart: */ SOURCE(31398, 178) SOURCE(31430, 146) if (( (int)part←v23712.f2 > (int)part←v23712.f1)) { SOURCE(31460, 118) { word rope←v23900; SOURCE(31462, 63) rope←v23900 = (word) Substr←P120(part←v23712.f0, part←v23712.f1, (part←v23712.f2 - part←v23712.f1)); SOURCE(31527, 36) { word var←c48696; var←c48696 = (word) InlineSize←P2040(rope←v23900); { W2 var←c48728; var←c48728.f0 = rope←v23900; var←c48728.f1 = var←c48696; (void) StoreA←P8004((* (( (ptr) formal←c50840)+95) ), var←c48728, (word) (( (bPt) formal←c50840)+40)); }; }; SOURCE(31565, 11) (* (( (ptr) formal←c50840)+95) ) = ((* (( (ptr) formal←c50840)+95) ) + 1); }; }; } static word BalanceRange←P8184(first←v23772, end←v23800, size←v23828, formal←c50872) word first←v23772; word end←v23800; word size←v23828; word formal←c50872; { word var←c23872; formal←c50872 = (formal←c50872 - 16); /* BalanceRange: */ SOURCE(31584, 501) if (( (int)first←v23772 == (int)end←v23800)) { SOURCE(31688, 11) return(0); } else { if (( (int)(end←v23800 - first←v23772) == (int)1)) { SOURCE(31718, 24) { word var←c0883; W2 var←c0797; (void) ASub←P8064((word) &var←c0797, first←v23772, (word) (( (bPt) formal←c50872)+32)); var←c0883 = var←c0797.f0; return(var←c0883); }; } else { SOURCE(31755, 332) { word i←v23944; word sizetoi←v23972; W2 var←c0800; SOURCE(31757, 16) i←v23944 = (first←v23772 + 1); SOURCE(31775, 31) (void) ASub←P8064((word) &var←c0800, first←v23772, (word) (( (bPt) formal←c50872)+32)); sizetoi←v23972 = var←c0800.f1; SOURCE(31808, 183) { register word sizei←v24016; W2 var←c0802; W2 var←c0803; (void) ASub←P8064((word) &var←c0802, i←v23944, (word) (( (bPt) formal←c50872)+32)); sizei←v24016 = var←c0802.f1; lab←L100217: ; { word tc73; word x74; word x75; if (( (int)i←v23944 < (int)(end←v23800 - 1))) { if (( (int)IOP2( * , (int)(sizetoi←v23972 + sizei←v24016), (int)2) < (int)size←v23828)) { tc73 = (word) 1; } else { tc73 = (word) (( x74 = (IOP2( * , (int)sizetoi←v23972, (int)2) - size←v23828), IABS(x74) ) > ( x75 = (IOP2( * , (int)(sizetoi←v23972 + sizei←v24016), (int)2) - size←v23828), IABS(x75) )); }; } else { tc73 = (word) 0; }; if (tc73) { } else { goto lab←L100214; }; }; SOURCE(31955, 25) sizetoi←v23972 = (sizetoi←v23972 + sizei←v24016); SOURCE(31982, 9) i←v23944 = (i←v23944 + 1); (void) ASub←P8064((word) &var←c0803, i←v23944, (word) (( (bPt) formal←c50872)+32)); sizei←v24016 = var←c0803.f1; goto lab←L100217; lab←L100214: ; }; SOURCE(32002, 83) { word var←c48824; word var←c48856; var←c48824 = (word) BalanceRange←P8184(first←v23772, i←v23944, sizetoi←v23972, (word) (( (bPt) formal←c50872)+16)); var←c48856 = (word) BalanceRange←P8184(i←v23944, end←v23800, (size←v23828 - sizetoi←v23972), (word) (( (bPt) formal←c50872)+16) ); return((word) Concat←P240(var←c48824, var←c48856)); }; }; }; }; } static void MapParts←P3000(part←v12916, action←v12944, stopDescent←v12972) W3 part←v12916; word action←v12944; word stopDescent←v12972; { register ptr gf←c50904 = (ptr) &globalframe; /* MapParts: */ SOURCE(32249, 1515) SOURCE(32325, 1439) { word tc76; if ((stopDescent←v12972 != 0)) { tc76 = (word) (0 != (word) ( *( (fPt) ((* (ptr) stopDescent←v12972 ))))(part←v12916, stopDescent←v12972)); } else { tc76 = (word) 0; }; if (tc76) { SOURCE(32371, 18) (void) ( *( (fPt) ((* (ptr) action←v12944 ))))(part←v12916, action←v12944); } else { SOURCE(32389, 1377) { word size←v24060; SOURCE(32391, 33) size←v24060 = (word) InlineSize←P2040(part←v12916.f0); SOURCE(32426, 85) if (( (int)part←v12916.f1 < (int)0) || ( ( (int)part←v12916.f2 < (int)part←v12916.f1) ? 1 : ( (int)part←v12916.f2 > (int)(part←v12916.f1 + size←v24060)) ) ) { SOURCE(32498, 13) (void) XR←RaiseError((word) (( (bPt) gf←c50904)+1132), 0); }; SOURCE(32513, 1251) { word var←c48888; var←c48888 = part←v12916.f0; if ((var←c48888 == 0)) { goto lab←L100218; }; { word tc78; word tc79; word tc83; if (((*(( short *)var←c48888 + 1)<0) == 1)) { tc78 = (word) (((* (( (bPt) var←c48888)+3) ) & 3) == 0); } else { tc78 = (word) 0; }; if (tc78) { { word substr←v24104; substr←v24104 = var←c48888; SOURCE(32582, 92) { W3 var←c48920; var←c48920.f0 = (* (( (ptr) substr←v24104)+2) ); var←c48920.f1 = ((* (( (ptr) substr←v24104)+3) ) + part←v12916.f1); var←c48920.f2 = ((* (( (ptr) substr←v24104)+3) ) + part←v12916.f2); (void) MapParts←P3000(var←c48920, action←v12944, stopDescent←v12972); }; }; goto endif077; }; if (((*(( short *)var←c48888 + 1)<0) == 1)) { tc79 = (word) (((* (( (bPt) var←c48888)+3) ) & 3) == 1); } else { tc79 = (word) 0; }; if (tc79) { { word concat←v24160; concat←v24160 = var←c48888; SOURCE(32721, 117) if (( (int)part←v12916.f1 < (int)(* (( (ptr) concat←v24160)+4) ))) { SOURCE(32755, 83) { /*1*/ W3 var←c48952; /*1*/ var←c48952.f0 = (* (( (ptr) concat←v24160)+2) ); /*1*/ var←c48952.f1 = part←v12916.f1; /*1*/ { /*1*/ word x80; /*1*/ word x81; /*1*/ var←c48952.f2 = (x80 = part←v12916.f2, /*1*/ x81 = (* (( (ptr) concat←v24160)+4) ), /*1*/ MIN((int)(word), x80, x81)); /*1*/ }; /*1*/ (void) MapParts←P3000(var←c48952, action←v12944, stopDescent←v12972); /*1*/ }; }; SOURCE(32843, 176) if (( (int)part←v12916.f2 > (int)(* (( (ptr) concat←v24160)+4) ))) { SOURCE(32873, 148) { /*1*/ word newStart←v24216; /*1*/ word newEnd←v24244; SOURCE(32875, 45) /*1*/ { /*1*/ word x82; /*1*/ newStart←v24216 = (x82 = (part←v12916.f1 - (* (( (ptr) concat←v24160)+4) )), /*1*/ MAX((int)(word), x82, 0)); /*1*/ }; SOURCE(32922, 33) /*1*/ newEnd←v24244 = (part←v12916.f2 - (* (( (ptr) concat←v24160)+4) )); SOURCE(32957, 62) /*1*/ { /*1*/ W3 var←c48984; /*1*/ var←c48984.f0 = (* (( (ptr) concat←v24160)+3) ); /*1*/ var←c48984.f1 = newStart←v24216; /*1*/ var←c48984.f2 = newEnd←v24244; /*1*/ (void) MapParts←P3000(var←c48984, action←v12944, stopDescent←v12972); /*1*/ }; /*1*/ }; }; }; goto endif077; }; if (((*(( short *)var←c48888 + 1)<0) == 1)) { tc83 = (word) (((* (( (bPt) var←c48888)+3) ) & 3) == 2); } else { tc83 = (word) 0; }; if (tc83) { { word replace←v24288; replace←v24288 = var←c48888; SOURCE(33069, 669) { word len1←v24344; word len2←v24372; word len3←v24400; word offset3←v24428; SOURCE(33071, 25) len1←v24344 = (* (( (ptr) replace←v24288)+4) ); SOURCE(33098, 40) len2←v24372 = ((* (( (ptr) replace←v24288)+6) ) - (* (( (ptr) replace←v24288)+4) )); SOURCE(33140, 39) len3←v24400 = ((* (( (ptr) replace←v24288)+1) ) - (* (( (ptr) replace←v24288)+6) )); SOURCE(33181, 29) offset3←v24428 = (* (( (ptr) replace←v24288)+5) ); SOURCE(33212, 106) if (( (int)part←v12916.f1 < (int)len1←v24344)) { SOURCE(33240, 78) /*1*/ { /*1*/ W3 var←c49016; /*1*/ var←c49016.f0 = (* (( (ptr) replace←v24288)+2) ); /*1*/ var←c49016.f1 = part←v12916.f1; /*1*/ { /*1*/ word x84; /*1*/ var←c49016.f2 = (x84 = part←v12916.f2, /*1*/ MIN((int)(word), x84, len1←v24344)); /*1*/ }; /*1*/ (void) MapParts←P3000(var←c49016, action←v12944, stopDescent←v12972); /*1*/ }; /*1*/ }; SOURCE(33323, 200) if ( ( ( (int)part←v12916.f1 < (int)(len1←v24344 + len2←v24372)) ? ( (int)part←v12916.f2 > (int)len1←v24344) : 0 ) ) { SOURCE(33374, 151) /*1*/ { /*1*/ word newStart←v24472; /*1*/ word newEnd←v24500; SOURCE(33376, 39) /*1*/ { /*1*/ word x85; /*1*/ newStart←v24472 = (x85 = (part←v12916.f1 - len1←v24344), /*1*/ MAX((int)(word), x85, 0)); /*1*/ }; SOURCE(33417, 38) /*1*/ { /*1*/ word x86; /*1*/ newEnd←v24500 = (x86 = (part←v12916.f2 - len1←v24344), /*1*/ MIN((int)(word), x86, len2←v24372)); /*1*/ }; SOURCE(33457, 66) /*1*/ { /*1*/ W3 var←c49048; /*1*/ var←c49048.f0 = (* (( (ptr) replace←v24288)+3) ); /*1*/ var←c49048.f1 = newStart←v24472; /*1*/ var←c49048.f2 = newEnd←v24500; /*1*/ (void) MapParts←P3000(var←c49048, action←v12944, stopDescent←v12972); /*1*/ }; /*1*/ }; /*1*/ }; SOURCE(33528, 205) if (( (int)part←v12916.f2 > (int)(len1←v24344 + len2←v24372))) { SOURCE(33557, 178) /*1*/ { /*1*/ word newStart←v24544; /*1*/ word newEnd←v24572; SOURCE(33559, 54) /*1*/ { /*1*/ word x87; /*1*/ newStart←v24544 = ((x87 = (part←v12916.f1 - (len1←v24344 + len2←v24372)), /*1*/ MAX((int)(word), x87, 0)) + offset3←v24428); /*1*/ }; SOURCE(33615, 53) /*1*/ { /*1*/ word x88; /*1*/ newEnd←v24572 = ((x88 = (part←v12916.f2 - (len1←v24344 + len2←v24372)), /*1*/ MIN((int)(word), x88, len3←v24400)) + offset3←v24428); /*1*/ }; SOURCE(33670, 63) /*1*/ { /*1*/ W3 var←c49080; /*1*/ var←c49080.f0 = (* (( (ptr) replace←v24288)+2) ); /*1*/ var←c49080.f1 = newStart←v24544; /*1*/ var←c49080.f2 = newEnd←v24572; /*1*/ (void) MapParts←P3000(var←c49080, action←v12944, stopDescent←v12972); /*1*/ }; /*1*/ }; /*1*/ }; }; }; goto endif077; }; lab←L100218: ; SOURCE(33752, 12) (void) ( *( (fPt) ((* (ptr) action←v12944 ))))(part←v12916, action←v12944); goto endif077; endif077: ; }; }; }; }; }; } /* file: RopeImpl, module: RopeImpl, compiled at: October 5, 1992 5:58:09 pm PDT */ extern void XR←install←RopeImpl() { NoName←Q13464(); } extern void XR←run←RopeImpl() { XR←Start(&globalframe); }