Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346#ifndef AVOID_PRECOMPILED1/* C file produced by GAC */2#include "src/compiled.h"34/* global variables used in handlers */5static GVar G_NAME__FUNC;6static Obj GF_NAME__FUNC;7static GVar G_IsType;8static Obj GF_IsType;9static GVar G_IS__REC;10static Obj GF_IS__REC;11static GVar G_IS__LIST;12static Obj GF_IS__LIST;13static GVar G_ADD__LIST;14static Obj GF_ADD__LIST;15static GVar G_IS__PLIST__REP;16static Obj GF_IS__PLIST__REP;17static GVar G_IS__BLIST;18static Obj GF_IS__BLIST;19static GVar G_IS__RANGE;20static Obj GF_IS__RANGE;21static GVar G_IS__STRING__REP;22static Obj GF_IS__STRING__REP;23static GVar G_Error;24static Obj GF_Error;25static GVar G_TYPE__OBJ;26static Obj GC_TYPE__OBJ;27static Obj GF_TYPE__OBJ;28static GVar G_FAMILY__OBJ;29static Obj GC_FAMILY__OBJ;30static GVar G_IMMUTABLE__COPY__OBJ;31static Obj GF_IMMUTABLE__COPY__OBJ;32static GVar G_IS__IDENTICAL__OBJ;33static Obj GF_IS__IDENTICAL__OBJ;34static GVar G_IS__COMOBJ;35static Obj GF_IS__COMOBJ;36static GVar G_SET__TYPE__COMOBJ;37static Obj GF_SET__TYPE__COMOBJ;38static GVar G_IS__POSOBJ;39static Obj GF_IS__POSOBJ;40static GVar G_SET__TYPE__POSOBJ;41static Obj GF_SET__TYPE__POSOBJ;42static GVar G_LEN__POSOBJ;43static Obj GF_LEN__POSOBJ;44static GVar G_IS__DATOBJ;45static Obj GF_IS__DATOBJ;46static GVar G_SET__TYPE__DATOBJ;47static Obj GF_SET__TYPE__DATOBJ;48static GVar G_IS__OBJECT;49static Obj GC_IS__OBJECT;50static GVar G_AND__FLAGS;51static Obj GF_AND__FLAGS;52static GVar G_SUB__FLAGS;53static Obj GF_SUB__FLAGS;54static GVar G_HASH__FLAGS;55static Obj GF_HASH__FLAGS;56static GVar G_IS__EQUAL__FLAGS;57static Obj GF_IS__EQUAL__FLAGS;58static GVar G_IS__SUBSET__FLAGS;59static Obj GF_IS__SUBSET__FLAGS;60static GVar G_FLAG1__FILTER;61static Obj GF_FLAG1__FILTER;62static GVar G_FLAGS__FILTER;63static Obj GF_FLAGS__FILTER;64static GVar G_METHODS__OPERATION;65static Obj GF_METHODS__OPERATION;66static GVar G_SETTER__FUNCTION;67static Obj GF_SETTER__FUNCTION;68static GVar G_GETTER__FUNCTION;69static Obj GF_GETTER__FUNCTION;70static GVar G_IS__AND__FILTER;71static Obj GF_IS__AND__FILTER;72static GVar G_COMPACT__TYPE__IDS;73static Obj GF_COMPACT__TYPE__IDS;74static GVar G_LEN__LIST;75static Obj GF_LEN__LIST;76static GVar G_SET__FILTER__LIST;77static Obj GF_SET__FILTER__LIST;78static GVar G_RESET__FILTER__LIST;79static Obj GF_RESET__FILTER__LIST;80static GVar G_GASMAN;81static Obj GF_GASMAN;82static GVar G_InstallAttributeFunction;83static Obj GF_InstallAttributeFunction;84static GVar G_InstallOtherMethod;85static Obj GF_InstallOtherMethod;86static GVar G_IsAttributeStoringRep;87static Obj GC_IsAttributeStoringRep;88static Obj GF_IsAttributeStoringRep;89static GVar G_GETTER__FLAGS;90static Obj GC_GETTER__FLAGS;91static GVar G_LENGTH__SETTER__METHODS__2;92static Obj GC_LENGTH__SETTER__METHODS__2;93static GVar G_SetFilterObj;94static Obj GC_SetFilterObj;95static Obj GF_SetFilterObj;96static GVar G_Subtype;97static Obj GF_Subtype;98static GVar G_BIND__GLOBAL;99static Obj GF_BIND__GLOBAL;100static GVar G_WITH__IMPS__FLAGS;101static Obj GF_WITH__IMPS__FLAGS;102static GVar G_CATEGORIES__FAMILY;103static Obj GC_CATEGORIES__FAMILY;104static GVar G_NEW__FAMILY;105static Obj GF_NEW__FAMILY;106static GVar G_EMPTY__FLAGS;107static Obj GC_EMPTY__FLAGS;108static GVar G_NewFamily2;109static Obj GF_NewFamily2;110static GVar G_TypeOfFamilies;111static Obj GC_TypeOfFamilies;112static GVar G_NewFamily3;113static Obj GF_NewFamily3;114static GVar G_NewFamily4;115static Obj GF_NewFamily4;116static GVar G_NewFamily5;117static Obj GF_NewFamily5;118static GVar G_NEW__TYPE__CACHE__MISS;119static Obj GC_NEW__TYPE__CACHE__MISS;120static GVar G_NEW__TYPE__CACHE__HIT;121static Obj GC_NEW__TYPE__CACHE__HIT;122static GVar G_POS__DATA__TYPE;123static Obj GC_POS__DATA__TYPE;124static GVar G_NEW__TYPE__NEXT__ID;125static Obj GC_NEW__TYPE__NEXT__ID;126static GVar G_NEW__TYPE__ID__LIMIT;127static Obj GC_NEW__TYPE__ID__LIMIT;128static GVar G_FLUSH__ALL__METHOD__CACHES;129static Obj GF_FLUSH__ALL__METHOD__CACHES;130static GVar G_POS__NUMB__TYPE;131static Obj GC_POS__NUMB__TYPE;132static GVar G_NEW__TYPE;133static Obj GF_NEW__TYPE;134static GVar G_POS__FIRST__FREE__TYPE;135static Obj GC_POS__FIRST__FREE__TYPE;136static GVar G_IsFamily;137static Obj GF_IsFamily;138static GVar G_NewType2;139static Obj GF_NewType2;140static GVar G_TypeOfTypes;141static Obj GC_TypeOfTypes;142static GVar G_NewType3;143static Obj GF_NewType3;144static GVar G_NewType4;145static Obj GF_NewType4;146static GVar G_NewType5;147static Obj GF_NewType5;148static GVar G_Subtype2;149static Obj GF_Subtype2;150static GVar G_Subtype3;151static Obj GF_Subtype3;152static GVar G_SupType2;153static Obj GF_SupType2;154static GVar G_SupType3;155static Obj GF_SupType3;156static GVar G_FlagsType;157static Obj GF_FlagsType;158static GVar G_TypeObj;159static Obj GF_TypeObj;160static GVar G_DataType;161static Obj GF_DataType;162static GVar G_SharedType;163static Obj GF_SharedType;164static GVar G_IsNoImmediateMethodsObject;165static Obj GF_IsNoImmediateMethodsObject;166static GVar G_RunImmediateMethods;167static Obj GF_RunImmediateMethods;168static GVar G_IsNonAtomicComponentObjectRep;169static Obj GC_IsNonAtomicComponentObjectRep;170static GVar G_IsAtomicPositionalObjectRep;171static Obj GC_IsAtomicPositionalObjectRep;172static GVar G_IsReadOnlyPositionalObjectRep;173static Obj GC_IsReadOnlyPositionalObjectRep;174static GVar G_SetTypeObj;175static Obj GC_SetTypeObj;176static GVar G_ChangeTypeObj;177static Obj GC_ChangeTypeObj;178static Obj GF_ChangeTypeObj;179static GVar G_IGNORE__IMMEDIATE__METHODS;180static Obj GC_IGNORE__IMMEDIATE__METHODS;181static GVar G_ResetFilterObj;182static Obj GC_ResetFilterObj;183static Obj GF_ResetFilterObj;184static GVar G_Tester;185static Obj GF_Tester;186static GVar G_Setter;187static Obj GF_Setter;188static GVar G_FamilyType;189static Obj GF_FamilyType;190static GVar G_Ignore;191static Obj GC_Ignore;192static GVar G_MAKE__READ__WRITE__GLOBAL;193static Obj GF_MAKE__READ__WRITE__GLOBAL;194static GVar G_IsAttributeStoringRepFlags;195static Obj GC_IsAttributeStoringRepFlags;196static GVar G_INFO__OWA;197static Obj GF_INFO__OWA;198static GVar G_Objectify;199static Obj GF_Objectify;200201/* record names used in handlers */202static RNam R_TYPES__LIST__FAM;203static RNam R_NAME;204static RNam R_REQ__FLAGS;205static RNam R_IMP__FLAGS;206static RNam R_TYPES;207static RNam R_nTYPES;208static RNam R_HASH__SIZE;209210/* information for the functions */211static Obj NameFunc[38];212static Obj NamsFunc[38];213static Int NargFunc[38];214static Obj DefaultName;215static Obj FileName;216217/* handler for function 2 */218static Obj HdlrFunc2 (219Obj self,220Obj a_name,221Obj a_filter,222Obj a_getter,223Obj a_setter,224Obj a_tester,225Obj a_mutflag )226{227Obj t_1 = 0;228Obj t_2 = 0;229Obj t_3 = 0;230Obj t_4 = 0;231Obj t_5 = 0;232Obj t_6 = 0;233Obj t_7 = 0;234Bag oldFrame;235OLD_BRK_CURR_STAT236237/* allocate new stack frame */238SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);239REM_BRK_CURR_STAT();240SET_BRK_CURR_STAT(0);241242/* InstallOtherMethod( getter, "system getter", true, [ IsAttributeStoringRep and tester ], GETTER_FLAGS, GETTER_FUNCTION( name ) ); */243t_1 = GF_InstallOtherMethod;244C_NEW_STRING( t_2, 13, "system getter" );245t_3 = True;246t_4 = NEW_PLIST( T_PLIST, 1 );247SET_LEN_PLIST( t_4, 1 );248t_6 = GC_IsAttributeStoringRep;249CHECK_BOUND( t_6, "IsAttributeStoringRep" )250if ( t_6 == False ) {251t_5 = t_6;252}253else if ( t_6 == True ) {254CHECK_BOOL( a_tester )255t_5 = a_tester;256}257else {258CHECK_FUNC( t_6 )259CHECK_FUNC( a_tester )260t_5 = NewAndFilter( t_6, a_tester );261}262SET_ELM_PLIST( t_4, 1, t_5 );263CHANGED_BAG( t_4 );264t_5 = GC_GETTER__FLAGS;265CHECK_BOUND( t_5, "GETTER_FLAGS" )266t_7 = GF_GETTER__FUNCTION;267t_6 = CALL_1ARGS( t_7, a_name );268CHECK_FUNC_RESULT( t_6 )269CALL_6ARGS( t_1, a_getter, t_2, t_3, t_4, t_5, t_6 );270271/* return; */272RES_BRK_CURR_STAT();273SWITCH_TO_OLD_FRAME(oldFrame);274return 0;275276/* return; */277RES_BRK_CURR_STAT();278SWITCH_TO_OLD_FRAME(oldFrame);279return 0;280}281282/* handler for function 4 */283static Obj HdlrFunc4 (284Obj self,285Obj a_obj,286Obj a_val )287{288Obj t_1 = 0;289Obj t_2 = 0;290Bag oldFrame;291OLD_BRK_CURR_STAT292293/* allocate new stack frame */294SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);295REM_BRK_CURR_STAT();296SET_BRK_CURR_STAT(0);297298/* obj!.(name) := val; */299t_1 = OBJ_LVAR_1UP( 1 );300CHECK_BOUND( t_1, "name" )301if ( TNUM_OBJ(a_obj) == T_COMOBJ ) {302AssPRec( a_obj, RNamObj(t_1), a_val );303}304else {305ASS_REC( a_obj, RNamObj(t_1), a_val );306}307308/* SetFilterObj( obj, tester ); */309t_1 = GF_SetFilterObj;310t_2 = OBJ_LVAR_1UP( 2 );311CHECK_BOUND( t_2, "tester" )312CALL_2ARGS( t_1, a_obj, t_2 );313314/* return; */315RES_BRK_CURR_STAT();316SWITCH_TO_OLD_FRAME(oldFrame);317return 0;318319/* return; */320RES_BRK_CURR_STAT();321SWITCH_TO_OLD_FRAME(oldFrame);322return 0;323}324325/* handler for function 3 */326static Obj HdlrFunc3 (327Obj self,328Obj a_name,329Obj a_filter,330Obj a_getter,331Obj a_setter,332Obj a_tester,333Obj a_mutflag )334{335Obj t_1 = 0;336Obj t_2 = 0;337Obj t_3 = 0;338Obj t_4 = 0;339Obj t_5 = 0;340Obj t_6 = 0;341Obj t_7 = 0;342Obj t_8 = 0;343Bag oldFrame;344OLD_BRK_CURR_STAT345346/* allocate new stack frame */347SWITCH_TO_NEW_FRAME(self,2,0,oldFrame);348ASS_LVAR( 1, a_name );349ASS_LVAR( 2, a_tester );350REM_BRK_CURR_STAT();351SET_BRK_CURR_STAT(0);352353/* if mutflag then */354CHECK_BOOL( a_mutflag )355t_1 = (Obj)(UInt)(a_mutflag != False);356if ( t_1 ) {357358/* InstallOtherMethod( setter, "system mutable setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, function ( obj, val )359obj!.(name) := val;360SetFilterObj( obj, tester );361return;362end ); */363t_1 = GF_InstallOtherMethod;364C_NEW_STRING( t_2, 21, "system mutable setter" );365t_3 = True;366t_4 = NEW_PLIST( T_PLIST, 2 );367SET_LEN_PLIST( t_4, 2 );368t_5 = GC_IsAttributeStoringRep;369CHECK_BOUND( t_5, "IsAttributeStoringRep" )370SET_ELM_PLIST( t_4, 1, t_5 );371CHANGED_BAG( t_4 );372t_5 = GC_IS__OBJECT;373CHECK_BOUND( t_5, "IS_OBJECT" )374SET_ELM_PLIST( t_4, 2, t_5 );375CHANGED_BAG( t_4 );376t_5 = NewFunction( NameFunc[4], NargFunc[4], NamsFunc[4], HdlrFunc4 );377ENVI_FUNC( t_5 ) = TLS(CurrLVars);378t_6 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );379STARTLINE_BODY(t_6) = INTOBJ_INT(39);380ENDLINE_BODY(t_6) = INTOBJ_INT(42);381FILENAME_BODY(t_6) = FileName;382BODY_FUNC(t_5) = t_6;383CHANGED_BAG( TLS(CurrLVars) );384CALL_6ARGS( t_1, a_setter, t_2, t_3, t_4, INTOBJ_INT(0), t_5 );385386}387388/* else */389else {390391/* InstallOtherMethod( setter, "system setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, SETTER_FUNCTION( name, tester ) ); */392t_1 = GF_InstallOtherMethod;393C_NEW_STRING( t_2, 13, "system setter" );394t_3 = True;395t_4 = NEW_PLIST( T_PLIST, 2 );396SET_LEN_PLIST( t_4, 2 );397t_5 = GC_IsAttributeStoringRep;398CHECK_BOUND( t_5, "IsAttributeStoringRep" )399SET_ELM_PLIST( t_4, 1, t_5 );400CHANGED_BAG( t_4 );401t_5 = GC_IS__OBJECT;402CHECK_BOUND( t_5, "IS_OBJECT" )403SET_ELM_PLIST( t_4, 2, t_5 );404CHANGED_BAG( t_4 );405t_6 = GF_SETTER__FUNCTION;406t_7 = OBJ_LVAR( 1 );407CHECK_BOUND( t_7, "name" )408t_8 = OBJ_LVAR( 2 );409CHECK_BOUND( t_8, "tester" )410t_5 = CALL_2ARGS( t_6, t_7, t_8 );411CHECK_FUNC_RESULT( t_5 )412CALL_6ARGS( t_1, a_setter, t_2, t_3, t_4, INTOBJ_INT(0), t_5 );413414}415/* fi */416417/* return; */418RES_BRK_CURR_STAT();419SWITCH_TO_OLD_FRAME(oldFrame);420return 0;421422/* return; */423RES_BRK_CURR_STAT();424SWITCH_TO_OLD_FRAME(oldFrame);425return 0;426}427428/* handler for function 5 */429static Obj HdlrFunc5 (430Obj self,431Obj a_typeOfFamilies,432Obj a_name,433Obj a_req__filter,434Obj a_imp__filter )435{436Obj l_type = 0;437Obj l_pair = 0;438Obj l_family = 0;439Obj t_1 = 0;440Obj t_2 = 0;441Obj t_3 = 0;442Obj t_4 = 0;443Obj t_5 = 0;444Obj t_6 = 0;445Obj t_7 = 0;446Obj t_8 = 0;447Bag oldFrame;448OLD_BRK_CURR_STAT449450/* allocate new stack frame */451SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);452REM_BRK_CURR_STAT();453SET_BRK_CURR_STAT(0);454455/* imp_filter := WITH_IMPS_FLAGS( AND_FLAGS( imp_filter, req_filter ) ); */456t_2 = GF_WITH__IMPS__FLAGS;457t_4 = GF_AND__FLAGS;458t_3 = CALL_2ARGS( t_4, a_imp__filter, a_req__filter );459CHECK_FUNC_RESULT( t_3 )460t_1 = CALL_1ARGS( t_2, t_3 );461CHECK_FUNC_RESULT( t_1 )462a_imp__filter = t_1;463464/* type := Subtype( typeOfFamilies, IsAttributeStoringRep ); */465t_2 = GF_Subtype;466t_3 = GC_IsAttributeStoringRep;467CHECK_BOUND( t_3, "IsAttributeStoringRep" )468t_1 = CALL_2ARGS( t_2, a_typeOfFamilies, t_3 );469CHECK_FUNC_RESULT( t_1 )470l_type = t_1;471472/* for pair in CATEGORIES_FAMILY do */473t_4 = GC_CATEGORIES__FAMILY;474CHECK_BOUND( t_4, "CATEGORIES_FAMILY" )475if ( IS_SMALL_LIST(t_4) ) {476t_3 = (Obj)(UInt)1;477t_1 = INTOBJ_INT(1);478}479else {480t_3 = (Obj)(UInt)0;481t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );482}483while ( 1 ) {484if ( t_3 ) {485if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;486t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );487t_1 = (Obj)(((UInt)t_1)+4);488if ( t_2 == 0 ) continue;489}490else {491if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;492t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );493}494l_pair = t_2;495496/* if IS_SUBSET_FLAGS( imp_filter, pair[1] ) then */497t_7 = GF_IS__SUBSET__FLAGS;498C_ELM_LIST_FPL( t_8, l_pair, INTOBJ_INT(1) )499t_6 = CALL_2ARGS( t_7, a_imp__filter, t_8 );500CHECK_FUNC_RESULT( t_6 )501CHECK_BOOL( t_6 )502t_5 = (Obj)(UInt)(t_6 != False);503if ( t_5 ) {504505/* type := Subtype( type, pair[2] ); */506t_6 = GF_Subtype;507C_ELM_LIST_FPL( t_7, l_pair, INTOBJ_INT(2) )508t_5 = CALL_2ARGS( t_6, l_type, t_7 );509CHECK_FUNC_RESULT( t_5 )510l_type = t_5;511512}513/* fi */514515}516/* od */517518/* family := rec(519); */520t_1 = NEW_PREC( 0 );521SortPRecRNam( t_1, 0 );522l_family = t_1;523524/* SET_TYPE_COMOBJ( family, type ); */525t_1 = GF_SET__TYPE__COMOBJ;526CALL_2ARGS( t_1, l_family, l_type );527528/* family!.NAME := name; */529if ( TNUM_OBJ(l_family) == T_COMOBJ ) {530AssPRec( l_family, R_NAME, a_name );531}532else {533ASS_REC( l_family, R_NAME, a_name );534}535536/* family!.REQ_FLAGS := req_filter; */537if ( TNUM_OBJ(l_family) == T_COMOBJ ) {538AssPRec( l_family, R_REQ__FLAGS, a_req__filter );539}540else {541ASS_REC( l_family, R_REQ__FLAGS, a_req__filter );542}543544/* family!.IMP_FLAGS := imp_filter; */545if ( TNUM_OBJ(l_family) == T_COMOBJ ) {546AssPRec( l_family, R_IMP__FLAGS, a_imp__filter );547}548else {549ASS_REC( l_family, R_IMP__FLAGS, a_imp__filter );550}551552/* family!.TYPES := [ ]; */553t_1 = NEW_PLIST( T_PLIST, 0 );554SET_LEN_PLIST( t_1, 0 );555if ( TNUM_OBJ(l_family) == T_COMOBJ ) {556AssPRec( l_family, R_TYPES, t_1 );557}558else {559ASS_REC( l_family, R_TYPES, t_1 );560}561562/* family!.nTYPES := 0; */563if ( TNUM_OBJ(l_family) == T_COMOBJ ) {564AssPRec( l_family, R_nTYPES, INTOBJ_INT(0) );565}566else {567ASS_REC( l_family, R_nTYPES, INTOBJ_INT(0) );568}569570/* family!.HASH_SIZE := 32; */571if ( TNUM_OBJ(l_family) == T_COMOBJ ) {572AssPRec( l_family, R_HASH__SIZE, INTOBJ_INT(32) );573}574else {575ASS_REC( l_family, R_HASH__SIZE, INTOBJ_INT(32) );576}577578/* family!.TYPES_LIST_FAM := [ ]; */579t_1 = NEW_PLIST( T_PLIST, 0 );580SET_LEN_PLIST( t_1, 0 );581if ( TNUM_OBJ(l_family) == T_COMOBJ ) {582AssPRec( l_family, R_TYPES__LIST__FAM, t_1 );583}584else {585ASS_REC( l_family, R_TYPES__LIST__FAM, t_1 );586}587588/* family!.TYPES_LIST_FAM[27] := 0; */589if ( TNUM_OBJ(l_family) == T_COMOBJ ) {590t_1 = ElmPRec( l_family, R_TYPES__LIST__FAM );591}592else {593t_1 = ELM_REC( l_family, R_TYPES__LIST__FAM );594}595C_ASS_LIST_FPL_INTOBJ( t_1, INTOBJ_INT(27), INTOBJ_INT(0) )596597/* return family; */598RES_BRK_CURR_STAT();599SWITCH_TO_OLD_FRAME(oldFrame);600return l_family;601602/* return; */603RES_BRK_CURR_STAT();604SWITCH_TO_OLD_FRAME(oldFrame);605return 0;606}607608/* handler for function 6 */609static Obj HdlrFunc6 (610Obj self,611Obj a_typeOfFamilies,612Obj a_name )613{614Obj t_1 = 0;615Obj t_2 = 0;616Obj t_3 = 0;617Obj t_4 = 0;618Bag oldFrame;619OLD_BRK_CURR_STAT620621/* allocate new stack frame */622SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);623REM_BRK_CURR_STAT();624SET_BRK_CURR_STAT(0);625626/* return NEW_FAMILY( typeOfFamilies, name, EMPTY_FLAGS, EMPTY_FLAGS ); */627t_2 = GF_NEW__FAMILY;628t_3 = GC_EMPTY__FLAGS;629CHECK_BOUND( t_3, "EMPTY_FLAGS" )630t_4 = GC_EMPTY__FLAGS;631CHECK_BOUND( t_4, "EMPTY_FLAGS" )632t_1 = CALL_4ARGS( t_2, a_typeOfFamilies, a_name, t_3, t_4 );633CHECK_FUNC_RESULT( t_1 )634RES_BRK_CURR_STAT();635SWITCH_TO_OLD_FRAME(oldFrame);636return t_1;637638/* return; */639RES_BRK_CURR_STAT();640SWITCH_TO_OLD_FRAME(oldFrame);641return 0;642}643644/* handler for function 7 */645static Obj HdlrFunc7 (646Obj self,647Obj a_typeOfFamilies,648Obj a_name,649Obj a_req )650{651Obj t_1 = 0;652Obj t_2 = 0;653Obj t_3 = 0;654Obj t_4 = 0;655Bag oldFrame;656OLD_BRK_CURR_STAT657658/* allocate new stack frame */659SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);660REM_BRK_CURR_STAT();661SET_BRK_CURR_STAT(0);662663/* return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), EMPTY_FLAGS ); */664t_2 = GF_NEW__FAMILY;665t_4 = GF_FLAGS__FILTER;666t_3 = CALL_1ARGS( t_4, a_req );667CHECK_FUNC_RESULT( t_3 )668t_4 = GC_EMPTY__FLAGS;669CHECK_BOUND( t_4, "EMPTY_FLAGS" )670t_1 = CALL_4ARGS( t_2, a_typeOfFamilies, a_name, t_3, t_4 );671CHECK_FUNC_RESULT( t_1 )672RES_BRK_CURR_STAT();673SWITCH_TO_OLD_FRAME(oldFrame);674return t_1;675676/* return; */677RES_BRK_CURR_STAT();678SWITCH_TO_OLD_FRAME(oldFrame);679return 0;680}681682/* handler for function 8 */683static Obj HdlrFunc8 (684Obj self,685Obj a_typeOfFamilies,686Obj a_name,687Obj a_req,688Obj a_imp )689{690Obj t_1 = 0;691Obj t_2 = 0;692Obj t_3 = 0;693Obj t_4 = 0;694Obj t_5 = 0;695Bag oldFrame;696OLD_BRK_CURR_STAT697698/* allocate new stack frame */699SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);700REM_BRK_CURR_STAT();701SET_BRK_CURR_STAT(0);702703/* return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) ); */704t_2 = GF_NEW__FAMILY;705t_4 = GF_FLAGS__FILTER;706t_3 = CALL_1ARGS( t_4, a_req );707CHECK_FUNC_RESULT( t_3 )708t_5 = GF_FLAGS__FILTER;709t_4 = CALL_1ARGS( t_5, a_imp );710CHECK_FUNC_RESULT( t_4 )711t_1 = CALL_4ARGS( t_2, a_typeOfFamilies, a_name, t_3, t_4 );712CHECK_FUNC_RESULT( t_1 )713RES_BRK_CURR_STAT();714SWITCH_TO_OLD_FRAME(oldFrame);715return t_1;716717/* return; */718RES_BRK_CURR_STAT();719SWITCH_TO_OLD_FRAME(oldFrame);720return 0;721}722723/* handler for function 9 */724static Obj HdlrFunc9 (725Obj self,726Obj a_typeOfFamilies,727Obj a_name,728Obj a_req,729Obj a_imp,730Obj a_filter )731{732Obj t_1 = 0;733Obj t_2 = 0;734Obj t_3 = 0;735Obj t_4 = 0;736Obj t_5 = 0;737Obj t_6 = 0;738Bag oldFrame;739OLD_BRK_CURR_STAT740741/* allocate new stack frame */742SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);743REM_BRK_CURR_STAT();744SET_BRK_CURR_STAT(0);745746/* return NEW_FAMILY( Subtype( typeOfFamilies, filter ), name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) ); */747t_2 = GF_NEW__FAMILY;748t_4 = GF_Subtype;749t_3 = CALL_2ARGS( t_4, a_typeOfFamilies, a_filter );750CHECK_FUNC_RESULT( t_3 )751t_5 = GF_FLAGS__FILTER;752t_4 = CALL_1ARGS( t_5, a_req );753CHECK_FUNC_RESULT( t_4 )754t_6 = GF_FLAGS__FILTER;755t_5 = CALL_1ARGS( t_6, a_imp );756CHECK_FUNC_RESULT( t_5 )757t_1 = CALL_4ARGS( t_2, t_3, a_name, t_4, t_5 );758CHECK_FUNC_RESULT( t_1 )759RES_BRK_CURR_STAT();760SWITCH_TO_OLD_FRAME(oldFrame);761return t_1;762763/* return; */764RES_BRK_CURR_STAT();765SWITCH_TO_OLD_FRAME(oldFrame);766return 0;767}768769/* handler for function 10 */770static Obj HdlrFunc10 (771Obj self,772Obj a_arg )773{774Obj t_1 = 0;775Obj t_2 = 0;776Obj t_3 = 0;777Obj t_4 = 0;778Obj t_5 = 0;779Obj t_6 = 0;780Obj t_7 = 0;781Bag oldFrame;782OLD_BRK_CURR_STAT783784/* allocate new stack frame */785SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);786REM_BRK_CURR_STAT();787SET_BRK_CURR_STAT(0);788789/* if LEN_LIST( arg ) = 1 then */790t_3 = GF_LEN__LIST;791t_2 = CALL_1ARGS( t_3, a_arg );792CHECK_FUNC_RESULT( t_2 )793t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(1) ));794if ( t_1 ) {795796/* return NewFamily2( TypeOfFamilies, arg[1] ); */797t_2 = GF_NewFamily2;798t_3 = GC_TypeOfFamilies;799CHECK_BOUND( t_3, "TypeOfFamilies" )800C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )801t_1 = CALL_2ARGS( t_2, t_3, t_4 );802CHECK_FUNC_RESULT( t_1 )803RES_BRK_CURR_STAT();804SWITCH_TO_OLD_FRAME(oldFrame);805return t_1;806807}808809/* elif LEN_LIST( arg ) = 2 then */810else {811t_3 = GF_LEN__LIST;812t_2 = CALL_1ARGS( t_3, a_arg );813CHECK_FUNC_RESULT( t_2 )814t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));815if ( t_1 ) {816817/* return NewFamily3( TypeOfFamilies, arg[1], arg[2] ); */818t_2 = GF_NewFamily3;819t_3 = GC_TypeOfFamilies;820CHECK_BOUND( t_3, "TypeOfFamilies" )821C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )822C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )823t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );824CHECK_FUNC_RESULT( t_1 )825RES_BRK_CURR_STAT();826SWITCH_TO_OLD_FRAME(oldFrame);827return t_1;828829}830831/* elif LEN_LIST( arg ) = 3 then */832else {833t_3 = GF_LEN__LIST;834t_2 = CALL_1ARGS( t_3, a_arg );835CHECK_FUNC_RESULT( t_2 )836t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(3) ));837if ( t_1 ) {838839/* return NewFamily4( TypeOfFamilies, arg[1], arg[2], arg[3] ); */840t_2 = GF_NewFamily4;841t_3 = GC_TypeOfFamilies;842CHECK_BOUND( t_3, "TypeOfFamilies" )843C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )844C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )845C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )846t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );847CHECK_FUNC_RESULT( t_1 )848RES_BRK_CURR_STAT();849SWITCH_TO_OLD_FRAME(oldFrame);850return t_1;851852}853854/* elif LEN_LIST( arg ) = 4 then */855else {856t_3 = GF_LEN__LIST;857t_2 = CALL_1ARGS( t_3, a_arg );858CHECK_FUNC_RESULT( t_2 )859t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(4) ));860if ( t_1 ) {861862/* return NewFamily5( TypeOfFamilies, arg[1], arg[2], arg[3], arg[4] ); */863t_2 = GF_NewFamily5;864t_3 = GC_TypeOfFamilies;865CHECK_BOUND( t_3, "TypeOfFamilies" )866C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )867C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )868C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )869C_ELM_LIST_FPL( t_7, a_arg, INTOBJ_INT(4) )870t_1 = CALL_5ARGS( t_2, t_3, t_4, t_5, t_6, t_7 );871CHECK_FUNC_RESULT( t_1 )872RES_BRK_CURR_STAT();873SWITCH_TO_OLD_FRAME(oldFrame);874return t_1;875876}877878/* else */879else {880881/* Error( "usage: NewFamily( <name>, [ <req> [, <imp> ]] )" ); */882t_1 = GF_Error;883C_NEW_STRING( t_2, 47, "usage: NewFamily( <name>, [ <req> [, <imp> ]] )" );884CALL_1ARGS( t_1, t_2 );885886}887}888}889}890/* fi */891892/* return; */893RES_BRK_CURR_STAT();894SWITCH_TO_OLD_FRAME(oldFrame);895return 0;896897/* return; */898RES_BRK_CURR_STAT();899SWITCH_TO_OLD_FRAME(oldFrame);900return 0;901}902903/* handler for function 11 */904static Obj HdlrFunc11 (905Obj self,906Obj a_typeOfTypes,907Obj a_family,908Obj a_flags,909Obj a_data )910{911Obj l_hash = 0;912Obj l_cache = 0;913Obj l_cached = 0;914Obj l_type = 0;915Obj l_ncache = 0;916Obj l_ncl = 0;917Obj l_t = 0;918Obj t_1 = 0;919Obj t_2 = 0;920Obj t_3 = 0;921Obj t_4 = 0;922Obj t_5 = 0;923Obj t_6 = 0;924Obj t_7 = 0;925Obj t_8 = 0;926Obj t_9 = 0;927Bag oldFrame;928OLD_BRK_CURR_STAT929930/* allocate new stack frame */931SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);932REM_BRK_CURR_STAT();933SET_BRK_CURR_STAT(0);934935/* cache := family!.TYPES; */936if ( TNUM_OBJ(a_family) == T_COMOBJ ) {937t_1 = ElmPRec( a_family, R_TYPES );938}939else {940t_1 = ELM_REC( a_family, R_TYPES );941}942l_cache = t_1;943944/* hash := HASH_FLAGS( flags ) mod family!.HASH_SIZE + 1; */945t_4 = GF_HASH__FLAGS;946t_3 = CALL_1ARGS( t_4, a_flags );947CHECK_FUNC_RESULT( t_3 )948if ( TNUM_OBJ(a_family) == T_COMOBJ ) {949t_4 = ElmPRec( a_family, R_HASH__SIZE );950}951else {952t_4 = ELM_REC( a_family, R_HASH__SIZE );953}954t_2 = MOD( t_3, t_4 );955C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )956l_hash = t_1;957958/* if IsBound( cache[hash] ) then */959CHECK_INT_POS( l_hash )960t_2 = C_ISB_LIST( l_cache, l_hash );961t_1 = (Obj)(UInt)(t_2 != False);962if ( t_1 ) {963964/* cached := cache[hash]; */965C_ELM_LIST_FPL( t_1, l_cache, l_hash )966l_cached = t_1;967968/* if IS_EQUAL_FLAGS( flags, cached![2] ) then */969t_3 = GF_IS__EQUAL__FLAGS;970C_ELM_POSOBJ_NLE( t_4, l_cached, 2 );971t_2 = CALL_2ARGS( t_3, a_flags, t_4 );972CHECK_FUNC_RESULT( t_2 )973CHECK_BOOL( t_2 )974t_1 = (Obj)(UInt)(t_2 != False);975if ( t_1 ) {976977/* if IS_IDENTICAL_OBJ( data, cached![POS_DATA_TYPE] ) and IS_IDENTICAL_OBJ( typeOfTypes, TYPE_OBJ( cached ) ) then */978t_4 = GF_IS__IDENTICAL__OBJ;979t_6 = GC_POS__DATA__TYPE;980CHECK_BOUND( t_6, "POS_DATA_TYPE" )981CHECK_INT_SMALL_POS( t_6 )982C_ELM_POSOBJ_NLE( t_5, l_cached, INT_INTOBJ(t_6) );983t_3 = CALL_2ARGS( t_4, a_data, t_5 );984CHECK_FUNC_RESULT( t_3 )985CHECK_BOOL( t_3 )986t_2 = (Obj)(UInt)(t_3 != False);987t_1 = t_2;988if ( t_1 ) {989t_5 = GF_IS__IDENTICAL__OBJ;990t_7 = GF_TYPE__OBJ;991t_6 = CALL_1ARGS( t_7, l_cached );992CHECK_FUNC_RESULT( t_6 )993t_4 = CALL_2ARGS( t_5, a_typeOfTypes, t_6 );994CHECK_FUNC_RESULT( t_4 )995CHECK_BOOL( t_4 )996t_3 = (Obj)(UInt)(t_4 != False);997t_1 = t_3;998}999if ( t_1 ) {10001001/* NEW_TYPE_CACHE_HIT := NEW_TYPE_CACHE_HIT + 1; */1002t_2 = GC_NEW__TYPE__CACHE__HIT;1003CHECK_BOUND( t_2, "NEW_TYPE_CACHE_HIT" )1004C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )1005AssGVar( G_NEW__TYPE__CACHE__HIT, t_1 );10061007/* return cached; */1008RES_BRK_CURR_STAT();1009SWITCH_TO_OLD_FRAME(oldFrame);1010return l_cached;10111012}10131014/* else */1015else {10161017/* flags := cached![2]; */1018C_ELM_POSOBJ_NLE( t_1, l_cached, 2 );1019a_flags = t_1;10201021}1022/* fi */10231024}1025/* fi */10261027/* NEW_TYPE_CACHE_MISS := NEW_TYPE_CACHE_MISS + 1; */1028t_2 = GC_NEW__TYPE__CACHE__MISS;1029CHECK_BOUND( t_2, "NEW_TYPE_CACHE_MISS" )1030C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )1031AssGVar( G_NEW__TYPE__CACHE__MISS, t_1 );10321033}1034/* fi */10351036/* NEW_TYPE_NEXT_ID := NEW_TYPE_NEXT_ID + 1; */1037t_2 = GC_NEW__TYPE__NEXT__ID;1038CHECK_BOUND( t_2, "NEW_TYPE_NEXT_ID" )1039C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )1040AssGVar( G_NEW__TYPE__NEXT__ID, t_1 );10411042/* if NEW_TYPE_NEXT_ID >= NEW_TYPE_ID_LIMIT then */1043t_2 = GC_NEW__TYPE__NEXT__ID;1044CHECK_BOUND( t_2, "NEW_TYPE_NEXT_ID" )1045t_3 = GC_NEW__TYPE__ID__LIMIT;1046CHECK_BOUND( t_3, "NEW_TYPE_ID_LIMIT" )1047t_1 = (Obj)(UInt)(! LT( t_2, t_3 ));1048if ( t_1 ) {10491050/* GASMAN( "collect" ); */1051t_1 = GF_GASMAN;1052C_NEW_STRING( t_2, 7, "collect" );1053CALL_1ARGS( t_1, t_2 );10541055/* FLUSH_ALL_METHOD_CACHES( ); */1056t_1 = GF_FLUSH__ALL__METHOD__CACHES;1057CALL_0ARGS( t_1 );10581059/* NEW_TYPE_NEXT_ID := COMPACT_TYPE_IDS( ); */1060t_2 = GF_COMPACT__TYPE__IDS;1061t_1 = CALL_0ARGS( t_2 );1062CHECK_FUNC_RESULT( t_1 )1063AssGVar( G_NEW__TYPE__NEXT__ID, t_1 );10641065}1066/* fi */10671068/* type := [ family, flags ]; */1069t_1 = NEW_PLIST( T_PLIST, 2 );1070SET_LEN_PLIST( t_1, 2 );1071SET_ELM_PLIST( t_1, 1, a_family );1072CHANGED_BAG( t_1 );1073SET_ELM_PLIST( t_1, 2, a_flags );1074CHANGED_BAG( t_1 );1075l_type = t_1;10761077/* type[POS_DATA_TYPE] := data; */1078t_1 = GC_POS__DATA__TYPE;1079CHECK_BOUND( t_1, "POS_DATA_TYPE" )1080CHECK_INT_POS( t_1 )1081C_ASS_LIST_FPL( l_type, t_1, a_data )10821083/* type[POS_NUMB_TYPE] := NEW_TYPE_NEXT_ID; */1084t_1 = GC_POS__NUMB__TYPE;1085CHECK_BOUND( t_1, "POS_NUMB_TYPE" )1086CHECK_INT_POS( t_1 )1087t_2 = GC_NEW__TYPE__NEXT__ID;1088CHECK_BOUND( t_2, "NEW_TYPE_NEXT_ID" )1089C_ASS_LIST_FPL( l_type, t_1, t_2 )10901091/* SET_TYPE_POSOBJ( type, typeOfTypes ); */1092t_1 = GF_SET__TYPE__POSOBJ;1093CALL_2ARGS( t_1, l_type, a_typeOfTypes );10941095/* if 3 * family!.nTYPES > family!.HASH_SIZE then */1096if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1097t_3 = ElmPRec( a_family, R_nTYPES );1098}1099else {1100t_3 = ELM_REC( a_family, R_nTYPES );1101}1102C_PROD_FIA( t_2, INTOBJ_INT(3), t_3 )1103if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1104t_3 = ElmPRec( a_family, R_HASH__SIZE );1105}1106else {1107t_3 = ELM_REC( a_family, R_HASH__SIZE );1108}1109t_1 = (Obj)(UInt)(LT( t_3, t_2 ));1110if ( t_1 ) {11111112/* ncache := [ ]; */1113t_1 = NEW_PLIST( T_PLIST, 0 );1114SET_LEN_PLIST( t_1, 0 );1115l_ncache = t_1;11161117/* ncl := 3 * family!.HASH_SIZE + 1; */1118if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1119t_3 = ElmPRec( a_family, R_HASH__SIZE );1120}1121else {1122t_3 = ELM_REC( a_family, R_HASH__SIZE );1123}1124C_PROD_FIA( t_2, INTOBJ_INT(3), t_3 )1125C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )1126l_ncl = t_1;11271128/* for t in cache do */1129t_4 = l_cache;1130if ( IS_SMALL_LIST(t_4) ) {1131t_3 = (Obj)(UInt)1;1132t_1 = INTOBJ_INT(1);1133}1134else {1135t_3 = (Obj)(UInt)0;1136t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );1137}1138while ( 1 ) {1139if ( t_3 ) {1140if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;1141t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );1142t_1 = (Obj)(((UInt)t_1)+4);1143if ( t_2 == 0 ) continue;1144}1145else {1146if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;1147t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );1148}1149l_t = t_2;11501151/* ncache[HASH_FLAGS( t![2] ) mod ncl + 1] := t; */1152t_8 = GF_HASH__FLAGS;1153C_ELM_POSOBJ_NLE( t_9, l_t, 2 );1154t_7 = CALL_1ARGS( t_8, t_9 );1155CHECK_FUNC_RESULT( t_7 )1156t_6 = MOD( t_7, l_ncl );1157C_SUM_FIA( t_5, t_6, INTOBJ_INT(1) )1158CHECK_INT_POS( t_5 )1159C_ASS_LIST_FPL( l_ncache, t_5, l_t )11601161}1162/* od */11631164/* family!.HASH_SIZE := ncl; */1165if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1166AssPRec( a_family, R_HASH__SIZE, l_ncl );1167}1168else {1169ASS_REC( a_family, R_HASH__SIZE, l_ncl );1170}11711172/* family!.TYPES := ncache; */1173if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1174AssPRec( a_family, R_TYPES, l_ncache );1175}1176else {1177ASS_REC( a_family, R_TYPES, l_ncache );1178}11791180/* ncache[HASH_FLAGS( flags ) mod ncl + 1] := type; */1181t_4 = GF_HASH__FLAGS;1182t_3 = CALL_1ARGS( t_4, a_flags );1183CHECK_FUNC_RESULT( t_3 )1184t_2 = MOD( t_3, l_ncl );1185C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )1186CHECK_INT_POS( t_1 )1187C_ASS_LIST_FPL( l_ncache, t_1, l_type )11881189}11901191/* else */1192else {11931194/* cache[hash] := type; */1195C_ASS_LIST_FPL( l_cache, l_hash, l_type )11961197}1198/* fi */11991200/* family!.nTYPES := family!.nTYPES + 1; */1201if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1202t_2 = ElmPRec( a_family, R_nTYPES );1203}1204else {1205t_2 = ELM_REC( a_family, R_nTYPES );1206}1207C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )1208if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1209AssPRec( a_family, R_nTYPES, t_1 );1210}1211else {1212ASS_REC( a_family, R_nTYPES, t_1 );1213}12141215/* return type; */1216RES_BRK_CURR_STAT();1217SWITCH_TO_OLD_FRAME(oldFrame);1218return l_type;12191220/* return; */1221RES_BRK_CURR_STAT();1222SWITCH_TO_OLD_FRAME(oldFrame);1223return 0;1224}12251226/* handler for function 12 */1227static Obj HdlrFunc12 (1228Obj self,1229Obj a_typeOfTypes,1230Obj a_family )1231{1232Obj t_1 = 0;1233Obj t_2 = 0;1234Obj t_3 = 0;1235Obj t_4 = 0;1236Bag oldFrame;1237OLD_BRK_CURR_STAT12381239/* allocate new stack frame */1240SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1241REM_BRK_CURR_STAT();1242SET_BRK_CURR_STAT(0);12431244/* return NEW_TYPE( typeOfTypes, family, family!.IMP_FLAGS, false ); */1245t_2 = GF_NEW__TYPE;1246if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1247t_3 = ElmPRec( a_family, R_IMP__FLAGS );1248}1249else {1250t_3 = ELM_REC( a_family, R_IMP__FLAGS );1251}1252t_4 = False;1253t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, t_4 );1254CHECK_FUNC_RESULT( t_1 )1255RES_BRK_CURR_STAT();1256SWITCH_TO_OLD_FRAME(oldFrame);1257return t_1;12581259/* return; */1260RES_BRK_CURR_STAT();1261SWITCH_TO_OLD_FRAME(oldFrame);1262return 0;1263}12641265/* handler for function 13 */1266static Obj HdlrFunc13 (1267Obj self,1268Obj a_typeOfTypes,1269Obj a_family,1270Obj a_filter )1271{1272Obj t_1 = 0;1273Obj t_2 = 0;1274Obj t_3 = 0;1275Obj t_4 = 0;1276Obj t_5 = 0;1277Obj t_6 = 0;1278Obj t_7 = 0;1279Obj t_8 = 0;1280Obj t_9 = 0;1281Bag oldFrame;1282OLD_BRK_CURR_STAT12831284/* allocate new stack frame */1285SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1286REM_BRK_CURR_STAT();1287SET_BRK_CURR_STAT(0);12881289/* return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), false ); */1290t_2 = GF_NEW__TYPE;1291t_4 = GF_WITH__IMPS__FLAGS;1292t_6 = GF_AND__FLAGS;1293if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1294t_7 = ElmPRec( a_family, R_IMP__FLAGS );1295}1296else {1297t_7 = ELM_REC( a_family, R_IMP__FLAGS );1298}1299t_9 = GF_FLAGS__FILTER;1300t_8 = CALL_1ARGS( t_9, a_filter );1301CHECK_FUNC_RESULT( t_8 )1302t_5 = CALL_2ARGS( t_6, t_7, t_8 );1303CHECK_FUNC_RESULT( t_5 )1304t_3 = CALL_1ARGS( t_4, t_5 );1305CHECK_FUNC_RESULT( t_3 )1306t_4 = False;1307t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, t_4 );1308CHECK_FUNC_RESULT( t_1 )1309RES_BRK_CURR_STAT();1310SWITCH_TO_OLD_FRAME(oldFrame);1311return t_1;13121313/* return; */1314RES_BRK_CURR_STAT();1315SWITCH_TO_OLD_FRAME(oldFrame);1316return 0;1317}13181319/* handler for function 14 */1320static Obj HdlrFunc14 (1321Obj self,1322Obj a_typeOfTypes,1323Obj a_family,1324Obj a_filter,1325Obj a_data )1326{1327Obj t_1 = 0;1328Obj t_2 = 0;1329Obj t_3 = 0;1330Obj t_4 = 0;1331Obj t_5 = 0;1332Obj t_6 = 0;1333Obj t_7 = 0;1334Obj t_8 = 0;1335Obj t_9 = 0;1336Bag oldFrame;1337OLD_BRK_CURR_STAT13381339/* allocate new stack frame */1340SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1341REM_BRK_CURR_STAT();1342SET_BRK_CURR_STAT(0);13431344/* return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data ); */1345t_2 = GF_NEW__TYPE;1346t_4 = GF_WITH__IMPS__FLAGS;1347t_6 = GF_AND__FLAGS;1348if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1349t_7 = ElmPRec( a_family, R_IMP__FLAGS );1350}1351else {1352t_7 = ELM_REC( a_family, R_IMP__FLAGS );1353}1354t_9 = GF_FLAGS__FILTER;1355t_8 = CALL_1ARGS( t_9, a_filter );1356CHECK_FUNC_RESULT( t_8 )1357t_5 = CALL_2ARGS( t_6, t_7, t_8 );1358CHECK_FUNC_RESULT( t_5 )1359t_3 = CALL_1ARGS( t_4, t_5 );1360CHECK_FUNC_RESULT( t_3 )1361t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, a_data );1362CHECK_FUNC_RESULT( t_1 )1363RES_BRK_CURR_STAT();1364SWITCH_TO_OLD_FRAME(oldFrame);1365return t_1;13661367/* return; */1368RES_BRK_CURR_STAT();1369SWITCH_TO_OLD_FRAME(oldFrame);1370return 0;1371}13721373/* handler for function 15 */1374static Obj HdlrFunc15 (1375Obj self,1376Obj a_typeOfTypes,1377Obj a_family,1378Obj a_filter,1379Obj a_data,1380Obj a_stuff )1381{1382Obj l_type = 0;1383Obj t_1 = 0;1384Obj t_2 = 0;1385Obj t_3 = 0;1386Obj t_4 = 0;1387Obj t_5 = 0;1388Obj t_6 = 0;1389Obj t_7 = 0;1390Obj t_8 = 0;1391Obj t_9 = 0;1392Bag oldFrame;1393OLD_BRK_CURR_STAT13941395/* allocate new stack frame */1396SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1397REM_BRK_CURR_STAT();1398SET_BRK_CURR_STAT(0);13991400/* type := NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data ); */1401t_2 = GF_NEW__TYPE;1402t_4 = GF_WITH__IMPS__FLAGS;1403t_6 = GF_AND__FLAGS;1404if ( TNUM_OBJ(a_family) == T_COMOBJ ) {1405t_7 = ElmPRec( a_family, R_IMP__FLAGS );1406}1407else {1408t_7 = ELM_REC( a_family, R_IMP__FLAGS );1409}1410t_9 = GF_FLAGS__FILTER;1411t_8 = CALL_1ARGS( t_9, a_filter );1412CHECK_FUNC_RESULT( t_8 )1413t_5 = CALL_2ARGS( t_6, t_7, t_8 );1414CHECK_FUNC_RESULT( t_5 )1415t_3 = CALL_1ARGS( t_4, t_5 );1416CHECK_FUNC_RESULT( t_3 )1417t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, a_data );1418CHECK_FUNC_RESULT( t_1 )1419l_type = t_1;14201421/* type![POS_FIRST_FREE_TYPE] := stuff; */1422t_1 = GC_POS__FIRST__FREE__TYPE;1423CHECK_BOUND( t_1, "POS_FIRST_FREE_TYPE" )1424CHECK_INT_SMALL_POS( t_1 )1425C_ASS_POSOBJ( l_type, INT_INTOBJ(t_1), a_stuff )14261427/* return type; */1428RES_BRK_CURR_STAT();1429SWITCH_TO_OLD_FRAME(oldFrame);1430return l_type;14311432/* return; */1433RES_BRK_CURR_STAT();1434SWITCH_TO_OLD_FRAME(oldFrame);1435return 0;1436}14371438/* handler for function 16 */1439static Obj HdlrFunc16 (1440Obj self,1441Obj a_arg )1442{1443Obj l_type = 0;1444Obj t_1 = 0;1445Obj t_2 = 0;1446Obj t_3 = 0;1447Obj t_4 = 0;1448Obj t_5 = 0;1449Obj t_6 = 0;1450Obj t_7 = 0;1451Bag oldFrame;1452OLD_BRK_CURR_STAT14531454/* allocate new stack frame */1455SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1456REM_BRK_CURR_STAT();1457SET_BRK_CURR_STAT(0);14581459/* if not IsFamily( arg[1] ) then */1460t_4 = GF_IsFamily;1461C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(1) )1462t_3 = CALL_1ARGS( t_4, t_5 );1463CHECK_FUNC_RESULT( t_3 )1464CHECK_BOOL( t_3 )1465t_2 = (Obj)(UInt)(t_3 != False);1466t_1 = (Obj)(UInt)( ! ((Int)t_2) );1467if ( t_1 ) {14681469/* Error( "<family> must be a family" ); */1470t_1 = GF_Error;1471C_NEW_STRING( t_2, 25, "<family> must be a family" );1472CALL_1ARGS( t_1, t_2 );14731474}1475/* fi */14761477/* if LEN_LIST( arg ) = 1 then */1478t_3 = GF_LEN__LIST;1479t_2 = CALL_1ARGS( t_3, a_arg );1480CHECK_FUNC_RESULT( t_2 )1481t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(1) ));1482if ( t_1 ) {14831484/* type := NewType2( TypeOfTypes, arg[1] ); */1485t_2 = GF_NewType2;1486t_3 = GC_TypeOfTypes;1487CHECK_BOUND( t_3, "TypeOfTypes" )1488C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )1489t_1 = CALL_2ARGS( t_2, t_3, t_4 );1490CHECK_FUNC_RESULT( t_1 )1491l_type = t_1;14921493}14941495/* elif LEN_LIST( arg ) = 2 then */1496else {1497t_3 = GF_LEN__LIST;1498t_2 = CALL_1ARGS( t_3, a_arg );1499CHECK_FUNC_RESULT( t_2 )1500t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));1501if ( t_1 ) {15021503/* type := NewType3( TypeOfTypes, arg[1], arg[2] ); */1504t_2 = GF_NewType3;1505t_3 = GC_TypeOfTypes;1506CHECK_BOUND( t_3, "TypeOfTypes" )1507C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )1508C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )1509t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );1510CHECK_FUNC_RESULT( t_1 )1511l_type = t_1;15121513}15141515/* elif LEN_LIST( arg ) = 3 then */1516else {1517t_3 = GF_LEN__LIST;1518t_2 = CALL_1ARGS( t_3, a_arg );1519CHECK_FUNC_RESULT( t_2 )1520t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(3) ));1521if ( t_1 ) {15221523/* type := NewType4( TypeOfTypes, arg[1], arg[2], arg[3] ); */1524t_2 = GF_NewType4;1525t_3 = GC_TypeOfTypes;1526CHECK_BOUND( t_3, "TypeOfTypes" )1527C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )1528C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )1529C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )1530t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );1531CHECK_FUNC_RESULT( t_1 )1532l_type = t_1;15331534}15351536/* elif LEN_LIST( arg ) = 4 then */1537else {1538t_3 = GF_LEN__LIST;1539t_2 = CALL_1ARGS( t_3, a_arg );1540CHECK_FUNC_RESULT( t_2 )1541t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(4) ));1542if ( t_1 ) {15431544/* type := NewType5( TypeOfTypes, arg[1], arg[2], arg[3], arg[4] ); */1545t_2 = GF_NewType5;1546t_3 = GC_TypeOfTypes;1547CHECK_BOUND( t_3, "TypeOfTypes" )1548C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )1549C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )1550C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )1551C_ELM_LIST_FPL( t_7, a_arg, INTOBJ_INT(4) )1552t_1 = CALL_5ARGS( t_2, t_3, t_4, t_5, t_6, t_7 );1553CHECK_FUNC_RESULT( t_1 )1554l_type = t_1;15551556}15571558/* else */1559else {15601561/* Error( "usage: NewType( <family> [, <filter> [, <data> ]] )" ); */1562t_1 = GF_Error;1563C_NEW_STRING( t_2, 51, "usage: NewType( <family> [, <filter> [, <data> ]] )" );1564CALL_1ARGS( t_1, t_2 );15651566}1567}1568}1569}1570/* fi */15711572/* return type; */1573CHECK_BOUND( l_type, "type" )1574RES_BRK_CURR_STAT();1575SWITCH_TO_OLD_FRAME(oldFrame);1576return l_type;15771578/* return; */1579RES_BRK_CURR_STAT();1580SWITCH_TO_OLD_FRAME(oldFrame);1581return 0;1582}15831584/* handler for function 17 */1585static Obj HdlrFunc17 (1586Obj self,1587Obj a_type,1588Obj a_filter )1589{1590Obj l_new = 0;1591Obj l_i = 0;1592Obj t_1 = 0;1593Obj t_2 = 0;1594Obj t_3 = 0;1595Obj t_4 = 0;1596Obj t_5 = 0;1597Obj t_6 = 0;1598Obj t_7 = 0;1599Obj t_8 = 0;1600Obj t_9 = 0;1601Obj t_10 = 0;1602Obj t_11 = 0;1603Bag oldFrame;1604OLD_BRK_CURR_STAT16051606/* allocate new stack frame */1607SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1608REM_BRK_CURR_STAT();1609SET_BRK_CURR_STAT(0);16101611/* new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), type![POS_DATA_TYPE] ); */1612t_2 = GF_NEW__TYPE;1613t_3 = GC_TypeOfTypes;1614CHECK_BOUND( t_3, "TypeOfTypes" )1615C_ELM_POSOBJ_NLE( t_4, a_type, 1 );1616t_6 = GF_WITH__IMPS__FLAGS;1617t_8 = GF_AND__FLAGS;1618C_ELM_POSOBJ_NLE( t_9, a_type, 2 );1619t_11 = GF_FLAGS__FILTER;1620t_10 = CALL_1ARGS( t_11, a_filter );1621CHECK_FUNC_RESULT( t_10 )1622t_7 = CALL_2ARGS( t_8, t_9, t_10 );1623CHECK_FUNC_RESULT( t_7 )1624t_5 = CALL_1ARGS( t_6, t_7 );1625CHECK_FUNC_RESULT( t_5 )1626t_7 = GC_POS__DATA__TYPE;1627CHECK_BOUND( t_7, "POS_DATA_TYPE" )1628CHECK_INT_SMALL_POS( t_7 )1629C_ELM_POSOBJ_NLE( t_6, a_type, INT_INTOBJ(t_7) );1630t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );1631CHECK_FUNC_RESULT( t_1 )1632l_new = t_1;16331634/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */1635t_2 = GC_POS__FIRST__FREE__TYPE;1636CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )1637CHECK_INT_SMALL( t_2 )1638t_4 = GF_LEN__POSOBJ;1639t_3 = CALL_1ARGS( t_4, a_type );1640CHECK_FUNC_RESULT( t_3 )1641CHECK_INT_SMALL( t_3 )1642for ( t_1 = t_2;1643((Int)t_1) <= ((Int)t_3);1644t_1 = (Obj)(((UInt)t_1)+4) ) {1645l_i = t_1;16461647/* if IsBound( type![i]) then */1648CHECK_INT_SMALL_POS( l_i )1649if ( TNUM_OBJ(a_type) == T_POSOBJ ) {1650t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-11651&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);1652}1653else {1654t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);1655}1656t_4 = (Obj)(UInt)(t_5 != False);1657if ( t_4 ) {16581659/* new![i] := type![i]; */1660C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );1661C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )16621663}1664/* fi */16651666}1667/* od */16681669/* return new; */1670RES_BRK_CURR_STAT();1671SWITCH_TO_OLD_FRAME(oldFrame);1672return l_new;16731674/* return; */1675RES_BRK_CURR_STAT();1676SWITCH_TO_OLD_FRAME(oldFrame);1677return 0;1678}16791680/* handler for function 18 */1681static Obj HdlrFunc18 (1682Obj self,1683Obj a_type,1684Obj a_filter,1685Obj a_data )1686{1687Obj l_new = 0;1688Obj l_i = 0;1689Obj t_1 = 0;1690Obj t_2 = 0;1691Obj t_3 = 0;1692Obj t_4 = 0;1693Obj t_5 = 0;1694Obj t_6 = 0;1695Obj t_7 = 0;1696Obj t_8 = 0;1697Obj t_9 = 0;1698Obj t_10 = 0;1699Obj t_11 = 0;1700Bag oldFrame;1701OLD_BRK_CURR_STAT17021703/* allocate new stack frame */1704SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1705REM_BRK_CURR_STAT();1706SET_BRK_CURR_STAT(0);17071708/* new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), data ); */1709t_2 = GF_NEW__TYPE;1710t_3 = GC_TypeOfTypes;1711CHECK_BOUND( t_3, "TypeOfTypes" )1712C_ELM_POSOBJ_NLE( t_4, a_type, 1 );1713t_6 = GF_WITH__IMPS__FLAGS;1714t_8 = GF_AND__FLAGS;1715C_ELM_POSOBJ_NLE( t_9, a_type, 2 );1716t_11 = GF_FLAGS__FILTER;1717t_10 = CALL_1ARGS( t_11, a_filter );1718CHECK_FUNC_RESULT( t_10 )1719t_7 = CALL_2ARGS( t_8, t_9, t_10 );1720CHECK_FUNC_RESULT( t_7 )1721t_5 = CALL_1ARGS( t_6, t_7 );1722CHECK_FUNC_RESULT( t_5 )1723t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, a_data );1724CHECK_FUNC_RESULT( t_1 )1725l_new = t_1;17261727/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */1728t_2 = GC_POS__FIRST__FREE__TYPE;1729CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )1730CHECK_INT_SMALL( t_2 )1731t_4 = GF_LEN__POSOBJ;1732t_3 = CALL_1ARGS( t_4, a_type );1733CHECK_FUNC_RESULT( t_3 )1734CHECK_INT_SMALL( t_3 )1735for ( t_1 = t_2;1736((Int)t_1) <= ((Int)t_3);1737t_1 = (Obj)(((UInt)t_1)+4) ) {1738l_i = t_1;17391740/* if IsBound( type![i]) then */1741CHECK_INT_SMALL_POS( l_i )1742if ( TNUM_OBJ(a_type) == T_POSOBJ ) {1743t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-11744&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);1745}1746else {1747t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);1748}1749t_4 = (Obj)(UInt)(t_5 != False);1750if ( t_4 ) {17511752/* new![i] := type![i]; */1753C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );1754C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )17551756}1757/* fi */17581759}1760/* od */17611762/* return new; */1763RES_BRK_CURR_STAT();1764SWITCH_TO_OLD_FRAME(oldFrame);1765return l_new;17661767/* return; */1768RES_BRK_CURR_STAT();1769SWITCH_TO_OLD_FRAME(oldFrame);1770return 0;1771}17721773/* handler for function 19 */1774static Obj HdlrFunc19 (1775Obj self,1776Obj a_arg )1777{1778Obj t_1 = 0;1779Obj t_2 = 0;1780Obj t_3 = 0;1781Obj t_4 = 0;1782Obj t_5 = 0;1783Bag oldFrame;1784OLD_BRK_CURR_STAT17851786/* allocate new stack frame */1787SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1788REM_BRK_CURR_STAT();1789SET_BRK_CURR_STAT(0);17901791/* if not IsType( arg[1] ) then */1792t_4 = GF_IsType;1793C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(1) )1794t_3 = CALL_1ARGS( t_4, t_5 );1795CHECK_FUNC_RESULT( t_3 )1796CHECK_BOOL( t_3 )1797t_2 = (Obj)(UInt)(t_3 != False);1798t_1 = (Obj)(UInt)( ! ((Int)t_2) );1799if ( t_1 ) {18001801/* Error( "<type> must be a type" ); */1802t_1 = GF_Error;1803C_NEW_STRING( t_2, 21, "<type> must be a type" );1804CALL_1ARGS( t_1, t_2 );18051806}1807/* fi */18081809/* if LEN_LIST( arg ) = 2 then */1810t_3 = GF_LEN__LIST;1811t_2 = CALL_1ARGS( t_3, a_arg );1812CHECK_FUNC_RESULT( t_2 )1813t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));1814if ( t_1 ) {18151816/* return Subtype2( arg[1], arg[2] ); */1817t_2 = GF_Subtype2;1818C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )1819C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )1820t_1 = CALL_2ARGS( t_2, t_3, t_4 );1821CHECK_FUNC_RESULT( t_1 )1822RES_BRK_CURR_STAT();1823SWITCH_TO_OLD_FRAME(oldFrame);1824return t_1;18251826}18271828/* else */1829else {18301831/* return Subtype3( arg[1], arg[2], arg[3] ); */1832t_2 = GF_Subtype3;1833C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )1834C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )1835C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(3) )1836t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );1837CHECK_FUNC_RESULT( t_1 )1838RES_BRK_CURR_STAT();1839SWITCH_TO_OLD_FRAME(oldFrame);1840return t_1;18411842}1843/* fi */18441845/* return; */1846RES_BRK_CURR_STAT();1847SWITCH_TO_OLD_FRAME(oldFrame);1848return 0;18491850/* return; */1851RES_BRK_CURR_STAT();1852SWITCH_TO_OLD_FRAME(oldFrame);1853return 0;1854}18551856/* handler for function 20 */1857static Obj HdlrFunc20 (1858Obj self,1859Obj a_type,1860Obj a_filter )1861{1862Obj l_new = 0;1863Obj l_i = 0;1864Obj t_1 = 0;1865Obj t_2 = 0;1866Obj t_3 = 0;1867Obj t_4 = 0;1868Obj t_5 = 0;1869Obj t_6 = 0;1870Obj t_7 = 0;1871Obj t_8 = 0;1872Obj t_9 = 0;1873Bag oldFrame;1874OLD_BRK_CURR_STAT18751876/* allocate new stack frame */1877SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1878REM_BRK_CURR_STAT();1879SET_BRK_CURR_STAT(0);18801881/* new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), type![POS_DATA_TYPE] ); */1882t_2 = GF_NEW__TYPE;1883t_3 = GC_TypeOfTypes;1884CHECK_BOUND( t_3, "TypeOfTypes" )1885C_ELM_POSOBJ_NLE( t_4, a_type, 1 );1886t_6 = GF_SUB__FLAGS;1887C_ELM_POSOBJ_NLE( t_7, a_type, 2 );1888t_9 = GF_FLAGS__FILTER;1889t_8 = CALL_1ARGS( t_9, a_filter );1890CHECK_FUNC_RESULT( t_8 )1891t_5 = CALL_2ARGS( t_6, t_7, t_8 );1892CHECK_FUNC_RESULT( t_5 )1893t_7 = GC_POS__DATA__TYPE;1894CHECK_BOUND( t_7, "POS_DATA_TYPE" )1895CHECK_INT_SMALL_POS( t_7 )1896C_ELM_POSOBJ_NLE( t_6, a_type, INT_INTOBJ(t_7) );1897t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );1898CHECK_FUNC_RESULT( t_1 )1899l_new = t_1;19001901/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */1902t_2 = GC_POS__FIRST__FREE__TYPE;1903CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )1904CHECK_INT_SMALL( t_2 )1905t_4 = GF_LEN__POSOBJ;1906t_3 = CALL_1ARGS( t_4, a_type );1907CHECK_FUNC_RESULT( t_3 )1908CHECK_INT_SMALL( t_3 )1909for ( t_1 = t_2;1910((Int)t_1) <= ((Int)t_3);1911t_1 = (Obj)(((UInt)t_1)+4) ) {1912l_i = t_1;19131914/* if IsBound( type![i]) then */1915CHECK_INT_SMALL_POS( l_i )1916if ( TNUM_OBJ(a_type) == T_POSOBJ ) {1917t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-11918&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);1919}1920else {1921t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);1922}1923t_4 = (Obj)(UInt)(t_5 != False);1924if ( t_4 ) {19251926/* new![i] := type![i]; */1927C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );1928C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )19291930}1931/* fi */19321933}1934/* od */19351936/* return new; */1937RES_BRK_CURR_STAT();1938SWITCH_TO_OLD_FRAME(oldFrame);1939return l_new;19401941/* return; */1942RES_BRK_CURR_STAT();1943SWITCH_TO_OLD_FRAME(oldFrame);1944return 0;1945}19461947/* handler for function 21 */1948static Obj HdlrFunc21 (1949Obj self,1950Obj a_type,1951Obj a_filter,1952Obj a_data )1953{1954Obj l_new = 0;1955Obj l_i = 0;1956Obj t_1 = 0;1957Obj t_2 = 0;1958Obj t_3 = 0;1959Obj t_4 = 0;1960Obj t_5 = 0;1961Obj t_6 = 0;1962Obj t_7 = 0;1963Obj t_8 = 0;1964Obj t_9 = 0;1965Bag oldFrame;1966OLD_BRK_CURR_STAT19671968/* allocate new stack frame */1969SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);1970REM_BRK_CURR_STAT();1971SET_BRK_CURR_STAT(0);19721973/* new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), data ); */1974t_2 = GF_NEW__TYPE;1975t_3 = GC_TypeOfTypes;1976CHECK_BOUND( t_3, "TypeOfTypes" )1977C_ELM_POSOBJ_NLE( t_4, a_type, 1 );1978t_6 = GF_SUB__FLAGS;1979C_ELM_POSOBJ_NLE( t_7, a_type, 2 );1980t_9 = GF_FLAGS__FILTER;1981t_8 = CALL_1ARGS( t_9, a_filter );1982CHECK_FUNC_RESULT( t_8 )1983t_5 = CALL_2ARGS( t_6, t_7, t_8 );1984CHECK_FUNC_RESULT( t_5 )1985t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, a_data );1986CHECK_FUNC_RESULT( t_1 )1987l_new = t_1;19881989/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */1990t_2 = GC_POS__FIRST__FREE__TYPE;1991CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )1992CHECK_INT_SMALL( t_2 )1993t_4 = GF_LEN__POSOBJ;1994t_3 = CALL_1ARGS( t_4, a_type );1995CHECK_FUNC_RESULT( t_3 )1996CHECK_INT_SMALL( t_3 )1997for ( t_1 = t_2;1998((Int)t_1) <= ((Int)t_3);1999t_1 = (Obj)(((UInt)t_1)+4) ) {2000l_i = t_1;20012002/* if IsBound( type![i]) then */2003CHECK_INT_SMALL_POS( l_i )2004if ( TNUM_OBJ(a_type) == T_POSOBJ ) {2005t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-12006&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);2007}2008else {2009t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);2010}2011t_4 = (Obj)(UInt)(t_5 != False);2012if ( t_4 ) {20132014/* new![i] := type![i]; */2015C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );2016C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )20172018}2019/* fi */20202021}2022/* od */20232024/* return new; */2025RES_BRK_CURR_STAT();2026SWITCH_TO_OLD_FRAME(oldFrame);2027return l_new;20282029/* return; */2030RES_BRK_CURR_STAT();2031SWITCH_TO_OLD_FRAME(oldFrame);2032return 0;2033}20342035/* handler for function 22 */2036static Obj HdlrFunc22 (2037Obj self,2038Obj a_arg )2039{2040Obj t_1 = 0;2041Obj t_2 = 0;2042Obj t_3 = 0;2043Obj t_4 = 0;2044Obj t_5 = 0;2045Bag oldFrame;2046OLD_BRK_CURR_STAT20472048/* allocate new stack frame */2049SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2050REM_BRK_CURR_STAT();2051SET_BRK_CURR_STAT(0);20522053/* if not IsType( arg[1] ) then */2054t_4 = GF_IsType;2055C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(1) )2056t_3 = CALL_1ARGS( t_4, t_5 );2057CHECK_FUNC_RESULT( t_3 )2058CHECK_BOOL( t_3 )2059t_2 = (Obj)(UInt)(t_3 != False);2060t_1 = (Obj)(UInt)( ! ((Int)t_2) );2061if ( t_1 ) {20622063/* Error( "<type> must be a type" ); */2064t_1 = GF_Error;2065C_NEW_STRING( t_2, 21, "<type> must be a type" );2066CALL_1ARGS( t_1, t_2 );20672068}2069/* fi */20702071/* if LEN_LIST( arg ) = 2 then */2072t_3 = GF_LEN__LIST;2073t_2 = CALL_1ARGS( t_3, a_arg );2074CHECK_FUNC_RESULT( t_2 )2075t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));2076if ( t_1 ) {20772078/* return SupType2( arg[1], arg[2] ); */2079t_2 = GF_SupType2;2080C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )2081C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )2082t_1 = CALL_2ARGS( t_2, t_3, t_4 );2083CHECK_FUNC_RESULT( t_1 )2084RES_BRK_CURR_STAT();2085SWITCH_TO_OLD_FRAME(oldFrame);2086return t_1;20872088}20892090/* else */2091else {20922093/* return SupType3( arg[1], arg[2], arg[3] ); */2094t_2 = GF_SupType3;2095C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )2096C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )2097C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(3) )2098t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );2099CHECK_FUNC_RESULT( t_1 )2100RES_BRK_CURR_STAT();2101SWITCH_TO_OLD_FRAME(oldFrame);2102return t_1;21032104}2105/* fi */21062107/* return; */2108RES_BRK_CURR_STAT();2109SWITCH_TO_OLD_FRAME(oldFrame);2110return 0;21112112/* return; */2113RES_BRK_CURR_STAT();2114SWITCH_TO_OLD_FRAME(oldFrame);2115return 0;2116}21172118/* handler for function 23 */2119static Obj HdlrFunc23 (2120Obj self,2121Obj a_K )2122{2123Obj t_1 = 0;2124Bag oldFrame;2125OLD_BRK_CURR_STAT21262127/* allocate new stack frame */2128SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2129REM_BRK_CURR_STAT();2130SET_BRK_CURR_STAT(0);21312132/* return K![1]; */2133C_ELM_POSOBJ_NLE( t_1, a_K, 1 );2134RES_BRK_CURR_STAT();2135SWITCH_TO_OLD_FRAME(oldFrame);2136return t_1;21372138/* return; */2139RES_BRK_CURR_STAT();2140SWITCH_TO_OLD_FRAME(oldFrame);2141return 0;2142}21432144/* handler for function 24 */2145static Obj HdlrFunc24 (2146Obj self,2147Obj a_K )2148{2149Obj t_1 = 0;2150Bag oldFrame;2151OLD_BRK_CURR_STAT21522153/* allocate new stack frame */2154SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2155REM_BRK_CURR_STAT();2156SET_BRK_CURR_STAT(0);21572158/* return K![2]; */2159C_ELM_POSOBJ_NLE( t_1, a_K, 2 );2160RES_BRK_CURR_STAT();2161SWITCH_TO_OLD_FRAME(oldFrame);2162return t_1;21632164/* return; */2165RES_BRK_CURR_STAT();2166SWITCH_TO_OLD_FRAME(oldFrame);2167return 0;2168}21692170/* handler for function 25 */2171static Obj HdlrFunc25 (2172Obj self,2173Obj a_K )2174{2175Obj t_1 = 0;2176Obj t_2 = 0;2177Bag oldFrame;2178OLD_BRK_CURR_STAT21792180/* allocate new stack frame */2181SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2182REM_BRK_CURR_STAT();2183SET_BRK_CURR_STAT(0);21842185/* return K![POS_DATA_TYPE]; */2186t_2 = GC_POS__DATA__TYPE;2187CHECK_BOUND( t_2, "POS_DATA_TYPE" )2188CHECK_INT_SMALL_POS( t_2 )2189C_ELM_POSOBJ_NLE( t_1, a_K, INT_INTOBJ(t_2) );2190RES_BRK_CURR_STAT();2191SWITCH_TO_OLD_FRAME(oldFrame);2192return t_1;21932194/* return; */2195RES_BRK_CURR_STAT();2196SWITCH_TO_OLD_FRAME(oldFrame);2197return 0;2198}21992200/* handler for function 26 */2201static Obj HdlrFunc26 (2202Obj self,2203Obj a_K,2204Obj a_data )2205{2206Obj t_1 = 0;2207Bag oldFrame;2208OLD_BRK_CURR_STAT22092210/* allocate new stack frame */2211SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2212REM_BRK_CURR_STAT();2213SET_BRK_CURR_STAT(0);22142215/* K![POS_DATA_TYPE] := data; */2216t_1 = GC_POS__DATA__TYPE;2217CHECK_BOUND( t_1, "POS_DATA_TYPE" )2218CHECK_INT_SMALL_POS( t_1 )2219C_ASS_POSOBJ( a_K, INT_INTOBJ(t_1), a_data )22202221/* return; */2222RES_BRK_CURR_STAT();2223SWITCH_TO_OLD_FRAME(oldFrame);2224return 0;22252226/* return; */2227RES_BRK_CURR_STAT();2228SWITCH_TO_OLD_FRAME(oldFrame);2229return 0;2230}22312232/* handler for function 27 */2233static Obj HdlrFunc27 (2234Obj self,2235Obj a_K )2236{2237Obj t_1 = 0;2238Obj t_2 = 0;2239Bag oldFrame;2240OLD_BRK_CURR_STAT22412242/* allocate new stack frame */2243SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2244REM_BRK_CURR_STAT();2245SET_BRK_CURR_STAT(0);22462247/* return K![POS_DATA_TYPE]; */2248t_2 = GC_POS__DATA__TYPE;2249CHECK_BOUND( t_2, "POS_DATA_TYPE" )2250CHECK_INT_SMALL_POS( t_2 )2251C_ELM_POSOBJ_NLE( t_1, a_K, INT_INTOBJ(t_2) );2252RES_BRK_CURR_STAT();2253SWITCH_TO_OLD_FRAME(oldFrame);2254return t_1;22552256/* return; */2257RES_BRK_CURR_STAT();2258SWITCH_TO_OLD_FRAME(oldFrame);2259return 0;2260}22612262/* handler for function 28 */2263static Obj HdlrFunc28 (2264Obj self,2265Obj a_obj )2266{2267Obj t_1 = 0;2268Obj t_2 = 0;2269Obj t_3 = 0;2270Obj t_4 = 0;2271Bag oldFrame;2272OLD_BRK_CURR_STAT22732274/* allocate new stack frame */2275SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2276REM_BRK_CURR_STAT();2277SET_BRK_CURR_STAT(0);22782279/* return FlagsType( TypeObj( obj ) ); */2280t_2 = GF_FlagsType;2281t_4 = GF_TypeObj;2282t_3 = CALL_1ARGS( t_4, a_obj );2283CHECK_FUNC_RESULT( t_3 )2284t_1 = CALL_1ARGS( t_2, t_3 );2285CHECK_FUNC_RESULT( t_1 )2286RES_BRK_CURR_STAT();2287SWITCH_TO_OLD_FRAME(oldFrame);2288return t_1;22892290/* return; */2291RES_BRK_CURR_STAT();2292SWITCH_TO_OLD_FRAME(oldFrame);2293return 0;2294}22952296/* handler for function 29 */2297static Obj HdlrFunc29 (2298Obj self,2299Obj a_obj )2300{2301Obj t_1 = 0;2302Obj t_2 = 0;2303Obj t_3 = 0;2304Obj t_4 = 0;2305Bag oldFrame;2306OLD_BRK_CURR_STAT23072308/* allocate new stack frame */2309SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2310REM_BRK_CURR_STAT();2311SET_BRK_CURR_STAT(0);23122313/* return DataType( TypeObj( obj ) ); */2314t_2 = GF_DataType;2315t_4 = GF_TypeObj;2316t_3 = CALL_1ARGS( t_4, a_obj );2317CHECK_FUNC_RESULT( t_3 )2318t_1 = CALL_1ARGS( t_2, t_3 );2319CHECK_FUNC_RESULT( t_1 )2320RES_BRK_CURR_STAT();2321SWITCH_TO_OLD_FRAME(oldFrame);2322return t_1;23232324/* return; */2325RES_BRK_CURR_STAT();2326SWITCH_TO_OLD_FRAME(oldFrame);2327return 0;2328}23292330/* handler for function 30 */2331static Obj HdlrFunc30 (2332Obj self,2333Obj a_obj )2334{2335Obj t_1 = 0;2336Obj t_2 = 0;2337Obj t_3 = 0;2338Obj t_4 = 0;2339Bag oldFrame;2340OLD_BRK_CURR_STAT23412342/* allocate new stack frame */2343SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2344REM_BRK_CURR_STAT();2345SET_BRK_CURR_STAT(0);23462347/* return SharedType( TypeObj( obj ) ); */2348t_2 = GF_SharedType;2349t_4 = GF_TypeObj;2350t_3 = CALL_1ARGS( t_4, a_obj );2351CHECK_FUNC_RESULT( t_3 )2352t_1 = CALL_1ARGS( t_2, t_3 );2353CHECK_FUNC_RESULT( t_1 )2354RES_BRK_CURR_STAT();2355SWITCH_TO_OLD_FRAME(oldFrame);2356return t_1;23572358/* return; */2359RES_BRK_CURR_STAT();2360SWITCH_TO_OLD_FRAME(oldFrame);2361return 0;2362}23632364/* handler for function 31 */2365static Obj HdlrFunc31 (2366Obj self,2367Obj a_type,2368Obj a_obj )2369{2370Obj t_1 = 0;2371Obj t_2 = 0;2372Obj t_3 = 0;2373Obj t_4 = 0;2374Bag oldFrame;2375OLD_BRK_CURR_STAT23762377/* allocate new stack frame */2378SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2379REM_BRK_CURR_STAT();2380SET_BRK_CURR_STAT(0);23812382/* if not IsType( type ) then */2383t_4 = GF_IsType;2384t_3 = CALL_1ARGS( t_4, a_type );2385CHECK_FUNC_RESULT( t_3 )2386CHECK_BOOL( t_3 )2387t_2 = (Obj)(UInt)(t_3 != False);2388t_1 = (Obj)(UInt)( ! ((Int)t_2) );2389if ( t_1 ) {23902391/* Error( "<type> must be a type" ); */2392t_1 = GF_Error;2393C_NEW_STRING( t_2, 21, "<type> must be a type" );2394CALL_1ARGS( t_1, t_2 );23952396}2397/* fi */23982399/* if IS_LIST( obj ) then */2400t_3 = GF_IS__LIST;2401t_2 = CALL_1ARGS( t_3, a_obj );2402CHECK_FUNC_RESULT( t_2 )2403CHECK_BOOL( t_2 )2404t_1 = (Obj)(UInt)(t_2 != False);2405if ( t_1 ) {24062407/* SET_TYPE_POSOBJ( obj, type ); */2408t_1 = GF_SET__TYPE__POSOBJ;2409CALL_2ARGS( t_1, a_obj, a_type );24102411}24122413/* elif IS_REC( obj ) then */2414else {2415t_3 = GF_IS__REC;2416t_2 = CALL_1ARGS( t_3, a_obj );2417CHECK_FUNC_RESULT( t_2 )2418CHECK_BOOL( t_2 )2419t_1 = (Obj)(UInt)(t_2 != False);2420if ( t_1 ) {24212422/* SET_TYPE_COMOBJ( obj, type ); */2423t_1 = GF_SET__TYPE__COMOBJ;2424CALL_2ARGS( t_1, a_obj, a_type );24252426}2427}2428/* fi */24292430/* if not IsNoImmediateMethodsObject( obj ) then */2431t_4 = GF_IsNoImmediateMethodsObject;2432t_3 = CALL_1ARGS( t_4, a_obj );2433CHECK_FUNC_RESULT( t_3 )2434CHECK_BOOL( t_3 )2435t_2 = (Obj)(UInt)(t_3 != False);2436t_1 = (Obj)(UInt)( ! ((Int)t_2) );2437if ( t_1 ) {24382439/* RunImmediateMethods( obj, type![2] ); */2440t_1 = GF_RunImmediateMethods;2441C_ELM_POSOBJ_NLE( t_2, a_type, 2 );2442CALL_2ARGS( t_1, a_obj, t_2 );24432444}2445/* fi */24462447/* return obj; */2448RES_BRK_CURR_STAT();2449SWITCH_TO_OLD_FRAME(oldFrame);2450return a_obj;24512452/* return; */2453RES_BRK_CURR_STAT();2454SWITCH_TO_OLD_FRAME(oldFrame);2455return 0;2456}24572458/* handler for function 32 */2459static Obj HdlrFunc32 (2460Obj self,2461Obj a_type,2462Obj a_obj )2463{2464Obj t_1 = 0;2465Obj t_2 = 0;2466Obj t_3 = 0;2467Obj t_4 = 0;2468Bag oldFrame;2469OLD_BRK_CURR_STAT24702471/* allocate new stack frame */2472SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2473REM_BRK_CURR_STAT();2474SET_BRK_CURR_STAT(0);24752476/* if not IsType( type ) then */2477t_4 = GF_IsType;2478t_3 = CALL_1ARGS( t_4, a_type );2479CHECK_FUNC_RESULT( t_3 )2480CHECK_BOOL( t_3 )2481t_2 = (Obj)(UInt)(t_3 != False);2482t_1 = (Obj)(UInt)( ! ((Int)t_2) );2483if ( t_1 ) {24842485/* Error( "<type> must be a type" ); */2486t_1 = GF_Error;2487C_NEW_STRING( t_2, 21, "<type> must be a type" );2488CALL_1ARGS( t_1, t_2 );24892490}2491/* fi */24922493/* if IS_POSOBJ( obj ) then */2494t_3 = GF_IS__POSOBJ;2495t_2 = CALL_1ARGS( t_3, a_obj );2496CHECK_FUNC_RESULT( t_2 )2497CHECK_BOOL( t_2 )2498t_1 = (Obj)(UInt)(t_2 != False);2499if ( t_1 ) {25002501/* SET_TYPE_POSOBJ( obj, type ); */2502t_1 = GF_SET__TYPE__POSOBJ;2503CALL_2ARGS( t_1, a_obj, a_type );25042505}25062507/* elif IS_COMOBJ( obj ) then */2508else {2509t_3 = GF_IS__COMOBJ;2510t_2 = CALL_1ARGS( t_3, a_obj );2511CHECK_FUNC_RESULT( t_2 )2512CHECK_BOOL( t_2 )2513t_1 = (Obj)(UInt)(t_2 != False);2514if ( t_1 ) {25152516/* SET_TYPE_COMOBJ( obj, type ); */2517t_1 = GF_SET__TYPE__COMOBJ;2518CALL_2ARGS( t_1, a_obj, a_type );25192520}25212522/* elif IS_DATOBJ( obj ) then */2523else {2524t_3 = GF_IS__DATOBJ;2525t_2 = CALL_1ARGS( t_3, a_obj );2526CHECK_FUNC_RESULT( t_2 )2527CHECK_BOOL( t_2 )2528t_1 = (Obj)(UInt)(t_2 != False);2529if ( t_1 ) {25302531/* SET_TYPE_DATOBJ( obj, type ); */2532t_1 = GF_SET__TYPE__DATOBJ;2533CALL_2ARGS( t_1, a_obj, a_type );25342535}2536}2537}2538/* fi */25392540/* if not IsNoImmediateMethodsObject( obj ) then */2541t_4 = GF_IsNoImmediateMethodsObject;2542t_3 = CALL_1ARGS( t_4, a_obj );2543CHECK_FUNC_RESULT( t_3 )2544CHECK_BOOL( t_3 )2545t_2 = (Obj)(UInt)(t_3 != False);2546t_1 = (Obj)(UInt)( ! ((Int)t_2) );2547if ( t_1 ) {25482549/* RunImmediateMethods( obj, type![2] ); */2550t_1 = GF_RunImmediateMethods;2551C_ELM_POSOBJ_NLE( t_2, a_type, 2 );2552CALL_2ARGS( t_1, a_obj, t_2 );25532554}2555/* fi */25562557/* return obj; */2558RES_BRK_CURR_STAT();2559SWITCH_TO_OLD_FRAME(oldFrame);2560return a_obj;25612562/* return; */2563RES_BRK_CURR_STAT();2564SWITCH_TO_OLD_FRAME(oldFrame);2565return 0;2566}25672568/* handler for function 33 */2569static Obj HdlrFunc33 (2570Obj self,2571Obj a_obj,2572Obj a_filter )2573{2574Obj l_type = 0;2575Obj l_newtype = 0;2576Obj t_1 = 0;2577Obj t_2 = 0;2578Obj t_3 = 0;2579Obj t_4 = 0;2580Obj t_5 = 0;2581Obj t_6 = 0;2582Bag oldFrame;2583OLD_BRK_CURR_STAT25842585/* allocate new stack frame */2586SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2587REM_BRK_CURR_STAT();2588SET_BRK_CURR_STAT(0);25892590/* if IS_POSOBJ( obj ) then */2591t_3 = GF_IS__POSOBJ;2592t_2 = CALL_1ARGS( t_3, a_obj );2593CHECK_FUNC_RESULT( t_2 )2594CHECK_BOOL( t_2 )2595t_1 = (Obj)(UInt)(t_2 != False);2596if ( t_1 ) {25972598/* type := TYPE_OBJ( obj ); */2599t_2 = GF_TYPE__OBJ;2600t_1 = CALL_1ARGS( t_2, a_obj );2601CHECK_FUNC_RESULT( t_1 )2602l_type = t_1;26032604/* newtype := Subtype2( type, filter ); */2605t_2 = GF_Subtype2;2606t_1 = CALL_2ARGS( t_2, l_type, a_filter );2607CHECK_FUNC_RESULT( t_1 )2608l_newtype = t_1;26092610/* SET_TYPE_POSOBJ( obj, newtype ); */2611t_1 = GF_SET__TYPE__POSOBJ;2612CALL_2ARGS( t_1, a_obj, l_newtype );26132614/* if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then */2615t_4 = GC_IGNORE__IMMEDIATE__METHODS;2616CHECK_BOUND( t_4, "IGNORE_IMMEDIATE_METHODS" )2617CHECK_BOOL( t_4 )2618t_3 = (Obj)(UInt)(t_4 != False);2619t_2 = t_3;2620if ( ! t_2 ) {2621t_6 = GF_IsNoImmediateMethodsObject;2622t_5 = CALL_1ARGS( t_6, a_obj );2623CHECK_FUNC_RESULT( t_5 )2624CHECK_BOOL( t_5 )2625t_4 = (Obj)(UInt)(t_5 != False);2626t_2 = t_4;2627}2628t_1 = (Obj)(UInt)( ! ((Int)t_2) );2629if ( t_1 ) {26302631/* RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) ); */2632t_1 = GF_RunImmediateMethods;2633t_3 = GF_SUB__FLAGS;2634C_ELM_POSOBJ_NLE( t_4, l_newtype, 2 );2635C_ELM_POSOBJ_NLE( t_5, l_type, 2 );2636t_2 = CALL_2ARGS( t_3, t_4, t_5 );2637CHECK_FUNC_RESULT( t_2 )2638CALL_2ARGS( t_1, a_obj, t_2 );26392640}2641/* fi */26422643}26442645/* elif IS_COMOBJ( obj ) then */2646else {2647t_3 = GF_IS__COMOBJ;2648t_2 = CALL_1ARGS( t_3, a_obj );2649CHECK_FUNC_RESULT( t_2 )2650CHECK_BOOL( t_2 )2651t_1 = (Obj)(UInt)(t_2 != False);2652if ( t_1 ) {26532654/* type := TYPE_OBJ( obj ); */2655t_2 = GF_TYPE__OBJ;2656t_1 = CALL_1ARGS( t_2, a_obj );2657CHECK_FUNC_RESULT( t_1 )2658l_type = t_1;26592660/* newtype := Subtype2( type, filter ); */2661t_2 = GF_Subtype2;2662t_1 = CALL_2ARGS( t_2, l_type, a_filter );2663CHECK_FUNC_RESULT( t_1 )2664l_newtype = t_1;26652666/* SET_TYPE_COMOBJ( obj, newtype ); */2667t_1 = GF_SET__TYPE__COMOBJ;2668CALL_2ARGS( t_1, a_obj, l_newtype );26692670/* if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then */2671t_4 = GC_IGNORE__IMMEDIATE__METHODS;2672CHECK_BOUND( t_4, "IGNORE_IMMEDIATE_METHODS" )2673CHECK_BOOL( t_4 )2674t_3 = (Obj)(UInt)(t_4 != False);2675t_2 = t_3;2676if ( ! t_2 ) {2677t_6 = GF_IsNoImmediateMethodsObject;2678t_5 = CALL_1ARGS( t_6, a_obj );2679CHECK_FUNC_RESULT( t_5 )2680CHECK_BOOL( t_5 )2681t_4 = (Obj)(UInt)(t_5 != False);2682t_2 = t_4;2683}2684t_1 = (Obj)(UInt)( ! ((Int)t_2) );2685if ( t_1 ) {26862687/* RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) ); */2688t_1 = GF_RunImmediateMethods;2689t_3 = GF_SUB__FLAGS;2690C_ELM_POSOBJ_NLE( t_4, l_newtype, 2 );2691C_ELM_POSOBJ_NLE( t_5, l_type, 2 );2692t_2 = CALL_2ARGS( t_3, t_4, t_5 );2693CHECK_FUNC_RESULT( t_2 )2694CALL_2ARGS( t_1, a_obj, t_2 );26952696}2697/* fi */26982699}27002701/* elif IS_DATOBJ( obj ) then */2702else {2703t_3 = GF_IS__DATOBJ;2704t_2 = CALL_1ARGS( t_3, a_obj );2705CHECK_FUNC_RESULT( t_2 )2706CHECK_BOOL( t_2 )2707t_1 = (Obj)(UInt)(t_2 != False);2708if ( t_1 ) {27092710/* type := TYPE_OBJ( obj ); */2711t_2 = GF_TYPE__OBJ;2712t_1 = CALL_1ARGS( t_2, a_obj );2713CHECK_FUNC_RESULT( t_1 )2714l_type = t_1;27152716/* newtype := Subtype2( type, filter ); */2717t_2 = GF_Subtype2;2718t_1 = CALL_2ARGS( t_2, l_type, a_filter );2719CHECK_FUNC_RESULT( t_1 )2720l_newtype = t_1;27212722/* SET_TYPE_DATOBJ( obj, newtype ); */2723t_1 = GF_SET__TYPE__DATOBJ;2724CALL_2ARGS( t_1, a_obj, l_newtype );27252726/* if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then */2727t_4 = GC_IGNORE__IMMEDIATE__METHODS;2728CHECK_BOUND( t_4, "IGNORE_IMMEDIATE_METHODS" )2729CHECK_BOOL( t_4 )2730t_3 = (Obj)(UInt)(t_4 != False);2731t_2 = t_3;2732if ( ! t_2 ) {2733t_6 = GF_IsNoImmediateMethodsObject;2734t_5 = CALL_1ARGS( t_6, a_obj );2735CHECK_FUNC_RESULT( t_5 )2736CHECK_BOOL( t_5 )2737t_4 = (Obj)(UInt)(t_5 != False);2738t_2 = t_4;2739}2740t_1 = (Obj)(UInt)( ! ((Int)t_2) );2741if ( t_1 ) {27422743/* RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) ); */2744t_1 = GF_RunImmediateMethods;2745t_3 = GF_SUB__FLAGS;2746C_ELM_POSOBJ_NLE( t_4, l_newtype, 2 );2747C_ELM_POSOBJ_NLE( t_5, l_type, 2 );2748t_2 = CALL_2ARGS( t_3, t_4, t_5 );2749CHECK_FUNC_RESULT( t_2 )2750CALL_2ARGS( t_1, a_obj, t_2 );27512752}2753/* fi */27542755}27562757/* elif IS_PLIST_REP( obj ) then */2758else {2759t_3 = GF_IS__PLIST__REP;2760t_2 = CALL_1ARGS( t_3, a_obj );2761CHECK_FUNC_RESULT( t_2 )2762CHECK_BOOL( t_2 )2763t_1 = (Obj)(UInt)(t_2 != False);2764if ( t_1 ) {27652766/* SET_FILTER_LIST( obj, filter ); */2767t_1 = GF_SET__FILTER__LIST;2768CALL_2ARGS( t_1, a_obj, a_filter );27692770}27712772/* elif IS_STRING_REP( obj ) then */2773else {2774t_3 = GF_IS__STRING__REP;2775t_2 = CALL_1ARGS( t_3, a_obj );2776CHECK_FUNC_RESULT( t_2 )2777CHECK_BOOL( t_2 )2778t_1 = (Obj)(UInt)(t_2 != False);2779if ( t_1 ) {27802781/* SET_FILTER_LIST( obj, filter ); */2782t_1 = GF_SET__FILTER__LIST;2783CALL_2ARGS( t_1, a_obj, a_filter );27842785}27862787/* elif IS_BLIST( obj ) then */2788else {2789t_3 = GF_IS__BLIST;2790t_2 = CALL_1ARGS( t_3, a_obj );2791CHECK_FUNC_RESULT( t_2 )2792CHECK_BOOL( t_2 )2793t_1 = (Obj)(UInt)(t_2 != False);2794if ( t_1 ) {27952796/* SET_FILTER_LIST( obj, filter ); */2797t_1 = GF_SET__FILTER__LIST;2798CALL_2ARGS( t_1, a_obj, a_filter );27992800}28012802/* elif IS_RANGE( obj ) then */2803else {2804t_3 = GF_IS__RANGE;2805t_2 = CALL_1ARGS( t_3, a_obj );2806CHECK_FUNC_RESULT( t_2 )2807CHECK_BOOL( t_2 )2808t_1 = (Obj)(UInt)(t_2 != False);2809if ( t_1 ) {28102811/* SET_FILTER_LIST( obj, filter ); */2812t_1 = GF_SET__FILTER__LIST;2813CALL_2ARGS( t_1, a_obj, a_filter );28142815}28162817/* else */2818else {28192820/* Error( "cannot set filter for internal object" ); */2821t_1 = GF_Error;2822C_NEW_STRING( t_2, 37, "cannot set filter for internal object" );2823CALL_1ARGS( t_1, t_2 );28242825}2826}2827}2828}2829}2830}2831}2832/* fi */28332834/* return; */2835RES_BRK_CURR_STAT();2836SWITCH_TO_OLD_FRAME(oldFrame);2837return 0;28382839/* return; */2840RES_BRK_CURR_STAT();2841SWITCH_TO_OLD_FRAME(oldFrame);2842return 0;2843}28442845/* handler for function 34 */2846static Obj HdlrFunc34 (2847Obj self,2848Obj a_obj,2849Obj a_filter )2850{2851Obj t_1 = 0;2852Obj t_2 = 0;2853Obj t_3 = 0;2854Obj t_4 = 0;2855Obj t_5 = 0;2856Bag oldFrame;2857OLD_BRK_CURR_STAT28582859/* allocate new stack frame */2860SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);2861REM_BRK_CURR_STAT();2862SET_BRK_CURR_STAT(0);28632864/* if IS_AND_FILTER( filter ) then */2865t_3 = GF_IS__AND__FILTER;2866t_2 = CALL_1ARGS( t_3, a_filter );2867CHECK_FUNC_RESULT( t_2 )2868CHECK_BOOL( t_2 )2869t_1 = (Obj)(UInt)(t_2 != False);2870if ( t_1 ) {28712872/* Error( "You can't reset an \"and-filter\". Reset components individually." ); */2873t_1 = GF_Error;2874C_NEW_STRING( t_2, 63, "You can't reset an \"and-filter\". Reset components individually." );2875CALL_1ARGS( t_1, t_2 );28762877}2878/* fi */28792880/* if IS_POSOBJ( obj ) then */2881t_3 = GF_IS__POSOBJ;2882t_2 = CALL_1ARGS( t_3, a_obj );2883CHECK_FUNC_RESULT( t_2 )2884CHECK_BOOL( t_2 )2885t_1 = (Obj)(UInt)(t_2 != False);2886if ( t_1 ) {28872888/* SET_TYPE_POSOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) ); */2889t_1 = GF_SET__TYPE__POSOBJ;2890t_3 = GF_SupType2;2891t_5 = GF_TYPE__OBJ;2892t_4 = CALL_1ARGS( t_5, a_obj );2893CHECK_FUNC_RESULT( t_4 )2894t_2 = CALL_2ARGS( t_3, t_4, a_filter );2895CHECK_FUNC_RESULT( t_2 )2896CALL_2ARGS( t_1, a_obj, t_2 );28972898}28992900/* elif IS_COMOBJ( obj ) then */2901else {2902t_3 = GF_IS__COMOBJ;2903t_2 = CALL_1ARGS( t_3, a_obj );2904CHECK_FUNC_RESULT( t_2 )2905CHECK_BOOL( t_2 )2906t_1 = (Obj)(UInt)(t_2 != False);2907if ( t_1 ) {29082909/* SET_TYPE_COMOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) ); */2910t_1 = GF_SET__TYPE__COMOBJ;2911t_3 = GF_SupType2;2912t_5 = GF_TYPE__OBJ;2913t_4 = CALL_1ARGS( t_5, a_obj );2914CHECK_FUNC_RESULT( t_4 )2915t_2 = CALL_2ARGS( t_3, t_4, a_filter );2916CHECK_FUNC_RESULT( t_2 )2917CALL_2ARGS( t_1, a_obj, t_2 );29182919}29202921/* elif IS_DATOBJ( obj ) then */2922else {2923t_3 = GF_IS__DATOBJ;2924t_2 = CALL_1ARGS( t_3, a_obj );2925CHECK_FUNC_RESULT( t_2 )2926CHECK_BOOL( t_2 )2927t_1 = (Obj)(UInt)(t_2 != False);2928if ( t_1 ) {29292930/* SET_TYPE_DATOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) ); */2931t_1 = GF_SET__TYPE__DATOBJ;2932t_3 = GF_SupType2;2933t_5 = GF_TYPE__OBJ;2934t_4 = CALL_1ARGS( t_5, a_obj );2935CHECK_FUNC_RESULT( t_4 )2936t_2 = CALL_2ARGS( t_3, t_4, a_filter );2937CHECK_FUNC_RESULT( t_2 )2938CALL_2ARGS( t_1, a_obj, t_2 );29392940}29412942/* elif IS_PLIST_REP( obj ) then */2943else {2944t_3 = GF_IS__PLIST__REP;2945t_2 = CALL_1ARGS( t_3, a_obj );2946CHECK_FUNC_RESULT( t_2 )2947CHECK_BOOL( t_2 )2948t_1 = (Obj)(UInt)(t_2 != False);2949if ( t_1 ) {29502951/* RESET_FILTER_LIST( obj, filter ); */2952t_1 = GF_RESET__FILTER__LIST;2953CALL_2ARGS( t_1, a_obj, a_filter );29542955}29562957/* elif IS_STRING_REP( obj ) then */2958else {2959t_3 = GF_IS__STRING__REP;2960t_2 = CALL_1ARGS( t_3, a_obj );2961CHECK_FUNC_RESULT( t_2 )2962CHECK_BOOL( t_2 )2963t_1 = (Obj)(UInt)(t_2 != False);2964if ( t_1 ) {29652966/* RESET_FILTER_LIST( obj, filter ); */2967t_1 = GF_RESET__FILTER__LIST;2968CALL_2ARGS( t_1, a_obj, a_filter );29692970}29712972/* elif IS_BLIST( obj ) then */2973else {2974t_3 = GF_IS__BLIST;2975t_2 = CALL_1ARGS( t_3, a_obj );2976CHECK_FUNC_RESULT( t_2 )2977CHECK_BOOL( t_2 )2978t_1 = (Obj)(UInt)(t_2 != False);2979if ( t_1 ) {29802981/* RESET_FILTER_LIST( obj, filter ); */2982t_1 = GF_RESET__FILTER__LIST;2983CALL_2ARGS( t_1, a_obj, a_filter );29842985}29862987/* elif IS_RANGE( obj ) then */2988else {2989t_3 = GF_IS__RANGE;2990t_2 = CALL_1ARGS( t_3, a_obj );2991CHECK_FUNC_RESULT( t_2 )2992CHECK_BOOL( t_2 )2993t_1 = (Obj)(UInt)(t_2 != False);2994if ( t_1 ) {29952996/* RESET_FILTER_LIST( obj, filter ); */2997t_1 = GF_RESET__FILTER__LIST;2998CALL_2ARGS( t_1, a_obj, a_filter );29993000}30013002/* else */3003else {30043005/* Error( "cannot reset filter for internal object" ); */3006t_1 = GF_Error;3007C_NEW_STRING( t_2, 39, "cannot reset filter for internal object" );3008CALL_1ARGS( t_1, t_2 );30093010}3011}3012}3013}3014}3015}3016}3017/* fi */30183019/* return; */3020RES_BRK_CURR_STAT();3021SWITCH_TO_OLD_FRAME(oldFrame);3022return 0;30233024/* return; */3025RES_BRK_CURR_STAT();3026SWITCH_TO_OLD_FRAME(oldFrame);3027return 0;3028}30293030/* handler for function 35 */3031static Obj HdlrFunc35 (3032Obj self,3033Obj a_obj,3034Obj a_filter,3035Obj a_val )3036{3037Obj t_1 = 0;3038Bag oldFrame;3039OLD_BRK_CURR_STAT30403041/* allocate new stack frame */3042SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);3043REM_BRK_CURR_STAT();3044SET_BRK_CURR_STAT(0);30453046/* if val then */3047CHECK_BOOL( a_val )3048t_1 = (Obj)(UInt)(a_val != False);3049if ( t_1 ) {30503051/* SetFilterObj( obj, filter ); */3052t_1 = GF_SetFilterObj;3053CALL_2ARGS( t_1, a_obj, a_filter );30543055}30563057/* else */3058else {30593060/* ResetFilterObj( obj, filter ); */3061t_1 = GF_ResetFilterObj;3062CALL_2ARGS( t_1, a_obj, a_filter );30633064}3065/* fi */30663067/* return; */3068RES_BRK_CURR_STAT();3069SWITCH_TO_OLD_FRAME(oldFrame);3070return 0;30713072/* return; */3073RES_BRK_CURR_STAT();3074SWITCH_TO_OLD_FRAME(oldFrame);3075return 0;3076}30773078/* handler for function 36 */3079static Obj HdlrFunc36 (3080Obj self,3081Obj a_arg )3082{3083Obj l_obj = 0;3084Obj l_type = 0;3085Obj l_flags = 0;3086Obj l_attr = 0;3087Obj l_val = 0;3088Obj l_i = 0;3089Obj l_extra = 0;3090Obj l_nfilt = 0;3091Obj l_nflags = 0;3092Obj t_1 = 0;3093Obj t_2 = 0;3094Obj t_3 = 0;3095Obj t_4 = 0;3096Obj t_5 = 0;3097Obj t_6 = 0;3098Obj t_7 = 0;3099Obj t_8 = 0;3100Obj t_9 = 0;3101Obj t_10 = 0;3102Obj t_11 = 0;3103Bag oldFrame;3104OLD_BRK_CURR_STAT31053106/* allocate new stack frame */3107SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);3108REM_BRK_CURR_STAT();3109SET_BRK_CURR_STAT(0);31103111/* obj := arg[1]; */3112C_ELM_LIST_FPL( t_1, a_arg, INTOBJ_INT(1) )3113l_obj = t_1;31143115/* if IsAttributeStoringRep( obj ) then */3116t_3 = GF_IsAttributeStoringRep;3117t_2 = CALL_1ARGS( t_3, l_obj );3118CHECK_FUNC_RESULT( t_2 )3119CHECK_BOOL( t_2 )3120t_1 = (Obj)(UInt)(t_2 != False);3121if ( t_1 ) {31223123/* extra := [ ]; */3124t_1 = NEW_PLIST( T_PLIST, 0 );3125SET_LEN_PLIST( t_1, 0 );3126l_extra = t_1;31273128/* type := TypeObj( obj ); */3129t_2 = GF_TypeObj;3130t_1 = CALL_1ARGS( t_2, l_obj );3131CHECK_FUNC_RESULT( t_1 )3132l_type = t_1;31333134/* flags := FlagsType( type ); */3135t_2 = GF_FlagsType;3136t_1 = CALL_1ARGS( t_2, l_type );3137CHECK_FUNC_RESULT( t_1 )3138l_flags = t_1;31393140/* nfilt := IS_OBJECT; */3141t_1 = GC_IS__OBJECT;3142CHECK_BOUND( t_1, "IS_OBJECT" )3143l_nfilt = t_1;31443145/* for i in [ 2, 4 .. LEN_LIST( arg ) - 1 ] do */3146t_7 = GF_LEN__LIST;3147t_6 = CALL_1ARGS( t_7, a_arg );3148CHECK_FUNC_RESULT( t_6 )3149C_DIFF_FIA( t_5, t_6, INTOBJ_INT(1) )3150t_4 = Range3Check( INTOBJ_INT(2), INTOBJ_INT(4), t_5 );3151if ( IS_SMALL_LIST(t_4) ) {3152t_3 = (Obj)(UInt)1;3153t_1 = INTOBJ_INT(1);3154}3155else {3156t_3 = (Obj)(UInt)0;3157t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );3158}3159while ( 1 ) {3160if ( t_3 ) {3161if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;3162t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );3163t_1 = (Obj)(((UInt)t_1)+4);3164if ( t_2 == 0 ) continue;3165}3166else {3167if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;3168t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );3169}3170l_i = t_2;31713172/* attr := arg[i]; */3173CHECK_INT_POS( l_i )3174C_ELM_LIST_FPL( t_5, a_arg, l_i )3175l_attr = t_5;31763177/* val := arg[i + 1]; */3178C_SUM_FIA( t_6, l_i, INTOBJ_INT(1) )3179CHECK_INT_POS( t_6 )3180C_ELM_LIST_FPL( t_5, a_arg, t_6 )3181l_val = t_5;31823183/* if 0 <> FLAG1_FILTER( attr ) then */3184t_7 = GF_FLAG1__FILTER;3185t_6 = CALL_1ARGS( t_7, l_attr );3186CHECK_FUNC_RESULT( t_6 )3187t_5 = (Obj)(UInt)( ! EQ( INTOBJ_INT(0), t_6 ));3188if ( t_5 ) {31893190/* if val then */3191CHECK_BOOL( l_val )3192t_5 = (Obj)(UInt)(l_val != False);3193if ( t_5 ) {31943195/* nfilt := nfilt and attr; */3196if ( l_nfilt == False ) {3197t_5 = l_nfilt;3198}3199else if ( l_nfilt == True ) {3200CHECK_BOOL( l_attr )3201t_5 = l_attr;3202}3203else {3204CHECK_FUNC( l_nfilt )3205CHECK_FUNC( l_attr )3206t_5 = NewAndFilter( l_nfilt, l_attr );3207}3208l_nfilt = t_5;32093210}32113212/* else */3213else {32143215/* nfilt := nfilt and Tester( attr ); */3216if ( l_nfilt == False ) {3217t_5 = l_nfilt;3218}3219else if ( l_nfilt == True ) {3220t_7 = GF_Tester;3221t_6 = CALL_1ARGS( t_7, l_attr );3222CHECK_FUNC_RESULT( t_6 )3223CHECK_BOOL( t_6 )3224t_5 = t_6;3225}3226else {3227CHECK_FUNC( l_nfilt )3228t_8 = GF_Tester;3229t_7 = CALL_1ARGS( t_8, l_attr );3230CHECK_FUNC_RESULT( t_7 )3231CHECK_FUNC( t_7 )3232t_5 = NewAndFilter( l_nfilt, t_7 );3233}3234l_nfilt = t_5;32353236}3237/* fi */32383239}32403241/* elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> 12 then */3242else {3243t_7 = GF_LEN__LIST;3244t_9 = GF_METHODS__OPERATION;3245t_11 = GF_Setter;3246t_10 = CALL_1ARGS( t_11, l_attr );3247CHECK_FUNC_RESULT( t_10 )3248t_8 = CALL_2ARGS( t_9, t_10, INTOBJ_INT(2) );3249CHECK_FUNC_RESULT( t_8 )3250t_6 = CALL_1ARGS( t_7, t_8 );3251CHECK_FUNC_RESULT( t_6 )3252t_5 = (Obj)(UInt)( ! EQ( t_6, INTOBJ_INT(12) ));3253if ( t_5 ) {32543255/* ADD_LIST( extra, attr ); */3256t_5 = GF_ADD__LIST;3257CALL_2ARGS( t_5, l_extra, l_attr );32583259/* ADD_LIST( extra, val ); */3260t_5 = GF_ADD__LIST;3261CALL_2ARGS( t_5, l_extra, l_val );32623263}32643265/* else */3266else {32673268/* obj!.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val ); */3269t_6 = GF_NAME__FUNC;3270t_5 = CALL_1ARGS( t_6, l_attr );3271CHECK_FUNC_RESULT( t_5 )3272t_7 = GF_IMMUTABLE__COPY__OBJ;3273t_6 = CALL_1ARGS( t_7, l_val );3274CHECK_FUNC_RESULT( t_6 )3275if ( TNUM_OBJ(l_obj) == T_COMOBJ ) {3276AssPRec( l_obj, RNamObj(t_5), t_6 );3277}3278else {3279ASS_REC( l_obj, RNamObj(t_5), t_6 );3280}32813282/* nfilt := nfilt and Tester( attr ); */3283if ( l_nfilt == False ) {3284t_5 = l_nfilt;3285}3286else if ( l_nfilt == True ) {3287t_7 = GF_Tester;3288t_6 = CALL_1ARGS( t_7, l_attr );3289CHECK_FUNC_RESULT( t_6 )3290CHECK_BOOL( t_6 )3291t_5 = t_6;3292}3293else {3294CHECK_FUNC( l_nfilt )3295t_8 = GF_Tester;3296t_7 = CALL_1ARGS( t_8, l_attr );3297CHECK_FUNC_RESULT( t_7 )3298CHECK_FUNC( t_7 )3299t_5 = NewAndFilter( l_nfilt, t_7 );3300}3301l_nfilt = t_5;33023303}3304}3305/* fi */33063307}3308/* od */33093310/* nflags := FLAGS_FILTER( nfilt ); */3311t_2 = GF_FLAGS__FILTER;3312t_1 = CALL_1ARGS( t_2, l_nfilt );3313CHECK_FUNC_RESULT( t_1 )3314l_nflags = t_1;33153316/* if not IS_SUBSET_FLAGS( flags, nflags ) then */3317t_4 = GF_IS__SUBSET__FLAGS;3318t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );3319CHECK_FUNC_RESULT( t_3 )3320CHECK_BOOL( t_3 )3321t_2 = (Obj)(UInt)(t_3 != False);3322t_1 = (Obj)(UInt)( ! ((Int)t_2) );3323if ( t_1 ) {33243325/* flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) ); */3326t_2 = GF_WITH__IMPS__FLAGS;3327t_4 = GF_AND__FLAGS;3328t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );3329CHECK_FUNC_RESULT( t_3 )3330t_1 = CALL_1ARGS( t_2, t_3 );3331CHECK_FUNC_RESULT( t_1 )3332l_flags = t_1;33333334/* ChangeTypeObj( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj ); */3335t_1 = GF_ChangeTypeObj;3336t_3 = GF_NEW__TYPE;3337t_4 = GC_TypeOfTypes;3338CHECK_BOUND( t_4, "TypeOfTypes" )3339t_6 = GF_FamilyType;3340t_5 = CALL_1ARGS( t_6, l_type );3341CHECK_FUNC_RESULT( t_5 )3342t_7 = GF_DataType;3343t_6 = CALL_1ARGS( t_7, l_type );3344CHECK_FUNC_RESULT( t_6 )3345t_2 = CALL_4ARGS( t_3, t_4, t_5, l_flags, t_6 );3346CHECK_FUNC_RESULT( t_2 )3347CALL_2ARGS( t_1, t_2, l_obj );33483349}3350/* fi */33513352/* for i in [ 2, 4 .. LEN_LIST( extra ) ] do */3353t_6 = GF_LEN__LIST;3354t_5 = CALL_1ARGS( t_6, l_extra );3355CHECK_FUNC_RESULT( t_5 )3356t_4 = Range3Check( INTOBJ_INT(2), INTOBJ_INT(4), t_5 );3357if ( IS_SMALL_LIST(t_4) ) {3358t_3 = (Obj)(UInt)1;3359t_1 = INTOBJ_INT(1);3360}3361else {3362t_3 = (Obj)(UInt)0;3363t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );3364}3365while ( 1 ) {3366if ( t_3 ) {3367if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;3368t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );3369t_1 = (Obj)(((UInt)t_1)+4);3370if ( t_2 == 0 ) continue;3371}3372else {3373if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;3374t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );3375}3376l_i = t_2;33773378/* Setter( extra[i - 1] )( obj, extra[i] ); */3379t_6 = GF_Setter;3380C_DIFF_FIA( t_8, l_i, INTOBJ_INT(1) )3381CHECK_INT_POS( t_8 )3382C_ELM_LIST_FPL( t_7, l_extra, t_8 )3383t_5 = CALL_1ARGS( t_6, t_7 );3384CHECK_FUNC_RESULT( t_5 )3385CHECK_FUNC( t_5 )3386CHECK_INT_POS( l_i )3387C_ELM_LIST_FPL( t_6, l_extra, l_i )3388CALL_2ARGS( t_5, l_obj, t_6 );33893390}3391/* od */33923393}33943395/* else */3396else {33973398/* extra := arg; */3399l_extra = a_arg;34003401/* for i in [ 2, 4 .. LEN_LIST( extra ) ] do */3402t_6 = GF_LEN__LIST;3403t_5 = CALL_1ARGS( t_6, l_extra );3404CHECK_FUNC_RESULT( t_5 )3405t_4 = Range3Check( INTOBJ_INT(2), INTOBJ_INT(4), t_5 );3406if ( IS_SMALL_LIST(t_4) ) {3407t_3 = (Obj)(UInt)1;3408t_1 = INTOBJ_INT(1);3409}3410else {3411t_3 = (Obj)(UInt)0;3412t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );3413}3414while ( 1 ) {3415if ( t_3 ) {3416if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;3417t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );3418t_1 = (Obj)(((UInt)t_1)+4);3419if ( t_2 == 0 ) continue;3420}3421else {3422if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;3423t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );3424}3425l_i = t_2;34263427/* Setter( extra[i] )( obj, extra[i + 1] ); */3428t_6 = GF_Setter;3429CHECK_INT_POS( l_i )3430C_ELM_LIST_FPL( t_7, l_extra, l_i )3431t_5 = CALL_1ARGS( t_6, t_7 );3432CHECK_FUNC_RESULT( t_5 )3433CHECK_FUNC( t_5 )3434C_SUM_FIA( t_7, l_i, INTOBJ_INT(1) )3435CHECK_INT_POS( t_7 )3436C_ELM_LIST_FPL( t_6, l_extra, t_7 )3437CALL_2ARGS( t_5, l_obj, t_6 );34383439}3440/* od */34413442}3443/* fi */34443445/* return; */3446RES_BRK_CURR_STAT();3447SWITCH_TO_OLD_FRAME(oldFrame);3448return 0;34493450/* return; */3451RES_BRK_CURR_STAT();3452SWITCH_TO_OLD_FRAME(oldFrame);3453return 0;3454}34553456/* handler for function 37 */3457static Obj HdlrFunc37 (3458Obj self,3459Obj a_arg )3460{3461Obj l_obj = 0;3462Obj l_type = 0;3463Obj l_flags = 0;3464Obj l_attr = 0;3465Obj l_val = 0;3466Obj l_i = 0;3467Obj l_extra = 0;3468Obj l_nflags = 0;3469Obj t_1 = 0;3470Obj t_2 = 0;3471Obj t_3 = 0;3472Obj t_4 = 0;3473Obj t_5 = 0;3474Obj t_6 = 0;3475Obj t_7 = 0;3476Obj t_8 = 0;3477Obj t_9 = 0;3478Obj t_10 = 0;3479Obj t_11 = 0;3480Bag oldFrame;3481OLD_BRK_CURR_STAT34823483/* allocate new stack frame */3484SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);3485REM_BRK_CURR_STAT();3486SET_BRK_CURR_STAT(0);34873488/* obj := arg[1]; */3489C_ELM_LIST_FPL( t_1, a_arg, INTOBJ_INT(1) )3490l_obj = t_1;34913492/* type := arg[2]; */3493C_ELM_LIST_FPL( t_1, a_arg, INTOBJ_INT(2) )3494l_type = t_1;34953496/* flags := FlagsType( type ); */3497t_2 = GF_FlagsType;3498t_1 = CALL_1ARGS( t_2, l_type );3499CHECK_FUNC_RESULT( t_1 )3500l_flags = t_1;35013502/* extra := [ ]; */3503t_1 = NEW_PLIST( T_PLIST, 0 );3504SET_LEN_PLIST( t_1, 0 );3505l_extra = t_1;35063507/* if not IS_SUBSET_FLAGS( flags, IsAttributeStoringRepFlags ) then */3508t_4 = GF_IS__SUBSET__FLAGS;3509t_5 = GC_IsAttributeStoringRepFlags;3510CHECK_BOUND( t_5, "IsAttributeStoringRepFlags" )3511t_3 = CALL_2ARGS( t_4, l_flags, t_5 );3512CHECK_FUNC_RESULT( t_3 )3513CHECK_BOOL( t_3 )3514t_2 = (Obj)(UInt)(t_3 != False);3515t_1 = (Obj)(UInt)( ! ((Int)t_2) );3516if ( t_1 ) {35173518/* extra := arg{[ 3 .. LEN_LIST( arg ) ]}; */3519t_4 = GF_LEN__LIST;3520t_3 = CALL_1ARGS( t_4, a_arg );3521CHECK_FUNC_RESULT( t_3 )3522t_2 = Range2Check( INTOBJ_INT(3), t_3 );3523t_1 = ElmsListCheck( a_arg, t_2 );3524l_extra = t_1;35253526/* INFO_OWA( "#W ObjectifyWithAttributes called ", "for non-attribute storing rep\n" ); */3527t_1 = GF_INFO__OWA;3528C_NEW_STRING( t_2, 34, "#W ObjectifyWithAttributes called " );3529C_NEW_STRING( t_3, 30, "for non-attribute storing rep\n" );3530CALL_2ARGS( t_1, t_2, t_3 );35313532/* Objectify( type, obj ); */3533t_1 = GF_Objectify;3534CALL_2ARGS( t_1, l_type, l_obj );35353536}35373538/* else */3539else {35403541/* nflags := EMPTY_FLAGS; */3542t_1 = GC_EMPTY__FLAGS;3543CHECK_BOUND( t_1, "EMPTY_FLAGS" )3544l_nflags = t_1;35453546/* for i in [ 3, 5 .. LEN_LIST( arg ) - 1 ] do */3547t_7 = GF_LEN__LIST;3548t_6 = CALL_1ARGS( t_7, a_arg );3549CHECK_FUNC_RESULT( t_6 )3550C_DIFF_FIA( t_5, t_6, INTOBJ_INT(1) )3551t_4 = Range3Check( INTOBJ_INT(3), INTOBJ_INT(5), t_5 );3552if ( IS_SMALL_LIST(t_4) ) {3553t_3 = (Obj)(UInt)1;3554t_1 = INTOBJ_INT(1);3555}3556else {3557t_3 = (Obj)(UInt)0;3558t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );3559}3560while ( 1 ) {3561if ( t_3 ) {3562if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;3563t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );3564t_1 = (Obj)(((UInt)t_1)+4);3565if ( t_2 == 0 ) continue;3566}3567else {3568if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;3569t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );3570}3571l_i = t_2;35723573/* attr := arg[i]; */3574CHECK_INT_POS( l_i )3575C_ELM_LIST_FPL( t_5, a_arg, l_i )3576l_attr = t_5;35773578/* val := arg[i + 1]; */3579C_SUM_FIA( t_6, l_i, INTOBJ_INT(1) )3580CHECK_INT_POS( t_6 )3581C_ELM_LIST_FPL( t_5, a_arg, t_6 )3582l_val = t_5;35833584/* if 0 <> FLAG1_FILTER( attr ) then */3585t_7 = GF_FLAG1__FILTER;3586t_6 = CALL_1ARGS( t_7, l_attr );3587CHECK_FUNC_RESULT( t_6 )3588t_5 = (Obj)(UInt)( ! EQ( INTOBJ_INT(0), t_6 ));3589if ( t_5 ) {35903591/* if val then */3592CHECK_BOOL( l_val )3593t_5 = (Obj)(UInt)(l_val != False);3594if ( t_5 ) {35953596/* nflags := AND_FLAGS( nflags, FLAGS_FILTER( attr ) ); */3597t_6 = GF_AND__FLAGS;3598t_8 = GF_FLAGS__FILTER;3599t_7 = CALL_1ARGS( t_8, l_attr );3600CHECK_FUNC_RESULT( t_7 )3601t_5 = CALL_2ARGS( t_6, l_nflags, t_7 );3602CHECK_FUNC_RESULT( t_5 )3603l_nflags = t_5;36043605}36063607/* else */3608else {36093610/* nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) ); */3611t_6 = GF_AND__FLAGS;3612t_8 = GF_FLAGS__FILTER;3613t_10 = GF_Tester;3614t_9 = CALL_1ARGS( t_10, l_attr );3615CHECK_FUNC_RESULT( t_9 )3616t_7 = CALL_1ARGS( t_8, t_9 );3617CHECK_FUNC_RESULT( t_7 )3618t_5 = CALL_2ARGS( t_6, l_nflags, t_7 );3619CHECK_FUNC_RESULT( t_5 )3620l_nflags = t_5;36213622}3623/* fi */36243625}36263627/* elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> LENGTH_SETTER_METHODS_2 then */3628else {3629t_7 = GF_LEN__LIST;3630t_9 = GF_METHODS__OPERATION;3631t_11 = GF_Setter;3632t_10 = CALL_1ARGS( t_11, l_attr );3633CHECK_FUNC_RESULT( t_10 )3634t_8 = CALL_2ARGS( t_9, t_10, INTOBJ_INT(2) );3635CHECK_FUNC_RESULT( t_8 )3636t_6 = CALL_1ARGS( t_7, t_8 );3637CHECK_FUNC_RESULT( t_6 )3638t_7 = GC_LENGTH__SETTER__METHODS__2;3639CHECK_BOUND( t_7, "LENGTH_SETTER_METHODS_2" )3640t_5 = (Obj)(UInt)( ! EQ( t_6, t_7 ));3641if ( t_5 ) {36423643/* ADD_LIST( extra, attr ); */3644t_5 = GF_ADD__LIST;3645CALL_2ARGS( t_5, l_extra, l_attr );36463647/* ADD_LIST( extra, val ); */3648t_5 = GF_ADD__LIST;3649CALL_2ARGS( t_5, l_extra, l_val );36503651}36523653/* else */3654else {36553656/* obj.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val ); */3657t_6 = GF_NAME__FUNC;3658t_5 = CALL_1ARGS( t_6, l_attr );3659CHECK_FUNC_RESULT( t_5 )3660t_7 = GF_IMMUTABLE__COPY__OBJ;3661t_6 = CALL_1ARGS( t_7, l_val );3662CHECK_FUNC_RESULT( t_6 )3663ASS_REC( l_obj, RNamObj(t_5), t_6 );36643665/* nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) ); */3666t_6 = GF_AND__FLAGS;3667t_8 = GF_FLAGS__FILTER;3668t_10 = GF_Tester;3669t_9 = CALL_1ARGS( t_10, l_attr );3670CHECK_FUNC_RESULT( t_9 )3671t_7 = CALL_1ARGS( t_8, t_9 );3672CHECK_FUNC_RESULT( t_7 )3673t_5 = CALL_2ARGS( t_6, l_nflags, t_7 );3674CHECK_FUNC_RESULT( t_5 )3675l_nflags = t_5;36763677}3678}3679/* fi */36803681}3682/* od */36833684/* if not IS_SUBSET_FLAGS( flags, nflags ) then */3685t_4 = GF_IS__SUBSET__FLAGS;3686t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );3687CHECK_FUNC_RESULT( t_3 )3688CHECK_BOOL( t_3 )3689t_2 = (Obj)(UInt)(t_3 != False);3690t_1 = (Obj)(UInt)( ! ((Int)t_2) );3691if ( t_1 ) {36923693/* flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) ); */3694t_2 = GF_WITH__IMPS__FLAGS;3695t_4 = GF_AND__FLAGS;3696t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );3697CHECK_FUNC_RESULT( t_3 )3698t_1 = CALL_1ARGS( t_2, t_3 );3699CHECK_FUNC_RESULT( t_1 )3700l_flags = t_1;37013702/* Objectify( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj ); */3703t_1 = GF_Objectify;3704t_3 = GF_NEW__TYPE;3705t_4 = GC_TypeOfTypes;3706CHECK_BOUND( t_4, "TypeOfTypes" )3707t_6 = GF_FamilyType;3708t_5 = CALL_1ARGS( t_6, l_type );3709CHECK_FUNC_RESULT( t_5 )3710t_7 = GF_DataType;3711t_6 = CALL_1ARGS( t_7, l_type );3712CHECK_FUNC_RESULT( t_6 )3713t_2 = CALL_4ARGS( t_3, t_4, t_5, l_flags, t_6 );3714CHECK_FUNC_RESULT( t_2 )3715CALL_2ARGS( t_1, t_2, l_obj );37163717}37183719/* else */3720else {37213722/* Objectify( type, obj ); */3723t_1 = GF_Objectify;3724CALL_2ARGS( t_1, l_type, l_obj );37253726}3727/* fi */37283729}3730/* fi */37313732/* for i in [ 1, 3 .. LEN_LIST( extra ) - 1 ] do */3733t_7 = GF_LEN__LIST;3734t_6 = CALL_1ARGS( t_7, l_extra );3735CHECK_FUNC_RESULT( t_6 )3736C_DIFF_FIA( t_5, t_6, INTOBJ_INT(1) )3737t_4 = Range3Check( INTOBJ_INT(1), INTOBJ_INT(3), t_5 );3738if ( IS_SMALL_LIST(t_4) ) {3739t_3 = (Obj)(UInt)1;3740t_1 = INTOBJ_INT(1);3741}3742else {3743t_3 = (Obj)(UInt)0;3744t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );3745}3746while ( 1 ) {3747if ( t_3 ) {3748if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;3749t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );3750t_1 = (Obj)(((UInt)t_1)+4);3751if ( t_2 == 0 ) continue;3752}3753else {3754if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;3755t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );3756}3757l_i = t_2;37583759/* if Tester( extra[i] )( obj ) then */3760t_8 = GF_Tester;3761CHECK_INT_POS( l_i )3762C_ELM_LIST_FPL( t_9, l_extra, l_i )3763t_7 = CALL_1ARGS( t_8, t_9 );3764CHECK_FUNC_RESULT( t_7 )3765CHECK_FUNC( t_7 )3766t_6 = CALL_1ARGS( t_7, l_obj );3767CHECK_FUNC_RESULT( t_6 )3768CHECK_BOOL( t_6 )3769t_5 = (Obj)(UInt)(t_6 != False);3770if ( t_5 ) {37713772/* INFO_OWA( "#W Supplied type has tester of ", NAME_FUNC( extra[i] ), "with non-standard setter\n" ); */3773t_5 = GF_INFO__OWA;3774C_NEW_STRING( t_6, 32, "#W Supplied type has tester of " );3775t_8 = GF_NAME__FUNC;3776C_ELM_LIST_FPL( t_9, l_extra, l_i )3777t_7 = CALL_1ARGS( t_8, t_9 );3778CHECK_FUNC_RESULT( t_7 )3779C_NEW_STRING( t_8, 25, "with non-standard setter\n" );3780CALL_3ARGS( t_5, t_6, t_7, t_8 );37813782/* ResetFilterObj( obj, Tester( extra[i] ) ); */3783t_5 = GF_ResetFilterObj;3784t_7 = GF_Tester;3785C_ELM_LIST_FPL( t_8, l_extra, l_i )3786t_6 = CALL_1ARGS( t_7, t_8 );3787CHECK_FUNC_RESULT( t_6 )3788CALL_2ARGS( t_5, l_obj, t_6 );37893790}3791/* fi */37923793/* Setter( extra[i] )( obj, extra[i + 1] ); */3794t_6 = GF_Setter;3795C_ELM_LIST_FPL( t_7, l_extra, l_i )3796t_5 = CALL_1ARGS( t_6, t_7 );3797CHECK_FUNC_RESULT( t_5 )3798CHECK_FUNC( t_5 )3799C_SUM_FIA( t_7, l_i, INTOBJ_INT(1) )3800CHECK_INT_POS( t_7 )3801C_ELM_LIST_FPL( t_6, l_extra, t_7 )3802CALL_2ARGS( t_5, l_obj, t_6 );38033804}3805/* od */38063807/* return; */3808RES_BRK_CURR_STAT();3809SWITCH_TO_OLD_FRAME(oldFrame);3810return 0;38113812/* return; */3813RES_BRK_CURR_STAT();3814SWITCH_TO_OLD_FRAME(oldFrame);3815return 0;3816}38173818/* handler for function 1 */3819static Obj HdlrFunc1 (3820Obj self )3821{3822Obj t_1 = 0;3823Obj t_2 = 0;3824Obj t_3 = 0;3825Obj t_4 = 0;3826Obj t_5 = 0;3827Bag oldFrame;3828OLD_BRK_CURR_STAT38293830/* allocate new stack frame */3831SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);3832REM_BRK_CURR_STAT();3833SET_BRK_CURR_STAT(0);38343835/* InstallAttributeFunction( function ( name, filter, getter, setter, tester, mutflag )3836InstallOtherMethod( getter, "system getter", true, [ IsAttributeStoringRep and tester ], GETTER_FLAGS, GETTER_FUNCTION( name ) );3837return;3838end ); */3839t_1 = GF_InstallAttributeFunction;3840t_2 = NewFunction( NameFunc[2], NargFunc[2], NamsFunc[2], HdlrFunc2 );3841ENVI_FUNC( t_2 ) = TLS(CurrLVars);3842t_3 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3843STARTLINE_BODY(t_3) = INTOBJ_INT(19);3844ENDLINE_BODY(t_3) = INTOBJ_INT(26);3845FILENAME_BODY(t_3) = FileName;3846BODY_FUNC(t_2) = t_3;3847CHANGED_BAG( TLS(CurrLVars) );3848CALL_1ARGS( t_1, t_2 );38493850/* LENGTH_SETTER_METHODS_2 := LENGTH_SETTER_METHODS_2 + 6; */3851t_2 = GC_LENGTH__SETTER__METHODS__2;3852CHECK_BOUND( t_2, "LENGTH_SETTER_METHODS_2" )3853C_SUM_FIA( t_1, t_2, INTOBJ_INT(6) )3854AssGVar( G_LENGTH__SETTER__METHODS__2, t_1 );38553856/* InstallAttributeFunction( function ( name, filter, getter, setter, tester, mutflag )3857if mutflag then3858InstallOtherMethod( setter, "system mutable setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, function ( obj, val )3859obj!.(name) := val;3860SetFilterObj( obj, tester );3861return;3862end );3863else3864InstallOtherMethod( setter, "system setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, SETTER_FUNCTION( name, tester ) );3865fi;3866return;3867end ); */3868t_1 = GF_InstallAttributeFunction;3869t_2 = NewFunction( NameFunc[3], NargFunc[3], NamsFunc[3], HdlrFunc3 );3870ENVI_FUNC( t_2 ) = TLS(CurrLVars);3871t_3 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3872STARTLINE_BODY(t_3) = INTOBJ_INT(31);3873ENDLINE_BODY(t_3) = INTOBJ_INT(52);3874FILENAME_BODY(t_3) = FileName;3875BODY_FUNC(t_2) = t_3;3876CHANGED_BAG( TLS(CurrLVars) );3877CALL_1ARGS( t_1, t_2 );38783879/* Subtype := "defined below"; */3880C_NEW_STRING( t_1, 13, "defined below" );3881AssGVar( G_Subtype, t_1 );38823883/* BIND_GLOBAL( "NEW_FAMILY", function ( typeOfFamilies, name, req_filter, imp_filter )3884local type, pair, family;3885imp_filter := WITH_IMPS_FLAGS( AND_FLAGS( imp_filter, req_filter ) );3886type := Subtype( typeOfFamilies, IsAttributeStoringRep );3887for pair in CATEGORIES_FAMILY do3888if IS_SUBSET_FLAGS( imp_filter, pair[1] ) then3889type := Subtype( type, pair[2] );3890fi;3891od;3892family := rec(3893);3894SET_TYPE_COMOBJ( family, type );3895family!.NAME := name;3896family!.REQ_FLAGS := req_filter;3897family!.IMP_FLAGS := imp_filter;3898family!.TYPES := [ ];3899family!.nTYPES := 0;3900family!.HASH_SIZE := 32;3901family!.TYPES_LIST_FAM := [ ];3902family!.TYPES_LIST_FAM[27] := 0;3903return family;3904end ); */3905t_1 = GF_BIND__GLOBAL;3906C_NEW_STRING( t_2, 10, "NEW_FAMILY" );3907t_3 = NewFunction( NameFunc[5], NargFunc[5], NamsFunc[5], HdlrFunc5 );3908ENVI_FUNC( t_3 ) = TLS(CurrLVars);3909t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3910STARTLINE_BODY(t_4) = INTOBJ_INT(89);3911ENDLINE_BODY(t_4) = INTOBJ_INT(117);3912FILENAME_BODY(t_4) = FileName;3913BODY_FUNC(t_3) = t_4;3914CHANGED_BAG( TLS(CurrLVars) );3915CALL_2ARGS( t_1, t_2, t_3 );39163917/* BIND_GLOBAL( "NewFamily2", function ( typeOfFamilies, name )3918return NEW_FAMILY( typeOfFamilies, name, EMPTY_FLAGS, EMPTY_FLAGS );3919end ); */3920t_1 = GF_BIND__GLOBAL;3921C_NEW_STRING( t_2, 10, "NewFamily2" );3922t_3 = NewFunction( NameFunc[6], NargFunc[6], NamsFunc[6], HdlrFunc6 );3923ENVI_FUNC( t_3 ) = TLS(CurrLVars);3924t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3925STARTLINE_BODY(t_4) = INTOBJ_INT(120);3926ENDLINE_BODY(t_4) = INTOBJ_INT(125);3927FILENAME_BODY(t_4) = FileName;3928BODY_FUNC(t_3) = t_4;3929CHANGED_BAG( TLS(CurrLVars) );3930CALL_2ARGS( t_1, t_2, t_3 );39313932/* BIND_GLOBAL( "NewFamily3", function ( typeOfFamilies, name, req )3933return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), EMPTY_FLAGS );3934end ); */3935t_1 = GF_BIND__GLOBAL;3936C_NEW_STRING( t_2, 10, "NewFamily3" );3937t_3 = NewFunction( NameFunc[7], NargFunc[7], NamsFunc[7], HdlrFunc7 );3938ENVI_FUNC( t_3 ) = TLS(CurrLVars);3939t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3940STARTLINE_BODY(t_4) = INTOBJ_INT(128);3941ENDLINE_BODY(t_4) = INTOBJ_INT(133);3942FILENAME_BODY(t_4) = FileName;3943BODY_FUNC(t_3) = t_4;3944CHANGED_BAG( TLS(CurrLVars) );3945CALL_2ARGS( t_1, t_2, t_3 );39463947/* BIND_GLOBAL( "NewFamily4", function ( typeOfFamilies, name, req, imp )3948return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) );3949end ); */3950t_1 = GF_BIND__GLOBAL;3951C_NEW_STRING( t_2, 10, "NewFamily4" );3952t_3 = NewFunction( NameFunc[8], NargFunc[8], NamsFunc[8], HdlrFunc8 );3953ENVI_FUNC( t_3 ) = TLS(CurrLVars);3954t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3955STARTLINE_BODY(t_4) = INTOBJ_INT(136);3956ENDLINE_BODY(t_4) = INTOBJ_INT(141);3957FILENAME_BODY(t_4) = FileName;3958BODY_FUNC(t_3) = t_4;3959CHANGED_BAG( TLS(CurrLVars) );3960CALL_2ARGS( t_1, t_2, t_3 );39613962/* BIND_GLOBAL( "NewFamily5", function ( typeOfFamilies, name, req, imp, filter )3963return NEW_FAMILY( Subtype( typeOfFamilies, filter ), name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) );3964end ); */3965t_1 = GF_BIND__GLOBAL;3966C_NEW_STRING( t_2, 10, "NewFamily5" );3967t_3 = NewFunction( NameFunc[9], NargFunc[9], NamsFunc[9], HdlrFunc9 );3968ENVI_FUNC( t_3 ) = TLS(CurrLVars);3969t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3970STARTLINE_BODY(t_4) = INTOBJ_INT(145);3971ENDLINE_BODY(t_4) = INTOBJ_INT(150);3972FILENAME_BODY(t_4) = FileName;3973BODY_FUNC(t_3) = t_4;3974CHANGED_BAG( TLS(CurrLVars) );3975CALL_2ARGS( t_1, t_2, t_3 );39763977/* BIND_GLOBAL( "NewFamily", function ( arg... )3978if LEN_LIST( arg ) = 1 then3979return NewFamily2( TypeOfFamilies, arg[1] );3980elif LEN_LIST( arg ) = 2 then3981return NewFamily3( TypeOfFamilies, arg[1], arg[2] );3982elif LEN_LIST( arg ) = 3 then3983return NewFamily4( TypeOfFamilies, arg[1], arg[2], arg[3] );3984elif LEN_LIST( arg ) = 4 then3985return NewFamily5( TypeOfFamilies, arg[1], arg[2], arg[3], arg[4] );3986else3987Error( "usage: NewFamily( <name>, [ <req> [, <imp> ]] )" );3988fi;3989return;3990end ); */3991t_1 = GF_BIND__GLOBAL;3992C_NEW_STRING( t_2, 9, "NewFamily" );3993t_3 = NewFunction( NameFunc[10], NargFunc[10], NamsFunc[10], HdlrFunc10 );3994ENVI_FUNC( t_3 ) = TLS(CurrLVars);3995t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );3996STARTLINE_BODY(t_4) = INTOBJ_INT(153);3997ENDLINE_BODY(t_4) = INTOBJ_INT(176);3998FILENAME_BODY(t_4) = FileName;3999BODY_FUNC(t_3) = t_4;4000CHANGED_BAG( TLS(CurrLVars) );4001CALL_2ARGS( t_1, t_2, t_3 );40024003/* NEW_TYPE_CACHE_MISS := 0; */4004AssGVar( G_NEW__TYPE__CACHE__MISS, INTOBJ_INT(0) );40054006/* NEW_TYPE_CACHE_HIT := 0; */4007AssGVar( G_NEW__TYPE__CACHE__HIT, INTOBJ_INT(0) );40084009/* BIND_GLOBAL( "NEW_TYPE", function ( typeOfTypes, family, flags, data )4010local hash, cache, cached, type, ncache, ncl, t;4011cache := family!.TYPES;4012hash := HASH_FLAGS( flags ) mod family!.HASH_SIZE + 1;4013if IsBound( cache[hash] ) then4014cached := cache[hash];4015if IS_EQUAL_FLAGS( flags, cached![2] ) then4016if IS_IDENTICAL_OBJ( data, cached![POS_DATA_TYPE] ) and IS_IDENTICAL_OBJ( typeOfTypes, TYPE_OBJ( cached ) ) then4017NEW_TYPE_CACHE_HIT := NEW_TYPE_CACHE_HIT + 1;4018return cached;4019else4020flags := cached![2];4021fi;4022fi;4023NEW_TYPE_CACHE_MISS := NEW_TYPE_CACHE_MISS + 1;4024fi;4025NEW_TYPE_NEXT_ID := NEW_TYPE_NEXT_ID + 1;4026if NEW_TYPE_NEXT_ID >= NEW_TYPE_ID_LIMIT then4027GASMAN( "collect" );4028FLUSH_ALL_METHOD_CACHES( );4029NEW_TYPE_NEXT_ID := COMPACT_TYPE_IDS( );4030fi;4031type := [ family, flags ];4032type[POS_DATA_TYPE] := data;4033type[POS_NUMB_TYPE] := NEW_TYPE_NEXT_ID;4034SET_TYPE_POSOBJ( type, typeOfTypes );4035if 3 * family!.nTYPES > family!.HASH_SIZE then4036ncache := [ ];4037ncl := 3 * family!.HASH_SIZE + 1;4038for t in cache do4039ncache[HASH_FLAGS( t![2] ) mod ncl + 1] := t;4040od;4041family!.HASH_SIZE := ncl;4042family!.TYPES := ncache;4043ncache[HASH_FLAGS( flags ) mod ncl + 1] := type;4044else4045cache[hash] := type;4046fi;4047family!.nTYPES := family!.nTYPES + 1;4048return type;4049end ); */4050t_1 = GF_BIND__GLOBAL;4051C_NEW_STRING( t_2, 8, "NEW_TYPE" );4052t_3 = NewFunction( NameFunc[11], NargFunc[11], NamsFunc[11], HdlrFunc11 );4053ENVI_FUNC( t_3 ) = TLS(CurrLVars);4054t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4055STARTLINE_BODY(t_4) = INTOBJ_INT(204);4056ENDLINE_BODY(t_4) = INTOBJ_INT(259);4057FILENAME_BODY(t_4) = FileName;4058BODY_FUNC(t_3) = t_4;4059CHANGED_BAG( TLS(CurrLVars) );4060CALL_2ARGS( t_1, t_2, t_3 );40614062/* BIND_GLOBAL( "NewType2", function ( typeOfTypes, family )4063return NEW_TYPE( typeOfTypes, family, family!.IMP_FLAGS, false );4064end ); */4065t_1 = GF_BIND__GLOBAL;4066C_NEW_STRING( t_2, 8, "NewType2" );4067t_3 = NewFunction( NameFunc[12], NargFunc[12], NamsFunc[12], HdlrFunc12 );4068ENVI_FUNC( t_3 ) = TLS(CurrLVars);4069t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4070STARTLINE_BODY(t_4) = INTOBJ_INT(263);4071ENDLINE_BODY(t_4) = INTOBJ_INT(268);4072FILENAME_BODY(t_4) = FileName;4073BODY_FUNC(t_3) = t_4;4074CHANGED_BAG( TLS(CurrLVars) );4075CALL_2ARGS( t_1, t_2, t_3 );40764077/* BIND_GLOBAL( "NewType3", function ( typeOfTypes, family, filter )4078return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), false );4079end ); */4080t_1 = GF_BIND__GLOBAL;4081C_NEW_STRING( t_2, 8, "NewType3" );4082t_3 = NewFunction( NameFunc[13], NargFunc[13], NamsFunc[13], HdlrFunc13 );4083ENVI_FUNC( t_3 ) = TLS(CurrLVars);4084t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4085STARTLINE_BODY(t_4) = INTOBJ_INT(271);4086ENDLINE_BODY(t_4) = INTOBJ_INT(278);4087FILENAME_BODY(t_4) = FileName;4088BODY_FUNC(t_3) = t_4;4089CHANGED_BAG( TLS(CurrLVars) );4090CALL_2ARGS( t_1, t_2, t_3 );40914092/* BIND_GLOBAL( "NewType4", function ( typeOfTypes, family, filter, data )4093return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data );4094end ); */4095t_1 = GF_BIND__GLOBAL;4096C_NEW_STRING( t_2, 8, "NewType4" );4097t_3 = NewFunction( NameFunc[14], NargFunc[14], NamsFunc[14], HdlrFunc14 );4098ENVI_FUNC( t_3 ) = TLS(CurrLVars);4099t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4100STARTLINE_BODY(t_4) = INTOBJ_INT(281);4101ENDLINE_BODY(t_4) = INTOBJ_INT(288);4102FILENAME_BODY(t_4) = FileName;4103BODY_FUNC(t_3) = t_4;4104CHANGED_BAG( TLS(CurrLVars) );4105CALL_2ARGS( t_1, t_2, t_3 );41064107/* BIND_GLOBAL( "NewType5", function ( typeOfTypes, family, filter, data, stuff )4108local type;4109type := NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data );4110type![POS_FIRST_FREE_TYPE] := stuff;4111return type;4112end ); */4113t_1 = GF_BIND__GLOBAL;4114C_NEW_STRING( t_2, 8, "NewType5" );4115t_3 = NewFunction( NameFunc[15], NargFunc[15], NamsFunc[15], HdlrFunc15 );4116ENVI_FUNC( t_3 ) = TLS(CurrLVars);4117t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4118STARTLINE_BODY(t_4) = INTOBJ_INT(292);4119ENDLINE_BODY(t_4) = INTOBJ_INT(303);4120FILENAME_BODY(t_4) = FileName;4121BODY_FUNC(t_3) = t_4;4122CHANGED_BAG( TLS(CurrLVars) );4123CALL_2ARGS( t_1, t_2, t_3 );41244125/* BIND_GLOBAL( "NewType", function ( arg... )4126local type;4127if not IsFamily( arg[1] ) then4128Error( "<family> must be a family" );4129fi;4130if LEN_LIST( arg ) = 1 then4131type := NewType2( TypeOfTypes, arg[1] );4132elif LEN_LIST( arg ) = 2 then4133type := NewType3( TypeOfTypes, arg[1], arg[2] );4134elif LEN_LIST( arg ) = 3 then4135type := NewType4( TypeOfTypes, arg[1], arg[2], arg[3] );4136elif LEN_LIST( arg ) = 4 then4137type := NewType5( TypeOfTypes, arg[1], arg[2], arg[3], arg[4] );4138else4139Error( "usage: NewType( <family> [, <filter> [, <data> ]] )" );4140fi;4141return type;4142end ); */4143t_1 = GF_BIND__GLOBAL;4144C_NEW_STRING( t_2, 7, "NewType" );4145t_3 = NewFunction( NameFunc[16], NargFunc[16], NamsFunc[16], HdlrFunc16 );4146ENVI_FUNC( t_3 ) = TLS(CurrLVars);4147t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4148STARTLINE_BODY(t_4) = INTOBJ_INT(306);4149ENDLINE_BODY(t_4) = INTOBJ_INT(338);4150FILENAME_BODY(t_4) = FileName;4151BODY_FUNC(t_3) = t_4;4152CHANGED_BAG( TLS(CurrLVars) );4153CALL_2ARGS( t_1, t_2, t_3 );41544155/* BIND_GLOBAL( "Subtype2", function ( type, filter )4156local new, i;4157new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), type![POS_DATA_TYPE] );4158for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do4159if IsBound( type![i]) then4160new![i] := type![i];4161fi;4162od;4163return new;4164end ); */4165t_1 = GF_BIND__GLOBAL;4166C_NEW_STRING( t_2, 8, "Subtype2" );4167t_3 = NewFunction( NameFunc[17], NargFunc[17], NamsFunc[17], HdlrFunc17 );4168ENVI_FUNC( t_3 ) = TLS(CurrLVars);4169t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4170STARTLINE_BODY(t_4) = INTOBJ_INT(351);4171ENDLINE_BODY(t_4) = INTOBJ_INT(365);4172FILENAME_BODY(t_4) = FileName;4173BODY_FUNC(t_3) = t_4;4174CHANGED_BAG( TLS(CurrLVars) );4175CALL_2ARGS( t_1, t_2, t_3 );41764177/* BIND_GLOBAL( "Subtype3", function ( type, filter, data )4178local new, i;4179new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), data );4180for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do4181if IsBound( type![i]) then4182new![i] := type![i];4183fi;4184od;4185return new;4186end ); */4187t_1 = GF_BIND__GLOBAL;4188C_NEW_STRING( t_2, 8, "Subtype3" );4189t_3 = NewFunction( NameFunc[18], NargFunc[18], NamsFunc[18], HdlrFunc18 );4190ENVI_FUNC( t_3 ) = TLS(CurrLVars);4191t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4192STARTLINE_BODY(t_4) = INTOBJ_INT(368);4193ENDLINE_BODY(t_4) = INTOBJ_INT(382);4194FILENAME_BODY(t_4) = FileName;4195BODY_FUNC(t_3) = t_4;4196CHANGED_BAG( TLS(CurrLVars) );4197CALL_2ARGS( t_1, t_2, t_3 );41984199/* Unbind( Subtype ); */4200AssGVar( G_Subtype, 0 );42014202/* BIND_GLOBAL( "Subtype", function ( arg... )4203if not IsType( arg[1] ) then4204Error( "<type> must be a type" );4205fi;4206if LEN_LIST( arg ) = 2 then4207return Subtype2( arg[1], arg[2] );4208else4209return Subtype3( arg[1], arg[2], arg[3] );4210fi;4211return;4212end ); */4213t_1 = GF_BIND__GLOBAL;4214C_NEW_STRING( t_2, 7, "Subtype" );4215t_3 = NewFunction( NameFunc[19], NargFunc[19], NamsFunc[19], HdlrFunc19 );4216ENVI_FUNC( t_3 ) = TLS(CurrLVars);4217t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4218STARTLINE_BODY(t_4) = INTOBJ_INT(386);4219ENDLINE_BODY(t_4) = INTOBJ_INT(400);4220FILENAME_BODY(t_4) = FileName;4221BODY_FUNC(t_3) = t_4;4222CHANGED_BAG( TLS(CurrLVars) );4223CALL_2ARGS( t_1, t_2, t_3 );42244225/* BIND_GLOBAL( "SupType2", function ( type, filter )4226local new, i;4227new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), type![POS_DATA_TYPE] );4228for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do4229if IsBound( type![i]) then4230new![i] := type![i];4231fi;4232od;4233return new;4234end ); */4235t_1 = GF_BIND__GLOBAL;4236C_NEW_STRING( t_2, 8, "SupType2" );4237t_3 = NewFunction( NameFunc[20], NargFunc[20], NamsFunc[20], HdlrFunc20 );4238ENVI_FUNC( t_3 ) = TLS(CurrLVars);4239t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4240STARTLINE_BODY(t_4) = INTOBJ_INT(414);4241ENDLINE_BODY(t_4) = INTOBJ_INT(428);4242FILENAME_BODY(t_4) = FileName;4243BODY_FUNC(t_3) = t_4;4244CHANGED_BAG( TLS(CurrLVars) );4245CALL_2ARGS( t_1, t_2, t_3 );42464247/* BIND_GLOBAL( "SupType3", function ( type, filter, data )4248local new, i;4249new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), data );4250for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do4251if IsBound( type![i]) then4252new![i] := type![i];4253fi;4254od;4255return new;4256end ); */4257t_1 = GF_BIND__GLOBAL;4258C_NEW_STRING( t_2, 8, "SupType3" );4259t_3 = NewFunction( NameFunc[21], NargFunc[21], NamsFunc[21], HdlrFunc21 );4260ENVI_FUNC( t_3 ) = TLS(CurrLVars);4261t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4262STARTLINE_BODY(t_4) = INTOBJ_INT(431);4263ENDLINE_BODY(t_4) = INTOBJ_INT(445);4264FILENAME_BODY(t_4) = FileName;4265BODY_FUNC(t_3) = t_4;4266CHANGED_BAG( TLS(CurrLVars) );4267CALL_2ARGS( t_1, t_2, t_3 );42684269/* BIND_GLOBAL( "SupType", function ( arg... )4270if not IsType( arg[1] ) then4271Error( "<type> must be a type" );4272fi;4273if LEN_LIST( arg ) = 2 then4274return SupType2( arg[1], arg[2] );4275else4276return SupType3( arg[1], arg[2], arg[3] );4277fi;4278return;4279end ); */4280t_1 = GF_BIND__GLOBAL;4281C_NEW_STRING( t_2, 7, "SupType" );4282t_3 = NewFunction( NameFunc[22], NargFunc[22], NamsFunc[22], HdlrFunc22 );4283ENVI_FUNC( t_3 ) = TLS(CurrLVars);4284t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4285STARTLINE_BODY(t_4) = INTOBJ_INT(448);4286ENDLINE_BODY(t_4) = INTOBJ_INT(462);4287FILENAME_BODY(t_4) = FileName;4288BODY_FUNC(t_3) = t_4;4289CHANGED_BAG( TLS(CurrLVars) );4290CALL_2ARGS( t_1, t_2, t_3 );42914292/* BIND_GLOBAL( "FamilyType", function ( K )4293return K![1];4294end ); */4295t_1 = GF_BIND__GLOBAL;4296C_NEW_STRING( t_2, 10, "FamilyType" );4297t_3 = NewFunction( NameFunc[23], NargFunc[23], NamsFunc[23], HdlrFunc23 );4298ENVI_FUNC( t_3 ) = TLS(CurrLVars);4299t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4300STARTLINE_BODY(t_4) = INTOBJ_INT(476);4301ENDLINE_BODY(t_4) = INTOBJ_INT(476);4302FILENAME_BODY(t_4) = FileName;4303BODY_FUNC(t_3) = t_4;4304CHANGED_BAG( TLS(CurrLVars) );4305CALL_2ARGS( t_1, t_2, t_3 );43064307/* BIND_GLOBAL( "FlagsType", function ( K )4308return K![2];4309end ); */4310t_1 = GF_BIND__GLOBAL;4311C_NEW_STRING( t_2, 9, "FlagsType" );4312t_3 = NewFunction( NameFunc[24], NargFunc[24], NamsFunc[24], HdlrFunc24 );4313ENVI_FUNC( t_3 ) = TLS(CurrLVars);4314t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4315STARTLINE_BODY(t_4) = INTOBJ_INT(490);4316ENDLINE_BODY(t_4) = INTOBJ_INT(490);4317FILENAME_BODY(t_4) = FileName;4318BODY_FUNC(t_3) = t_4;4319CHANGED_BAG( TLS(CurrLVars) );4320CALL_2ARGS( t_1, t_2, t_3 );43214322/* BIND_GLOBAL( "DataType", function ( K )4323return K![POS_DATA_TYPE];4324end ); */4325t_1 = GF_BIND__GLOBAL;4326C_NEW_STRING( t_2, 8, "DataType" );4327t_3 = NewFunction( NameFunc[25], NargFunc[25], NamsFunc[25], HdlrFunc25 );4328ENVI_FUNC( t_3 ) = TLS(CurrLVars);4329t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4330STARTLINE_BODY(t_4) = INTOBJ_INT(506);4331ENDLINE_BODY(t_4) = INTOBJ_INT(506);4332FILENAME_BODY(t_4) = FileName;4333BODY_FUNC(t_3) = t_4;4334CHANGED_BAG( TLS(CurrLVars) );4335CALL_2ARGS( t_1, t_2, t_3 );43364337/* BIND_GLOBAL( "SetDataType", function ( K, data )4338K![POS_DATA_TYPE] := data;4339return;4340end ); */4341t_1 = GF_BIND__GLOBAL;4342C_NEW_STRING( t_2, 11, "SetDataType" );4343t_3 = NewFunction( NameFunc[26], NargFunc[26], NamsFunc[26], HdlrFunc26 );4344ENVI_FUNC( t_3 ) = TLS(CurrLVars);4345t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4346STARTLINE_BODY(t_4) = INTOBJ_INT(508);4347ENDLINE_BODY(t_4) = INTOBJ_INT(510);4348FILENAME_BODY(t_4) = FileName;4349BODY_FUNC(t_3) = t_4;4350CHANGED_BAG( TLS(CurrLVars) );4351CALL_2ARGS( t_1, t_2, t_3 );43524353/* BIND_GLOBAL( "SharedType", function ( K )4354return K![POS_DATA_TYPE];4355end ); */4356t_1 = GF_BIND__GLOBAL;4357C_NEW_STRING( t_2, 10, "SharedType" );4358t_3 = NewFunction( NameFunc[27], NargFunc[27], NamsFunc[27], HdlrFunc27 );4359ENVI_FUNC( t_3 ) = TLS(CurrLVars);4360t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4361STARTLINE_BODY(t_4) = INTOBJ_INT(524);4362ENDLINE_BODY(t_4) = INTOBJ_INT(524);4363FILENAME_BODY(t_4) = FileName;4364BODY_FUNC(t_3) = t_4;4365CHANGED_BAG( TLS(CurrLVars) );4366CALL_2ARGS( t_1, t_2, t_3 );43674368/* BIND_GLOBAL( "TypeObj", TYPE_OBJ ); */4369t_1 = GF_BIND__GLOBAL;4370C_NEW_STRING( t_2, 7, "TypeObj" );4371t_3 = GC_TYPE__OBJ;4372CHECK_BOUND( t_3, "TYPE_OBJ" )4373CALL_2ARGS( t_1, t_2, t_3 );43744375/* BIND_GLOBAL( "FamilyObj", FAMILY_OBJ ); */4376t_1 = GF_BIND__GLOBAL;4377C_NEW_STRING( t_2, 9, "FamilyObj" );4378t_3 = GC_FAMILY__OBJ;4379CHECK_BOUND( t_3, "FAMILY_OBJ" )4380CALL_2ARGS( t_1, t_2, t_3 );43814382/* BIND_GLOBAL( "FlagsObj", function ( obj )4383return FlagsType( TypeObj( obj ) );4384end ); */4385t_1 = GF_BIND__GLOBAL;4386C_NEW_STRING( t_2, 8, "FlagsObj" );4387t_3 = NewFunction( NameFunc[28], NargFunc[28], NamsFunc[28], HdlrFunc28 );4388ENVI_FUNC( t_3 ) = TLS(CurrLVars);4389t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4390STARTLINE_BODY(t_4) = INTOBJ_INT(623);4391ENDLINE_BODY(t_4) = INTOBJ_INT(623);4392FILENAME_BODY(t_4) = FileName;4393BODY_FUNC(t_3) = t_4;4394CHANGED_BAG( TLS(CurrLVars) );4395CALL_2ARGS( t_1, t_2, t_3 );43964397/* BIND_GLOBAL( "DataObj", function ( obj )4398return DataType( TypeObj( obj ) );4399end ); */4400t_1 = GF_BIND__GLOBAL;4401C_NEW_STRING( t_2, 7, "DataObj" );4402t_3 = NewFunction( NameFunc[29], NargFunc[29], NamsFunc[29], HdlrFunc29 );4403ENVI_FUNC( t_3 ) = TLS(CurrLVars);4404t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4405STARTLINE_BODY(t_4) = INTOBJ_INT(637);4406ENDLINE_BODY(t_4) = INTOBJ_INT(637);4407FILENAME_BODY(t_4) = FileName;4408BODY_FUNC(t_3) = t_4;4409CHANGED_BAG( TLS(CurrLVars) );4410CALL_2ARGS( t_1, t_2, t_3 );44114412/* BIND_GLOBAL( "SharedObj", function ( obj )4413return SharedType( TypeObj( obj ) );4414end ); */4415t_1 = GF_BIND__GLOBAL;4416C_NEW_STRING( t_2, 9, "SharedObj" );4417t_3 = NewFunction( NameFunc[30], NargFunc[30], NamsFunc[30], HdlrFunc30 );4418ENVI_FUNC( t_3 ) = TLS(CurrLVars);4419t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4420STARTLINE_BODY(t_4) = INTOBJ_INT(651);4421ENDLINE_BODY(t_4) = INTOBJ_INT(651);4422FILENAME_BODY(t_4) = FileName;4423BODY_FUNC(t_3) = t_4;4424CHANGED_BAG( TLS(CurrLVars) );4425CALL_2ARGS( t_1, t_2, t_3 );44264427/* BIND_GLOBAL( "SetTypeObj", function ( type, obj )4428if not IsType( type ) then4429Error( "<type> must be a type" );4430fi;4431if IS_LIST( obj ) then4432SET_TYPE_POSOBJ( obj, type );4433elif IS_REC( obj ) then4434SET_TYPE_COMOBJ( obj, type );4435fi;4436if not IsNoImmediateMethodsObject( obj ) then4437RunImmediateMethods( obj, type![2] );4438fi;4439return obj;4440end ); */4441t_1 = GF_BIND__GLOBAL;4442C_NEW_STRING( t_2, 10, "SetTypeObj" );4443t_3 = NewFunction( NameFunc[31], NargFunc[31], NamsFunc[31], HdlrFunc31 );4444ENVI_FUNC( t_3 ) = TLS(CurrLVars);4445t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4446STARTLINE_BODY(t_4) = INTOBJ_INT(665);4447ENDLINE_BODY(t_4) = INTOBJ_INT(678);4448FILENAME_BODY(t_4) = FileName;4449BODY_FUNC(t_3) = t_4;4450CHANGED_BAG( TLS(CurrLVars) );4451CALL_2ARGS( t_1, t_2, t_3 );44524453/* BIND_GLOBAL( "IsNonAtomicComponentObjectRepFlags", FLAGS_FILTER( IsNonAtomicComponentObjectRep ) ); */4454t_1 = GF_BIND__GLOBAL;4455C_NEW_STRING( t_2, 34, "IsNonAtomicComponentObjectRepFlags" );4456t_4 = GF_FLAGS__FILTER;4457t_5 = GC_IsNonAtomicComponentObjectRep;4458CHECK_BOUND( t_5, "IsNonAtomicComponentObjectRep" )4459t_3 = CALL_1ARGS( t_4, t_5 );4460CHECK_FUNC_RESULT( t_3 )4461CALL_2ARGS( t_1, t_2, t_3 );44624463/* BIND_GLOBAL( "IsAtomicPositionalObjectRepFlags", FLAGS_FILTER( IsAtomicPositionalObjectRep ) ); */4464t_1 = GF_BIND__GLOBAL;4465C_NEW_STRING( t_2, 32, "IsAtomicPositionalObjectRepFlags" );4466t_4 = GF_FLAGS__FILTER;4467t_5 = GC_IsAtomicPositionalObjectRep;4468CHECK_BOUND( t_5, "IsAtomicPositionalObjectRep" )4469t_3 = CALL_1ARGS( t_4, t_5 );4470CHECK_FUNC_RESULT( t_3 )4471CALL_2ARGS( t_1, t_2, t_3 );44724473/* BIND_GLOBAL( "IsReadOnlyPositionalObjectRepFlags", FLAGS_FILTER( IsReadOnlyPositionalObjectRep ) ); */4474t_1 = GF_BIND__GLOBAL;4475C_NEW_STRING( t_2, 34, "IsReadOnlyPositionalObjectRepFlags" );4476t_4 = GF_FLAGS__FILTER;4477t_5 = GC_IsReadOnlyPositionalObjectRep;4478CHECK_BOUND( t_5, "IsReadOnlyPositionalObjectRep" )4479t_3 = CALL_1ARGS( t_4, t_5 );4480CHECK_FUNC_RESULT( t_3 )4481CALL_2ARGS( t_1, t_2, t_3 );44824483/* BIND_GLOBAL( "Objectify", SetTypeObj ); */4484t_1 = GF_BIND__GLOBAL;4485C_NEW_STRING( t_2, 9, "Objectify" );4486t_3 = GC_SetTypeObj;4487CHECK_BOUND( t_3, "SetTypeObj" )4488CALL_2ARGS( t_1, t_2, t_3 );44894490/* BIND_GLOBAL( "ChangeTypeObj", function ( type, obj )4491if not IsType( type ) then4492Error( "<type> must be a type" );4493fi;4494if IS_POSOBJ( obj ) then4495SET_TYPE_POSOBJ( obj, type );4496elif IS_COMOBJ( obj ) then4497SET_TYPE_COMOBJ( obj, type );4498elif IS_DATOBJ( obj ) then4499SET_TYPE_DATOBJ( obj, type );4500fi;4501if not IsNoImmediateMethodsObject( obj ) then4502RunImmediateMethods( obj, type![2] );4503fi;4504return obj;4505end ); */4506t_1 = GF_BIND__GLOBAL;4507C_NEW_STRING( t_2, 13, "ChangeTypeObj" );4508t_3 = NewFunction( NameFunc[32], NargFunc[32], NamsFunc[32], HdlrFunc32 );4509ENVI_FUNC( t_3 ) = TLS(CurrLVars);4510t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4511STARTLINE_BODY(t_4) = INTOBJ_INT(702);4512ENDLINE_BODY(t_4) = INTOBJ_INT(717);4513FILENAME_BODY(t_4) = FileName;4514BODY_FUNC(t_3) = t_4;4515CHANGED_BAG( TLS(CurrLVars) );4516CALL_2ARGS( t_1, t_2, t_3 );45174518/* BIND_GLOBAL( "ReObjectify", ChangeTypeObj ); */4519t_1 = GF_BIND__GLOBAL;4520C_NEW_STRING( t_2, 11, "ReObjectify" );4521t_3 = GC_ChangeTypeObj;4522CHECK_BOUND( t_3, "ChangeTypeObj" )4523CALL_2ARGS( t_1, t_2, t_3 );45244525/* Unbind( SetFilterObj ); */4526AssGVar( G_SetFilterObj, 0 );45274528/* BIND_GLOBAL( "SetFilterObj", function ( obj, filter )4529local type, newtype;4530if IS_POSOBJ( obj ) then4531type := TYPE_OBJ( obj );4532newtype := Subtype2( type, filter );4533SET_TYPE_POSOBJ( obj, newtype );4534if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then4535RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) );4536fi;4537elif IS_COMOBJ( obj ) then4538type := TYPE_OBJ( obj );4539newtype := Subtype2( type, filter );4540SET_TYPE_COMOBJ( obj, newtype );4541if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then4542RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) );4543fi;4544elif IS_DATOBJ( obj ) then4545type := TYPE_OBJ( obj );4546newtype := Subtype2( type, filter );4547SET_TYPE_DATOBJ( obj, newtype );4548if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then4549RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) );4550fi;4551elif IS_PLIST_REP( obj ) then4552SET_FILTER_LIST( obj, filter );4553elif IS_STRING_REP( obj ) then4554SET_FILTER_LIST( obj, filter );4555elif IS_BLIST( obj ) then4556SET_FILTER_LIST( obj, filter );4557elif IS_RANGE( obj ) then4558SET_FILTER_LIST( obj, filter );4559else4560Error( "cannot set filter for internal object" );4561fi;4562return;4563end ); */4564t_1 = GF_BIND__GLOBAL;4565C_NEW_STRING( t_2, 12, "SetFilterObj" );4566t_3 = NewFunction( NameFunc[33], NargFunc[33], NamsFunc[33], HdlrFunc33 );4567ENVI_FUNC( t_3 ) = TLS(CurrLVars);4568t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4569STARTLINE_BODY(t_4) = INTOBJ_INT(741);4570ENDLINE_BODY(t_4) = INTOBJ_INT(779);4571FILENAME_BODY(t_4) = FileName;4572BODY_FUNC(t_3) = t_4;4573CHANGED_BAG( TLS(CurrLVars) );4574CALL_2ARGS( t_1, t_2, t_3 );45754576/* BIND_GLOBAL( "SET_FILTER_OBJ", SetFilterObj ); */4577t_1 = GF_BIND__GLOBAL;4578C_NEW_STRING( t_2, 14, "SET_FILTER_OBJ" );4579t_3 = GC_SetFilterObj;4580CHECK_BOUND( t_3, "SetFilterObj" )4581CALL_2ARGS( t_1, t_2, t_3 );45824583/* BIND_GLOBAL( "ResetFilterObj", function ( obj, filter )4584if IS_AND_FILTER( filter ) then4585Error( "You can't reset an \"and-filter\". Reset components individually." );4586fi;4587if IS_POSOBJ( obj ) then4588SET_TYPE_POSOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) );4589elif IS_COMOBJ( obj ) then4590SET_TYPE_COMOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) );4591elif IS_DATOBJ( obj ) then4592SET_TYPE_DATOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) );4593elif IS_PLIST_REP( obj ) then4594RESET_FILTER_LIST( obj, filter );4595elif IS_STRING_REP( obj ) then4596RESET_FILTER_LIST( obj, filter );4597elif IS_BLIST( obj ) then4598RESET_FILTER_LIST( obj, filter );4599elif IS_RANGE( obj ) then4600RESET_FILTER_LIST( obj, filter );4601else4602Error( "cannot reset filter for internal object" );4603fi;4604return;4605end ); */4606t_1 = GF_BIND__GLOBAL;4607C_NEW_STRING( t_2, 14, "ResetFilterObj" );4608t_3 = NewFunction( NameFunc[34], NargFunc[34], NamsFunc[34], HdlrFunc34 );4609ENVI_FUNC( t_3 ) = TLS(CurrLVars);4610t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4611STARTLINE_BODY(t_4) = INTOBJ_INT(801);4612ENDLINE_BODY(t_4) = INTOBJ_INT(823);4613FILENAME_BODY(t_4) = FileName;4614BODY_FUNC(t_3) = t_4;4615CHANGED_BAG( TLS(CurrLVars) );4616CALL_2ARGS( t_1, t_2, t_3 );46174618/* BIND_GLOBAL( "RESET_FILTER_OBJ", ResetFilterObj ); */4619t_1 = GF_BIND__GLOBAL;4620C_NEW_STRING( t_2, 16, "RESET_FILTER_OBJ" );4621t_3 = GC_ResetFilterObj;4622CHECK_BOUND( t_3, "ResetFilterObj" )4623CALL_2ARGS( t_1, t_2, t_3 );46244625/* BIND_GLOBAL( "SetFeatureObj", function ( obj, filter, val )4626if val then4627SetFilterObj( obj, filter );4628else4629ResetFilterObj( obj, filter );4630fi;4631return;4632end ); */4633t_1 = GF_BIND__GLOBAL;4634C_NEW_STRING( t_2, 13, "SetFeatureObj" );4635t_3 = NewFunction( NameFunc[35], NargFunc[35], NamsFunc[35], HdlrFunc35 );4636ENVI_FUNC( t_3 ) = TLS(CurrLVars);4637t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4638STARTLINE_BODY(t_4) = INTOBJ_INT(839);4639ENDLINE_BODY(t_4) = INTOBJ_INT(845);4640FILENAME_BODY(t_4) = FileName;4641BODY_FUNC(t_3) = t_4;4642CHANGED_BAG( TLS(CurrLVars) );4643CALL_2ARGS( t_1, t_2, t_3 );46444645/* BIND_GLOBAL( "SetMultipleAttributes", function ( arg... )4646local obj, type, flags, attr, val, i, extra, nfilt, nflags;4647obj := arg[1];4648if IsAttributeStoringRep( obj ) then4649extra := [ ];4650type := TypeObj( obj );4651flags := FlagsType( type );4652nfilt := IS_OBJECT;4653for i in [ 2, 4 .. LEN_LIST( arg ) - 1 ] do4654attr := arg[i];4655val := arg[i + 1];4656if 0 <> FLAG1_FILTER( attr ) then4657if val then4658nfilt := nfilt and attr;4659else4660nfilt := nfilt and Tester( attr );4661fi;4662elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> 12 then4663ADD_LIST( extra, attr );4664ADD_LIST( extra, val );4665else4666obj!.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val );4667nfilt := nfilt and Tester( attr );4668fi;4669od;4670nflags := FLAGS_FILTER( nfilt );4671if not IS_SUBSET_FLAGS( flags, nflags ) then4672flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) );4673ChangeTypeObj( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj );4674fi;4675for i in [ 2, 4 .. LEN_LIST( extra ) ] do4676Setter( extra[i - 1] )( obj, extra[i] );4677od;4678else4679extra := arg;4680for i in [ 2, 4 .. LEN_LIST( extra ) ] do4681Setter( extra[i] )( obj, extra[i + 1] );4682od;4683fi;4684return;4685end ); */4686t_1 = GF_BIND__GLOBAL;4687C_NEW_STRING( t_2, 21, "SetMultipleAttributes" );4688t_3 = NewFunction( NameFunc[36], NargFunc[36], NamsFunc[36], HdlrFunc36 );4689ENVI_FUNC( t_3 ) = TLS(CurrLVars);4690t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4691STARTLINE_BODY(t_4) = INTOBJ_INT(866);4692ENDLINE_BODY(t_4) = INTOBJ_INT(918);4693FILENAME_BODY(t_4) = FileName;4694BODY_FUNC(t_3) = t_4;4695CHANGED_BAG( TLS(CurrLVars) );4696CALL_2ARGS( t_1, t_2, t_3 );46974698/* BIND_GLOBAL( "IsAttributeStoringRepFlags", FLAGS_FILTER( IsAttributeStoringRep ) ); */4699t_1 = GF_BIND__GLOBAL;4700C_NEW_STRING( t_2, 26, "IsAttributeStoringRepFlags" );4701t_4 = GF_FLAGS__FILTER;4702t_5 = GC_IsAttributeStoringRep;4703CHECK_BOUND( t_5, "IsAttributeStoringRep" )4704t_3 = CALL_1ARGS( t_4, t_5 );4705CHECK_FUNC_RESULT( t_3 )4706CALL_2ARGS( t_1, t_2, t_3 );47074708/* BIND_GLOBAL( "INFO_OWA", Ignore ); */4709t_1 = GF_BIND__GLOBAL;4710C_NEW_STRING( t_2, 8, "INFO_OWA" );4711t_3 = GC_Ignore;4712CHECK_BOUND( t_3, "Ignore" )4713CALL_2ARGS( t_1, t_2, t_3 );47144715/* MAKE_READ_WRITE_GLOBAL( "INFO_OWA" ); */4716t_1 = GF_MAKE__READ__WRITE__GLOBAL;4717C_NEW_STRING( t_2, 8, "INFO_OWA" );4718CALL_1ARGS( t_1, t_2 );47194720/* BIND_GLOBAL( "ObjectifyWithAttributes", function ( arg... )4721local obj, type, flags, attr, val, i, extra, nflags;4722obj := arg[1];4723type := arg[2];4724flags := FlagsType( type );4725extra := [ ];4726if not IS_SUBSET_FLAGS( flags, IsAttributeStoringRepFlags ) then4727extra := arg{[ 3 .. LEN_LIST( arg ) ]};4728INFO_OWA( "#W ObjectifyWithAttributes called ", "for non-attribute storing rep\n" );4729Objectify( type, obj );4730else4731nflags := EMPTY_FLAGS;4732for i in [ 3, 5 .. LEN_LIST( arg ) - 1 ] do4733attr := arg[i];4734val := arg[i + 1];4735if 0 <> FLAG1_FILTER( attr ) then4736if val then4737nflags := AND_FLAGS( nflags, FLAGS_FILTER( attr ) );4738else4739nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) );4740fi;4741elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> LENGTH_SETTER_METHODS_2 then4742ADD_LIST( extra, attr );4743ADD_LIST( extra, val );4744else4745obj.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val );4746nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) );4747fi;4748od;4749if not IS_SUBSET_FLAGS( flags, nflags ) then4750flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) );4751Objectify( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj );4752else4753Objectify( type, obj );4754fi;4755fi;4756for i in [ 1, 3 .. LEN_LIST( extra ) - 1 ] do4757if Tester( extra[i] )( obj ) then4758INFO_OWA( "#W Supplied type has tester of ", NAME_FUNC( extra[i] ), "with non-standard setter\n" );4759ResetFilterObj( obj, Tester( extra[i] ) );4760fi;4761Setter( extra[i] )( obj, extra[i + 1] );4762od;4763return;4764end ); */4765t_1 = GF_BIND__GLOBAL;4766C_NEW_STRING( t_2, 23, "ObjectifyWithAttributes" );4767t_3 = NewFunction( NameFunc[37], NargFunc[37], NamsFunc[37], HdlrFunc37 );4768ENVI_FUNC( t_3 ) = TLS(CurrLVars);4769t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );4770STARTLINE_BODY(t_4) = INTOBJ_INT(965);4771ENDLINE_BODY(t_4) = INTOBJ_INT(1030);4772FILENAME_BODY(t_4) = FileName;4773BODY_FUNC(t_3) = t_4;4774CHANGED_BAG( TLS(CurrLVars) );4775CALL_2ARGS( t_1, t_2, t_3 );47764777/* return; */4778RES_BRK_CURR_STAT();4779SWITCH_TO_OLD_FRAME(oldFrame);4780return 0;47814782/* return; */4783RES_BRK_CURR_STAT();4784SWITCH_TO_OLD_FRAME(oldFrame);4785return 0;4786}47874788/* 'InitKernel' sets up data structures, fopies, copies, handlers */4789static Int InitKernel ( StructInitInfo * module )4790{47914792/* global variables used in handlers */4793InitFopyGVar( "NAME_FUNC", &GF_NAME__FUNC );4794InitFopyGVar( "IsType", &GF_IsType );4795InitFopyGVar( "IS_REC", &GF_IS__REC );4796InitFopyGVar( "IS_LIST", &GF_IS__LIST );4797InitFopyGVar( "ADD_LIST", &GF_ADD__LIST );4798InitFopyGVar( "IS_PLIST_REP", &GF_IS__PLIST__REP );4799InitFopyGVar( "IS_BLIST", &GF_IS__BLIST );4800InitFopyGVar( "IS_RANGE", &GF_IS__RANGE );4801InitFopyGVar( "IS_STRING_REP", &GF_IS__STRING__REP );4802InitFopyGVar( "Error", &GF_Error );4803InitCopyGVar( "TYPE_OBJ", &GC_TYPE__OBJ );4804InitFopyGVar( "TYPE_OBJ", &GF_TYPE__OBJ );4805InitCopyGVar( "FAMILY_OBJ", &GC_FAMILY__OBJ );4806InitFopyGVar( "IMMUTABLE_COPY_OBJ", &GF_IMMUTABLE__COPY__OBJ );4807InitFopyGVar( "IS_IDENTICAL_OBJ", &GF_IS__IDENTICAL__OBJ );4808InitFopyGVar( "IS_COMOBJ", &GF_IS__COMOBJ );4809InitFopyGVar( "SET_TYPE_COMOBJ", &GF_SET__TYPE__COMOBJ );4810InitFopyGVar( "IS_POSOBJ", &GF_IS__POSOBJ );4811InitFopyGVar( "SET_TYPE_POSOBJ", &GF_SET__TYPE__POSOBJ );4812InitFopyGVar( "LEN_POSOBJ", &GF_LEN__POSOBJ );4813InitFopyGVar( "IS_DATOBJ", &GF_IS__DATOBJ );4814InitFopyGVar( "SET_TYPE_DATOBJ", &GF_SET__TYPE__DATOBJ );4815InitCopyGVar( "IS_OBJECT", &GC_IS__OBJECT );4816InitFopyGVar( "AND_FLAGS", &GF_AND__FLAGS );4817InitFopyGVar( "SUB_FLAGS", &GF_SUB__FLAGS );4818InitFopyGVar( "HASH_FLAGS", &GF_HASH__FLAGS );4819InitFopyGVar( "IS_EQUAL_FLAGS", &GF_IS__EQUAL__FLAGS );4820InitFopyGVar( "IS_SUBSET_FLAGS", &GF_IS__SUBSET__FLAGS );4821InitFopyGVar( "FLAG1_FILTER", &GF_FLAG1__FILTER );4822InitFopyGVar( "FLAGS_FILTER", &GF_FLAGS__FILTER );4823InitFopyGVar( "METHODS_OPERATION", &GF_METHODS__OPERATION );4824InitFopyGVar( "SETTER_FUNCTION", &GF_SETTER__FUNCTION );4825InitFopyGVar( "GETTER_FUNCTION", &GF_GETTER__FUNCTION );4826InitFopyGVar( "IS_AND_FILTER", &GF_IS__AND__FILTER );4827InitFopyGVar( "COMPACT_TYPE_IDS", &GF_COMPACT__TYPE__IDS );4828InitFopyGVar( "LEN_LIST", &GF_LEN__LIST );4829InitFopyGVar( "SET_FILTER_LIST", &GF_SET__FILTER__LIST );4830InitFopyGVar( "RESET_FILTER_LIST", &GF_RESET__FILTER__LIST );4831InitFopyGVar( "GASMAN", &GF_GASMAN );4832InitFopyGVar( "InstallAttributeFunction", &GF_InstallAttributeFunction );4833InitFopyGVar( "InstallOtherMethod", &GF_InstallOtherMethod );4834InitCopyGVar( "IsAttributeStoringRep", &GC_IsAttributeStoringRep );4835InitFopyGVar( "IsAttributeStoringRep", &GF_IsAttributeStoringRep );4836InitCopyGVar( "GETTER_FLAGS", &GC_GETTER__FLAGS );4837InitCopyGVar( "LENGTH_SETTER_METHODS_2", &GC_LENGTH__SETTER__METHODS__2 );4838InitCopyGVar( "SetFilterObj", &GC_SetFilterObj );4839InitFopyGVar( "SetFilterObj", &GF_SetFilterObj );4840InitFopyGVar( "Subtype", &GF_Subtype );4841InitFopyGVar( "BIND_GLOBAL", &GF_BIND__GLOBAL );4842InitFopyGVar( "WITH_IMPS_FLAGS", &GF_WITH__IMPS__FLAGS );4843InitCopyGVar( "CATEGORIES_FAMILY", &GC_CATEGORIES__FAMILY );4844InitFopyGVar( "NEW_FAMILY", &GF_NEW__FAMILY );4845InitCopyGVar( "EMPTY_FLAGS", &GC_EMPTY__FLAGS );4846InitFopyGVar( "NewFamily2", &GF_NewFamily2 );4847InitCopyGVar( "TypeOfFamilies", &GC_TypeOfFamilies );4848InitFopyGVar( "NewFamily3", &GF_NewFamily3 );4849InitFopyGVar( "NewFamily4", &GF_NewFamily4 );4850InitFopyGVar( "NewFamily5", &GF_NewFamily5 );4851InitCopyGVar( "NEW_TYPE_CACHE_MISS", &GC_NEW__TYPE__CACHE__MISS );4852InitCopyGVar( "NEW_TYPE_CACHE_HIT", &GC_NEW__TYPE__CACHE__HIT );4853InitCopyGVar( "POS_DATA_TYPE", &GC_POS__DATA__TYPE );4854InitCopyGVar( "NEW_TYPE_NEXT_ID", &GC_NEW__TYPE__NEXT__ID );4855InitCopyGVar( "NEW_TYPE_ID_LIMIT", &GC_NEW__TYPE__ID__LIMIT );4856InitFopyGVar( "FLUSH_ALL_METHOD_CACHES", &GF_FLUSH__ALL__METHOD__CACHES );4857InitCopyGVar( "POS_NUMB_TYPE", &GC_POS__NUMB__TYPE );4858InitFopyGVar( "NEW_TYPE", &GF_NEW__TYPE );4859InitCopyGVar( "POS_FIRST_FREE_TYPE", &GC_POS__FIRST__FREE__TYPE );4860InitFopyGVar( "IsFamily", &GF_IsFamily );4861InitFopyGVar( "NewType2", &GF_NewType2 );4862InitCopyGVar( "TypeOfTypes", &GC_TypeOfTypes );4863InitFopyGVar( "NewType3", &GF_NewType3 );4864InitFopyGVar( "NewType4", &GF_NewType4 );4865InitFopyGVar( "NewType5", &GF_NewType5 );4866InitFopyGVar( "Subtype2", &GF_Subtype2 );4867InitFopyGVar( "Subtype3", &GF_Subtype3 );4868InitFopyGVar( "SupType2", &GF_SupType2 );4869InitFopyGVar( "SupType3", &GF_SupType3 );4870InitFopyGVar( "FlagsType", &GF_FlagsType );4871InitFopyGVar( "TypeObj", &GF_TypeObj );4872InitFopyGVar( "DataType", &GF_DataType );4873InitFopyGVar( "SharedType", &GF_SharedType );4874InitFopyGVar( "IsNoImmediateMethodsObject", &GF_IsNoImmediateMethodsObject );4875InitFopyGVar( "RunImmediateMethods", &GF_RunImmediateMethods );4876InitCopyGVar( "IsNonAtomicComponentObjectRep", &GC_IsNonAtomicComponentObjectRep );4877InitCopyGVar( "IsAtomicPositionalObjectRep", &GC_IsAtomicPositionalObjectRep );4878InitCopyGVar( "IsReadOnlyPositionalObjectRep", &GC_IsReadOnlyPositionalObjectRep );4879InitCopyGVar( "SetTypeObj", &GC_SetTypeObj );4880InitCopyGVar( "ChangeTypeObj", &GC_ChangeTypeObj );4881InitFopyGVar( "ChangeTypeObj", &GF_ChangeTypeObj );4882InitCopyGVar( "IGNORE_IMMEDIATE_METHODS", &GC_IGNORE__IMMEDIATE__METHODS );4883InitCopyGVar( "ResetFilterObj", &GC_ResetFilterObj );4884InitFopyGVar( "ResetFilterObj", &GF_ResetFilterObj );4885InitFopyGVar( "Tester", &GF_Tester );4886InitFopyGVar( "Setter", &GF_Setter );4887InitFopyGVar( "FamilyType", &GF_FamilyType );4888InitCopyGVar( "Ignore", &GC_Ignore );4889InitFopyGVar( "MAKE_READ_WRITE_GLOBAL", &GF_MAKE__READ__WRITE__GLOBAL );4890InitCopyGVar( "IsAttributeStoringRepFlags", &GC_IsAttributeStoringRepFlags );4891InitFopyGVar( "INFO_OWA", &GF_INFO__OWA );4892InitFopyGVar( "Objectify", &GF_Objectify );48934894/* information for the functions */4895InitGlobalBag( &DefaultName, "GAPROOT/lib/type1.g:DefaultName(-36845939)" );4896InitGlobalBag( &FileName, "GAPROOT/lib/type1.g:FileName(-36845939)" );4897InitHandlerFunc( HdlrFunc1, "GAPROOT/lib/type1.g:HdlrFunc1(-36845939)" );4898InitGlobalBag( &(NameFunc[1]), "GAPROOT/lib/type1.g:NameFunc[1](-36845939)" );4899InitHandlerFunc( HdlrFunc2, "GAPROOT/lib/type1.g:HdlrFunc2(-36845939)" );4900InitGlobalBag( &(NameFunc[2]), "GAPROOT/lib/type1.g:NameFunc[2](-36845939)" );4901InitHandlerFunc( HdlrFunc3, "GAPROOT/lib/type1.g:HdlrFunc3(-36845939)" );4902InitGlobalBag( &(NameFunc[3]), "GAPROOT/lib/type1.g:NameFunc[3](-36845939)" );4903InitHandlerFunc( HdlrFunc4, "GAPROOT/lib/type1.g:HdlrFunc4(-36845939)" );4904InitGlobalBag( &(NameFunc[4]), "GAPROOT/lib/type1.g:NameFunc[4](-36845939)" );4905InitHandlerFunc( HdlrFunc5, "GAPROOT/lib/type1.g:HdlrFunc5(-36845939)" );4906InitGlobalBag( &(NameFunc[5]), "GAPROOT/lib/type1.g:NameFunc[5](-36845939)" );4907InitHandlerFunc( HdlrFunc6, "GAPROOT/lib/type1.g:HdlrFunc6(-36845939)" );4908InitGlobalBag( &(NameFunc[6]), "GAPROOT/lib/type1.g:NameFunc[6](-36845939)" );4909InitHandlerFunc( HdlrFunc7, "GAPROOT/lib/type1.g:HdlrFunc7(-36845939)" );4910InitGlobalBag( &(NameFunc[7]), "GAPROOT/lib/type1.g:NameFunc[7](-36845939)" );4911InitHandlerFunc( HdlrFunc8, "GAPROOT/lib/type1.g:HdlrFunc8(-36845939)" );4912InitGlobalBag( &(NameFunc[8]), "GAPROOT/lib/type1.g:NameFunc[8](-36845939)" );4913InitHandlerFunc( HdlrFunc9, "GAPROOT/lib/type1.g:HdlrFunc9(-36845939)" );4914InitGlobalBag( &(NameFunc[9]), "GAPROOT/lib/type1.g:NameFunc[9](-36845939)" );4915InitHandlerFunc( HdlrFunc10, "GAPROOT/lib/type1.g:HdlrFunc10(-36845939)" );4916InitGlobalBag( &(NameFunc[10]), "GAPROOT/lib/type1.g:NameFunc[10](-36845939)" );4917InitHandlerFunc( HdlrFunc11, "GAPROOT/lib/type1.g:HdlrFunc11(-36845939)" );4918InitGlobalBag( &(NameFunc[11]), "GAPROOT/lib/type1.g:NameFunc[11](-36845939)" );4919InitHandlerFunc( HdlrFunc12, "GAPROOT/lib/type1.g:HdlrFunc12(-36845939)" );4920InitGlobalBag( &(NameFunc[12]), "GAPROOT/lib/type1.g:NameFunc[12](-36845939)" );4921InitHandlerFunc( HdlrFunc13, "GAPROOT/lib/type1.g:HdlrFunc13(-36845939)" );4922InitGlobalBag( &(NameFunc[13]), "GAPROOT/lib/type1.g:NameFunc[13](-36845939)" );4923InitHandlerFunc( HdlrFunc14, "GAPROOT/lib/type1.g:HdlrFunc14(-36845939)" );4924InitGlobalBag( &(NameFunc[14]), "GAPROOT/lib/type1.g:NameFunc[14](-36845939)" );4925InitHandlerFunc( HdlrFunc15, "GAPROOT/lib/type1.g:HdlrFunc15(-36845939)" );4926InitGlobalBag( &(NameFunc[15]), "GAPROOT/lib/type1.g:NameFunc[15](-36845939)" );4927InitHandlerFunc( HdlrFunc16, "GAPROOT/lib/type1.g:HdlrFunc16(-36845939)" );4928InitGlobalBag( &(NameFunc[16]), "GAPROOT/lib/type1.g:NameFunc[16](-36845939)" );4929InitHandlerFunc( HdlrFunc17, "GAPROOT/lib/type1.g:HdlrFunc17(-36845939)" );4930InitGlobalBag( &(NameFunc[17]), "GAPROOT/lib/type1.g:NameFunc[17](-36845939)" );4931InitHandlerFunc( HdlrFunc18, "GAPROOT/lib/type1.g:HdlrFunc18(-36845939)" );4932InitGlobalBag( &(NameFunc[18]), "GAPROOT/lib/type1.g:NameFunc[18](-36845939)" );4933InitHandlerFunc( HdlrFunc19, "GAPROOT/lib/type1.g:HdlrFunc19(-36845939)" );4934InitGlobalBag( &(NameFunc[19]), "GAPROOT/lib/type1.g:NameFunc[19](-36845939)" );4935InitHandlerFunc( HdlrFunc20, "GAPROOT/lib/type1.g:HdlrFunc20(-36845939)" );4936InitGlobalBag( &(NameFunc[20]), "GAPROOT/lib/type1.g:NameFunc[20](-36845939)" );4937InitHandlerFunc( HdlrFunc21, "GAPROOT/lib/type1.g:HdlrFunc21(-36845939)" );4938InitGlobalBag( &(NameFunc[21]), "GAPROOT/lib/type1.g:NameFunc[21](-36845939)" );4939InitHandlerFunc( HdlrFunc22, "GAPROOT/lib/type1.g:HdlrFunc22(-36845939)" );4940InitGlobalBag( &(NameFunc[22]), "GAPROOT/lib/type1.g:NameFunc[22](-36845939)" );4941InitHandlerFunc( HdlrFunc23, "GAPROOT/lib/type1.g:HdlrFunc23(-36845939)" );4942InitGlobalBag( &(NameFunc[23]), "GAPROOT/lib/type1.g:NameFunc[23](-36845939)" );4943InitHandlerFunc( HdlrFunc24, "GAPROOT/lib/type1.g:HdlrFunc24(-36845939)" );4944InitGlobalBag( &(NameFunc[24]), "GAPROOT/lib/type1.g:NameFunc[24](-36845939)" );4945InitHandlerFunc( HdlrFunc25, "GAPROOT/lib/type1.g:HdlrFunc25(-36845939)" );4946InitGlobalBag( &(NameFunc[25]), "GAPROOT/lib/type1.g:NameFunc[25](-36845939)" );4947InitHandlerFunc( HdlrFunc26, "GAPROOT/lib/type1.g:HdlrFunc26(-36845939)" );4948InitGlobalBag( &(NameFunc[26]), "GAPROOT/lib/type1.g:NameFunc[26](-36845939)" );4949InitHandlerFunc( HdlrFunc27, "GAPROOT/lib/type1.g:HdlrFunc27(-36845939)" );4950InitGlobalBag( &(NameFunc[27]), "GAPROOT/lib/type1.g:NameFunc[27](-36845939)" );4951InitHandlerFunc( HdlrFunc28, "GAPROOT/lib/type1.g:HdlrFunc28(-36845939)" );4952InitGlobalBag( &(NameFunc[28]), "GAPROOT/lib/type1.g:NameFunc[28](-36845939)" );4953InitHandlerFunc( HdlrFunc29, "GAPROOT/lib/type1.g:HdlrFunc29(-36845939)" );4954InitGlobalBag( &(NameFunc[29]), "GAPROOT/lib/type1.g:NameFunc[29](-36845939)" );4955InitHandlerFunc( HdlrFunc30, "GAPROOT/lib/type1.g:HdlrFunc30(-36845939)" );4956InitGlobalBag( &(NameFunc[30]), "GAPROOT/lib/type1.g:NameFunc[30](-36845939)" );4957InitHandlerFunc( HdlrFunc31, "GAPROOT/lib/type1.g:HdlrFunc31(-36845939)" );4958InitGlobalBag( &(NameFunc[31]), "GAPROOT/lib/type1.g:NameFunc[31](-36845939)" );4959InitHandlerFunc( HdlrFunc32, "GAPROOT/lib/type1.g:HdlrFunc32(-36845939)" );4960InitGlobalBag( &(NameFunc[32]), "GAPROOT/lib/type1.g:NameFunc[32](-36845939)" );4961InitHandlerFunc( HdlrFunc33, "GAPROOT/lib/type1.g:HdlrFunc33(-36845939)" );4962InitGlobalBag( &(NameFunc[33]), "GAPROOT/lib/type1.g:NameFunc[33](-36845939)" );4963InitHandlerFunc( HdlrFunc34, "GAPROOT/lib/type1.g:HdlrFunc34(-36845939)" );4964InitGlobalBag( &(NameFunc[34]), "GAPROOT/lib/type1.g:NameFunc[34](-36845939)" );4965InitHandlerFunc( HdlrFunc35, "GAPROOT/lib/type1.g:HdlrFunc35(-36845939)" );4966InitGlobalBag( &(NameFunc[35]), "GAPROOT/lib/type1.g:NameFunc[35](-36845939)" );4967InitHandlerFunc( HdlrFunc36, "GAPROOT/lib/type1.g:HdlrFunc36(-36845939)" );4968InitGlobalBag( &(NameFunc[36]), "GAPROOT/lib/type1.g:NameFunc[36](-36845939)" );4969InitHandlerFunc( HdlrFunc37, "GAPROOT/lib/type1.g:HdlrFunc37(-36845939)" );4970InitGlobalBag( &(NameFunc[37]), "GAPROOT/lib/type1.g:NameFunc[37](-36845939)" );49714972/* return success */4973return 0;49744975}49764977/* 'InitLibrary' sets up gvars, rnams, functions */4978static Int InitLibrary ( StructInitInfo * module )4979{4980Obj func1;4981Obj body1;49824983/* Complete Copy/Fopy registration */4984UpdateCopyFopyInfo();49854986/* global variables used in handlers */4987G_NAME__FUNC = GVarName( "NAME_FUNC" );4988G_IsType = GVarName( "IsType" );4989G_IS__REC = GVarName( "IS_REC" );4990G_IS__LIST = GVarName( "IS_LIST" );4991G_ADD__LIST = GVarName( "ADD_LIST" );4992G_IS__PLIST__REP = GVarName( "IS_PLIST_REP" );4993G_IS__BLIST = GVarName( "IS_BLIST" );4994G_IS__RANGE = GVarName( "IS_RANGE" );4995G_IS__STRING__REP = GVarName( "IS_STRING_REP" );4996G_Error = GVarName( "Error" );4997G_TYPE__OBJ = GVarName( "TYPE_OBJ" );4998G_FAMILY__OBJ = GVarName( "FAMILY_OBJ" );4999G_IMMUTABLE__COPY__OBJ = GVarName( "IMMUTABLE_COPY_OBJ" );5000G_IS__IDENTICAL__OBJ = GVarName( "IS_IDENTICAL_OBJ" );5001G_IS__COMOBJ = GVarName( "IS_COMOBJ" );5002G_SET__TYPE__COMOBJ = GVarName( "SET_TYPE_COMOBJ" );5003G_IS__POSOBJ = GVarName( "IS_POSOBJ" );5004G_SET__TYPE__POSOBJ = GVarName( "SET_TYPE_POSOBJ" );5005G_LEN__POSOBJ = GVarName( "LEN_POSOBJ" );5006G_IS__DATOBJ = GVarName( "IS_DATOBJ" );5007G_SET__TYPE__DATOBJ = GVarName( "SET_TYPE_DATOBJ" );5008G_IS__OBJECT = GVarName( "IS_OBJECT" );5009G_AND__FLAGS = GVarName( "AND_FLAGS" );5010G_SUB__FLAGS = GVarName( "SUB_FLAGS" );5011G_HASH__FLAGS = GVarName( "HASH_FLAGS" );5012G_IS__EQUAL__FLAGS = GVarName( "IS_EQUAL_FLAGS" );5013G_IS__SUBSET__FLAGS = GVarName( "IS_SUBSET_FLAGS" );5014G_FLAG1__FILTER = GVarName( "FLAG1_FILTER" );5015G_FLAGS__FILTER = GVarName( "FLAGS_FILTER" );5016G_METHODS__OPERATION = GVarName( "METHODS_OPERATION" );5017G_SETTER__FUNCTION = GVarName( "SETTER_FUNCTION" );5018G_GETTER__FUNCTION = GVarName( "GETTER_FUNCTION" );5019G_IS__AND__FILTER = GVarName( "IS_AND_FILTER" );5020G_COMPACT__TYPE__IDS = GVarName( "COMPACT_TYPE_IDS" );5021G_LEN__LIST = GVarName( "LEN_LIST" );5022G_SET__FILTER__LIST = GVarName( "SET_FILTER_LIST" );5023G_RESET__FILTER__LIST = GVarName( "RESET_FILTER_LIST" );5024G_GASMAN = GVarName( "GASMAN" );5025G_InstallAttributeFunction = GVarName( "InstallAttributeFunction" );5026G_InstallOtherMethod = GVarName( "InstallOtherMethod" );5027G_IsAttributeStoringRep = GVarName( "IsAttributeStoringRep" );5028G_GETTER__FLAGS = GVarName( "GETTER_FLAGS" );5029G_LENGTH__SETTER__METHODS__2 = GVarName( "LENGTH_SETTER_METHODS_2" );5030G_SetFilterObj = GVarName( "SetFilterObj" );5031G_Subtype = GVarName( "Subtype" );5032G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" );5033G_WITH__IMPS__FLAGS = GVarName( "WITH_IMPS_FLAGS" );5034G_CATEGORIES__FAMILY = GVarName( "CATEGORIES_FAMILY" );5035G_NEW__FAMILY = GVarName( "NEW_FAMILY" );5036G_EMPTY__FLAGS = GVarName( "EMPTY_FLAGS" );5037G_NewFamily2 = GVarName( "NewFamily2" );5038G_TypeOfFamilies = GVarName( "TypeOfFamilies" );5039G_NewFamily3 = GVarName( "NewFamily3" );5040G_NewFamily4 = GVarName( "NewFamily4" );5041G_NewFamily5 = GVarName( "NewFamily5" );5042G_NEW__TYPE__CACHE__MISS = GVarName( "NEW_TYPE_CACHE_MISS" );5043G_NEW__TYPE__CACHE__HIT = GVarName( "NEW_TYPE_CACHE_HIT" );5044G_POS__DATA__TYPE = GVarName( "POS_DATA_TYPE" );5045G_NEW__TYPE__NEXT__ID = GVarName( "NEW_TYPE_NEXT_ID" );5046G_NEW__TYPE__ID__LIMIT = GVarName( "NEW_TYPE_ID_LIMIT" );5047G_FLUSH__ALL__METHOD__CACHES = GVarName( "FLUSH_ALL_METHOD_CACHES" );5048G_POS__NUMB__TYPE = GVarName( "POS_NUMB_TYPE" );5049G_NEW__TYPE = GVarName( "NEW_TYPE" );5050G_POS__FIRST__FREE__TYPE = GVarName( "POS_FIRST_FREE_TYPE" );5051G_IsFamily = GVarName( "IsFamily" );5052G_NewType2 = GVarName( "NewType2" );5053G_TypeOfTypes = GVarName( "TypeOfTypes" );5054G_NewType3 = GVarName( "NewType3" );5055G_NewType4 = GVarName( "NewType4" );5056G_NewType5 = GVarName( "NewType5" );5057G_Subtype2 = GVarName( "Subtype2" );5058G_Subtype3 = GVarName( "Subtype3" );5059G_SupType2 = GVarName( "SupType2" );5060G_SupType3 = GVarName( "SupType3" );5061G_FlagsType = GVarName( "FlagsType" );5062G_TypeObj = GVarName( "TypeObj" );5063G_DataType = GVarName( "DataType" );5064G_SharedType = GVarName( "SharedType" );5065G_IsNoImmediateMethodsObject = GVarName( "IsNoImmediateMethodsObject" );5066G_RunImmediateMethods = GVarName( "RunImmediateMethods" );5067G_IsNonAtomicComponentObjectRep = GVarName( "IsNonAtomicComponentObjectRep" );5068G_IsAtomicPositionalObjectRep = GVarName( "IsAtomicPositionalObjectRep" );5069G_IsReadOnlyPositionalObjectRep = GVarName( "IsReadOnlyPositionalObjectRep" );5070G_SetTypeObj = GVarName( "SetTypeObj" );5071G_ChangeTypeObj = GVarName( "ChangeTypeObj" );5072G_IGNORE__IMMEDIATE__METHODS = GVarName( "IGNORE_IMMEDIATE_METHODS" );5073G_ResetFilterObj = GVarName( "ResetFilterObj" );5074G_Tester = GVarName( "Tester" );5075G_Setter = GVarName( "Setter" );5076G_FamilyType = GVarName( "FamilyType" );5077G_Ignore = GVarName( "Ignore" );5078G_MAKE__READ__WRITE__GLOBAL = GVarName( "MAKE_READ_WRITE_GLOBAL" );5079G_IsAttributeStoringRepFlags = GVarName( "IsAttributeStoringRepFlags" );5080G_INFO__OWA = GVarName( "INFO_OWA" );5081G_Objectify = GVarName( "Objectify" );50825083/* record names used in handlers */5084R_TYPES__LIST__FAM = RNamName( "TYPES_LIST_FAM" );5085R_NAME = RNamName( "NAME" );5086R_REQ__FLAGS = RNamName( "REQ_FLAGS" );5087R_IMP__FLAGS = RNamName( "IMP_FLAGS" );5088R_TYPES = RNamName( "TYPES" );5089R_nTYPES = RNamName( "nTYPES" );5090R_HASH__SIZE = RNamName( "HASH_SIZE" );50915092/* information for the functions */5093C_NEW_STRING( DefaultName, 14, "local function" );5094C_NEW_STRING( FileName, 19, "GAPROOT/lib/type1.g" );5095NameFunc[1] = DefaultName;5096NamsFunc[1] = 0;5097NargFunc[1] = 0;5098NameFunc[2] = DefaultName;5099NamsFunc[2] = 0;5100NargFunc[2] = 6;5101NameFunc[3] = DefaultName;5102NamsFunc[3] = 0;5103NargFunc[3] = 6;5104NameFunc[4] = DefaultName;5105NamsFunc[4] = 0;5106NargFunc[4] = 2;5107NameFunc[5] = DefaultName;5108NamsFunc[5] = 0;5109NargFunc[5] = 4;5110NameFunc[6] = DefaultName;5111NamsFunc[6] = 0;5112NargFunc[6] = 2;5113NameFunc[7] = DefaultName;5114NamsFunc[7] = 0;5115NargFunc[7] = 3;5116NameFunc[8] = DefaultName;5117NamsFunc[8] = 0;5118NargFunc[8] = 4;5119NameFunc[9] = DefaultName;5120NamsFunc[9] = 0;5121NargFunc[9] = 5;5122NameFunc[10] = DefaultName;5123NamsFunc[10] = 0;5124NargFunc[10] = -1;5125NameFunc[11] = DefaultName;5126NamsFunc[11] = 0;5127NargFunc[11] = 4;5128NameFunc[12] = DefaultName;5129NamsFunc[12] = 0;5130NargFunc[12] = 2;5131NameFunc[13] = DefaultName;5132NamsFunc[13] = 0;5133NargFunc[13] = 3;5134NameFunc[14] = DefaultName;5135NamsFunc[14] = 0;5136NargFunc[14] = 4;5137NameFunc[15] = DefaultName;5138NamsFunc[15] = 0;5139NargFunc[15] = 5;5140NameFunc[16] = DefaultName;5141NamsFunc[16] = 0;5142NargFunc[16] = -1;5143NameFunc[17] = DefaultName;5144NamsFunc[17] = 0;5145NargFunc[17] = 2;5146NameFunc[18] = DefaultName;5147NamsFunc[18] = 0;5148NargFunc[18] = 3;5149NameFunc[19] = DefaultName;5150NamsFunc[19] = 0;5151NargFunc[19] = -1;5152NameFunc[20] = DefaultName;5153NamsFunc[20] = 0;5154NargFunc[20] = 2;5155NameFunc[21] = DefaultName;5156NamsFunc[21] = 0;5157NargFunc[21] = 3;5158NameFunc[22] = DefaultName;5159NamsFunc[22] = 0;5160NargFunc[22] = -1;5161NameFunc[23] = DefaultName;5162NamsFunc[23] = 0;5163NargFunc[23] = 1;5164NameFunc[24] = DefaultName;5165NamsFunc[24] = 0;5166NargFunc[24] = 1;5167NameFunc[25] = DefaultName;5168NamsFunc[25] = 0;5169NargFunc[25] = 1;5170NameFunc[26] = DefaultName;5171NamsFunc[26] = 0;5172NargFunc[26] = 2;5173NameFunc[27] = DefaultName;5174NamsFunc[27] = 0;5175NargFunc[27] = 1;5176NameFunc[28] = DefaultName;5177NamsFunc[28] = 0;5178NargFunc[28] = 1;5179NameFunc[29] = DefaultName;5180NamsFunc[29] = 0;5181NargFunc[29] = 1;5182NameFunc[30] = DefaultName;5183NamsFunc[30] = 0;5184NargFunc[30] = 1;5185NameFunc[31] = DefaultName;5186NamsFunc[31] = 0;5187NargFunc[31] = 2;5188NameFunc[32] = DefaultName;5189NamsFunc[32] = 0;5190NargFunc[32] = 2;5191NameFunc[33] = DefaultName;5192NamsFunc[33] = 0;5193NargFunc[33] = 2;5194NameFunc[34] = DefaultName;5195NamsFunc[34] = 0;5196NargFunc[34] = 2;5197NameFunc[35] = DefaultName;5198NamsFunc[35] = 0;5199NargFunc[35] = 3;5200NameFunc[36] = DefaultName;5201NamsFunc[36] = 0;5202NargFunc[36] = -1;5203NameFunc[37] = DefaultName;5204NamsFunc[37] = 0;5205NargFunc[37] = -1;52065207/* create all the functions defined in this module */5208func1 = NewFunction(NameFunc[1],NargFunc[1],NamsFunc[1],HdlrFunc1);5209ENVI_FUNC( func1 ) = TLS(CurrLVars);5210CHANGED_BAG( TLS(CurrLVars) );5211body1 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj));5212BODY_FUNC( func1 ) = body1;5213CHANGED_BAG( func1 );5214CALL_0ARGS( func1 );52155216/* return success */5217return 0;52185219}52205221/* 'PostRestore' restore gvars, rnams, functions */5222static Int PostRestore ( StructInitInfo * module )5223{52245225/* global variables used in handlers */5226G_NAME__FUNC = GVarName( "NAME_FUNC" );5227G_IsType = GVarName( "IsType" );5228G_IS__REC = GVarName( "IS_REC" );5229G_IS__LIST = GVarName( "IS_LIST" );5230G_ADD__LIST = GVarName( "ADD_LIST" );5231G_IS__PLIST__REP = GVarName( "IS_PLIST_REP" );5232G_IS__BLIST = GVarName( "IS_BLIST" );5233G_IS__RANGE = GVarName( "IS_RANGE" );5234G_IS__STRING__REP = GVarName( "IS_STRING_REP" );5235G_Error = GVarName( "Error" );5236G_TYPE__OBJ = GVarName( "TYPE_OBJ" );5237G_FAMILY__OBJ = GVarName( "FAMILY_OBJ" );5238G_IMMUTABLE__COPY__OBJ = GVarName( "IMMUTABLE_COPY_OBJ" );5239G_IS__IDENTICAL__OBJ = GVarName( "IS_IDENTICAL_OBJ" );5240G_IS__COMOBJ = GVarName( "IS_COMOBJ" );5241G_SET__TYPE__COMOBJ = GVarName( "SET_TYPE_COMOBJ" );5242G_IS__POSOBJ = GVarName( "IS_POSOBJ" );5243G_SET__TYPE__POSOBJ = GVarName( "SET_TYPE_POSOBJ" );5244G_LEN__POSOBJ = GVarName( "LEN_POSOBJ" );5245G_IS__DATOBJ = GVarName( "IS_DATOBJ" );5246G_SET__TYPE__DATOBJ = GVarName( "SET_TYPE_DATOBJ" );5247G_IS__OBJECT = GVarName( "IS_OBJECT" );5248G_AND__FLAGS = GVarName( "AND_FLAGS" );5249G_SUB__FLAGS = GVarName( "SUB_FLAGS" );5250G_HASH__FLAGS = GVarName( "HASH_FLAGS" );5251G_IS__EQUAL__FLAGS = GVarName( "IS_EQUAL_FLAGS" );5252G_IS__SUBSET__FLAGS = GVarName( "IS_SUBSET_FLAGS" );5253G_FLAG1__FILTER = GVarName( "FLAG1_FILTER" );5254G_FLAGS__FILTER = GVarName( "FLAGS_FILTER" );5255G_METHODS__OPERATION = GVarName( "METHODS_OPERATION" );5256G_SETTER__FUNCTION = GVarName( "SETTER_FUNCTION" );5257G_GETTER__FUNCTION = GVarName( "GETTER_FUNCTION" );5258G_IS__AND__FILTER = GVarName( "IS_AND_FILTER" );5259G_COMPACT__TYPE__IDS = GVarName( "COMPACT_TYPE_IDS" );5260G_LEN__LIST = GVarName( "LEN_LIST" );5261G_SET__FILTER__LIST = GVarName( "SET_FILTER_LIST" );5262G_RESET__FILTER__LIST = GVarName( "RESET_FILTER_LIST" );5263G_GASMAN = GVarName( "GASMAN" );5264G_InstallAttributeFunction = GVarName( "InstallAttributeFunction" );5265G_InstallOtherMethod = GVarName( "InstallOtherMethod" );5266G_IsAttributeStoringRep = GVarName( "IsAttributeStoringRep" );5267G_GETTER__FLAGS = GVarName( "GETTER_FLAGS" );5268G_LENGTH__SETTER__METHODS__2 = GVarName( "LENGTH_SETTER_METHODS_2" );5269G_SetFilterObj = GVarName( "SetFilterObj" );5270G_Subtype = GVarName( "Subtype" );5271G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" );5272G_WITH__IMPS__FLAGS = GVarName( "WITH_IMPS_FLAGS" );5273G_CATEGORIES__FAMILY = GVarName( "CATEGORIES_FAMILY" );5274G_NEW__FAMILY = GVarName( "NEW_FAMILY" );5275G_EMPTY__FLAGS = GVarName( "EMPTY_FLAGS" );5276G_NewFamily2 = GVarName( "NewFamily2" );5277G_TypeOfFamilies = GVarName( "TypeOfFamilies" );5278G_NewFamily3 = GVarName( "NewFamily3" );5279G_NewFamily4 = GVarName( "NewFamily4" );5280G_NewFamily5 = GVarName( "NewFamily5" );5281G_NEW__TYPE__CACHE__MISS = GVarName( "NEW_TYPE_CACHE_MISS" );5282G_NEW__TYPE__CACHE__HIT = GVarName( "NEW_TYPE_CACHE_HIT" );5283G_POS__DATA__TYPE = GVarName( "POS_DATA_TYPE" );5284G_NEW__TYPE__NEXT__ID = GVarName( "NEW_TYPE_NEXT_ID" );5285G_NEW__TYPE__ID__LIMIT = GVarName( "NEW_TYPE_ID_LIMIT" );5286G_FLUSH__ALL__METHOD__CACHES = GVarName( "FLUSH_ALL_METHOD_CACHES" );5287G_POS__NUMB__TYPE = GVarName( "POS_NUMB_TYPE" );5288G_NEW__TYPE = GVarName( "NEW_TYPE" );5289G_POS__FIRST__FREE__TYPE = GVarName( "POS_FIRST_FREE_TYPE" );5290G_IsFamily = GVarName( "IsFamily" );5291G_NewType2 = GVarName( "NewType2" );5292G_TypeOfTypes = GVarName( "TypeOfTypes" );5293G_NewType3 = GVarName( "NewType3" );5294G_NewType4 = GVarName( "NewType4" );5295G_NewType5 = GVarName( "NewType5" );5296G_Subtype2 = GVarName( "Subtype2" );5297G_Subtype3 = GVarName( "Subtype3" );5298G_SupType2 = GVarName( "SupType2" );5299G_SupType3 = GVarName( "SupType3" );5300G_FlagsType = GVarName( "FlagsType" );5301G_TypeObj = GVarName( "TypeObj" );5302G_DataType = GVarName( "DataType" );5303G_SharedType = GVarName( "SharedType" );5304G_IsNoImmediateMethodsObject = GVarName( "IsNoImmediateMethodsObject" );5305G_RunImmediateMethods = GVarName( "RunImmediateMethods" );5306G_IsNonAtomicComponentObjectRep = GVarName( "IsNonAtomicComponentObjectRep" );5307G_IsAtomicPositionalObjectRep = GVarName( "IsAtomicPositionalObjectRep" );5308G_IsReadOnlyPositionalObjectRep = GVarName( "IsReadOnlyPositionalObjectRep" );5309G_SetTypeObj = GVarName( "SetTypeObj" );5310G_ChangeTypeObj = GVarName( "ChangeTypeObj" );5311G_IGNORE__IMMEDIATE__METHODS = GVarName( "IGNORE_IMMEDIATE_METHODS" );5312G_ResetFilterObj = GVarName( "ResetFilterObj" );5313G_Tester = GVarName( "Tester" );5314G_Setter = GVarName( "Setter" );5315G_FamilyType = GVarName( "FamilyType" );5316G_Ignore = GVarName( "Ignore" );5317G_MAKE__READ__WRITE__GLOBAL = GVarName( "MAKE_READ_WRITE_GLOBAL" );5318G_IsAttributeStoringRepFlags = GVarName( "IsAttributeStoringRepFlags" );5319G_INFO__OWA = GVarName( "INFO_OWA" );5320G_Objectify = GVarName( "Objectify" );53215322/* record names used in handlers */5323R_TYPES__LIST__FAM = RNamName( "TYPES_LIST_FAM" );5324R_NAME = RNamName( "NAME" );5325R_REQ__FLAGS = RNamName( "REQ_FLAGS" );5326R_IMP__FLAGS = RNamName( "IMP_FLAGS" );5327R_TYPES = RNamName( "TYPES" );5328R_nTYPES = RNamName( "nTYPES" );5329R_HASH__SIZE = RNamName( "HASH_SIZE" );53305331/* information for the functions */5332NameFunc[1] = DefaultName;5333NamsFunc[1] = 0;5334NargFunc[1] = 0;5335NameFunc[2] = DefaultName;5336NamsFunc[2] = 0;5337NargFunc[2] = 6;5338NameFunc[3] = DefaultName;5339NamsFunc[3] = 0;5340NargFunc[3] = 6;5341NameFunc[4] = DefaultName;5342NamsFunc[4] = 0;5343NargFunc[4] = 2;5344NameFunc[5] = DefaultName;5345NamsFunc[5] = 0;5346NargFunc[5] = 4;5347NameFunc[6] = DefaultName;5348NamsFunc[6] = 0;5349NargFunc[6] = 2;5350NameFunc[7] = DefaultName;5351NamsFunc[7] = 0;5352NargFunc[7] = 3;5353NameFunc[8] = DefaultName;5354NamsFunc[8] = 0;5355NargFunc[8] = 4;5356NameFunc[9] = DefaultName;5357NamsFunc[9] = 0;5358NargFunc[9] = 5;5359NameFunc[10] = DefaultName;5360NamsFunc[10] = 0;5361NargFunc[10] = -1;5362NameFunc[11] = DefaultName;5363NamsFunc[11] = 0;5364NargFunc[11] = 4;5365NameFunc[12] = DefaultName;5366NamsFunc[12] = 0;5367NargFunc[12] = 2;5368NameFunc[13] = DefaultName;5369NamsFunc[13] = 0;5370NargFunc[13] = 3;5371NameFunc[14] = DefaultName;5372NamsFunc[14] = 0;5373NargFunc[14] = 4;5374NameFunc[15] = DefaultName;5375NamsFunc[15] = 0;5376NargFunc[15] = 5;5377NameFunc[16] = DefaultName;5378NamsFunc[16] = 0;5379NargFunc[16] = -1;5380NameFunc[17] = DefaultName;5381NamsFunc[17] = 0;5382NargFunc[17] = 2;5383NameFunc[18] = DefaultName;5384NamsFunc[18] = 0;5385NargFunc[18] = 3;5386NameFunc[19] = DefaultName;5387NamsFunc[19] = 0;5388NargFunc[19] = -1;5389NameFunc[20] = DefaultName;5390NamsFunc[20] = 0;5391NargFunc[20] = 2;5392NameFunc[21] = DefaultName;5393NamsFunc[21] = 0;5394NargFunc[21] = 3;5395NameFunc[22] = DefaultName;5396NamsFunc[22] = 0;5397NargFunc[22] = -1;5398NameFunc[23] = DefaultName;5399NamsFunc[23] = 0;5400NargFunc[23] = 1;5401NameFunc[24] = DefaultName;5402NamsFunc[24] = 0;5403NargFunc[24] = 1;5404NameFunc[25] = DefaultName;5405NamsFunc[25] = 0;5406NargFunc[25] = 1;5407NameFunc[26] = DefaultName;5408NamsFunc[26] = 0;5409NargFunc[26] = 2;5410NameFunc[27] = DefaultName;5411NamsFunc[27] = 0;5412NargFunc[27] = 1;5413NameFunc[28] = DefaultName;5414NamsFunc[28] = 0;5415NargFunc[28] = 1;5416NameFunc[29] = DefaultName;5417NamsFunc[29] = 0;5418NargFunc[29] = 1;5419NameFunc[30] = DefaultName;5420NamsFunc[30] = 0;5421NargFunc[30] = 1;5422NameFunc[31] = DefaultName;5423NamsFunc[31] = 0;5424NargFunc[31] = 2;5425NameFunc[32] = DefaultName;5426NamsFunc[32] = 0;5427NargFunc[32] = 2;5428NameFunc[33] = DefaultName;5429NamsFunc[33] = 0;5430NargFunc[33] = 2;5431NameFunc[34] = DefaultName;5432NamsFunc[34] = 0;5433NargFunc[34] = 2;5434NameFunc[35] = DefaultName;5435NamsFunc[35] = 0;5436NargFunc[35] = 3;5437NameFunc[36] = DefaultName;5438NamsFunc[36] = 0;5439NargFunc[36] = -1;5440NameFunc[37] = DefaultName;5441NamsFunc[37] = 0;5442NargFunc[37] = -1;54435444/* return success */5445return 0;54465447}544854495450/* <name> returns the description of this module */5451static StructInitInfo module = {5452/* type = */ 2,5453/* name = */ "GAPROOT/lib/type1.g",5454/* revision_c = */ 0,5455/* revision_h = */ 0,5456/* version = */ 0,5457/* crc = */ -36845939,5458/* initKernel = */ InitKernel,5459/* initLibrary = */ InitLibrary,5460/* checkInit = */ 0,5461/* preSave = */ 0,5462/* postSave = */ 0,5463/* postRestore = */ PostRestore5464};54655466StructInitInfo * Init__type1 ( void )5467{5468return &module;5469}54705471/* compiled code ends here */5472#endif547354745475