# 1 "set.m" struct _PRIVATE { struct _PRIVATE *isa; }; typedef struct _PRIVATE *id; struct _SHARED { id isa; id clsSuper; char *clsName; char *clsTypes; short clsSizInstance; short clsSizDict; struct _SLT *clsDispTable; long clsStatus; struct modDescriptor *clsMod; unsigned clsVersion; id clsCats; id *clsGlbl; }; extern id (* _imp(id,char*))(); extern id (* _impSuper(id,char*))(); extern struct modDescriptor *_OBJCBIND_set(void); static char **selTransTbl; struct _SLT {char *_cmd;id (*_imp)();}; struct modDescriptor { char *modName; char *modVersion; long modStatus; char *modMinSel; char *modMaxSel; id *modClsLst; short modSelRef; char **modSelTbl; struct methodDescriptor *modMapTbl; }; extern struct modDescriptor set_modDesc; # 1 "../../util/stdarg.h" #include # 1 "../../util/assert.h" #include # 1 "../../util/string.h" #include # 1 "../../util/stdlib.h" #include # 1 "../../util/stdio.h" #include # 1 "../../util/stdio.h" #include # 1 "../../util/stddef.h" #include # 53 "../../include/objcrt/objcrt.h" typedef char*SEL; typedef char*STR; typedef char BOOL; typedef FILE*IOD; typedef id SHR; # 62 "../../include/objcrt/objcrt.h" typedef id(*IMP)(); typedef void(*ARGIMP)(id,SEL,void*); # 85 "../../include/objcrt/objcrt.h" extern BOOL msgFlag; extern FILE*msgIOD; extern FILE*dbgIOD; extern BOOL allocFlag; extern BOOL dbgFlag; extern BOOL noCacheFlag; extern BOOL noNilRcvr; # 98 "../../include/objcrt/objcrt.h" SEL selUid(STR); STR selName(SEL); void dbg(char*fmt,...); void prnstack(FILE*file); void loadobjc(void*modPtr); void unloadobjc(void*modPtr); # 107 "../../include/objcrt/objcrt.h" IMP fwdimp(id,SEL,IMP); IMP fwdimpSuper(id,SEL,IMP); void fwdmsg(id,SEL,void*,ARGIMP); id selptrfwd(id,SEL,id,id,id,id); id idincref(id obj); id idassign(id*lhs,id rhs); id iddecref(id obj); extern id(*_fileIn)(FILE*); extern BOOL(*_fileOut)(FILE*,id); extern BOOL(*_storeOn)(STR,id); extern id(*_readFrom)(STR); void setfilein(id(*f)(FILE*)); void setfileout(BOOL(*f)(FILE*,id)); extern id(*_showOn)(id,unsigned); void*OC_Malloc(size_t); void*OC_MallocAtomic(size_t); void*OC_Calloc(size_t); void*OC_Realloc(void*,size_t); void*OC_Free(void*data); # 1 "../../util/string.h" #include # 28 "set.h" typedef struct objset { int count; int capacity; id*ptr; }* objset_t; # 28 "setseq.h" typedef struct objsetseq { objset_t set; int offset; }* objsetseq_t; # 31 "ordcltn.h" typedef struct objcol { int count; int capacity; id*ptr; }* objcol_t; # 32 "ocstring.h" typedef struct objstr { int count; int capacity; char*ptr; }* objstr_t; # 38 "../../include/objcrt/Block.h" extern id newBlock(int n,IMP fn,void*data,IMP dtor); # 36 "set.h" struct Set_PRIVATE { # 42 "../../include/objcrt/Object.h" id isa; # 46 "../../include/objcrt/Object.h" unsigned short attr; unsigned short objID; # 38 "set.h" struct objset value;}; # 36 "set.h" extern id Set; # 36 "set.h" extern struct _SHARED _Set; extern struct _SHARED __Set; # 45 "set.m" static void ptrzero(id*p,int c) { while(c--) { * p++=(id)0; } } # 70 "set.m" static void init(objset_t self,int n,int c) { (void)0; self->count=n; self->capacity=c; self->ptr=(id*)OC_Calloc(c*sizeof(id)); } static void initzero(objset_t self,int c) { init(self,0,c); } static id c_Set_new(struct Set_PRIVATE *self,SEL _cmd) { id objcT0; # 87 "set.m" return(objcT0=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT0,selTransTbl[0]))(objcT0,selTransTbl[0],16)); } static id c_Set_new_(struct Set_PRIVATE *self,SEL _cmd,unsigned n) { id objcT1,objcT2; # 92 "set.m" id newObj=(objcT1=__Set.clsSuper,(*_impSuper(objcT1,selTransTbl[1]))((id)self,selTransTbl[1])); initzero((objcT2=newObj,(*(objset_t(*)(id,SEL))_imp(objcT2,selTransTbl[2]))(objcT2,selTransTbl[2])),n); return newObj; } # 103 "set.m" static id c_Set_with_(struct Set_PRIVATE *self,SEL _cmd,int nArgs,...) { id objcT3; # 105 "set.m" id newObject; va_list vp; newObject=(objcT3=(id)self,(*_imp(objcT3,selTransTbl[1]))(objcT3,selTransTbl[1])); # 125 "set.m" va_start(vp,nArgs); while(nArgs-->0) { id objcT4; # 128 "set.m" id anObject=va_arg(vp,id); (objcT4=newObject,(*_imp(objcT4,selTransTbl[3]))(objcT4,selTransTbl[3],anObject)); } va_end(vp); return newObject; } static id c_Set_with_with_(struct Set_PRIVATE *self,SEL _cmd,id firstObject,id nextObject) { id objcT5,objcT6,objcT7; # 139 "set.m" return(objcT5=(objcT6=(objcT7=(id)self,(*_imp(objcT7,selTransTbl[1]))(objcT7,selTransTbl[1])),(*_imp(objcT6,selTransTbl[3]))(objcT6,selTransTbl[3],firstObject)),(*_imp(objcT5,selTransTbl[3]))(objcT5,selTransTbl[3],nextObject)); } static id c_Set_add_(struct Set_PRIVATE *self,SEL _cmd,id firstObject) { id objcT8,objcT9; # 144 "set.m" return(objcT8=(objcT9=(id)self,(*_imp(objcT9,selTransTbl[1]))(objcT9,selTransTbl[1])),(*_imp(objcT8,selTransTbl[3]))(objcT8,selTransTbl[3],firstObject)); } static void ptrcopy(id*p,id*q,int c) { while(c--) { * p++= *q++; } } static void copy(objset_t dst,objset_t src) { init(dst,src->count,src->capacity); ptrcopy(dst->ptr,src->ptr,src->capacity); } static id i_Set_copy(struct Set_PRIVATE *self,SEL _cmd) { id objcT10,objcT11; # 165 "set.m" id aCopy=(objcT10=_Set.clsSuper,(*_impSuper(objcT10,selTransTbl[4]))((id)self,selTransTbl[4])); copy((objcT11=aCopy,(*(objset_t(*)(id,SEL))_imp(objcT11,selTransTbl[2]))(objcT11,selTransTbl[2])),( &self->value)); return aCopy; } static void ptrdeepcopy(id*p,id*q,int c) { while(c--) { id objcT12; # 175 "set.m" id obj= *q++; * p++=(obj)?(objcT12=obj,(*_imp(objcT12,selTransTbl[5]))(objcT12,selTransTbl[5])):(id)0; } } static void deepcopy(objset_t dst,objset_t src) { init(dst,src->count,src->capacity); ptrdeepcopy(dst->ptr,src->ptr,src->capacity); } static id i_Set_deepCopy(struct Set_PRIVATE *self,SEL _cmd) { id objcT13,objcT14; id aCopy=(objcT13=_Set.clsSuper,(*_impSuper(objcT13,selTransTbl[4]))((id)self,selTransTbl[4])); deepcopy((objcT14=aCopy,(*(objset_t(*)(id,SEL))_imp(objcT14,selTransTbl[2]))(objcT14,selTransTbl[2])),( &self->value)); return aCopy; } static void empty(objset_t self) { self->count=0; ptrzero(self->ptr,self->capacity); } static id i_Set_emptyYourself(struct Set_PRIVATE *self,SEL _cmd) { empty(( &self->value)); return(id)self; } static id i_Set_addYourself(struct Set_PRIVATE *self,SEL _cmd) { return(id)self; } static void ptrclear(id*p,int c) { while(c--) { id objcT15; # 221 "set.m" id obj= *p; * p++=(obj)?(objcT15=obj,(*_imp(objcT15,selTransTbl[6]))(objcT15,selTransTbl[6])):(id)0; } } static void freecontents(objset_t self) { self->count=0; ptrclear(self->ptr,self->capacity); (void)0; } static id i_Set_freeContents(struct Set_PRIVATE *self,SEL _cmd) { freecontents(( &self->value)); return(id)self; } static void ptrclearall(id*p,int c) { while(c--) { id objcT16; # 245 "set.m" id obj= *p; * p++=(obj)?(objcT16=obj,(*_imp(objcT16,selTransTbl[7]))(objcT16,selTransTbl[7])):(id)0; } } static void freeall(objset_t self) { self->count=0; ptrclearall(self->ptr,self->capacity); (void)0; } static id i_Set_freeAll(struct Set_PRIVATE *self,SEL _cmd) { freeall(( &self->value)); return(id)self; } static void clear(objset_t self) { self->count=0; self->capacity=0; OC_Free(self->ptr); self->ptr=NULL; } static id i_Set_free(struct Set_PRIVATE *self,SEL _cmd) { id objcT17; # 275 "set.m" clear(( &self->value)); return(objcT17=_Set.clsSuper,(*_impSuper(objcT17,selTransTbl[6]))((id)self,selTransTbl[6])); } static id i_Set_release(struct Set_PRIVATE *self,SEL _cmd) { id objcT18; # 286 "set.m" return(objcT18=(id)self,(*(id(*)(id,SEL,SEL))_imp(objcT18,selTransTbl[8]))(objcT18,selTransTbl[8],_cmd)); } # 296 "set.m" static objset_t i_Set_objsetvalue(struct Set_PRIVATE *self,SEL _cmd) { return &self->value; } static int count(objset_t self) { (void)0; return self->count; } static unsigned i_Set_size(struct Set_PRIVATE *self,SEL _cmd) { return(unsigned)count(( &self->value)); } static BOOL i_Set_isEmpty(struct Set_PRIVATE *self,SEL _cmd) { return count(( &self->value))==0; } # 35 "setseq.h" extern id SetSequence; # 35 "sequence.h" extern id Sequence; # 318 "set.m" static id i_Set_eachElement(struct Set_PRIVATE *self,SEL _cmd) { id objcT19,objcT20; # 320 "set.m" id aCarrier=(objcT19=SetSequence,(*_imp(objcT19,selTransTbl[9]))(objcT19,selTransTbl[9],(id)self)); return(objcT20=Sequence,(*_imp(objcT20,selTransTbl[9]))(objcT20,selTransTbl[9],aCarrier)); } # 330 "set.m" static unsigned ptrhash(id*p,int n) { unsigned code=n; while(n--) { id objcT21; # 336 "set.m" id q= *p++; if(q) code^=(objcT21=q,(*(unsigned(*)(id,SEL))_imp(objcT21,selTransTbl[10]))(objcT21,selTransTbl[10])); } return code; } static unsigned hashcontents(objset_t a) { return ptrhash(a->ptr,a->count); } static unsigned i_Set_hash(struct Set_PRIVATE *self,SEL _cmd) { return hashcontents( &self->value); } static BOOL i_Set_isEqual_(struct Set_PRIVATE *self,SEL _cmd,id set) { id objcT22,objcT23,objcT24,objcT25,objcT26; id objcT27,objcT29; # 356 "set.m" id e,seq; BOOL res=(BOOL)1; if((id)self==set) { return(BOOL)1; } if( !(objcT22=set,(*(BOOL(*)(id,SEL,id))_imp(objcT22,selTransTbl[11]))(objcT22,selTransTbl[11],(id)(objcT23=Set,(*_imp(objcT23,selTransTbl[12]))(objcT23,selTransTbl[12]))))) { return(BOOL)0; } if((objcT24=set,(*(unsigned(*)(id,SEL))_imp(objcT24,selTransTbl[13]))(objcT24,selTransTbl[13]))!=(objcT25=(id)self,(*(unsigned(*)(id,SEL))_imp(objcT25,selTransTbl[13]))(objcT25,selTransTbl[13]))) { return(BOOL)0; } seq=(objcT26=(id)self,(*_imp(objcT26,selTransTbl[14]))(objcT26,selTransTbl[14])); while((e=(objcT27=seq,(*_imp(objcT27,selTransTbl[15]))(objcT27,selTransTbl[15])))) { id objcT28; # 373 "set.m" if((objcT28=set,(*(BOOL(*)(id,SEL,id))_imp(objcT28,selTransTbl[16]))(objcT28,selTransTbl[16],e))) { res=(BOOL)0; goto done; } } done: (objcT29=seq,(*_imp(objcT29,selTransTbl[6]))(objcT29,selTransTbl[6])); return res; } # 392 "set.m" static id* ptrfind(id*p,id obj,int n) { id objcT30; # 395 "set.m" id*begin,*now,*end; begin=p; now=p+(((objcT30=obj,(*(unsigned(*)(id,SEL))_imp(objcT30,selTransTbl[10]))(objcT30,selTransTbl[10])))%n); end=p+n; for(;n--;now++) { id objcT31; # 403 "set.m" if(now>=end) { now=begin; } if( *now==(id)0||(objcT31= *now,(*(BOOL(*)(id,SEL,id))_imp(objcT31,selTransTbl[17]))(objcT31,selTransTbl[17],obj))) { return now; } } fprintf(stderr,"find: table full shouldn't happen"); return NULL; } static id* find(objset_t self,id obj) { (void)0; return ptrfind(self->ptr,obj,self->capacity); } static id i_Set_add_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { id objcT32; # 426 "set.m" (objcT32=(id)self,(*_imp(objcT32,selTransTbl[18]))(objcT32,selTransTbl[18],anObject)); return(id)self; } static BOOL needsexpand(objset_t self) { return 2*self->count>self->capacity; } static void ptrrehash(id*newp,int newc,id*old,int oldc) { while(oldc--) { id obj= *old++; id*newend=newp+newc; if(obj) { id objcT33; # 446 "set.m" id*pos=newp+((objcT33=obj,(*(unsigned(*)(id,SEL))_imp(objcT33,selTransTbl[10]))(objcT33,selTransTbl[10]))%((unsigned)newc)); while( *pos) { pos++; if(pos==newend) { pos=newp; } } * pos=obj; } } } static void rehash(objset_t self) { int c; id*newp,*old; c=self->capacity; old=self->ptr; newp=(id*)OC_Calloc(c*sizeof(id)); (void)0; ptrrehash(newp,c,old,c); (void)0; OC_Free(old); self->ptr=newp; } static void expand(objset_t self) { id*newp,*old; int newc,oldc; oldc=self->capacity; old=self->ptr; newc=1+2*oldc; newp=(id*)OC_Calloc(newc*sizeof(id)); (void)0; ptrrehash(newp,newc,old,oldc); (void)0; OC_Free(old); self->ptr=newp; self->capacity=newc; } static id add(objset_t self,id obj) { id*p; if(needsexpand(self)) { expand(self); } if( *(p=find(self,obj))) { return(id)0; } else { self->count++; return *p=obj; } } static id i_Set_addNTest_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { if(anObject) { return add(( &self->value),anObject); } else { return(id)0; } } static id filter(objset_t self,id obj) { id*p; if(needsexpand(self)) { expand(self); } if( *(p=find(self,obj))) { return *p; } else { self->count++; * p=obj; return(id)0; } } static id i_Set_filter_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { if(anObject) { id t=filter(( &self->value),anObject); if(t) { id objcT34; (objcT34=anObject,(*_imp(objcT34,selTransTbl[6]))(objcT34,selTransTbl[6])); return t; } else { return anObject; } } else { return(id)0; } } static id i_Set_add_ifDuplicate_(struct Set_PRIVATE *self,SEL _cmd,id anObject,id aBlock) { if(anObject) { id t=filter(( &self->value),anObject); if(t) { id objcT35; # 584 "set.m" (objcT35=aBlock,(*_imp(objcT35,selTransTbl[19]))(objcT35,selTransTbl[19])); return t; } else { return anObject; } } else { return(id)0; } } static id replace(objset_t self,id obj) { id*p; if(needsexpand(self)) { expand(self); } if( *(p=find(self,obj))) { id tmp= *p; * p=obj; return tmp; } else { self->count++; * p=obj; return(id)0; } } static id i_Set_replace_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { if(anObject) { return replace(( &self->value),anObject); } else { return(id)0; } } # 641 "set.m" static id delete(objset_t self,id obj) { id*p; if( *(p=find(self,obj))) { id tmp= *p; * p=(id)0; self->count--; rehash(self); return tmp; } else { return(id)0; } } static id i_Set_remove_(struct Set_PRIVATE *self,SEL _cmd,id oldObject) { if(oldObject) { return delete(( &self->value),oldObject); } else { return(id)0; } } static id i_Set_remove_ifAbsent_(struct Set_PRIVATE *self,SEL _cmd,id oldObject,id exceptionBlock) { if(oldObject) { return delete(( &self->value),oldObject); } else { return(id)0; } } # 690 "set.m" static BOOL i_Set_includesAllOf_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { if((id)self==aCltn) { return(BOOL)1; } else { id objcT36,objcT37,objcT39; # 698 "set.m" BOOL res=(BOOL)1; id e,seq=(objcT36=aCltn,(*_imp(objcT36,selTransTbl[14]))(objcT36,selTransTbl[14])); while((e=(objcT37=seq,(*_imp(objcT37,selTransTbl[15]))(objcT37,selTransTbl[15])))) { id objcT38; # 702 "set.m" if( !(objcT38=(id)self,(*(BOOL(*)(id,SEL,id))_imp(objcT38,selTransTbl[20]))(objcT38,selTransTbl[20],e))) { res=(BOOL)0; goto done; } } done: (objcT39=seq,(*_imp(objcT39,selTransTbl[6]))(objcT39,selTransTbl[6])); return res; } } static BOOL i_Set_includesAnyOf_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { if((id)self==aCltn) { return(BOOL)1; } else { id objcT40,objcT41,objcT43; # 724 "set.m" BOOL res=(BOOL)0; id e,seq=(objcT40=aCltn,(*_imp(objcT40,selTransTbl[14]))(objcT40,selTransTbl[14])); while((e=(objcT41=seq,(*_imp(objcT41,selTransTbl[15]))(objcT41,selTransTbl[15])))) { id objcT42; # 728 "set.m" if((objcT42=(id)self,(*(BOOL(*)(id,SEL,id))_imp(objcT42,selTransTbl[20]))(objcT42,selTransTbl[20],e))) { res=(BOOL)1; goto done; } } done: (objcT43=seq,(*_imp(objcT43,selTransTbl[6]))(objcT43,selTransTbl[6])); return res; } } # 748 "set.m" static id i_Set_addAll_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { if((id)self==aCltn) { id objcT44; # 752 "set.m" (objcT44=(id)self,(*_imp(objcT44,selTransTbl[21]))(objcT44,selTransTbl[21])); } else { id objcT45,objcT46,objcT48; # 756 "set.m" id e,seq; seq=(objcT45=aCltn,(*_imp(objcT45,selTransTbl[14]))(objcT45,selTransTbl[14])); while((e=(objcT46=seq,(*_imp(objcT46,selTransTbl[15]))(objcT46,selTransTbl[15])))) { id objcT47; # 761 "set.m" (objcT47=(id)self,(*_imp(objcT47,selTransTbl[3]))(objcT47,selTransTbl[3],e)); } seq=(objcT48=seq,(*_imp(objcT48,selTransTbl[6]))(objcT48,selTransTbl[6])); } return(id)self; } static id i_Set_addContentsOf_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { id objcT49; # 773 "set.m" return(objcT49=(id)self,(*_imp(objcT49,selTransTbl[22]))(objcT49,selTransTbl[22],aCltn)); } static id i_Set_addContentsTo_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { id objcT50; # 778 "set.m" return(objcT50=aCltn,(*_imp(objcT50,selTransTbl[22]))(objcT50,selTransTbl[22],(id)self)); } static id i_Set_removeAll_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { if((id)self==aCltn) { id objcT51; # 785 "set.m" (objcT51=(id)self,(*_imp(objcT51,selTransTbl[23]))(objcT51,selTransTbl[23])); } else { id objcT52,objcT53,objcT55; # 789 "set.m" id e,seq; seq=(objcT52=aCltn,(*_imp(objcT52,selTransTbl[14]))(objcT52,selTransTbl[14])); while((e=(objcT53=seq,(*_imp(objcT53,selTransTbl[15]))(objcT53,selTransTbl[15])))) { id objcT54; # 794 "set.m" (objcT54=(id)self,(*_imp(objcT54,selTransTbl[24]))(objcT54,selTransTbl[24],e)); } seq=(objcT55=seq,(*_imp(objcT55,selTransTbl[6]))(objcT55,selTransTbl[6])); } return(id)self; } static id i_Set_removeContentsFrom_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { id objcT56; # 806 "set.m" return(objcT56=aCltn,(*_imp(objcT56,selTransTbl[25]))(objcT56,selTransTbl[25],(id)self)); } static id i_Set_removeContentsOf_(struct Set_PRIVATE *self,SEL _cmd,id aCltn) { id objcT57; # 811 "set.m" return(objcT57=(id)self,(*_imp(objcT57,selTransTbl[25]))(objcT57,selTransTbl[25],aCltn)); } # 820 "set.m" static id i_Set_intersection_(struct Set_PRIVATE *self,SEL _cmd,id bag) { if((id)self==bag) { id objcT58; # 824 "set.m" return(objcT58=(id)self,(*_imp(objcT58,selTransTbl[4]))(objcT58,selTransTbl[4])); } else { id objcT59,objcT60,objcT61,objcT64; # 828 "set.m" id anElement,elements; id intersection=(objcT59=self->isa,(*_imp(objcT59,selTransTbl[1]))(objcT59,selTransTbl[1])); elements=(objcT60=(id)self,(*_imp(objcT60,selTransTbl[14]))(objcT60,selTransTbl[14])); while((anElement=(objcT61=elements,(*_imp(objcT61,selTransTbl[15]))(objcT61,selTransTbl[15])))) { id objcT62,objcT63; # 834 "set.m" if((objcT62=bag,(*_imp(objcT62,selTransTbl[26]))(objcT62,selTransTbl[26],anElement))) (objcT63=intersection,(*_imp(objcT63,selTransTbl[3]))(objcT63,selTransTbl[3],anElement)); } elements=(objcT64=elements,(*_imp(objcT64,selTransTbl[6]))(objcT64,selTransTbl[6])); return intersection; } } static id i_Set_union_(struct Set_PRIVATE *self,SEL _cmd,id bag) { if((id)self==bag) { id objcT65; # 849 "set.m" return(objcT65=(id)self,(*_imp(objcT65,selTransTbl[4]))(objcT65,selTransTbl[4])); } else { id objcT66,objcT67; # 853 "set.m" return(objcT66=(objcT67=(id)self,(*_imp(objcT67,selTransTbl[4]))(objcT67,selTransTbl[4])),(*_imp(objcT66,selTransTbl[22]))(objcT66,selTransTbl[22],bag)); } } static id i_Set_difference_(struct Set_PRIVATE *self,SEL _cmd,id bag) { if((id)self==bag) { id objcT68; # 861 "set.m" return(objcT68=self->isa,(*_imp(objcT68,selTransTbl[1]))(objcT68,selTransTbl[1])); } else { id objcT69,objcT70; # 865 "set.m" return(objcT69=(objcT70=(id)self,(*_imp(objcT70,selTransTbl[4]))(objcT70,selTransTbl[4])),(*_imp(objcT69,selTransTbl[25]))(objcT69,selTransTbl[25],bag)); } } # 875 "set.m" static id i_Set_asSet(struct Set_PRIVATE *self,SEL _cmd) { id objcT71,objcT72; if((objcT71=(id)self,(*(BOOL(*)(id,SEL,id))_imp(objcT71,selTransTbl[11]))(objcT71,selTransTbl[11],(id)(objcT72=Set,(*_imp(objcT72,selTransTbl[12]))(objcT72,selTransTbl[12]))))) { return(id)self; } else { id objcT73,objcT74; # 884 "set.m" return(objcT73=(objcT74=Set,(*_imp(objcT74,selTransTbl[1]))(objcT74,selTransTbl[1])),(*_imp(objcT73,selTransTbl[22]))(objcT73,selTransTbl[22],(id)self)); } } # 39 "ordcltn.h" extern id OrdCltn; # 888 "set.m" static id i_Set_asOrdCltn(struct Set_PRIVATE *self,SEL _cmd) { id objcT75,objcT76; if((objcT75=(id)self,(*(BOOL(*)(id,SEL,id))_imp(objcT75,selTransTbl[11]))(objcT75,selTransTbl[11],(id)(objcT76=OrdCltn,(*_imp(objcT76,selTransTbl[12]))(objcT76,selTransTbl[12]))))) { return(id)self; } else { id objcT77,objcT78; # 897 "set.m" return(objcT77=(objcT78=OrdCltn,(*_imp(objcT78,selTransTbl[1]))(objcT78,selTransTbl[1])),(*_imp(objcT77,selTransTbl[22]))(objcT77,selTransTbl[22],(id)self)); } } # 908 "set.m" static id i_Set_detect_(struct Set_PRIVATE *self,SEL _cmd,id aBlock) { id objcT79,objcT80,objcT83; # 910 "set.m" id e,seq; seq=(objcT79=(id)self,(*_imp(objcT79,selTransTbl[14]))(objcT79,selTransTbl[14])); while((e=(objcT80=seq,(*_imp(objcT80,selTransTbl[15]))(objcT80,selTransTbl[15])))) { id objcT81; # 916 "set.m" if(((objcT81=aBlock,(*_imp(objcT81,selTransTbl[27]))(objcT81,selTransTbl[27],e)))) { id objcT82; seq=(objcT82=seq,(*_imp(objcT82,selTransTbl[6]))(objcT82,selTransTbl[6])); return e; } } seq=(objcT83=seq,(*_imp(objcT83,selTransTbl[6]))(objcT83,selTransTbl[6])); return(id)0; } static id i_Set_detect_ifNone_(struct Set_PRIVATE *self,SEL _cmd,id aBlock,id noneBlock) { id objcT84,objcT85,objcT88,objcT89; # 933 "set.m" id e,seq; seq=(objcT84=(id)self,(*_imp(objcT84,selTransTbl[14]))(objcT84,selTransTbl[14])); while((e=(objcT85=seq,(*_imp(objcT85,selTransTbl[15]))(objcT85,selTransTbl[15])))) { id objcT86; # 939 "set.m" if(((objcT86=aBlock,(*_imp(objcT86,selTransTbl[27]))(objcT86,selTransTbl[27],e)))) { id objcT87; seq=(objcT87=seq,(*_imp(objcT87,selTransTbl[6]))(objcT87,selTransTbl[6])); return e; } } seq=(objcT88=seq,(*_imp(objcT88,selTransTbl[6]))(objcT88,selTransTbl[6])); return(objcT89=noneBlock,(*_imp(objcT89,selTransTbl[19]))(objcT89,selTransTbl[19])); } static id i_Set_select_(struct Set_PRIVATE *self,SEL _cmd,id testBlock) { id objcT90,objcT91,objcT92,objcT95; # 956 "set.m" id e,seq; id newObject=(objcT90=self->isa,(*_imp(objcT90,selTransTbl[1]))(objcT90,selTransTbl[1])); seq=(objcT91=(id)self,(*_imp(objcT91,selTransTbl[14]))(objcT91,selTransTbl[14])); while((e=(objcT92=seq,(*_imp(objcT92,selTransTbl[15]))(objcT92,selTransTbl[15])))) { id objcT93; # 963 "set.m" if(((objcT93=testBlock,(*_imp(objcT93,selTransTbl[27]))(objcT93,selTransTbl[27],e)))) { id objcT94; # 965 "set.m" (objcT94=newObject,(*_imp(objcT94,selTransTbl[3]))(objcT94,selTransTbl[3],e)); } } seq=(objcT95=seq,(*_imp(objcT95,selTransTbl[6]))(objcT95,selTransTbl[6])); return newObject; } static id i_Set_reject_(struct Set_PRIVATE *self,SEL _cmd,id testBlock) { id objcT96,objcT97,objcT98,objcT101; # 977 "set.m" id e,seq; id newObject=(objcT96=self->isa,(*_imp(objcT96,selTransTbl[1]))(objcT96,selTransTbl[1])); seq=(objcT97=(id)self,(*_imp(objcT97,selTransTbl[14]))(objcT97,selTransTbl[14])); while((e=(objcT98=seq,(*_imp(objcT98,selTransTbl[15]))(objcT98,selTransTbl[15])))) { id objcT99; # 984 "set.m" if( !((objcT99=testBlock,(*_imp(objcT99,selTransTbl[27]))(objcT99,selTransTbl[27],e)))) { id objcT100; # 986 "set.m" (objcT100=newObject,(*_imp(objcT100,selTransTbl[3]))(objcT100,selTransTbl[3],e)); } } seq=(objcT101=seq,(*_imp(objcT101,selTransTbl[6]))(objcT101,selTransTbl[6])); return newObject; } static id i_Set_collect_(struct Set_PRIVATE *self,SEL _cmd,id transformBlock) { id objcT102,objcT103,objcT104,objcT107; # 998 "set.m" id e,seq; id newObject=(objcT102=self->isa,(*_imp(objcT102,selTransTbl[1]))(objcT102,selTransTbl[1])); seq=(objcT103=(id)self,(*_imp(objcT103,selTransTbl[14]))(objcT103,selTransTbl[14])); while((e=(objcT104=seq,(*_imp(objcT104,selTransTbl[15]))(objcT104,selTransTbl[15])))) { id objcT105; # 1005 "set.m" id anImage=(objcT105=transformBlock,(*_imp(objcT105,selTransTbl[27]))(objcT105,selTransTbl[27],e)); if(anImage) { id objcT106; # 1008 "set.m" (objcT106=newObject,(*_imp(objcT106,selTransTbl[3]))(objcT106,selTransTbl[3],anImage)); } } seq=(objcT107=seq,(*_imp(objcT107,selTransTbl[6]))(objcT107,selTransTbl[6])); return newObject; } static unsigned i_Set_count_(struct Set_PRIVATE *self,SEL _cmd,id aBlock) { id objcT108,objcT109,objcT111; # 1020 "set.m" id e,seq; unsigned c=0; seq=(objcT108=(id)self,(*_imp(objcT108,selTransTbl[14]))(objcT108,selTransTbl[14])); while((e=(objcT109=seq,(*_imp(objcT109,selTransTbl[15]))(objcT109,selTransTbl[15])))) { id objcT110; # 1026 "set.m" if((objcT110=aBlock,(*_imp(objcT110,selTransTbl[27]))(objcT110,selTransTbl[27],e))) { c++; } } seq=(objcT111=seq,(*_imp(objcT111,selTransTbl[6]))(objcT111,selTransTbl[6])); return c; } # 1046 "set.m" static id i_Set_elementsPerform_(struct Set_PRIVATE *self,SEL _cmd,SEL aSelector) { id objcT112,objcT113,objcT115; # 1048 "set.m" id e,seq; seq=(objcT112=(id)self,(*_imp(objcT112,selTransTbl[14]))(objcT112,selTransTbl[14])); while((e=(objcT113=seq,(*_imp(objcT113,selTransTbl[15]))(objcT113,selTransTbl[15])))) { id objcT114; # 1053 "set.m" (objcT114=e,(*(id(*)(id,SEL,SEL))_imp(objcT114,selTransTbl[28]))(objcT114,selTransTbl[28],aSelector)); } seq=(objcT115=seq,(*_imp(objcT115,selTransTbl[6]))(objcT115,selTransTbl[6])); return(id)self; } static id i_Set_elementsPerform_with_(struct Set_PRIVATE *self,SEL _cmd,SEL aSelector,id anObject) { id objcT116,objcT117,objcT119; # 1064 "set.m" id e,seq; seq=(objcT116=(id)self,(*_imp(objcT116,selTransTbl[14]))(objcT116,selTransTbl[14])); while((e=(objcT117=seq,(*_imp(objcT117,selTransTbl[15]))(objcT117,selTransTbl[15])))) { id objcT118; # 1069 "set.m" (objcT118=e,(*(id(*)(id,SEL,SEL,id))_imp(objcT118,selTransTbl[29]))(objcT118,selTransTbl[29],aSelector,anObject)); } seq=(objcT119=seq,(*_imp(objcT119,selTransTbl[6]))(objcT119,selTransTbl[6])); return(id)self; } static id i_Set_elementsPerform_with_with_(struct Set_PRIVATE *self,SEL _cmd,SEL aSelector,id anObject,id otherObject) { id objcT120,objcT121,objcT123; # 1080 "set.m" id e,seq; seq=(objcT120=(id)self,(*_imp(objcT120,selTransTbl[14]))(objcT120,selTransTbl[14])); while((e=(objcT121=seq,(*_imp(objcT121,selTransTbl[15]))(objcT121,selTransTbl[15])))) { id objcT122; # 1085 "set.m" (objcT122=e,(*(id(*)(id,SEL,SEL,id,id))_imp(objcT122,selTransTbl[30]))(objcT122,selTransTbl[30],aSelector,anObject,otherObject)); } seq=(objcT123=seq,(*_imp(objcT123,selTransTbl[6]))(objcT123,selTransTbl[6])); return(id)self; } static id i_Set_elementsPerform_with_with_with_(struct Set_PRIVATE *self,SEL _cmd,SEL aSelector,id anObject,id otherObject,id thirdObj) { id objcT124,objcT125,objcT127; # 1096 "set.m" id e,seq; seq=(objcT124=(id)self,(*_imp(objcT124,selTransTbl[14]))(objcT124,selTransTbl[14])); while((e=(objcT125=seq,(*_imp(objcT125,selTransTbl[15]))(objcT125,selTransTbl[15])))) { id objcT126; # 1101 "set.m" (objcT126=e,(*(id(*)(id,SEL,SEL,id,id,id))_imp(objcT126,selTransTbl[31]))(objcT126,selTransTbl[31],aSelector,anObject,otherObject,thirdObj)); } seq=(objcT127=seq,(*_imp(objcT127,selTransTbl[6]))(objcT127,selTransTbl[6])); return(id)self; } # 1116 "set.m" static id i_Set_do_(struct Set_PRIVATE *self,SEL _cmd,id aBlock) { id objcT128,objcT129,objcT131; # 1118 "set.m" id e,seq; seq=(objcT128=(id)self,(*_imp(objcT128,selTransTbl[14]))(objcT128,selTransTbl[14])); while((e=(objcT129=seq,(*_imp(objcT129,selTransTbl[15]))(objcT129,selTransTbl[15])))) { id objcT130; # 1124 "set.m" (objcT130=aBlock,(*_imp(objcT130,selTransTbl[27]))(objcT130,selTransTbl[27],e)); } seq=(objcT131=seq,(*_imp(objcT131,selTransTbl[6]))(objcT131,selTransTbl[6])); return(id)self; } static id i_Set_do_until_(struct Set_PRIVATE *self,SEL _cmd,id aBlock,BOOL*flag) { id objcT132,objcT133,objcT135; # 1134 "set.m" id e,seq; seq=(objcT132=(id)self,(*_imp(objcT132,selTransTbl[14]))(objcT132,selTransTbl[14])); while((e=(objcT133=seq,(*_imp(objcT133,selTransTbl[15]))(objcT133,selTransTbl[15])))) { id objcT134; # 1140 "set.m" (objcT134=aBlock,(*_imp(objcT134,selTransTbl[27]))(objcT134,selTransTbl[27],e)); if( *flag) break; } seq=(objcT135=seq,(*_imp(objcT135,selTransTbl[6]))(objcT135,selTransTbl[6])); return(id)self; } # 1158 "set.m" static id i_Set_find_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { return(anObject)? *find(( &self->value),anObject):(id)0; } static BOOL i_Set_contains_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { id objcT136; # 1165 "set.m" return(BOOL)((objcT136=(id)self,(*_imp(objcT136,selTransTbl[26]))(objcT136,selTransTbl[26],anObject))?(BOOL)1:(BOOL)0); } static BOOL i_Set_includes_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { id objcT137; # 1170 "set.m" return(objcT137=(id)self,(*(BOOL(*)(id,SEL,id))_imp(objcT137,selTransTbl[16]))(objcT137,selTransTbl[16],anObject)); } static unsigned i_Set_occurrencesOf_(struct Set_PRIVATE *self,SEL _cmd,id anObject) { id objcT138; # 1175 "set.m" return(unsigned)((objcT138=(id)self,(*_imp(objcT138,selTransTbl[26]))(objcT138,selTransTbl[26],anObject))?1:0); } # 1184 "set.m" static id i_Set_printOn_(struct Set_PRIVATE *self,SEL _cmd,IOD aFile) { id objcT139,objcT140,objcT141; # 1186 "set.m" id s=(objcT139=(id)self,(*_imp(objcT139,selTransTbl[14]))(objcT139,selTransTbl[14])); (objcT140=s,(*(id(*)(id,SEL,IOD))_imp(objcT140,selTransTbl[32]))(objcT140,selTransTbl[32],aFile)); (objcT141=s,(*_imp(objcT141,selTransTbl[6]))(objcT141,selTransTbl[6])); return(id)self; } # 1201 "set.m" static void ptrfileout(id aFiler,id*a,int n) { while(n--) { id obj= *a++; if(obj) { id objcT142; # 1209 "set.m" (objcT142=aFiler,(*(id(*)(id,SEL,void*,char))_imp(objcT142,selTransTbl[33]))(objcT142,selTransTbl[33], &obj,'@')); } } } static void ptrfilein(id aFiler,id*a,int n) { # 1223 "set.m" while(n--) { id objcT143; # 1225 "set.m" (objcT143=aFiler,(*(id(*)(id,SEL,void*,char))_imp(objcT143,selTransTbl[34]))(objcT143,selTransTbl[34],a++,'@')); } } static void fileout(id aFiler,objset_t self) { id objcT144; # 1232 "set.m" int n=self->count; (objcT144=aFiler,(*(id(*)(id,SEL,void*,char))_imp(objcT144,selTransTbl[33]))(objcT144,selTransTbl[33], &n,'i')); ptrfileout(aFiler,self->ptr,self->capacity); } static void filein(id aFiler,objset_t self) { id objcT145; # 1240 "set.m" int n; (objcT145=aFiler,(*(id(*)(id,SEL,void*,char))_imp(objcT145,selTransTbl[34]))(objcT145,selTransTbl[34], &n,'i')); init(self,n,n); ptrfilein(aFiler,self->ptr,n); } static id i_Set_fileOutOn_(struct Set_PRIVATE *self,SEL _cmd,id aFiler) { id objcT146; # 1248 "set.m" (objcT146=_Set.clsSuper,(*_impSuper(objcT146,selTransTbl[35]))((id)self,selTransTbl[35],aFiler)); fileout(aFiler, &self->value); return(id)self; } static id i_Set_fileInFrom_(struct Set_PRIVATE *self,SEL _cmd,id aFiler) { id objcT147; # 1255 "set.m" (objcT147=_Set.clsSuper,(*_impSuper(objcT147,selTransTbl[36]))((id)self,selTransTbl[36],aFiler)); filein(aFiler, &self->value); return(id)self; } static id i_Set_awakeFrom_(struct Set_PRIVATE *self,SEL _cmd,id aFiler) { expand( &self->value); return(id)self; } extern id Object; extern struct _SHARED _Object; extern struct _SHARED __Object; extern id Cltn; extern struct _SHARED _Cltn; extern struct _SHARED __Cltn; static struct _SLT _Set_clsDispatchTbl[] ={ {"new",(id (*)())c_Set_new}, {"new:",(id (*)())c_Set_new_}, {"with:",(id (*)())c_Set_with_}, {"with:with:",(id (*)())c_Set_with_with_}, {"add:",(id (*)())c_Set_add_}, {(char*)0,(id (*)())0} }; static struct _SLT _Set_nstDispatchTbl[] ={ {"copy",(id (*)())i_Set_copy}, {"deepCopy",(id (*)())i_Set_deepCopy}, {"emptyYourself",(id (*)())i_Set_emptyYourself}, {"addYourself",(id (*)())i_Set_addYourself}, {"freeContents",(id (*)())i_Set_freeContents}, {"freeAll",(id (*)())i_Set_freeAll}, {"free",(id (*)())i_Set_free}, {"release",(id (*)())i_Set_release}, {"objsetvalue",(id (*)())i_Set_objsetvalue}, {"size",(id (*)())i_Set_size}, {"isEmpty",(id (*)())i_Set_isEmpty}, {"eachElement",(id (*)())i_Set_eachElement}, {"hash",(id (*)())i_Set_hash}, {"isEqual:",(id (*)())i_Set_isEqual_}, {"add:",(id (*)())i_Set_add_}, {"addNTest:",(id (*)())i_Set_addNTest_}, {"filter:",(id (*)())i_Set_filter_}, {"add:ifDuplicate:",(id (*)())i_Set_add_ifDuplicate_}, {"replace:",(id (*)())i_Set_replace_}, {"remove:",(id (*)())i_Set_remove_}, {"remove:ifAbsent:",(id (*)())i_Set_remove_ifAbsent_}, {"includesAllOf:",(id (*)())i_Set_includesAllOf_}, {"includesAnyOf:",(id (*)())i_Set_includesAnyOf_}, {"addAll:",(id (*)())i_Set_addAll_}, {"addContentsOf:",(id (*)())i_Set_addContentsOf_}, {"addContentsTo:",(id (*)())i_Set_addContentsTo_}, {"removeAll:",(id (*)())i_Set_removeAll_}, {"removeContentsFrom:",(id (*)())i_Set_removeContentsFrom_}, {"removeContentsOf:",(id (*)())i_Set_removeContentsOf_}, {"intersection:",(id (*)())i_Set_intersection_}, {"union:",(id (*)())i_Set_union_}, {"difference:",(id (*)())i_Set_difference_}, {"asSet",(id (*)())i_Set_asSet}, {"asOrdCltn",(id (*)())i_Set_asOrdCltn}, {"detect:",(id (*)())i_Set_detect_}, {"detect:ifNone:",(id (*)())i_Set_detect_ifNone_}, {"select:",(id (*)())i_Set_select_}, {"reject:",(id (*)())i_Set_reject_}, {"collect:",(id (*)())i_Set_collect_}, {"count:",(id (*)())i_Set_count_}, {"elementsPerform:",(id (*)())i_Set_elementsPerform_}, {"elementsPerform:with:",(id (*)())i_Set_elementsPerform_with_}, {"elementsPerform:with:with:",(id (*)())i_Set_elementsPerform_with_with_}, {"elementsPerform:with:with:with:",(id (*)())i_Set_elementsPerform_with_with_with_}, {"do:",(id (*)())i_Set_do_}, {"do:until:",(id (*)())i_Set_do_until_}, {"find:",(id (*)())i_Set_find_}, {"contains:",(id (*)())i_Set_contains_}, {"includes:",(id (*)())i_Set_includes_}, {"occurrencesOf:",(id (*)())i_Set_occurrencesOf_}, {"printOn:",(id (*)())i_Set_printOn_}, {"fileOutOn:",(id (*)())i_Set_fileOutOn_}, {"fileInFrom:",(id (*)())i_Set_fileInFrom_}, {"awakeFrom:",(id (*)())i_Set_awakeFrom_}, {(char*)0,(id (*)())0} }; id Set = (id)&_Set; id *OBJCCLASS_Set(void) { return &Set; } struct _SHARED _Set = { (id)&__Set, (id)&_Cltn, "Set", 0, sizeof(struct Set_PRIVATE), 54, _Set_nstDispatchTbl, 41, &set_modDesc, 0, (id)0, &Set, }; id OBJCCFUNC_Set(void) { return (id)&_Set; } id OBJCCSUPER_Set(void) { return _Set.clsSuper; } struct _SHARED __Set = { (id)&__Object, (id)&__Cltn, "Set", 0, sizeof(struct _SHARED), 5, _Set_clsDispatchTbl, 34, &set_modDesc, 0, (id)0, 0, }; id OBJCMFUNC_Set(void) { return (id)&__Set; } id OBJCMSUPER_Set(void) { return __Set.clsSuper; } static char *_selTransTbl[] ={ "new:", "new", "objsetvalue", "add:", "copy", "deepCopy", "free", "freeAll", "notImplemented:", "over:", "hash", "isKindOf:", "class", "size", "eachElement", "next", "contains:", "isEqual:", "addNTest:", "value", "includes:", "addYourself", "addAll:", "emptyYourself", "remove:", "removeAll:", "find:", "value:", "perform:", "perform:with:", "perform:with:with:", "perform:with:with:with:", "printOn:", "fileOut:type:", "fileIn:type:", "fileOutOn:", "fileInFrom:", 0 }; struct modDescriptor set_modDesc = { "set", "objc3.2.8", 0L, 0, 0, &Set, 37, _selTransTbl, 0 }; struct modDescriptor *_OBJCBIND_set(void) { selTransTbl = _selTransTbl; return &set_modDesc; } int _OBJCPOSTLINK_set = 1;