/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 11:10:13 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: PropImpl, module: PropImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3789305198,1054607122] PropImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q504();
static void PropImpl←P0();
static word Zap←P60();
static word Get←P120();
static word Put←P180();
static word Rem←P240();
static word Map←P300();
static struct {unsigned f; char r[44];} string1 = {2752556, "\260\006\005\146\151\162\163\164\257\300\240\236\274\171\300\344\000\142\023\100\200\005\004\162\145\163\164\214\257\300\240\236\274\171\300\344\000\142\023\100\200\261\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\341\334\065\156\300\076\334\007\022\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\240\236\274\171\300\344\000\142\023\100\150\000\000"};
static struct {
word f0[6]; word f6; word f7; word f8;
word f9; word f10; word f11; word f12;
word f13; word f14; word f15; word f16;
word f17[2];
} globalframe = {
{0}, (word) Map←P300, 0, (word) Rem←P240,
0, (word) Put←P180, 0, (word) Get←P120,
0, (word) Zap←P60, 0, (word) PropImpl←P0,
{0}
};
static void NoName←Q504()
{
register ptr gf←c035 = (ptr) &globalframe;
word var←c4468;
(* (( (ptr) gf←c035)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(void) XR←DeclareGlobalFrame((word) "PropImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string3)), (word) (( (bPt) gf←c035)+64)
/* var←c4276 */ );
var←c4468 = (word) XR←ExportInterface((word) "Prop", (word) XR←GetTypeIndexS((word) (&string4)), 4);
(* (( (ptr) gf←c035)+18)/* var←c4436 */ ) = var←c4468;
(void) XR←ExportProcS(var←c4468, (word) (( (bPt) gf←c035)+40)/* var←c4180 */ , 67895299);
(void) XR←ExportProcS(var←c4468, (word) (( (bPt) gf←c035)+48)/* var←c4212 */ , 67633410);
(void) XR←ExportProcS(var←c4468, (word) (( (bPt) gf←c035)+32)/* var←c4148 */ , 67633666);
(void) XR←ExportProcS(var←c4468, (word) (( (bPt) gf←c035)+24)/* var←c4116 */ , 67633922);
}
static void PropImpl←P0(formal←c011, formal←c010)
word formal←c011;
word formal←c010;
{
/* PropImpl: */
}
static word Zap←P60(propList←v2600, key←v2628)
word propList←v2600;
word key←v2628;
{
register ptr gf←c4500 = (ptr) &globalframe;
word var←c2688;
/* Zap: */
SOURCE(102, 310)
SOURCE(166, 246)
if ((propList←v2600 == 0)) {
SOURCE(187, 18)
return(0);
}
else {
SOURCE(207, 205)
if (((* (ptr) propList←v2600 ) == key←v2628)) {
SOURCE(238, 28)
return((* (( (ptr) propList←v2600)+2) ));
}
else {
SOURCE(266, 148)
{
word remRest←v3332;
SOURCE(268, 43)
remRest←v3332 = (word) Zap←P60((* (( (ptr) propList←v2600)+2) ), key←v2628);
SOURCE(313, 30)
if (((* (( (ptr) propList←v2600)+2) ) == remRest←v3332)) {
SOURCE(343, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(374, 38)
{
word var←c4340;
var←c4340 = XR←NewObject(12, (* (( (ptr) gf←c4500)+4) ));
(* (W2Pt) var←c4340 ) = (* (W2Pt) propList←v2600 );
(* (( (ptr) var←c4340)+2) ) = remRest←v3332;
return(var←c4340);
};
};
};
};
}
static word Get←P120(propList←v2748, key←v2776)
word propList←v2748;
word key←v2776;
{
word val←v2832;
/* Get: */
SOURCE(424, 201)
SOURCE(424, 201)
val←v2832 = 0;
SOURCE(495, 108)
{
register word list←v3376;
list←v3376 = propList←v2748;
lab←L100003: ;
if ((list←v3376 != 0)) {
}
else {
goto lab←L100000;
};
SOURCE(554, 49)
if (((* (ptr) list←v3376 ) == key←v2776)) {
SOURCE(581, 22)
return((* (( (ptr) list←v3376)+1) ));
};
list←v3376 = (* (( (ptr) list←v3376)+2) );
goto lab←L100003;
lab←L100000: ;
};
SOURCE(614, 11)
return(0);
}
static word Put←P180(propList←v2904, key←v2932, val←v2960)
word propList←v2904;
word key←v2932;
word val←v2960;
{
register ptr gf←c4532 = (ptr) &globalframe;
word var←c3028;
word old←v3420;
/* Put: */
SOURCE(631, 326)
SOURCE(712, 29)
old←v3420 = (word) Get←P120(propList←v2904, key←v2932);
SOURCE(743, 33)
if ((val←v2960 == old←v3420)) {
SOURCE(759, 17)
return(propList←v2904);
};
SOURCE(803, 45)
if ((old←v3420 != 0)) {
SOURCE(819, 29)
propList←v2904 = (word) Zap←P60(propList←v2904, key←v2932);
};
SOURCE(864, 63)
if ((val←v2960 != 0)) {
SOURCE(880, 47)
{
word var←c4372;
var←c4372 = XR←NewObject(12, (* (( (ptr) gf←c4532)+4) ));
(* (ptr) var←c4372 ) = key←v2932;
(* (( (ptr) var←c4372)+1) ) = val←v2960;
(* (( (ptr) var←c4372)+2) ) = propList←v2904;
propList←v2904 = var←c4372;
};
};
SOURCE(940, 17)
return(propList←v2904);
}
static word Rem←P240(propList←v3088, key←v3116)
word propList←v3088;
word key←v3116;
{
word var←c3172;
word old←v3476;
/* Rem: */
SOURCE(963, 158)
SOURCE(1034, 29)
old←v3476 = (word) Get←P120(propList←v3088, key←v3116);
SOURCE(1065, 56)
if ((old←v3476 == 0)) {
return(propList←v3088);
}
else {
return((word) Zap←P60(propList←v3088, key←v3116));
};
}
static word Map←P300(propList←v3232, action←v3260)
word propList←v3232;
word action←v3260;
{
word var←c3304;
/* Map: */
SOURCE(1127, 219)
SOURCE(1202, 119)
{
register word list←v3532;
list←v3532 = propList←v3232;
lab←L100007: ;
if ((list←v3532 != 0)) {
}
else {
goto lab←L100004;
};
SOURCE(1261, 60)
if ((0 != (word) ( *( (fPt) ((* (ptr) action←v3260 ))))((* (ptr) list←v3532 ), (* (( (ptr) list←v3532)+1) ), action←v3260)
)) {
SOURCE(1308, 13)
return(1);
};
list←v3532 = (* (( (ptr) list←v3532)+2) );
goto lab←L100007;
lab←L100004: ;
};
SOURCE(1332, 14)
return(0);
}
/* file: PropImpl, module: PropImpl, compiled at: February 21, 1992 11:10:13 pm PST */
extern void XR←install←PropImpl() {
NoName←Q504();
}
extern void XR←run←PropImpl() { XR←Start(&globalframe); }