/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1994 by Xerox Corporation. All rights reserved. */
/* time: April 11, 1994 1:52:47 pm PDT */
/* C2C version: January 12, 1994 (sun4) */
/* 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 word (*fPt)();
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, (word) "Cat");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1488)/* var←c40568 */ , 67633666, (word) "Concat");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1304)/* var←c39832 */ , 67896067, (word) "Compare");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1312)/* var←c39864 */ , 67896323, (word) "Equal");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1472)/* var←c40504 */ , 67634434, (word) "Fetch");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1224)/* var←c39512 */ , 68158980, (word) "Index");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1216)/* var←c39480 */ , 68159236, (word) "Find");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1208)/* var←c39448 */ , 68159492, (word) "FindBackward");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1272)/* var←c39704 */ , 67373313, (word) "IsEmpty");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1264)/* var←c39672 */ , 67373569, (word) "Length");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1248)/* var←c39608 */ , 67373825, (word) "Size");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1480)/* var←c40536 */ , 68160516, (word) "Replace");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1504)/* var←c40632 */ , 67898627, (word) "Substr");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1296)/* var←c39800 */ , 68947463, (word) "CompareSubstrs");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1288)/* var←c39768 */ , 68947719, (word) "EqualSubstrs");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1240)/* var←c39576 */ , 68686086, (word) "Run");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1232)/* var←c39544 */ , 67899907, (word) "IsPrefix");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1200)/* var←c39416 */ , 67900163, (word) "Match");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1192)/* var←c39384 */ , 67900419, (word) "SkipTo");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1184)/* var←c39352 */ , 67900675, (word) "SkipOver");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1464)/* var←c40472 */ , 68163076, (word) "Map");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1456)/* var←c40440 */ , 68163332, (word) "Translate");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1448)/* var←c40408 */ , 67377153, (word) "Lower");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1440)/* var←c40376 */ , 67377409, (word) "Upper");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1432)/* var←c40344 */ , 67901955, (word) "Flatten");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1416)/* var←c40280 */ , 67902211, (word) "FromProc");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1408)/* var←c40248 */ , 67378177, (word) "FromChars");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1400)/* var←c40216 */ , 67378433, (word) "FromRopes");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1512)/* var←c40664 */ , 67378689, (word) "NewText");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1352)/* var←c40024 */ , 67903235, (word) "FromRefText");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1344)/* var←c39992 */ , 67379201, (word) "ToRefText");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1392)/* var←c40184 */ , 67379457, (word) "FromChar");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1424)/* var←c40312 */ , 68428293, (word) "MakeRope");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1384)/* var←c40152 */ , 67642114, (word) "MakeConstantRope");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1328)/* var←c39928 */ , 68166660, (word) "AppendChars");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1320)/* var←c39896 */ , 68429059, (word) "UnsafeMoveChars");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1280)/* var←c39736 */ , 201860610, (word) "ContainingPiece");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1152)/* var←c39224 */ , 68167428, (word) "Balance");
(void) XR←ExportProcS(var←c49112, (word) (( (bPt) gf←c0830)+1176)/* var←c39320 */ , 201598977, (word) "VerifyStructure");
(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) ));
(* (ptr) var←c40728 ) &= 4294934528;
(* (( (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 = ((word) ((word) (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);
};
{
word tadr15;
tadr15 = (word) var←c40824;
(* (ptr) tadr15 ) = ((* (ptr) tadr15 ) & 4294934528) | ((word) ( (((unsigned)size←v4752 << 17) >> 17) ));
};
text←v4796 = var←c40824;
};
SOURCE(687, 18)
{
word tadr16;
tadr16 = (word) text←v4796;
(* (ptr) tadr16 ) = ((* (ptr) tadr16 ) & 2147549183) | (((word) ( (((unsigned)size←v4752 << 17) >> 17) )) << 16);
};
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 = (unsigned) (*(( 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 = (unsigned) ((* (( (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) (((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) (((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) (((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) ));
{
word tadr17;
tadr17 = (word) var←c40984;
(* (ptr) tadr17 ) = ((* (ptr) tadr17 ) & 4294901763) | (((word) ( (((unsigned)(BCK((depth←v13116 + 1), 8192) + 8192) << 18) >> 18) ))
<< 2);
};
(* (( (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 tmpAddr18;
tmpAddr18 = (word) (( (ptr) &var←c49272)+4)/* var←c41144 */ ;
(* (ptr) tmpAddr18 ) = ( ((word) (fPt) AddChar←P3252) );
(* (( (ptr) tmpAddr18) + 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 = (unsigned) (*(( short *)var←c41208 + 1)<0);
if ((var←c41304 == 0)) {
{
word text←v29144;
text←v29144 = var←c41208;
(* (ptr) (word) &var←c41336 ) = (unsigned) ( (((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 = (unsigned) (*(( short *)var←c41400 + 1)<0);
if ((var←c41496 == 0)) {
{
word text←v38228;
text←v38228 = var←c41400;
(* (ptr) (word) &var←c41528 ) = (unsigned) ( (((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 = (unsigned) (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 = (unsigned) (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 = (unsigned) (*(( short *)base←v5232 + 1)<0);
if ((var←c41688 == 1)) {
SOURCE(3168, 126)
{
word var←c41720;
var←c41720 = (unsigned) ((* (( (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 = (unsigned) (*(( short *)base←v5232 + 1)<0);
if ((var←c41752 == 1)) {
SOURCE(3376, 127)
{
word var←c41784;
var←c41784 = (unsigned) ((* (( (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 (( (unsigned) (*(( short *)var←c41912 + 1)<0) == 1)) {
{
word node←v30928;
node←v30928 = var←c41912;
var←c41880 = (unsigned) (((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 (( (unsigned) (*(( short *)var←c41976 + 1)<0) == 1)) {
{
word node←v37060;
node←v37060 = var←c41976;
var←c41944 = (unsigned) (((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) ) = (((word) 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 tmpAddr19;
tmpAddr19 = (word) (( (ptr) &var←c49368)+4)/* var←c42040 */ ;
(* (ptr) tmpAddr19 ) = ( ((word) (fPt) AddChar←P3456) );
(* (( (ptr) tmpAddr19) + 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 tc20;
if (( (int)len←v5420 < (int)0)) {
len←v5420 = 0;
tc20 = (word) 0;
}
else {
if (( (int)len←v5420 > (int)rem←v13852)) {
len←v5420 = rem←v13852;
tc20 = (word) rem←v13852;
}
else {
tc20 = (word) len←v5420;
};
};
var←c0874 = tc20;
};
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 = (unsigned) (*(( short *)base←v5364 + 1)<0);
if ((var←c42232 == 1)) {
SOURCE(4751, 358)
{
word var←c42264;
var←c42264 = (unsigned) ((* (( (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 (( (unsigned) (*(( short *)var←c42520 + 1)<0) == 1)) {
{
word node←v37016;
node←v37016 = var←c42520;
var←c42488 = (unsigned) (((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 (( (unsigned) (*(( short *)var←c42584 + 1)<0) == 1)) {
{
word node←v36972;
node←v36972 = var←c42584;
var←c42552 = (unsigned) (((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) ) = (((word) 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 idx21;
(* (( (ptr) formal←c49432)+7) ) = (
idx21 = (word) ((* (( (ptr) formal←c49432)+7) ) + 1),
BCK(idx21, 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 = (unsigned) (*(( short *)var←c42648 + 1)<0);
if ((var←c42776 == 0)) {
{
word text←v14284;
text←v14284 = var←c42648;
SOURCE(5739, 20)
{
word limit22;
return( (unsigned) (word) (* ((( (bPt) text←v14284)+4)+(
limit22 = (word) (unsigned) ( (((unsigned)(* (( (hPt) text←v14284)+1) ) << 17) >> 17) ),
BCK(index←v5712, limit22)
)) ));
};
};
}
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 = (unsigned) (*(( 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 = (unsigned) (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 = (unsigned) ((* (( (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 pd23;
/*1*/ pd23 = (* (( (ptr) x←v14440)+3) );
/*1*/ return((word) ( *( (fPt) ((* (ptr) pd23 ))))((* (( (ptr) x←v14440)+2) ), index←v5712, pd23));
/*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 = (unsigned) (*(( 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 = (unsigned) (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 = (unsigned) ((* (( (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 tmpAddr24;
tmpAddr24 = (word) (( (ptr) &var←c49528)+6)/* var←c43288 */ ;
(* (ptr) tmpAddr24 ) = ( ((word) (fPt) each←P4476) );
(* (( (ptr) tmpAddr24) + 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 (( (unsigned) (*(( short *)var←c43352 + 1)<0) == 0)) {
{
word t←v15204;
t←v15204 = var←c43352;
SOURCE(8444, 206)
{
word short←v15248;
SOURCE(8446, 24)
{
word idx25;
short←v15248 = (
idx25 = (* (( (ptr) &var←c49528)+8)/* index←v15076 */ ),
BCK(idx25, 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 = (unsigned) (word) (* ((( (bPt) t←v15204)+4)+short←v15248) );
SOURCE(8553, 42)
if (((* (( (ptr) &var←c49528)+5)/* translator←v6088 */ ) != 0)) {
SOURCE(8578, 17)
{
word pd26;
pd26 = (* (( (ptr) &var←c49528)+5)/* translator←v6088 */ );
c←v15336 = (word) ( *( (fPt) ((* (ptr) pd26 ))))(c←v15336, pd26);
};
};
SOURCE(8597, 11)
{
word limit27;
(* ((( (bPt) text←v15160)+4)+(
/*1*/ limit27 = (word) (unsigned) ( (((unsigned)(* (( (hPt) text←v15160)+1) ) << 17) >> 17) ),
/*1*/ BCK(i←v15292, limit27)
/*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 pd28;
pd28 = (* (( (ptr) formal←c49592)+5) );
c←v15484 = (word) ( *( (fPt) ((* (ptr) pd28 ))))(c←v15484, pd28);
};
};
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 (( (unsigned) (*(( 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)
(* (ptr) rtn←v15600 ) &= 2147549183;
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 limit29;
(* ((( (bPt) rtn←v15644)+4)+(
limit29 = (word) (unsigned) ( (((unsigned)(* (( (hPt) rtn←v15644)+1) ) << 17) >> 17) ),
BCK(i←v15688, limit29)
)) ) = 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 tmpAddr30;
tmpAddr30 = (word) (( (ptr) &var←c49720)+5)/* var←c43704 */ ;
(* (ptr) tmpAddr30 ) = ( ((word) (fPt) genRopesFromChars←P4728) );
(* (( (ptr) tmpAddr30) + 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 tmpAddr31;
tmpAddr31 = (word) (( (ptr) &var←c49752)+5)/* var←c43768 */ ;
(* (ptr) tmpAddr31 ) = ( ((word) (fPt) putChar←P4788) );
(* (( (ptr) tmpAddr31) + 1) ) = 1;
};
SOURCE(10405, 42)
{
word pd32;
pd32 = (* (( (ptr) (* (( (ptr) gf←c49784)+383)/* var←c43800 */ ))+6) );
var←c49752.f7/* buf←v15968 */ = (word) ( *( (fPt) ((* (ptr) pd32 ))))(512, pd32);
};
SOURCE(10635, 17)
{
word pd33;
pd33 = (* (( (ptr) formal←c49816)+4) );
(void) ( *( (fPt) ((* (ptr) pd33 ))))((word) ((( (bPt) &var←c49752)+20)/* var←c43768 */ ), pd33);
};
SOURCE(10654, 46)
if (( (unsigned) (* (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 pd34;
pd34 = (word) (var←c49752.f4/* putRope←v15880 */ );
(void) ( *( (fPt) ((* (ptr) pd34 ))))(var←c43832, pd34);
};
};
};
SOURCE(10702, 27)
{
word pd35;
pd35 = (* (( (ptr) (* (( (ptr) gf←c49784)+383)/* var←c43800 */ ))+7) );
(void) ( *( (fPt) ((* (ptr) pd35 ))))(var←c49752.f7/* buf←v15968 */ , pd35);
};
}
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 = (unsigned) (* (hPt) text←v16112 );
SOURCE(10523, 68)
if ((len←v16140 >= (unsigned) (* (( (hPt) text←v16112)+1) ))) {
SOURCE(10556, 26)
{
word var←c43864;
var←c43864 = (word) FromRefText←P1320(text←v16112, 0, 32767);
{
word pd36;
pd36 = (* (( (ptr) formal←c49848)+4) );
(void) ( *( (fPt) ((* (ptr) pd36 ))))(var←c43864, pd36);
};
};
SOURCE(10584, 7)
len←v16140 = 0;
};
SOURCE(10596, 13)
{
word limit37;
(* ((( (bPt) text←v16112)+4)+(
limit37 = (word) (unsigned) (* (( (hPt) text←v16112)+1) ),
BCK(len←v16140, limit37)
)) ) = 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 tmpAddr38;
tmpAddr38 = (word) (( (ptr) &var←c49880)+4)/* var←c43896 */ ;
(* (ptr) tmpAddr38 ) = ( ((word) (fPt) putRope←P4848) );
(* (( (ptr) tmpAddr38) + 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 limit39;
(* ((( (bPt) rtn←v16480)+4)+(
limit39 = (word) (unsigned) ( (((unsigned)(* (( (hPt) rtn←v16480)+1) ) << 17) >> 17) ),
BCK(0, limit39)
)) ) = 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 x40;
noName←c44056 = (x40 = ((* (( (ptr) c←v16580)+1) ) - start←v7748),
MIN((int)(word), x40, 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 x41;
word x42;
n←v16692 = (x41 = ((* (( (ptr) c←v16636)+1) ) - start←v7976),
x42 = block←v7920.f2,
MIN((int)(word), x41, x42));
};
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 idx43;
rem←v16792 = (
idx43 = (word) ( (unsigned) (* (hPt) s←v8092 ) - start←v8120),
BCK(idx43, 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 = ((word) ((word) (len←v16836 + 3) >> 2) << 2);
{
word pd44;
pd44 = (* (ptr) (* (( (ptr) gf←c50136)+8)/* untracedZone←v2916 */ ) );
var←c44216 = (word) ( *( (fPt) ((* (ptr) pd44 ))))((* (( (ptr) gf←c50136)+8)/* untracedZone←v2916 */ ), (4 + var←c44184), (* (
( (ptr) gf←c50136)+277) ), pd44);
};
(* (( (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 (( (unsigned) (*(( 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 tmpAddr45;
tmpAddr45 = (word) (( (ptr) &var←c50168)+4)/* var←c44376 */ ;
(* (ptr) tmpAddr45 ) = ( ((word) (fPt) action←P5436) );
(* (( (ptr) tmpAddr45) + 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 = (unsigned) (*(( 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 (( (unsigned) ((* (( (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 pd46;
/*1*/ pd46 = (* (( (ptr) obj←v17164)+5) );
/*1*/ moved←v17220 = (word) ( *( (fPt) ((* (ptr) pd46 ))))(var←c44504, (* (( (ptr) obj←v17164)+2) ), bStart←v16992, pd46);
/*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 pd47;
/*1*/ pd47 = (* (( (ptr) obj←v17164)+4) );
/*1*/ var←c44536 = (word) ( *( (fPt) ((* (ptr) pd47 ))))((* (( (ptr) obj←v17164)+2) ), bStart←v16992, bLen←v17020, (word) (( (bPt) &var←c50168)+16)
/*1*/ /* var←c44376 */ , pd47);
/*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 = (unsigned) (* (hPt) buffer←v8564 );
SOURCE(15298, 45)
{
word idx48;
bufRem←v17648 = (
idx48 = (word) ( (unsigned) (* (( (hPt) buffer←v8564)+1) ) - bufPos←v17620),
BCK(idx48, 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 = (unsigned) (*(( short *)var←c44824 + 1)<0);
if ((var←c44920 == 0)) {
{
word text←v38096;
text←v38096 = var←c44824;
(* (ptr) (word) &var←c44952 ) = (unsigned) ( (((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 = (unsigned) (*(( short *)var←c45016 + 1)<0);
if ((var←c45112 == 0)) {
{
word text←v37964;
text←v37964 = var←c45016;
(* (ptr) (word) &var←c45144 ) = (unsigned) ( (((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 (( (unsigned) (word) (* (( (bPt) wp1←v17892)+i←v17964) ) != (unsigned) (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( (unsigned) ((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 = (unsigned) (*(( short *)var←c45272 + 1)<0);
if ((var←c45368 == 0)) {
{
word text←v37832;
text←v37832 = var←c45272;
(* (ptr) (word) &var←c45400 ) = (unsigned) ( (((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 = (unsigned) (*(( short *)var←c45464 + 1)<0);
if ((var←c45560 == 0)) {
{
word text←v37700;
text←v37700 = var←c45464;
(* (ptr) (word) &var←c45592 ) = (unsigned) ( (((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 = (unsigned) (word) (* ((( (bPt) str1←v18064)+4)+i←v18236) );
SOURCE(17126, 26)
c2←v18308 = (unsigned) (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 = (unsigned) (word) (* ((( (bPt) str1←v18064)+4)+i←v18352) );
SOURCE(17302, 26)
c2←v18424 = (unsigned) (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 idx49;
return((
idx49 = (word) ( ( (int)pos1←v18524 == (int)len2←v18036) ? 1 : 0 ) ,
BCK(idx49, 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 idx50;
return((
idx50 = (word) ( (c1←v18748 < c2←v18776) ? 0 : 2 ) ,
BCK(idx50, 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 idx51;
var←c45880 = (
idx51 = (word) ( ( (int)a←v36540 == (int)b←v36568) ? 1 : ( ( (int)a←v36540 > (int)b←v36568) ? 2 : 0 ) ) ,
BCK(idx51, 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 = (unsigned) (*(( 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 = (unsigned) ((* (( (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( (unsigned) ( (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 (( (unsigned) (*(( short *)base←v10184 + 1)<0) == 0)) {
SOURCE(21698, 20)
return( (unsigned) ( (((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 = (unsigned) (*(int*)var←c46200<0);
if ((var←c46232 == 0)) {
{
word base←v19772;
base←v19772 = var←c46200;
SOURCE(21896, 44)
if (( (unsigned) (*(( short *)base←v19772 + 1)<0) == 0)) {
SOURCE(21920, 20)
return( (unsigned) ( (((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 = (unsigned) (*(( short *)var←c46296 + 1)<0);
if ((var←c46392 == 0)) {
{
word text←v37568;
text←v37568 = var←c46296;
(* (ptr) (word) &var←c46424 ) = (unsigned) ( (((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 = (unsigned) (*(( short *)var←c46488 + 1)<0);
if ((var←c46584 == 0)) {
{
word text←v37436;
text←v37436 = var←c46488;
(* (ptr) (word) &var←c46616 ) = (unsigned) ( (((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( (unsigned) ( (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 tmpAddr52;
tmpAddr52 = (word) (( (ptr) &var←c50296)+8)/* var←c46744 */ ;
(* (ptr) tmpAddr52 ) = ( ((word) (fPt) LCmp←P6756) );
(* (( (ptr) tmpAddr52) + 1) ) = 1;
};
{
word tmpAddr53;
tmpAddr53 = (word) (( (ptr) &var←c50296)+10)/* var←c46776 */ ;
(* (ptr) tmpAddr53 ) = ( ((word) (fPt) Cmp←P6648) );
(* (( (ptr) tmpAddr53) + 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 = (unsigned) (*(( short *)var←c46872 + 1)<0);
if ((var←c46968 == 0)) {
{
word text←v35576;
text←v35576 = var←c46872;
(* (ptr) (word) &var←c47000 ) = (unsigned) ( (((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 = (unsigned) (*(( short *)var←c47064 + 1)<0);
if ((var←c47160 == 0)) {
{
word text←v35720;
text←v35720 = var←c47064;
(* (ptr) (word) &var←c47192 ) = (unsigned) ( (((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 = (unsigned) (t2←v35104 != 0);
}
else {
both←v36396 = (unsigned) 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 idx54;
(* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) = (
idx54 = (word) ((* (( (ptr) &var←c50296)+13)/* c←v20480 */ ) + 32),
BCK(idx54, 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 = (unsigned) (*(( short *)var←c47320 + 1)<0);
if ((var←c47416 == 0)) {
{
word text←v36076;
text←v36076 = var←c47320;
(* (ptr) (word) &var←c47448 ) = (unsigned) ( (((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 = (unsigned) (*(( short *)var←c47512 + 1)<0);
if ((var←c47608 == 0)) {
{
word text←v36208;
text←v36208 = var←c47512;
(* (ptr) (word) &var←c47640 ) = (unsigned) ( (((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 = (unsigned) (t2←v36032 != 0);
}
else {
both←v35972 = (unsigned) 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 tmpAddr55;
tmpAddr55 = (word) (( (ptr) &var←c50392)+7)/* var←c47704 */ ;
(* (ptr) tmpAddr55 ) = ( ((word) (fPt) submatch←P7056) );
(* (( (ptr) tmpAddr55) + 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( (unsigned) ( (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 tmpAddr56;
tmpAddr56 = (word) (( (ptr) &var←c50456)+5)/* var←c47768 */ ;
(* (ptr) tmpAddr56 ) = ( ((word) (fPt) CharMatch←P7356) );
(* (( (ptr) tmpAddr56) + 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 tc57;
if (((* (( (ptr) &var←c50456)+7)/* skipText←v21844 */ ) == 0)) {
tc57 = (word) 0;
}
else {
tc57 = (word) (unsigned) ( (((unsigned)(* (hPt) (* (( (ptr) &var←c50456)+7)/* skipText←v21844 */ ) ) << 17) >> 17) );
};
(* (( (ptr) &var←c50456)+8)/* skiplen←v21872 */ ) = tc57;
};
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 limit58;
if ((c←v21992 == (unsigned) (word) (* ((( (bPt) (* (( (ptr) formal←c50488)+7) ))+4)+(
limit58 = (word) (unsigned) ( (((unsigned)(* (( (hPt) (* (( (ptr) formal←c50488)+7) ))+1) ) << 17) >> 17) ),
BCK(i←v22064, limit58)
)) ))) {
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 tmpAddr59;
tmpAddr59 = (word) (( (ptr) &var←c50520)+5)/* var←c47832 */ ;
(* (ptr) tmpAddr59 ) = ( ((word) (fPt) CharMatch←P7512) );
(* (( (ptr) tmpAddr59) + 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 tc60;
if (((* (( (ptr) &var←c50520)+7)/* skipText←v22136 */ ) == 0)) {
tc60 = (word) 0;
}
else {
tc60 = (word) (unsigned) ( (((unsigned)(* (hPt) (* (( (ptr) &var←c50520)+7)/* skipText←v22136 */ ) ) << 17) >> 17) );
};
(* (( (ptr) &var←c50520)+8)/* skiplen←v22164 */ ) = tc60;
};
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 limit61;
if ((c←v22284 == (unsigned) (word) (* ((( (bPt) (* (( (ptr) formal←c50552)+7) ))+4)+(
limit61 = (word) (unsigned) ( (((unsigned)(* (( (hPt) (* (( (ptr) formal←c50552)+7) ))+1) ) << 17) >> 17) ),
BCK(i←v22356, limit61)
)) ))) {
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 = (unsigned) (*(( short *)s←v11944 + 1)<0);
if ((var←c47896 == 0)) {
SOURCE(27675, 10)
leaves←v11988 = 1;
SOURCE(27687, 43)
if (( (unsigned) ( (((unsigned)(* (hPt) s←v11944 ) << 17) >> 17) ) > (unsigned) ( (((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 = (unsigned) ((* (( (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 x62;
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 (( (unsigned) (*(( short *)var←c48152 + 1)<0) == 1)) {
{
word node←v36928;
node←v36928 = var←c48152;
var←c48120 = (unsigned) (((unsigned)(* (( (hPt) node←v36928)+1) ) << 17) >> 19);
};
}
else {
lab←L100199: ;
var←c48120 = 1;
goto lab←L100198;
};
};
lab←L100198: ;
x62 = (word) ( (int)maxDepth←v12044 != (int)var←c48120);
if (x62) {
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 pd63;
pd63 = (* (ptr) (* (( (ptr) gf←c50616)+8)/* untracedZone←v2916 */ ) );
h←v22896 = (word) ( *( (fPt) ((* (ptr) pd63 ))))((* (( (ptr) gf←c50616)+8)/* untracedZone←v2916 */ ), 128, (* (( (ptr) gf←c50616)+278)
), pd63);
};
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 (( (unsigned) (*(( short *)var←c48216 + 1)<0) == 1)) {
{
word node←v36884;
node←v36884 = var←c48216;
height←v23024 = (unsigned) (((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 tc65;
word tc66;
word tc67;
if (( (unsigned) (*(( short *)var←c48248 + 1)<0) == 1)) {
tc65 = (word) ( (unsigned) ((* (( (bPt) var←c48248)+3) ) & 3) == 0);
}
else {
tc65 = (word) 0;
};
if (tc65) {
{
word substr←v23068;
substr←v23068 = var←c48248;
SOURCE(30172, 18)
return( (unsigned) ( (int)height←v23024 <= (int)1));
};
};
if (( (unsigned) (*(( short *)var←c48248 + 1)<0) == 1)) {
tc66 = (word) ( (unsigned) ((* (( (bPt) var←c48248)+3) ) & 3) == 1);
}
else {
tc66 = (word) 0;
};
if (tc66) {
{
word concat←v23124;
concat←v23124 = var←c48248;
SOURCE(30232, 13)
return(1);
};
};
if (( (unsigned) (*(( short *)var←c48248 + 1)<0) == 1)) {
tc67 = (word) ( (unsigned) ((* (( (bPt) var←c48248)+3) ) & 3) == 2);
}
else {
tc67 = (word) 0;
};
if (tc67) {
{
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 tmpAddr68;
tmpAddr68 = (word) (( (ptr) &var←c50680)+4)/* var←c48344 */ ;
(* (ptr) tmpAddr68 ) = ( ((word) (fPt) BalanceRange←P8184) );
(* (( (ptr) tmpAddr68) + 1) ) = 1;
};
{
word tmpAddr69;
tmpAddr69 = (word) (( (ptr) &var←c50680)+6)/* var←c48376 */ ;
(* (ptr) tmpAddr69 ) = ( ((word) (fPt) SavePart←P8124) );
(* (( (ptr) tmpAddr69) + 1) ) = 1;
};
{
word tmpAddr70;
tmpAddr70 = (word) (( (ptr) &var←c50680)+8)/* var←c48408 */ ;
(* (ptr) tmpAddr70 ) = ( ((word) (fPt) ASub←P8064) );
(* (( (ptr) tmpAddr70) + 1) ) = 1;
};
{
word tmpAddr71;
tmpAddr71 = (word) (( (ptr) &var←c50680)+10)/* var←c48440 */ ;
(* (ptr) tmpAddr71 ) = ( ((word) (fPt) StoreA←P8004) );
(* (( (ptr) tmpAddr71) + 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 idx72;
(* (( (W2Pt) (( (ptr) formal←c50776)+13))+(
idx72 = (word) (i←v23520 - (* (( (ptr) formal←c50776)+12) )),
BCK(idx72, 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 idx73;
(* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c50776)+94) ))+1))+(
idx73 = (word) (i←v23520 - (* (ptr) (* (( (ptr) formal←c50776)+94) ) )),
BCK(idx73, 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 idx74;
e←v23652 = (* (( (W2Pt) (( (ptr) formal←c50808)+13))+(
idx74 = (word) (i←v23608 - (* (( (ptr) formal←c50808)+12) )),
BCK(idx74, 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 idx75;
e←v23652 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c50808)+94) ))+1))+(
idx75 = (word) (i←v23608 - (* (ptr) (* (( (ptr) formal←c50808)+94) ) )),
BCK(idx75, 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 tc76;
word x77;
word x78;
if (( (int)i←v23944 < (int)(end←v23800 - 1))) {
if (( (int)IOP2( * , (int)(sizetoi←v23972 + sizei←v24016), (int)2) < (int)size←v23828)) {
tc76 = (word) 1;
}
else {
tc76 = (word) ((
x77 = (IOP2( * , (int)sizetoi←v23972, (int)2) - size←v23828),
IABS(x77)
) > (
x78 = (IOP2( * , (int)(sizetoi←v23972 + sizei←v24016), (int)2) - size←v23828),
IABS(x78)
));
};
}
else {
tc76 = (word) 0;
};
if (tc76) {
}
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 tc79;
if ((stopDescent←v12972 != 0)) {
tc79 = (word) (0 != (word) ( *( (fPt) ((* (ptr) stopDescent←v12972 ))))(part←v12916, stopDescent←v12972));
}
else {
tc79 = (word) 0;
};
if (tc79) {
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 tc81;
word tc82;
word tc86;
if (( (unsigned) (*(( short *)var←c48888 + 1)<0) == 1)) {
tc81 = (word) ( (unsigned) ((* (( (bPt) var←c48888)+3) ) & 3) == 0);
}
else {
tc81 = (word) 0;
};
if (tc81) {
{
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 endif080;
};
if (( (unsigned) (*(( short *)var←c48888 + 1)<0) == 1)) {
tc82 = (word) ( (unsigned) ((* (( (bPt) var←c48888)+3) ) & 3) == 1);
}
else {
tc82 = (word) 0;
};
if (tc82) {
{
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 x83;
/*1*/ word x84;
/*1*/ var←c48952.f2 = (x83 = part←v12916.f2,
/*1*/ x84 = (* (( (ptr) concat←v24160)+4) ),
/*1*/ MIN((int)(word), x83, x84));
/*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 x85;
/*1*/ newStart←v24216 = (x85 = (part←v12916.f1 - (* (( (ptr) concat←v24160)+4) )),
/*1*/ MAX((int)(word), x85, 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 endif080;
};
if (( (unsigned) (*(( short *)var←c48888 + 1)<0) == 1)) {
tc86 = (word) ( (unsigned) ((* (( (bPt) var←c48888)+3) ) & 3) == 2);
}
else {
tc86 = (word) 0;
};
if (tc86) {
{
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 x87;
/*1*/ var←c49016.f2 = (x87 = part←v12916.f2,
/*1*/ MIN((int)(word), x87, 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 x88;
/*1*/ newStart←v24472 = (x88 = (part←v12916.f1 - len1←v24344),
/*1*/ MAX((int)(word), x88, 0));
/*1*/ };
SOURCE(33417, 38)
/*1*/ {
/*1*/ word x89;
/*1*/ newEnd←v24500 = (x89 = (part←v12916.f2 - len1←v24344),
/*1*/ MIN((int)(word), x89, 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 x90;
/*1*/ newStart←v24544 = ((x90 = (part←v12916.f1 - (len1←v24344 + len2←v24372)),
/*1*/ MAX((int)(word), x90, 0)) + offset3←v24428);
/*1*/ };
SOURCE(33615, 53)
/*1*/ {
/*1*/ word x91;
/*1*/ newEnd←v24572 = ((x91 = (part←v12916.f2 - (len1←v24344 + len2←v24372)),
/*1*/ MIN((int)(word), x91, 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 endif080;
};
lab←L100218: ;
SOURCE(33752, 12)
(void) ( *( (fPt) ((* (ptr) action←v12944 ))))(part←v12916, action←v12944);
goto endif080;
endif080: ;
};
};
};
};
};
}
/* file: RopeImpl, module: RopeImpl, compiled at: April 11, 1994 1:52:45 pm PDT */
extern void XR←install←RopeImpl() {
NoName←Q13464();
}
extern void XR←run←RopeImpl() { XR←Start(&globalframe); }