/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: July 6, 1993 9:24:13 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: DecomposerRegistryImpl, module: DecomposerRegistryImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2383660275,3905436150] DecomposerRegistryImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q1308();
static void DecomposerRegistryImpl←P0();
static void Register←P60();
static void UnRegister←P120();
static word Lookup←P180();
static word Enumerate←P240();
static word MakeBoolVal←P300();
static word MakeCardVal←P360();
static word MakeIntVal←P420();
static word MakeTimeVal←P480();
static word MakeTextVal←P540();
static word MakeSeqVal1←P600();
static word MakeSeqVal2←P660();
static word MakeSeqValList←P720();
static struct {unsigned f; char r[48];} string1 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\125\320\113\245\300\331\322\350\010\102\014\005\004\162\145\163\164\214\216\257\300\125\320\113\245\300\331\322\350\010\102\014\261\000\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\100\274\000\000"};
static struct {unsigned f; char r[16];} string4 = {786444, "\007\000\040\007\000\000\000\000\003\001\000\013\000\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\101\064\000\000"};
static struct {unsigned f; char r[12];} string6 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\216\023\304\363\300\350\310\071\366\100\150\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\100\150\000\000"};
static struct {
word f0[15]; word f15; word f16; word f17;
word f18; word f19; word f20; word f21;
word f22; word f23; word f24; word f25;
word f26; word f27; word f28; word f29;
word f30; word f31; word f32; word f33;
word f34; word f35; word f36; word f37;
word f38; word f39; word f40[2];
} globalframe = {
{0}, (word) MakeSeqValList←P720, 0, (word) MakeSeqVal2←P660,
0, (word) MakeSeqVal1←P600, 0, (word) MakeTextVal←P540,
0, (word) MakeTimeVal←P480, 0, (word) MakeIntVal←P420,
0, (word) MakeCardVal←P360, 0, (word) MakeBoolVal←P300,
0, (word) Enumerate←P240, 0, (word) Lookup←P180,
0, (word) UnRegister←P120, 0, (word) Register←P60,
0, (word) DecomposerRegistryImpl←P0, {0}
};
static void NoName←Q1308()
{
register ptr gf←c073 = (ptr) &globalframe;
word var←c7908;
(* (( (ptr) gf←c073)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c073)+11) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c073)+13) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(void) XR←DeclareGlobalFrame((word) "DecomposerRegistryImpl", &globalframe, (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8)
, (word) (( (bPt) gf←c073)+156)/* var←c7076 */ );
var←c7908 = (word) XR←ExportInterface((word) "DecomposerRegistry", (word) XR←GetTypeIndexS((word) (&string9)), 12);
(* (( (ptr) gf←c073)+41)/* var←c7876 */ ) = var←c7908;
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+148)/* var←c7044 */ , 262145, (word) "Register");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+140)/* var←c7012 */ , 262401, (word) "UnRegister");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+132)/* var←c6980 */ , 67371521, (word) "Lookup");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+124)/* var←c6948 */ , 67109632, (word) "Enumerate");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+116)/* var←c6916 */ , 67372033, (word) "MakeBoolVal");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+108)/* var←c6884 */ , 67372289, (word) "MakeCardVal");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+100)/* var←c6852 */ , 67372545, (word) "MakeIntVal");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+92)/* var←c6820 */ , 67372801, (word) "MakeTimeVal");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+84)/* var←c6788 */ , 67373057, (word) "MakeTextVal");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+76)/* var←c6756 */ , 67373313, (word) "MakeSeqVal1");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+68)/* var←c6724 */ , 67635714, (word) "MakeSeqVal2");
(void) XR←ExportProcS(var←c7908, (word) (( (bPt) gf←c073)+60)/* var←c6692 */ , 67373825, (word) "MakeSeqValList");
}
static void DecomposerRegistryImpl←P0(formal←c020, formal←c019)
word formal←c020;
word formal←c019;
{
/* DecomposerRegistryImpl: */
}
static void Register←P60(data←v3020)
word data←v3020;
{
register ptr gf←c7940 = (ptr) &globalframe;
/* Register: */
SOURCE(223, 275)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c7940)+16)/* LOCK←v2464 */ ));
SOURCE(278, 220)
if ((data←v3020 != 0)) {
SOURCE(299, 156)
{
register word each←v4300;
each←v4300 = (* (( (ptr) gf←c7940)+8)/* registry←v2520 */ );
lab←L100003: ;
if ((each←v4300 != 0)) {
}
else {
goto lab←L100000;
};
{
word first←v4344;
SOURCE(364, 34)
first←v4344 = (* (ptr) each←v4300 );
SOURCE(400, 55)
if (((* (ptr) first←v4344 ) == (* (ptr) data←v3020 ))) {
SOURCE(430, 17)
(* (ptr) each←v4300 ) = data←v3020;
SOURCE(449, 6)
(void) (XR←MonitorExit((word) (( (bPt) gf←c7940)+16)/* LOCK←v2464 */ ));
return;
};
};
each←v4300 = (* (( (ptr) each←v4300)+1) );
goto lab←L100003;
lab←L100000: ;
};
SOURCE(467, 31)
{
word var←c7108;
var←c7108 = XR←NewObject(8, (* (( (ptr) gf←c7940)+10) ));
(* (ptr) var←c7108 ) = data←v3020;
(* (( (ptr) var←c7108)+1) ) = (* (( (ptr) gf←c7940)+8)/* registry←v2520 */ );
(* (( (ptr) gf←c7940)+8)/* registry←v2520 */ ) = var←c7108;
};
};
SOURCE(223, 275)
(void) (XR←MonitorExit((word) (( (bPt) gf←c7940)+16)/* LOCK←v2464 */ ));
return;
}
static void UnRegister←P120(data←v3080)
word data←v3080;
{
register ptr gf←c7972 = (ptr) &globalframe;
/* UnRegister: */
SOURCE(506, 319)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c7972)+16)/* LOCK←v2464 */ ));
SOURCE(563, 262)
if ((data←v3080 != 0)) {
SOURCE(582, 254)
{
word lag←v4388 = 0;
SOURCE(609, 216)
{
register word each←v4432;
each←v4432 = (* (( (ptr) gf←c7972)+8)/* registry←v2520 */ );
lab←L100007: ;
if ((each←v4432 != 0)) {
}
else {
goto lab←L100004;
};
{
word first←v4476;
SOURCE(674, 34)
first←v4476 = (* (ptr) each←v4432 );
SOURCE(710, 100)
if (((* (ptr) each←v4432 ) == data←v3080)) {
SOURCE(738, 64)
if ((lag←v4388 == 0)) {
SOURCE(756, 26)
(* (( (ptr) gf←c7972)+8)/* registry←v2520 */ ) = (* (( (ptr) each←v4432)+1) );
}
else {
SOURCE(782, 20)
(* (( (ptr) lag←v4388)+1) ) = (* (( (ptr) each←v4432)+1) );
};
SOURCE(804, 6)
(void) (XR←MonitorExit((word) (( (bPt) gf←c7972)+16)/* LOCK←v2464 */ ));
return;
};
SOURCE(815, 10)
lag←v4388 = each←v4432;
};
each←v4432 = (* (( (ptr) each←v4432)+1) );
goto lab←L100007;
lab←L100004: ;
};
};
};
SOURCE(506, 319)
(void) (XR←MonitorExit((word) (( (bPt) gf←c7972)+16)/* LOCK←v2464 */ ));
return;
}
static word Lookup←P180(key←v3140)
word key←v3140;
{
register ptr gf←c8004 = (ptr) &globalframe;
word var←c3184;
/* Lookup: */
SOURCE(843, 229)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c8004)+16)/* LOCK←v2464 */ ));
SOURCE(910, 139)
{
register word each←v4520;
each←v4520 = (* (( (ptr) gf←c8004)+8)/* registry←v2520 */ );
lab←L100011: ;
if ((each←v4520 != 0)) {
}
else {
goto lab←L100008;
};
{
word first←v4564;
SOURCE(975, 34)
first←v4564 = (* (ptr) each←v4520 );
SOURCE(1011, 38)
if (((* (ptr) first←v4564 ) == key←v3140)) {
SOURCE(1035, 14)
(void) (XR←MonitorExit((word) (( (bPt) gf←c8004)+16)/* LOCK←v2464 */ ));
return(first←v4564);
};
};
each←v4520 = (* (( (ptr) each←v4520)+1) );
goto lab←L100011;
lab←L100008: ;
};
SOURCE(1060, 12)
(void) (XR←MonitorExit((word) (( (bPt) gf←c8004)+16)/* LOCK←v2464 */ ));
return(0);
}
static word Enumerate←P240()
{
register ptr gf←c8036 = (ptr) &globalframe;
word var←c3244;
word head←v4608 = 0;
word tail←v4636 = 0;
/* Enumerate: */
SOURCE(1077, 307)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c8036)+16)/* LOCK←v2464 */ ));
SOURCE(1195, 165)
{
register word each←v4680;
each←v4680 = (* (( (ptr) gf←c8036)+8)/* registry←v2520 */ );
lab←L100015: ;
if ((each←v4680 != 0)) {
}
else {
goto lab←L100012;
};
{
word new←v4724;
SOURCE(1260, 36)
new←v4724 = XR←NewObject(8, (* (( (ptr) gf←c8036)+10) ));
{
word var←c7172;
var←c7172 = new←v4724;
(* (ptr) var←c7172 ) = (* (ptr) each←v4680 );
};
SOURCE(1298, 50)
if ((tail←v4636 == 0)) {
SOURCE(1317, 16)
head←v4608 = new←v4724;
}
else {
SOURCE(1333, 15)
(* (( (ptr) tail←v4636)+1) ) = new←v4724;
};
SOURCE(1350, 10)
tail←v4636 = new←v4724;
};
each←v4680 = (* (( (ptr) each←v4680)+1) );
goto lab←L100015;
lab←L100012: ;
};
SOURCE(1371, 13)
(void) (XR←MonitorExit((word) (( (bPt) gf←c8036)+16)/* LOCK←v2464 */ ));
return(head←v4608);
}
static word MakeBoolVal←P300(b←v3388)
word b←v3388;
{
register ptr gf←c8068 = (ptr) &globalframe;
word var←c3432;
/* MakeBoolVal: */
SOURCE(1390, 100)
SOURCE(1445, 45)
{
word var←c7236;
var←c7236 = XR←NewObject(8, (* (( (ptr) gf←c8068)+11) ));
(* (ptr) var←c7236 ) = 2;
(* (( (ptr) var←c7236)+1) ) = b←v3388;
return(var←c7236);
};
}
static word MakeCardVal←P360(c←v3492)
word c←v3492;
{
register ptr gf←c8100 = (ptr) &globalframe;
word var←c3536;
/* MakeCardVal: */
SOURCE(1496, 104)
SOURCE(1553, 47)
{
word var←c7300;
var←c7300 = XR←NewObject(8, (* (( (ptr) gf←c8100)+11) ));
(* (( (ptr) var←c7300)+1) ) = c←v3492;
return(var←c7300);
};
}
static word MakeIntVal←P420(i←v3596)
word i←v3596;
{
register ptr gf←c8132 = (ptr) &globalframe;
word var←c3640;
/* MakeIntVal: */
SOURCE(1606, 100)
SOURCE(1661, 45)
{
word var←c7364;
var←c7364 = XR←NewObject(8, (* (( (ptr) gf←c8132)+11) ));
(* (ptr) var←c7364 ) = 1;
(* (( (ptr) var←c7364)+1) ) = i←v3596;
return(var←c7364);
};
}
static word MakeTimeVal←P480(gmt←v3700)
word gmt←v3700;
{
register ptr gf←c8164 = (ptr) &globalframe;
word var←c3744;
/* MakeTimeVal: */
SOURCE(1712, 107)
SOURCE(1778, 41)
{
word var←c7428;
var←c7428 = XR←NewObject(8, (* (( (ptr) gf←c8164)+11) ));
(* (ptr) var←c7428 ) = 5;
(* (( (ptr) var←c7428)+1) ) = gmt←v3700;
return(var←c7428);
};
}
static word MakeTextVal←P540(rope←v3804)
word rope←v3804;
{
register ptr gf←c8196 = (ptr) &globalframe;
word var←c3848;
/* MakeTextVal: */
SOURCE(1825, 105)
SOURCE(1888, 42)
{
word var←c7492;
var←c7492 = XR←NewObject(8, (* (( (ptr) gf←c8196)+11) ));
(* (ptr) var←c7492 ) = 4;
(* (( (ptr) var←c7492)+1) ) = rope←v3804;
return(var←c7492);
};
}
static word MakeSeqVal1←P600(val←v3908)
word val←v3908;
{
register ptr gf←c8228 = (ptr) &globalframe;
word var←c3952;
word seq←v4768;
/* MakeSeqVal1: */
SOURCE(1936, 158)
SOURCE(1994, 35)
seq←v4768 = XR←NewObject(8, (* (( (ptr) gf←c8228)+13) ));
(* (ptr) seq←v4768 ) = 1;
SOURCE(2031, 12)
{
word limit10;
(* ((( (ptr) seq←v4768)+1)+(
limit10 = (* (ptr) seq←v4768 ),
BCK(0, limit10)
)) ) = val←v3908;
};
SOURCE(2045, 49)
{
word var←c7588;
var←c7588 = XR←NewObject(8, (* (( (ptr) gf←c8228)+11) ));
(* (ptr) var←c7588 ) = 6;
(* (( (ptr) var←c7588)+1) ) = seq←v4768;
return(var←c7588);
};
}
static word MakeSeqVal2←P660(val1←v4012, val2←v4040)
word val1←v4012;
word val2←v4040;
{
register ptr gf←c8260 = (ptr) &globalframe;
word var←c4084;
word seq←v4812;
/* MakeSeqVal2: */
SOURCE(2100, 181)
SOURCE(2165, 35)
seq←v4812 = XR←NewObject(12, (* (( (ptr) gf←c8260)+13) ));
(* (ptr) seq←v4812 ) = 2;
SOURCE(2202, 13)
{
word limit11;
(* ((( (ptr) seq←v4812)+1)+(
limit11 = (* (ptr) seq←v4812 ),
BCK(0, limit11)
)) ) = val1←v4012;
};
SOURCE(2217, 13)
{
word limit12;
(* ((( (ptr) seq←v4812)+1)+(
limit12 = (* (ptr) seq←v4812 ),
BCK(1, limit12)
)) ) = val2←v4040;
};
SOURCE(2232, 49)
{
word var←c7684;
var←c7684 = XR←NewObject(8, (* (( (ptr) gf←c8260)+11) ));
(* (ptr) var←c7684 ) = 6;
(* (( (ptr) var←c7684)+1) ) = seq←v4812;
return(var←c7684);
};
}
static word MakeSeqValList←P720(list←v4144)
word list←v4144;
{
register ptr gf←c8292 = (ptr) &globalframe;
word var←c4272;
word seq←v4856 = 0;
word n←v4884 = 0;
/* MakeSeqValList: */
SOURCE(2287, 371)
SOURCE(2390, 71)
{
register word each←v4928;
each←v4928 = list←v4144;
lab←L100019: ;
if ((each←v4928 != 0)) {
}
else {
goto lab←L100016;
};
SOURCE(2452, 9)
n←v4884 = (n←v4884 + 1);
each←v4928 = (* (( (ptr) each←v4928)+1) );
goto lab←L100019;
lab←L100016: ;
};
SOURCE(2472, 25)
{
word var←c7716;
word var←c7748;
word var←c7780;
var←c7716 = BCK(n←v4884, 67108863);
var←c7748 = ((word) var←c7716 << 2);
var←c7780 = XR←NewObject((4 + var←c7748), (* (( (ptr) gf←c8292)+13) ));
(* (ptr) var←c7780 ) = var←c7716;
seq←v4856 = var←c7780;
};
SOURCE(2499, 5)
n←v4884 = 0;
SOURCE(2506, 92)
{
register word each←v5056;
each←v5056 = list←v4144;
lab←L100023: ;
if ((each←v5056 != 0)) {
}
else {
goto lab←L100020;
};
SOURCE(2568, 19)
{
word limit13;
(* ((( (ptr) seq←v4856)+1)+(
limit13 = (* (ptr) seq←v4856 ),
BCK(n←v4884, limit13)
)) ) = (* (ptr) each←v5056 );
};
SOURCE(2589, 9)
n←v4884 = (n←v4884 + 1);
each←v5056 = (* (( (ptr) each←v5056)+1) );
goto lab←L100023;
lab←L100020: ;
};
SOURCE(2609, 49)
{
word var←c7844;
var←c7844 = XR←NewObject(8, (* (( (ptr) gf←c8292)+11) ));
(* (ptr) var←c7844 ) = 6;
(* (( (ptr) var←c7844)+1) ) = seq←v4856;
return(var←c7844);
};
}
/* file: DecomposerRegistryImpl, module: DecomposerRegistryImpl, compiled at: July 6, 1993 9:24:13 am PDT */
extern void XR←install←DecomposerRegistryImpl() {
NoName←Q1308();
}
extern void XR←run←DecomposerRegistryImpl() { XR←Start(&globalframe); }