# 1 "classdef.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_classdef(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 classdef_modDesc; # 1 "../../util/stdarg.h" #include # 1 "../../util/stdlib.h" #include # 1 "../../util/assert.h" #include # 1 "../../util/string.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 # 32 "../../include/objpak/ocstring.h" typedef struct objstr { int count; int capacity; char*ptr; }* objstr_t; # 31 "../../include/objpak/ordcltn.h" typedef struct objcol { int count; int capacity; id*ptr; }* objcol_t; # 28 "../../include/objpak/set.h" typedef struct objset { int count; int capacity; id*ptr; }* objset_t; # 22 "node.h" extern FILE*gfile; extern int inlineno; extern id infilename; extern int outlineno; extern char*outfilename; extern int exitstatus; extern id loadedmodules; void gc(char c); void gextc(void); void gcom(char*cm); void gvarlist(id c,char*sp,char*iz); void gcommalist(id c); void gs(char*str); void gf(char*fmt,...); void gl(int no,char*fn); void g_otbvars(void); void gstderr(void); void gnormal(void); char*browsepath(char*filename); void warn(char*fmt,...); void warnat(id sym,char*fmt,...); void fatal(char*fmt,...); void fatalat(id sym,char*fmt,...); # 22 "symbol.h" extern id s_void; extern id s_char; extern id s_bool; extern id s_int; extern id s_uns; extern id s_long; extern id s_double; extern id s_str; extern id s_sel; extern id s_newblock; extern id s_main; extern id s_objcmain; extern id s_id; extern id s_nil; extern id s_self; extern id s_cmd; extern id s_super; extern id s_type; extern id s_aFiler; extern id s_fileIn; extern id s_fileOut; extern id s_fileInIdsFrom; extern id s_fileOutIdsFor; extern id s_returnval; extern id s_returnflag; extern id s_increfs; extern id s_decrefs; extern id s_idincref; extern id s_iddecref; BOOL istypeword(id sym); BOOL isbuiltinfun(id sym); int pragmatoggle(char*s); void definebuiltintype(char*s); void definebuiltinfun(char*s); void definebuiltinvar(char*s); # 22 "classdef.h" extern id curclassdef; extern id curstruct; # 22 "trlunit.h" extern id trlunit; # 22 "options.h" void defoptions(void); extern int o_warnings; extern int o_gnu; extern int o_hpux; extern int o_vms; extern int o_refcnt; extern int o_ppi; extern int o_watcom; extern int o_ibmvac; extern int o_msdos; extern int o_enableasm; extern int o_nolinetags; extern int o_buffered; extern int o_quiet; extern int o_outputcode; extern int o_version; extern int o_otb; extern int o_llkeyw; extern int o_comments; extern int o_duptypedefs; extern int o_seltranslation; extern int o_categories; extern int o_blocks; extern int o_fwd; extern int o_selptr; extern int o_cache; extern int o_filer; extern int o_selfassign; extern char*o_bind; extern char*o_browsedir; extern int o_refbind; extern int o_inlinecache; extern int o_cplus; extern int o_gencode; extern int o_st80; extern int o_selfassign; extern int o_nilrcvr; extern int o_shareddata; extern int o_oneperfile; extern int o_cvars; extern int o_warnlex; extern int o_warnfwd; extern int o_warnsuggest; extern int o_warnintvar; extern int o_warnclasstype; extern int o_warntypeconflict; extern int o_warnundefined; extern int o_warnlocalnst; extern int o_warnnotfound; extern int o_warnmissingmethods; extern int o_postlink; extern char*o_infile; extern char*o_outfile; extern char*o_srcfilename; extern char*o_initcall; extern char*o_tagformat; extern char*o_mainfun; extern char*o_pathsep; extern int o_debuginfo; extern int o_checkbind; extern int o_linemax; extern int o_structassign; extern id o_stepbreak; extern int o_stepnext; # 22 "def.h" extern id curdef; # 22 "type.h" extern id t_unknown; extern id t_void; extern id t_char; extern id t_bool; extern id t_int; extern id t_long; extern id t_uns; extern id t_double; extern id t_str; extern id t_sel; extern id t_id; # 23 "util.h" extern FILE*yyin; extern int yyparse(); FILE*openfile(STR name,STR modfs); FILE*reopenfile(STR name,STR modfs,FILE*of); extern int okblock; id mkcppdirect(char*s); id mkexprstmt(id expr); id mklabeledstmt(id label,id stmt); id mkcasestmt(id keyw,id expr,id stmt); id mkdefaultstmt(id keyw,id stmt); id mkifstmt(id keyw,id expr,id stmt); id mkifelsestmt(id keyw,id expr,id stmt,id ekeyw,id estmt); id mkswitchstmt(id keyw,id expr,id stmt); id mkwhilestmt(id keyw,id expr,id stmt); id mkdostmt(id keyw,id stmt,id wkeyw,id expr); id mkforstmt(id keyw,id a,id b,id c,id stmt); id mkgotostmt(id keyw,id label); id mkcontinuestmt(id keyw); id mkbreakstmt(id keyw); id mkreturnstmt(id keyw,id expr); id mkcastexpr(id a,id b); id mkcondexpr(id a,id b,id c); id mkunaryexpr(STR op,id a); id mksizeof(id a); id mktypeof(id kw,id a); id mkaddressof(id a); id mkdereference(id a); id mkbinexpr(id a,STR op,id b); id mkcommaexpr(id a,id b); id mkrelexpr(id a,STR op,id b); id mkassignexpr(id a,STR op,id b); id mkfuncall(id funname,id args); id mkbuiltincall(id funname,id args); id mkfunbody(id datadefs,id compound); void declarefun(id specs,id decl); void declaremeth(BOOL factory,id decl); id mkfundef(id specs,id decl,id body); id mkmethdef(BOOL factory,id decl,id body); id mkmesgexpr(id receiver,id args); id mkdecl(id ident); id mkprecdecl(id tquals,id decl); id mkarraydecl(id lhs,id ix); id mkfundecl(id lhs,id args); id mkprefixdecl(id lhs,id rhs); id mkpostfixdecl(id lhs,id rhs); id mkpointer(id specs,id pointer); id mkbitfielddecl(id decl,id expr); id mkstardecl(id pointer,id decl); id mkasmop(id string,id expr); id mkasmstmt(id keyw,id tqual,id expr,id asmop1,id asmop2,id clobbers); id mkcompstmt(id lb,id datadefs,id stmtlist,id subblock,id rb); id mklist(id c,id s); id mklist2(id c,id s,id t); id atdefsaddall(id c,id n); id mkblockexpr(id lb,id parms,id datadefs,id stmts,id expr,id rb); id mkclassdef(id keyw,id name,id sname,id ivars,id cvars); id mkdatadef(id datadef,id specs,id decl,id initializer); id mkencodeexpr(id name); id mkenumspec(id keyw,id name,id lb,id list,id rb); id mkenumerator(id name,id value); id mkgnuattrib(id anyword,id exprlist); id mkgnuattribdecl(id keyw,id list); id mklistexpr(id lb,id x,id rb); id mktypename(id specs,id decl); id mkcomponentdef(id cdef,id specs,id decl); id mkstructspec(id keyw,id name,id lb,id defs,id rb); id mkkeywarg(id sel,id arg); id mkkeywdecl(id sel,id cast,id arg); id mkmethproto(id cast,id usel,id ksel,BOOL varargs); id mkidentexpr(id name); id mkconstexpr(id name,id schain); id mkprecexpr(id expr); id mkbracedgroup(id expr); id mkarrowexpr(id array,id ix); id mkdotexpr(id array,id ix); id mkindexexpr(id array,id ix); id mkpostfixexpr(id expr,id pf); id mkparmdef(id parmdef,id specs,id decl); id mkparmdeflist(id idents,id parmdefs,BOOL varargs); id mkselarg(id selarg,id usel,int ncols); id mkselectorexpr(id expr); void procextdef(id def); void finclassdef(void); void datadefokblock(id datadef,id specs,id decl); id mkfileinmeth(id classdef,id ivarnames,id ivartypes); id mkfileoutmeth(id classdef,id ivarnames,id ivartypes); id mkincrefsmeth(id classdef,id ivarnames,id ivartypes); id mkdecrefsmeth(id classdef,id ivarnames,id ivartypes); # 22 "expr.h" extern id e_nil; extern id e_self; extern id e_cmd; extern id e_super; extern id e_aFiler; extern id e_ft_id; # 22 "msgxpr.h" extern id msgwraps; # 50 "classdef.m" id curclassdef; # 25 "classdef.h" struct ClassDef_PRIVATE { # 42 "../../include/objcrt/Object.h" id isa; # 46 "../../include/objcrt/Object.h" unsigned short attr; unsigned short objID; # 27 "classdef.h" id unit; id selftype; id classname; char*otbtypename; char*privtypename; char*shartypename; char*clsdisptblname; char*nstdisptblname; char*globfunname; char*_classname; char*_classfunname; char*_superfunname; char*_m_classname; char*_m_classfunname; char*_m_superfunname; id rootc; id superc; id supername; id ivars,cvars; BOOL emitintf; BOOL emitimpl; BOOL emitfwddecl; BOOL isimpl; BOOL iscategory; id clsdispsels,nstdispsels; id clsdisptbl; id nstdisptbl; id clssels; id nstsels; id compdic,compnames,comptypes; id ivardic,ivarnames,ivartypes; id cvardic,cvarnames,cvartypes; id allivarnames,allcvarnames; id fileinmethod,fileoutmethod; id decrefsmethod,increfsmethod; int offset;}; # 25 "classdef.h" extern id ClassDef; # 25 "classdef.h" extern struct _SHARED _ClassDef; extern struct _SHARED __ClassDef; # 54 "classdef.m" static int i_ClassDef_compare_(struct ClassDef_PRIVATE *self,SEL _cmd,id b) { id objcT0,objcT1; # 56 "classdef.m" int c; char*s1,*s2; s1=(objcT0=(id)self,(*(char*(*)(id,SEL))_imp(objcT0,selTransTbl[0]))(objcT0,selTransTbl[0])); s2=(objcT1=b,(*(char*(*)(id,SEL))_imp(objcT1,selTransTbl[0]))(objcT1,selTransTbl[0])); c=strcmp(s1,s2); return c; } static char*i_ClassDef_privtypename(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->privtypename; } # 34 "type.h" extern id Type; # 59 "symbol.h" extern id Symbol; # 22 "pointer.h" extern id Pointer; # 69 "classdef.m" static id i_ClassDef_selftype(struct ClassDef_PRIVATE *self,SEL _cmd) { if( !self->selftype){ id objcT2,objcT3,objcT4,objcT5,objcT6; # 72 "classdef.m" (void)0;self-> selftype=(objcT2=Type,(*_imp(objcT2,selTransTbl[1]))(objcT2,selTransTbl[1])); (objcT3=self->selftype,(*_imp(objcT3,selTransTbl[2]))(objcT3,selTransTbl[2],(objcT4=Symbol,(*(id(*)(id,SEL,STR,...))_imp(objcT4,selTransTbl[3]))(objcT4,selTransTbl[3],"struct %s",self->privtypename)))); (objcT5=self->selftype,(*_imp(objcT5,selTransTbl[4]))(objcT5,selTransTbl[4],(objcT6=Pointer,(*_imp(objcT6,selTransTbl[1]))(objcT6,selTransTbl[1])))); } return self->selftype; } static char*i_ClassDef_shartypename(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->shartypename; } static char*i_ClassDef_otbtypename(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->otbtypename; } static id i_ClassDef_shartypename_(struct ClassDef_PRIVATE *self,SEL _cmd,char*s) {self-> shartypename=s; return(id)self; } static id c_ClassDef_new(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT7,objcT8; # 99 "classdef.m" return(objcT7=(objcT8=__ClassDef.clsSuper,(*_impSuper(objcT8,selTransTbl[1]))((id)self,selTransTbl[1])),(*(id(*)(id,SEL,char*))_imp(objcT7,selTransTbl[5]))(objcT7,selTransTbl[5],"_SHARED")); } static id i_ClassDef_warnpending(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT9; # 104 "classdef.m" warn("definition of %s not properly ended.",(objcT9=(id)self,(*(char*(*)(id,SEL))_imp(objcT9,selTransTbl[0]))(objcT9,selTransTbl[0]))); return(id)self; } # 40 "../../include/objpak/ocstring.h" extern id String; # 108 "classdef.m" static id i_ClassDef_classname_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT10,objcT11,objcT18,objcT19,objcT20; id objcT21,objcT22,objcT23,objcT24,objcT25; id objcT26,objcT27,objcT28,objcT29,objcT30; id objcT31; # 110 "classdef.m" char*s; (void)0;self-> classname=sym; s=(objcT10=self->classname,(*(STR(*)(id,SEL))_imp(objcT10,selTransTbl[6]))(objcT10,selTransTbl[6])); (objcT11=trlunit,(*_imp(objcT11,selTransTbl[7]))(objcT11,selTransTbl[7],sym,(id)self)); if(o_oneperfile){self-> privtypename="_PRIVATE";self-> clsdisptblname="_clsDispatchTbl";self-> nstdisptblname="_nstDispatchTbl"; }else{ id objcT12,objcT13,objcT14,objcT15,objcT16; id objcT17; self-> # 122 "classdef.m" privtypename=(objcT12=(objcT13=String,(*(id(*)(id,SEL,STR,...))_imp(objcT13,selTransTbl[3]))(objcT13,selTransTbl[3],"%s_PRIVATE",s)),(*(STR(*)(id,SEL))_imp(objcT12,selTransTbl[8]))(objcT12,selTransTbl[8]));self-> clsdisptblname=(objcT14=(objcT15=String,(*(id(*)(id,SEL,STR,...))_imp(objcT15,selTransTbl[3]))(objcT15,selTransTbl[3],"_%s_clsDispatchTbl",s)),(*(STR(*)(id,SEL))_imp(objcT14,selTransTbl[8]))(objcT14,selTransTbl[8]));self-> nstdisptblname=(objcT16=(objcT17=String,(*(id(*)(id,SEL,STR,...))_imp(objcT17,selTransTbl[3]))(objcT17,selTransTbl[3],"_%s_nstDispatchTbl",s)),(*(STR(*)(id,SEL))_imp(objcT16,selTransTbl[8]))(objcT16,selTransTbl[8])); }self-> globfunname=(objcT18=(objcT19=String,(*(id(*)(id,SEL,STR,...))_imp(objcT19,selTransTbl[3]))(objcT19,selTransTbl[3],"OBJCCLASS_%s",s)),(*(STR(*)(id,SEL))_imp(objcT18,selTransTbl[8]))(objcT18,selTransTbl[8]));self-> _classfunname=(objcT20=(objcT21=String,(*(id(*)(id,SEL,STR,...))_imp(objcT21,selTransTbl[3]))(objcT21,selTransTbl[3],"OBJCCFUNC_%s",s)),(*(STR(*)(id,SEL))_imp(objcT20,selTransTbl[8]))(objcT20,selTransTbl[8]));self-> _superfunname=(objcT22=(objcT23=String,(*(id(*)(id,SEL,STR,...))_imp(objcT23,selTransTbl[3]))(objcT23,selTransTbl[3],"OBJCCSUPER_%s",s)),(*(STR(*)(id,SEL))_imp(objcT22,selTransTbl[8]))(objcT22,selTransTbl[8]));self-> _m_classfunname=(objcT24=(objcT25=String,(*(id(*)(id,SEL,STR,...))_imp(objcT25,selTransTbl[3]))(objcT25,selTransTbl[3],"OBJCMFUNC_%s",s)),(*(STR(*)(id,SEL))_imp(objcT24,selTransTbl[8]))(objcT24,selTransTbl[8]));self-> _m_superfunname=(objcT26=(objcT27=String,(*(id(*)(id,SEL,STR,...))_imp(objcT27,selTransTbl[3]))(objcT27,selTransTbl[3],"OBJCMSUPER_%s",s)),(*(STR(*)(id,SEL))_imp(objcT26,selTransTbl[8]))(objcT26,selTransTbl[8]));self-> _classname=(objcT28=(objcT29=String,(*(id(*)(id,SEL,STR,...))_imp(objcT29,selTransTbl[3]))(objcT29,selTransTbl[3],"_%s",s)),(*(STR(*)(id,SEL))_imp(objcT28,selTransTbl[8]))(objcT28,selTransTbl[8]));self-> _m_classname=(objcT30=(objcT31=String,(*(id(*)(id,SEL,STR,...))_imp(objcT31,selTransTbl[3]))(objcT31,selTransTbl[3],"__%s",s)),(*(STR(*)(id,SEL))_imp(objcT30,selTransTbl[8]))(objcT30,selTransTbl[8])); if(o_otb){ id objcT32,objcT33; self-> # 134 "classdef.m" otbtypename=(objcT32=(objcT33=String,(*(id(*)(id,SEL,STR,...))_imp(objcT33,selTransTbl[3]))(objcT33,selTransTbl[3],"%s_OTB",s)),(*(STR(*)(id,SEL))_imp(objcT32,selTransTbl[8]))(objcT32,selTransTbl[8])); } return(id)self; } static id i_ClassDef_checksupername_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT34,objcT36,objcT37,objcT38; # 141 "classdef.m" char*m="conflicting superclasses %s and %s for %s."; char*n="conflicting superclass declarations for %s."; if(sym==(id)0&&self->supername==(id)0) return(id)self; if(sym!=(id)0&&self->supername!=(id)0&&(objcT34=self->supername,(*(BOOL(*)(id,SEL,id))_imp(objcT34,selTransTbl[9]))(objcT34,selTransTbl[9],sym))) return(id)self; if(sym==(id)0||self->supername==(id)0){ id objcT35; # 149 "classdef.m" fatal(n,(objcT35=(id)self,(*(char*(*)(id,SEL))_imp(objcT35,selTransTbl[0]))(objcT35,selTransTbl[0]))); return(id)self; } fatalat(sym,m,(objcT36=sym,(*(STR(*)(id,SEL))_imp(objcT36,selTransTbl[6]))(objcT36,selTransTbl[6])),(objcT37=self->supername,(*(STR(*)(id,SEL))_imp(objcT37,selTransTbl[6]))(objcT37,selTransTbl[6])),(objcT38=(id)self,(*(char*(*)(id,SEL))_imp(objcT38,selTransTbl[0]))(objcT38,selTransTbl[0]))); return(id)self; } static id i_ClassDef_supername_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT39; self-> # 158 "classdef.m" supername=sym; if(sym!=(id)0&&((self->superc=(objcT39=trlunit,(*_imp(objcT39,selTransTbl[10]))(objcT39,selTransTbl[10],sym)))==(id)0)){ id objcT40,objcT41; # 160 "classdef.m" fatal("cannot find %s superclass of %s",(objcT40=sym,(*(STR(*)(id,SEL))_imp(objcT40,selTransTbl[6]))(objcT40,selTransTbl[6])),(objcT41=(id)self,(*(char*(*)(id,SEL))_imp(objcT41,selTransTbl[0]))(objcT41,selTransTbl[0]))); } return(id)self; } static char*i_ClassDef_classname(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT42; # 167 "classdef.m" return(objcT42=self->classname,(*(STR(*)(id,SEL))_imp(objcT42,selTransTbl[6]))(objcT42,selTransTbl[6])); } static char*i_ClassDef_globfunname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->globfunname; } static char*i_ClassDef__classname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->_classname; } static char*i_ClassDef__m_classname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->_m_classname; } static char*i_ClassDef__classfunname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->_classfunname; } static char*i_ClassDef__m_classfunname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->_m_classfunname; } static char*i_ClassDef__superfunname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->_superfunname; } static char*i_ClassDef__m_superfunname(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->_m_superfunname; } static char*i_ClassDef_supername(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT43; # 207 "classdef.m" return(self->supername)?(objcT43=self->supername,(*(STR(*)(id,SEL))_imp(objcT43,selTransTbl[6]))(objcT43,selTransTbl[6])):NULL; } static id i_ClassDef_superclassdef(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->superc; } static id i_ClassDef_rootclassdef(struct ClassDef_PRIVATE *self,SEL _cmd) { if( !self->rootc){ id objcT44; # 218 "classdef.m" id p,q; p=(id)self; while((q=(objcT44=p,(*_imp(objcT44,selTransTbl[11]))(objcT44,selTransTbl[11])))){ p=q; }self-> rootc=p; } return self->rootc; } static char*i_ClassDef_rootname(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT45,objcT46; # 231 "classdef.m" return(objcT45=(objcT46=(id)self,(*_imp(objcT46,selTransTbl[12]))(objcT46,selTransTbl[12])),(*(char*(*)(id,SEL))_imp(objcT45,selTransTbl[0]))(objcT45,selTransTbl[0])); } static int i_ClassDef_numidivars(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT47; # 236 "classdef.m" int i,n; int count=0; if(self->ivars) for(i=0,n=(objcT47=self->ivars,(*(unsigned(*)(id,SEL))_imp(objcT47,selTransTbl[13]))(objcT47,selTransTbl[13]));iivartypes,(*(id(*)(id,SEL,unsigned))_imp(objcT49,selTransTbl[14]))(objcT49,selTransTbl[14],i)),(*(BOOL(*)(id,SEL))_imp(objcT48,selTransTbl[15]))(objcT48,selTransTbl[15]))) count++; } return count; } static id i_ClassDef_synthrefcntmethods(struct ClassDef_PRIVATE *self,SEL _cmd) { (void)0; o_refcnt=0; if(self->isimpl){ id objcT50,objcT52; # 254 "classdef.m" if( !self->nstdisptbl|| !(objcT50=self->nstdispsels,(*_imp(objcT50,selTransTbl[16]))(objcT50,selTransTbl[16],s_decrefs))){ id objcT51; self-> # 255 "classdef.m" decrefsmethod=mkdecrefsmeth(curclassdef,self->ivarnames,self->ivartypes); (objcT51=self->decrefsmethod,(*_imp(objcT51,selTransTbl[17]))(objcT51,selTransTbl[17])); } if( !self->nstdisptbl|| !(objcT52=self->nstdispsels,(*_imp(objcT52,selTransTbl[16]))(objcT52,selTransTbl[16],s_increfs))){ id objcT53; self-> # 259 "classdef.m" increfsmethod=mkincrefsmeth(curclassdef,self->ivarnames,self->ivartypes); (objcT53=self->increfsmethod,(*_imp(objcT53,selTransTbl[17]))(objcT53,selTransTbl[17])); } } o_refcnt++; return(id)self; } static id i_ClassDef_synthfilermethods(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->isimpl){ id objcT54,objcT56; # 270 "classdef.m" if( !self->nstdisptbl|| !(objcT54=self->nstdispsels,(*_imp(objcT54,selTransTbl[16]))(objcT54,selTransTbl[16],s_fileInIdsFrom))){ id objcT55; self-> # 271 "classdef.m" fileinmethod=mkfileinmeth(curclassdef,self->ivarnames,self->ivartypes); (objcT55=self->fileinmethod,(*_imp(objcT55,selTransTbl[17]))(objcT55,selTransTbl[17])); } if( !self->nstdisptbl|| !(objcT56=self->nstdispsels,(*_imp(objcT56,selTransTbl[16]))(objcT56,selTransTbl[16],s_fileOutIdsFor))){ id objcT57; self-> # 275 "classdef.m" fileoutmethod=mkfileoutmeth(curclassdef,self->ivarnames,self->ivartypes); (objcT57=self->fileoutmethod,(*_imp(objcT57,selTransTbl[17]))(objcT57,selTransTbl[17])); } } return(id)self; } static id i_ClassDef_ivars(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->ivars; } static id i_ClassDef_ivars_(struct ClassDef_PRIVATE *self,SEL _cmd,id aList) {self-> ivars=aList; return(id)self; } static id i_ClassDef_cvars(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->cvars; } static id i_ClassDef_cvars_(struct ClassDef_PRIVATE *self,SEL _cmd,id aList) { if( !o_cvars) fatal("class variables not allowed");self-> cvars=aList; return(id)self; } static id i_ClassDef_checkvars____(struct ClassDef_PRIVATE *self,SEL _cmd,char*what,id names,id types,id aList) { if( !names){ id objcT58; # 309 "classdef.m" char*me=(objcT58=(id)self,(*(char*(*)(id,SEL))_imp(objcT58,selTransTbl[0]))(objcT58,selTransTbl[0])); fatal("'%s' was previously declared without %s variables",me,what); }else{ id objcT59,objcT60,objcT74,objcT76; # 313 "classdef.m" int i,n; id outerstruct=curstruct; curstruct=(id)self; (void)0; (objcT59=aList,(*(id(*)(id,SEL,SEL))_imp(objcT59,selTransTbl[18]))(objcT59,selTransTbl[18],selTransTbl[17])); (void)0; curstruct=outerstruct; for(i=0,n=(objcT60=self->compnames,(*(unsigned(*)(id,SEL))_imp(objcT60,selTransTbl[13]))(objcT60,selTransTbl[13]));icompnames,(*(id(*)(id,SEL,unsigned))_imp(objcT62,selTransTbl[14]))(objcT62,selTransTbl[14],i)); id b=(objcT63=self->comptypes,(*(id(*)(id,SEL,unsigned))_imp(objcT63,selTransTbl[14]))(objcT63,selTransTbl[14],i)); if( !(objcT64=a,(*(BOOL(*)(id,SEL,id))_imp(objcT64,selTransTbl[9]))(objcT64,selTransTbl[9],(objcT65=names,(*(id(*)(id,SEL,unsigned))_imp(objcT65,selTransTbl[14]))(objcT65,selTransTbl[14],i))))|| !(objcT66=b,(*(BOOL(*)(id,SEL,id))_imp(objcT66,selTransTbl[9]))(objcT66,selTransTbl[9],(objcT67=types,(*(id(*)(id,SEL,unsigned))_imp(objcT67,selTransTbl[14]))(objcT67,selTransTbl[14],i))))){ id objcT68,objcT69,objcT70,objcT71,objcT72; id objcT73; # 328 "classdef.m" int no=(objcT68=(objcT69=names,(*(id(*)(id,SEL,unsigned))_imp(objcT69,selTransTbl[14]))(objcT69,selTransTbl[14],i)),(*(int(*)(id,SEL))_imp(objcT68,selTransTbl[19]))(objcT68,selTransTbl[19])); char*fn=(objcT70=(objcT71=(objcT72=names,(*(id(*)(id,SEL,unsigned))_imp(objcT72,selTransTbl[14]))(objcT72,selTransTbl[14],i)),(*_imp(objcT71,selTransTbl[20]))(objcT71,selTransTbl[20])),(*(STR(*)(id,SEL))_imp(objcT70,selTransTbl[6]))(objcT70,selTransTbl[6])); char*msg="%s variable '%s' conflicts with definition at %s:%d"; fatalat(a,msg,what,(objcT73=a,(*(STR(*)(id,SEL))_imp(objcT73,selTransTbl[6]))(objcT73,selTransTbl[6])),fn,no); } } } if(n!=(objcT74=names,(*(unsigned(*)(id,SEL))_imp(objcT74,selTransTbl[13]))(objcT74,selTransTbl[13]))){ id objcT75; # 337 "classdef.m" char*me=(objcT75=(id)self,(*(char*(*)(id,SEL))_imp(objcT75,selTransTbl[0]))(objcT75,selTransTbl[0])); fatal("list of %s variables doesn't match '%s' interface",what,me); } (objcT76=(id)self,(*_imp(objcT76,selTransTbl[21]))(objcT76,selTransTbl[21])); } return(id)self; } static id i_ClassDef_checkivars_(struct ClassDef_PRIVATE *self,SEL _cmd,id aList) { id objcT77; # 348 "classdef.m" return(objcT77=(id)self,(*(id(*)(id,SEL,char*,id,id,id))_imp(objcT77,selTransTbl[22]))(objcT77,selTransTbl[22],"instance",self->ivarnames,self->ivartypes,aList)); } static id i_ClassDef_checkcvars_(struct ClassDef_PRIVATE *self,SEL _cmd,id aList) { id objcT78; # 353 "classdef.m" return(objcT78=(id)self,(*(id(*)(id,SEL,char*,id,id,id))_imp(objcT78,selTransTbl[22]))(objcT78,selTransTbl[22],"class",self->cvarnames,self->cvartypes,aList)); } # 39 "../../include/objpak/ordcltn.h" extern id OrdCltn; # 36 "../../include/objpak/set.h" extern id Set; # 356 "classdef.m" static id i_ClassDef_addclsdisp_(struct ClassDef_PRIVATE *self,SEL _cmd,id method) { id objcT81,objcT82,objcT83; # 358 "classdef.m" if( !self->clsdisptbl){ id objcT79,objcT80; self-> # 359 "classdef.m" clsdisptbl=(objcT79=OrdCltn,(*_imp(objcT79,selTransTbl[1]))(objcT79,selTransTbl[1]));self-> clsdispsels=(objcT80=Set,(*_imp(objcT80,selTransTbl[1]))(objcT80,selTransTbl[1])); } (void)0; (objcT81=self->clsdisptbl,(*_imp(objcT81,selTransTbl[23]))(objcT81,selTransTbl[23],method)); (objcT82=self->clsdispsels,(*_imp(objcT82,selTransTbl[23]))(objcT82,selTransTbl[23],(objcT83=method,(*_imp(objcT83,selTransTbl[24]))(objcT83,selTransTbl[24])))); return(id)self; } static id i_ClassDef_addclssel_(struct ClassDef_PRIVATE *self,SEL _cmd,id method) { id objcT84,objcT85; # 370 "classdef.m" if( !self->clssels)self-> clssels=(objcT84=OrdCltn,(*_imp(objcT84,selTransTbl[1]))(objcT84,selTransTbl[1])); (objcT85=self->clssels,(*_imp(objcT85,selTransTbl[23]))(objcT85,selTransTbl[23],method)); (void)0; return(id)self; } static id i_ClassDef_addnstdisp_(struct ClassDef_PRIVATE *self,SEL _cmd,id method) { id objcT88,objcT89,objcT90; # 379 "classdef.m" if( !self->nstdisptbl){ id objcT86,objcT87; self-> # 380 "classdef.m" nstdisptbl=(objcT86=OrdCltn,(*_imp(objcT86,selTransTbl[1]))(objcT86,selTransTbl[1]));self-> nstdispsels=(objcT87=Set,(*_imp(objcT87,selTransTbl[1]))(objcT87,selTransTbl[1])); } (void)0; (objcT88=self->nstdisptbl,(*_imp(objcT88,selTransTbl[23]))(objcT88,selTransTbl[23],method)); (objcT89=self->nstdispsels,(*_imp(objcT89,selTransTbl[23]))(objcT89,selTransTbl[23],(objcT90=method,(*_imp(objcT90,selTransTbl[24]))(objcT90,selTransTbl[24])))); return(id)self; } static id i_ClassDef_addnstsel_(struct ClassDef_PRIVATE *self,SEL _cmd,id method) { id objcT91,objcT92; # 391 "classdef.m" if( !self->nstsels)self-> nstsels=(objcT91=OrdCltn,(*_imp(objcT91,selTransTbl[1]))(objcT91,selTransTbl[1])); (objcT92=self->nstsels,(*_imp(objcT92,selTransTbl[23]))(objcT92,selTransTbl[23],method)); (void)0; return(id)self; } static id i_ClassDef_check_includedin_factory_(struct ClassDef_PRIVATE *self,SEL _cmd,id sels,id impls,BOOL f) { id objcT93; # 400 "classdef.m" int i,n; for(i=0,n=(objcT93=sels,(*(unsigned(*)(id,SEL))_imp(objcT93,selTransTbl[13]))(objcT93,selTransTbl[13]));iclssels,self->clsdispsels,(BOOL)1)); (objcT98=(id)self,(*(id(*)(id,SEL,id,id,BOOL))_imp(objcT98,selTransTbl[26]))(objcT98,selTransTbl[26],self->nstsels,self->nstdispsels,(BOOL)0)); return(id)self; } static id i_ClassDef_undefcomps(struct ClassDef_PRIVATE *self,SEL _cmd) {self-> compdic=(id)0;self-> compnames=(id)0;self-> comptypes=(id)0; return(id)self; } static id i_ClassDef_defivars(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT99; self-> # 429 "classdef.m" ivardic=self->compdic;self-> ivarnames=self->compnames;self-> ivartypes=self->comptypes; return(objcT99=(id)self,(*_imp(objcT99,selTransTbl[21]))(objcT99,selTransTbl[21])); } static id i_ClassDef_defcvars(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT100; self-> # 437 "classdef.m" cvardic=self->compdic;self-> cvarnames=self->compnames;self-> cvartypes=self->comptypes; return(objcT100=(id)self,(*_imp(objcT100,selTransTbl[21]))(objcT100,selTransTbl[21])); } static id i_ClassDef_ivarnames(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->ivarnames; } static id i_ClassDef_cvarnames(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->cvarnames; } static id i_ClassDef_synth(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT101,objcT102,objcT103,objcT104,objcT105; # 455 "classdef.m" id outerstruct; char*s=(objcT101=(id)self,(*(char*(*)(id,SEL))_imp(objcT101,selTransTbl[0]))(objcT101,selTransTbl[0]));self-> unit=trlunit; (objcT102=(id)self,(*_imp(objcT102,selTransTbl[12]))(objcT102,selTransTbl[12])); if(self->superc)self-> shartypename=(objcT103=self->superc,(*(char*(*)(id,SEL))_imp(objcT103,selTransTbl[27]))(objcT103,selTransTbl[27])); if(self->cvars)self-> shartypename=(objcT104=(objcT105=String,(*(id(*)(id,SEL,STR,...))_imp(objcT105,selTransTbl[3]))(objcT105,selTransTbl[3],"%s_SHARED",s)),(*(STR(*)(id,SEL))_imp(objcT104,selTransTbl[8]))(objcT104,selTransTbl[8])); outerstruct=curstruct; curstruct=(id)self; if(self->ivars){ id objcT106,objcT107; # 468 "classdef.m" (objcT106=self->ivars,(*(id(*)(id,SEL,SEL))_imp(objcT106,selTransTbl[18]))(objcT106,selTransTbl[18],_cmd)); (objcT107=(id)self,(*_imp(objcT107,selTransTbl[28]))(objcT107,selTransTbl[28])); } if(self->cvars){ id objcT108,objcT109; # 472 "classdef.m" (objcT108=self->cvars,(*(id(*)(id,SEL,SEL))_imp(objcT108,selTransTbl[18]))(objcT108,selTransTbl[18],_cmd)); (objcT109=(id)self,(*_imp(objcT109,selTransTbl[29]))(objcT109,selTransTbl[29])); } curstruct=outerstruct; return(id)self; } static id i_ClassDef_genlineno(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT110,objcT111,objcT112; # 481 "classdef.m" gl((objcT110=self->classname,(*(int(*)(id,SEL))_imp(objcT110,selTransTbl[19]))(objcT110,selTransTbl[19])),(objcT111=(objcT112=self->classname,(*_imp(objcT112,selTransTbl[20]))(objcT112,selTransTbl[20])),(*(STR(*)(id,SEL))_imp(objcT111,selTransTbl[6]))(objcT111,selTransTbl[6]))); return(id)self; } static id i_ClassDef_genivars(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT113,objcT114; # 487 "classdef.m" if(self->superc) (objcT113=self->superc,(*_imp(objcT113,selTransTbl[30]))(objcT113,selTransTbl[30])); if(self->ivars) (objcT114=self->ivars,(*(id(*)(id,SEL,SEL))_imp(objcT114,selTransTbl[18]))(objcT114,selTransTbl[18],selTransTbl[31])); return(id)self; } static id i_ClassDef_gencvars(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT115,objcT116; # 496 "classdef.m" if(self->superc) (objcT115=self->superc,(*_imp(objcT115,selTransTbl[32]))(objcT115,selTransTbl[32])); if(self->cvars) (objcT116=self->cvars,(*(id(*)(id,SEL,SEL))_imp(objcT116,selTransTbl[18]))(objcT116,selTransTbl[18],selTransTbl[31])); return(id)self; } static id i_ClassDef_genprivtype(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT117,objcT118,objcT119,objcT120,objcT121; # 505 "classdef.m" id s=(objcT117=String,(*(id(*)(id,SEL,STR))_imp(objcT117,selTransTbl[33]))(objcT117,selTransTbl[33],self->privtypename)); if((objcT118=trlunit,(*(BOOL(*)(id,SEL,id))_imp(objcT118,selTransTbl[34]))(objcT118,selTransTbl[34],s))) return(id)self; (objcT119=trlunit,(*_imp(objcT119,selTransTbl[35]))(objcT119,selTransTbl[35],s)); (objcT120=(id)self,(*_imp(objcT120,selTransTbl[36]))(objcT120,selTransTbl[36])); gf("struct %s {\n",self->privtypename); (objcT121=(id)self,(*_imp(objcT121,selTransTbl[30]))(objcT121,selTransTbl[30])); gs("};\n"); if(o_otb){ gf("struct %s {\n",self->otbtypename); gf(" struct %s *ptr;\n",self->privtypename); g_otbvars(); gs("};\n"); } return(id)self; } static id i_ClassDef_genshartype(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT122,objcT123,objcT124,objcT125; # 526 "classdef.m" id s=(objcT122=String,(*(id(*)(id,SEL,STR))_imp(objcT122,selTransTbl[33]))(objcT122,selTransTbl[33],self->shartypename)); if((objcT123=trlunit,(*(BOOL(*)(id,SEL,id))_imp(objcT123,selTransTbl[34]))(objcT123,selTransTbl[34],s))) return(id)self; (objcT124=trlunit,(*_imp(objcT124,selTransTbl[35]))(objcT124,selTransTbl[35],s)); gf("struct %s {\n",self->shartypename); gs(" id isa;\n"); if(o_refcnt){ gs(" unsigned int _refcnt;\n"); } gs(" id clsSuper;\n"); gs(" char *clsName;\n"); gs(" char *clsTypes;\n"); gs(" short clsSizInstance;\n"); gs(" short clsSizDict;\n"); gs(" struct _SLT *clsDispTable;\n"); gs(" long clsStatus;\n"); gs(" struct modDescriptor *clsMod;\n"); gs(" unsigned clsVersion;\n"); gs(" id clsCats;\n"); gs(" id *clsGlbl;\n"); (objcT125=(id)self,(*_imp(objcT125,selTransTbl[32]))(objcT125,selTransTbl[32])); gs("};\n"); return(id)self; } static id i_ClassDef_genslt_(struct ClassDef_PRIVATE *self,SEL _cmd,id methdef) { if(o_cplus){ id objcT126,objcT127; # 559 "classdef.m" gf("\n{\"%s\",(id (*)(...))%s},",(objcT126=methdef,(*(char*(*)(id,SEL))_imp(objcT126,selTransTbl[37]))(objcT126,selTransTbl[37])),(objcT127=methdef,(*(char*(*)(id,SEL))_imp(objcT127,selTransTbl[38]))(objcT127,selTransTbl[38]))); }else{ id objcT128,objcT129; # 561 "classdef.m" gf("\n{\"%s\",(id (*)())%s},",(objcT128=methdef,(*(char*(*)(id,SEL))_imp(objcT128,selTransTbl[37]))(objcT128,selTransTbl[37])),(objcT129=methdef,(*(char*(*)(id,SEL))_imp(objcT129,selTransTbl[38]))(objcT129,selTransTbl[38]))); } return(id)self; } static id i_ClassDef_gennilslt(struct ClassDef_PRIVATE *self,SEL _cmd) { if(o_cplus){ gs("\n{(char*)0,(id (*)(...))0}"); }else{ gs("\n{(char*)0,(id (*)())0}"); } return(id)self; } static id i_ClassDef_genclsdisptbl(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT130,objcT133; # 578 "classdef.m" int i,n; n=(self->clsdisptbl)?(objcT130=self->clsdisptbl,(*(unsigned(*)(id,SEL))_imp(objcT130,selTransTbl[13]))(objcT130,selTransTbl[13])):0; gf("static struct _SLT %s[] ={",self->clsdisptblname); for(i=0;iclsdisptbl,(*(id(*)(id,SEL,unsigned))_imp(objcT132,selTransTbl[14]))(objcT132,selTransTbl[14],i)))); } (objcT133=(id)self,(*_imp(objcT133,selTransTbl[40]))(objcT133,selTransTbl[40])); gs("\n};\n"); return(id)self; } static id i_ClassDef_gennstdisptbl(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT134,objcT137; # 592 "classdef.m" int i,n; n=(self->nstdisptbl)?(objcT134=self->nstdisptbl,(*(unsigned(*)(id,SEL))_imp(objcT134,selTransTbl[13]))(objcT134,selTransTbl[13])):0; gf("static struct _SLT %s[] ={",self->nstdisptblname); for(i=0;instdisptbl,(*(id(*)(id,SEL,unsigned))_imp(objcT136,selTransTbl[14]))(objcT136,selTransTbl[14],i)))); } (objcT137=(id)self,(*_imp(objcT137,selTransTbl[40]))(objcT137,selTransTbl[40])); gs("\n};\n"); return(id)self; } # 615 "classdef.m" static id i_ClassDef_genclassimpl(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT139,objcT140,objcT141,objcT142; # 617 "classdef.m" long st; if( !self->iscategory){ st=0x1L|0x8L|0x20L; }else{ st=0x1L|0x8L|0x20L|0x40L; } if(o_refcnt){ st|=0x80L; } gf("struct %s ",self->shartypename); if( !o_otb){ gf(" %s = {\n",self->_classname); }else{ gf(" %s_OTB = {\n",self->_classname); } gf(" (id)&%s,",self->_m_classname); gcom("/* isa */"); if(o_refcnt){ gs(" 1,"); gcom("/* _refcnt */"); } if(self->superc!=(id)0&&o_shareddata){ id objcT138; # 644 "classdef.m" gf(" (id)&%s,",(objcT138=self->superc,(*(char*(*)(id,SEL))_imp(objcT138,selTransTbl[41]))(objcT138,selTransTbl[41]))); gcom("/* clsSuper */"); }else{ gf(" 0,"); gcom("/* clsSuper */"); } gf(" \"%s\",",(objcT139=(id)self,(*(char*(*)(id,SEL))_imp(objcT139,selTransTbl[0]))(objcT139,selTransTbl[0]))); gcom("/* clsName */"); gs(" 0,"); gcom("/* clsTypes */"); gf(" sizeof(struct %s),",self->privtypename); gcom("/* clsSizInstance */"); gf(" %d,",(self->nstdisptbl)?(objcT140=self->nstdisptbl,(*(unsigned(*)(id,SEL))_imp(objcT140,selTransTbl[13]))(objcT140,selTransTbl[13])):0); gcom("/* clsSizDict */"); gf(" %s,",self->nstdisptblname); gcom("/* _nstDispatchTbl */"); gf(" %d,",st); gcom("/* clsStatus */"); gf(" &%s,",(objcT141=trlunit,(*(char*(*)(id,SEL))_imp(objcT141,selTransTbl[42]))(objcT141,selTransTbl[42]))); gcom("/* clsMod */"); gs(" 0,"); gcom("/* clsVersion */"); gs(" (id)0,"); gcom("/* OBSOLETE - clsCats */"); gf(" &%s,",(objcT142=(id)self,(*(char*(*)(id,SEL))_imp(objcT142,selTransTbl[0]))(objcT142,selTransTbl[0]))); gcom("/* clsGlbl */"); gs("};\n"); if(o_otb){ char*z=self->_classname; gf("struct OTB %s={ (struct _PRIVATE*)&%s_OTB,0,0 };\n",z,z); } gf("id %s %s(void)",o_bind,self->_classfunname); gf(" { return (id)&%s; }\n",self->_classname); gf("id %s %s(void)",o_bind,self->_superfunname); if( !o_otb){ gf(" { return %s.clsSuper; }\n",self->_classname); }else{ gf(" { return %s_OTB.clsSuper; }\n",self->_classname); } return(id)self; } static id i_ClassDef_genmetaimpl(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT146,objcT147,objcT148; # 693 "classdef.m" long st=0x2L|0x20L; if(o_refcnt){ st|=0x80L; } if( !o_otb){ gf("struct _SHARED %s = {\n",self->_m_classname); }else{ gf("struct _SHARED %s_OTB = {\n",self->_m_classname); } if(o_shareddata){ id objcT143; # 705 "classdef.m" gf(" (id)&%s,",(objcT143=self->rootc,(*(char*(*)(id,SEL))_imp(objcT143,selTransTbl[43]))(objcT143,selTransTbl[43]))); gcom("/* isa */"); }else{ gs(" (id)0,"); gcom("/* isa */"); } if(o_refcnt){ gs(" 1,"); gcom("/* _refcnt */"); } if(o_shareddata){ if(self->superc){ id objcT144; # 718 "classdef.m" gf(" (id)&%s,",(objcT144=self->superc,(*(char*(*)(id,SEL))_imp(objcT144,selTransTbl[43]))(objcT144,selTransTbl[43]))); gcom("/* clsSuper */"); }else{ id objcT145; gf(" (id)&%s,",(objcT145=self->rootc,(*(char*(*)(id,SEL))_imp(objcT145,selTransTbl[41]))(objcT145,selTransTbl[41]))); gcom("/* clsSuper */"); } }else{ gs(" (id)0,"); gcom("/* clsSuper */"); } gf(" \"%s\",",(objcT146=(id)self,(*(char*(*)(id,SEL))_imp(objcT146,selTransTbl[0]))(objcT146,selTransTbl[0]))); gcom("/* clsName */"); gs(" 0,"); gcom("/* clsTypes */"); gf(" sizeof(struct %s),",self->shartypename); gcom("/* clsSizInstance */"); gf(" %d,",(self->clsdisptbl)?(objcT147=self->clsdisptbl,(*(unsigned(*)(id,SEL))_imp(objcT147,selTransTbl[13]))(objcT147,selTransTbl[13])):0); gcom("/* clsSizDict */"); gf(" %s,",self->clsdisptblname); gcom("/* _clsDispatchTbl */"); gf(" %d,",st); gcom("/* clsStatus */"); gf(" &%s,",(objcT148=trlunit,(*(char*(*)(id,SEL))_imp(objcT148,selTransTbl[42]))(objcT148,selTransTbl[42]))); gcom("/* clsMod */"); gs(" 0,"); gcom("/* clsVersion */"); gs(" (id)0,"); gcom("/* OBSOLETE clsCats */"); gs(" 0,"); gcom("/* clsGlbl */"); gs("};\n"); if(o_otb){ char*z=self->_m_classname; gf("struct OTB %s={ (struct _PRIVATE*)&%s_OTB,0,0 };\n",z,z); } gf("id %s %s(void)",o_bind,self->_m_classfunname); gf(" { return (id)&%s; }\n",self->_m_classname); gf("id %s %s(void)",o_bind,self->_m_superfunname); if( !o_otb){ gf(" { return %s.clsSuper; }\n",self->_m_classname); }else{ gf(" { return %s_OTB.clsSuper; }\n",self->_m_classname); } return(id)self; } static id i_ClassDef_genclassglobal(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT149; # 772 "classdef.m" char*s=(objcT149=(id)self,(*(char*(*)(id,SEL))_imp(objcT149,selTransTbl[0]))(objcT149,selTransTbl[0])); if( !o_shareddata) gs("static"); gf("id %s = (id)&%s;\n",s,self->_classname); gf("id %s *%s(void) { return &%s; }\n",o_bind,self->globfunname,s); return(id)self; } static id i_ClassDef_genclassref(struct ClassDef_PRIVATE *self,SEL _cmd) { if( !o_shareddata){ (void)0; gf("*%s()",self->globfunname); }else{ id objcT150; # 787 "classdef.m" gs((objcT150=(id)self,(*(char*(*)(id,SEL))_imp(objcT150,selTransTbl[0]))(objcT150,selTransTbl[0]))); } return(id)self; } static id i_ClassDef_genglobfuncall(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT152,objcT153,objcT154; # 795 "classdef.m" char*s; if(self->superc){ id objcT151; # 798 "classdef.m" s=(objcT151=self->superc,(*(char*(*)(id,SEL))_imp(objcT151,selTransTbl[44]))(objcT151,selTransTbl[44])); if( !o_otb){ gf(" %s.clsSuper = %s();\n",self->_classname,s); }else{ gf(" %s_OTB.clsSuper = %s();\n",self->_classname,s); } } s=(objcT152=self->rootc,(*(char*(*)(id,SEL))_imp(objcT152,selTransTbl[45]))(objcT152,selTransTbl[45])); if( !o_otb){ gf(" %s.isa = %s();\n",self->_m_classname,s); }else{ gf(" %s_OTB.isa = %s();\n",self->_m_classname,s); } s=(self->superc)?(objcT153=self->superc,(*(char*(*)(id,SEL))_imp(objcT153,selTransTbl[45]))(objcT153,selTransTbl[45])):(objcT154=self->rootc,(*(char*(*)(id,SEL))_imp(objcT154,selTransTbl[44]))(objcT154,selTransTbl[44])); if( !o_otb){ gf(" %s.clsSuper = %s();\n",self->_m_classname,s); }else{ gf(" %s_OTB.clsSuper = %s();\n",self->_m_classname,s); } return(id)self; } static id i_ClassDef_gen(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->isimpl){ id objcT155,objcT156,objcT157; # 825 "classdef.m" (objcT155=(id)self,(*_imp(objcT155,selTransTbl[46]))(objcT155,selTransTbl[46])); (objcT156=(id)self,(*_imp(objcT156,selTransTbl[47]))(objcT156,selTransTbl[47])); (objcT157=(id)self,(*_imp(objcT157,selTransTbl[48]))(objcT157,selTransTbl[48])); } return(id)self; } static id i_ClassDef_gensuper(struct ClassDef_PRIVATE *self,SEL _cmd) { if(o_otb|| !o_shareddata){ gf("%s()",self->_superfunname); }else{ gf("%s.clsSuper",self->_classname); } return(id)self; } static id i_ClassDef_genmetasuper(struct ClassDef_PRIVATE *self,SEL _cmd) { if(o_otb|| !o_shareddata){ gf("%s()",self->_m_superfunname); }else{ gf("%s.clsSuper",self->_m_classname); } return(id)self; } static id i_ClassDef_use(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT158; # 854 "classdef.m" if( !o_postlink) (objcT158=trlunit,(*_imp(objcT158,selTransTbl[49]))(objcT158,selTransTbl[49],self->classname)); return(id)self; } static id i_ClassDef_define(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT159,objcT160; # 861 "classdef.m" (objcT159=trlunit,(*_imp(objcT159,selTransTbl[50]))(objcT159,selTransTbl[50],(id)self)); if( !o_postlink) (objcT160=trlunit,(*_imp(objcT160,selTransTbl[51]))(objcT160,selTransTbl[51],self->classname)); return(id)self; } static BOOL i_ClassDef_isimpl(struct ClassDef_PRIVATE *self,SEL _cmd) { return self->isimpl; } static id i_ClassDef_forceimpl(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->isimpl){ return(id)self; }else{ id objcT161,objcT162; self-> # 877 "classdef.m" isimpl=(BOOL)1; (objcT161=(id)self,(*_imp(objcT161,selTransTbl[52]))(objcT161,selTransTbl[52])); (objcT162=self->superc,(*_imp(objcT162,selTransTbl[53]))(objcT162,selTransTbl[53])); return(id)self; } } static id i_ClassDef_genintf(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->emitintf){ return(id)self; }else{ id objcT163; self-> # 889 "classdef.m" emitintf=(BOOL)1; (objcT163=(id)self,(*_imp(objcT163,selTransTbl[36]))(objcT163,selTransTbl[36])); if(o_shareddata){ id objcT164; # 892 "classdef.m" gf("extern id %s %s;\n",o_bind,(objcT164=(id)self,(*(char*(*)(id,SEL))_imp(objcT164,selTransTbl[0]))(objcT164,selTransTbl[0]))); }else{ gf("extern id %s *%s(void);\n",o_bind,self->globfunname); } return(id)self; } } static id i_ClassDef_genfwddecl(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->emitfwddecl){ return(id)self; }else{ id objcT165,objcT166; self-> # 907 "classdef.m" emitfwddecl=(BOOL)1; (objcT165=(id)self,(*_imp(objcT165,selTransTbl[54]))(objcT165,selTransTbl[54])); (objcT166=(id)self,(*_imp(objcT166,selTransTbl[36]))(objcT166,selTransTbl[36])); if( !o_otb){ gf("extern struct %s %s;\n",self->shartypename,self->_classname); gf("extern struct _SHARED %s;\n",self->_m_classname); }else{ (void)0; gf("extern struct OTB %s;\n",self->_classname); gf("extern struct %s %s_OTB;\n",self->shartypename,self->_classname); gf("extern struct OTB %s;\n",self->_m_classname); gf("extern struct _SHARED %s_OTB;\n",self->_m_classname); } if( !o_shareddata){ gf("extern id %s %s(void);\n",o_bind,self->_classfunname); gf("extern id %s %s(void);\n",o_bind,self->_superfunname); gf("extern id %s %s(void);\n",o_bind,self->_m_classfunname); gf("extern id %s %s(void);\n",o_bind,self->_m_superfunname); } return(id)self; } } static id i_ClassDef_genimpl(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->emitimpl){ return(id)self; }else{ id objcT167,objcT168,objcT169,objcT170,objcT171; id objcT176,objcT177,objcT178,objcT179,objcT180; self-> # 935 "classdef.m" emitimpl=(BOOL)1; (objcT167=self->rootc,(*_imp(objcT167,selTransTbl[48]))(objcT167,selTransTbl[48])); if(self->superc) (objcT168=self->superc,(*_imp(objcT168,selTransTbl[48]))(objcT168,selTransTbl[48])); (objcT169=(id)self,(*_imp(objcT169,selTransTbl[48]))(objcT169,selTransTbl[48])); (objcT170=(id)self,(*_imp(objcT170,selTransTbl[46]))(objcT170,selTransTbl[46])); (objcT171=(id)self,(*_imp(objcT171,selTransTbl[47]))(objcT171,selTransTbl[47])); o_nolinetags++; if(self->fileinmethod){ id objcT172; # 944 "classdef.m" (objcT172=self->fileinmethod,(*_imp(objcT172,selTransTbl[31]))(objcT172,selTransTbl[31])); gc('\n'); } if(self->fileoutmethod){ id objcT173; # 948 "classdef.m" (objcT173=self->fileoutmethod,(*_imp(objcT173,selTransTbl[31]))(objcT173,selTransTbl[31])); gc('\n'); } if(self->decrefsmethod){ id objcT174; # 952 "classdef.m" (objcT174=self->decrefsmethod,(*_imp(objcT174,selTransTbl[31]))(objcT174,selTransTbl[31])); gc('\n'); } if(self->increfsmethod){ id objcT175; # 956 "classdef.m" (objcT175=self->increfsmethod,(*_imp(objcT175,selTransTbl[31]))(objcT175,selTransTbl[31])); gc('\n'); } (objcT176=(id)self,(*_imp(objcT176,selTransTbl[55]))(objcT176,selTransTbl[55])); (objcT177=(id)self,(*_imp(objcT177,selTransTbl[56]))(objcT177,selTransTbl[56])); (objcT178=(id)self,(*_imp(objcT178,selTransTbl[57]))(objcT178,selTransTbl[57])); (objcT179=(id)self,(*_imp(objcT179,selTransTbl[58]))(objcT179,selTransTbl[58])); (objcT180=(id)self,(*_imp(objcT180,selTransTbl[59]))(objcT180,selTransTbl[59])); o_nolinetags--; return(id)self; } } # 32 "../../include/objpak/dictnary.h" extern id Dictionary; # 969 "classdef.m" static id i_ClassDef_defcomp_astype_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym,id t) { id objcT184,objcT185; # 971 "classdef.m" if( !self->compdic){ id objcT181,objcT182,objcT183; self-> # 972 "classdef.m" compdic=(objcT181=Dictionary,(*_imp(objcT181,selTransTbl[1]))(objcT181,selTransTbl[1]));self-> compnames=(objcT182=OrdCltn,(*_imp(objcT182,selTransTbl[1]))(objcT182,selTransTbl[1]));self-> comptypes=(objcT183=OrdCltn,(*_imp(objcT183,selTransTbl[1]))(objcT183,selTransTbl[1])); } if(self->superc&&((objcT184=self->superc,(*(BOOL(*)(id,SEL,id))_imp(objcT184,selTransTbl[60]))(objcT184,selTransTbl[60],sym))||(objcT185=self->superc,(*(BOOL(*)(id,SEL,id))_imp(objcT185,selTransTbl[61]))(objcT185,selTransTbl[61],sym)))){ id objcT186,objcT189,objcT190; # 977 "classdef.m" id which,next; for(which=self->superc,next=(objcT186=which,(*_imp(objcT186,selTransTbl[11]))(objcT186,selTransTbl[11]));next;which=next){ id objcT187,objcT188; # 980 "classdef.m" if( !((objcT187=next,(*(BOOL(*)(id,SEL,id))_imp(objcT187,selTransTbl[60]))(objcT187,selTransTbl[60],sym))||(objcT188=next,(*(BOOL(*)(id,SEL,id))_imp(objcT188,selTransTbl[61]))(objcT188,selTransTbl[61],sym)))) break; } fatalat(sym,"'%s' previously declared by '%s'",(objcT189=sym,(*(STR(*)(id,SEL))_imp(objcT189,selTransTbl[6]))(objcT189,selTransTbl[6])),(objcT190=which,(*(char*(*)(id,SEL))_imp(objcT190,selTransTbl[0]))(objcT190,selTransTbl[0]))); }else{ id objcT191,objcT192,objcT193; # 985 "classdef.m" (objcT191=self->compdic,(*_imp(objcT191,selTransTbl[62]))(objcT191,selTransTbl[62],sym,t)); (objcT192=self->compnames,(*_imp(objcT192,selTransTbl[23]))(objcT192,selTransTbl[23],sym)); (objcT193=self->comptypes,(*_imp(objcT193,selTransTbl[23]))(objcT193,selTransTbl[23],t)); } return(id)self; } static id i_ClassDef_lookupivar_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT194,objcT195; # 994 "classdef.m" id t; if(self->ivardic&&(t=(objcT194=self->ivardic,(*_imp(objcT194,selTransTbl[63]))(objcT194,selTransTbl[63],sym)))) return t; return(self->superc)?(objcT195=self->superc,(*_imp(objcT195,selTransTbl[64]))(objcT195,selTransTbl[64],sym)):(id)0; } static id i_ClassDef_lookupcvar_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT196,objcT197; # 1003 "classdef.m" id t; if(self->cvardic&&(t=(objcT196=self->cvardic,(*_imp(objcT196,selTransTbl[63]))(objcT196,selTransTbl[63],sym)))) return t; return(self->superc)?(objcT197=self->superc,(*_imp(objcT197,selTransTbl[65]))(objcT197,selTransTbl[65],sym)):(id)0; } static BOOL i_ClassDef_isivar_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT202; # 1012 "classdef.m" if( !self->allivarnames){ id objcT198,objcT199; # 1013 "classdef.m" id x,c;self-> allivarnames=(objcT198=Set,(*_imp(objcT198,selTransTbl[1]))(objcT198,selTransTbl[1])); for(c=(id)self;c;c=(objcT199=c,(*_imp(objcT199,selTransTbl[11]))(objcT199,selTransTbl[11]))){ id objcT200,objcT201; # 1017 "classdef.m" if((x=(objcT200=c,(*_imp(objcT200,selTransTbl[66]))(objcT200,selTransTbl[66])))) (objcT201=self->allivarnames,(*_imp(objcT201,selTransTbl[67]))(objcT201,selTransTbl[67],x)); } } return(objcT202=self->allivarnames,(*(BOOL(*)(id,SEL,id))_imp(objcT202,selTransTbl[68]))(objcT202,selTransTbl[68],sym)); } static BOOL i_ClassDef_iscvar_(struct ClassDef_PRIVATE *self,SEL _cmd,id sym) { id objcT207,objcT208; # 1026 "classdef.m" BOOL iscvar; if( !self->allcvarnames){ id objcT203,objcT204; # 1029 "classdef.m" id x,c;self-> allcvarnames=(objcT203=Set,(*_imp(objcT203,selTransTbl[1]))(objcT203,selTransTbl[1])); for(c=(id)self;c;c=(objcT204=c,(*_imp(objcT204,selTransTbl[11]))(objcT204,selTransTbl[11]))){ id objcT205,objcT206; # 1033 "classdef.m" if((x=(objcT205=c,(*_imp(objcT205,selTransTbl[69]))(objcT205,selTransTbl[69])))) (objcT206=self->allcvarnames,(*_imp(objcT206,selTransTbl[67]))(objcT206,selTransTbl[67],x)); } } iscvar=(objcT207=self->allcvarnames,(*(BOOL(*)(id,SEL,id))_imp(objcT207,selTransTbl[68]))(objcT207,selTransTbl[68],sym)); if(iscvar&&(objcT208=trlunit,(*(BOOL(*)(id,SEL))_imp(objcT208,selTransTbl[70]))(objcT208,selTransTbl[70]))){ if(o_warnsuggest){ warnat(sym,"suggest using -noSelfAssign when using class variables"); } } return iscvar; } static id i_ClassDef_st80(struct ClassDef_PRIVATE *self,SEL _cmd) { if(self->isimpl&& !self->emitimpl){ id objcT209,objcT210,objcT211,objcT212; # 1049 "classdef.m" char*sn; gs("\f\n");self-> emitimpl++; sn=(self->superc)?(objcT209=self->superc,(*(char*(*)(id,SEL))_imp(objcT209,selTransTbl[0]))(objcT209,selTransTbl[0])):"Meta"; gf("%s subclass: #%s\n",(objcT210=(id)self,(*(char*(*)(id,SEL))_imp(objcT210,selTransTbl[0]))(objcT210,selTransTbl[0])),sn); gs("\tinstanceVariableNames: '"); (objcT211=self->ivarnames,(*(id(*)(id,SEL,SEL))_imp(objcT211,selTransTbl[18]))(objcT211,selTransTbl[18],_cmd)); gs("'\n"); gs("\tclassVariableNames: '"); (objcT212=self->cvarnames,(*(id(*)(id,SEL,SEL))_imp(objcT212,selTransTbl[18]))(objcT212,selTransTbl[18],_cmd)); gs("'\n"); gs("\tpoolDictionaries: ''\n"); gs("\tcategory: 'POC Generated'!\n"); gc('\n'); } return(id)self; } static IMP i_ClassDef_methodFor_cls_methdef_(struct ClassDef_PRIVATE *self,SEL _cmd,SEL x,id c,id m) { id objcT213; # 1070 "classdef.m" (objcT213=(id)self,(*(id(*)(id,SEL,SEL))_imp(objcT213,selTransTbl[71]))(objcT213,selTransTbl[71],_cmd)); return NULL; } static int i_ClassDef_bytesizeOf_(struct ClassDef_PRIVATE *self,SEL _cmd,id c) { id objcT214; # 1076 "classdef.m" int i,n; int bs=0; for(i=0,n=(objcT214=c,(*(unsigned(*)(id,SEL))_imp(objcT214,selTransTbl[13]))(objcT214,selTransTbl[13]));iivartypes)?(objcT217=(id)self,(*(int(*)(id,SEL,id))_imp(objcT217,selTransTbl[73]))(objcT217,selTransTbl[73],self->ivartypes)):0; } static int i_ClassDef_cvarbytesize(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT218; # 1091 "classdef.m" return(self->cvartypes)?(objcT218=(id)self,(*(int(*)(id,SEL,id))_imp(objcT218,selTransTbl[73]))(objcT218,selTransTbl[73],self->cvartypes)):0; } static id i_ClassDef_go(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT219,objcT220,objcT221,objcT223,objcT224; id objcT225,objcT226,objcT227,objcT228,objcT229; id objcT239; id c; int j; id tab; struct _SHARED*shar; trlunit=self->unit; if( !self->superc)(objcT219=(id)self,(*(id(*)(id,SEL,STR,...))_imp(objcT219,selTransTbl[74]))(objcT219,selTransTbl[74],"root classes not yet supported")); if((c=(objcT220=(id)self,(*(id(*)(id,SEL,STR))_imp(objcT220,selTransTbl[75]))(objcT220,selTransTbl[75],(objcT221=(id)self,(*(char*(*)(id,SEL))_imp(objcT221,selTransTbl[0]))(objcT221,selTransTbl[0])))))){ id objcT222; # 1109 "classdef.m" (objcT222=c,(*_imp(objcT222,selTransTbl[76]))(objcT222,selTransTbl[76])); } c=(objcT223=(id)self,(*(id(*)(id,SEL,STR))_imp(objcT223,selTransTbl[75]))(objcT223,selTransTbl[75],(objcT224=self->superc,(*(char*(*)(id,SEL))_imp(objcT224,selTransTbl[0]))(objcT224,selTransTbl[0])))); if( !c)(objcT225=(id)self,(*(id(*)(id,SEL,STR,...))_imp(objcT225,selTransTbl[74]))(objcT225,selTransTbl[74],"superclass not loaded into interpreter!")); shar=(struct _SHARED*)c;self-> offset=shar->clsSizInstance; c=(objcT226=c,(*(id(*)(id,SEL,STR,int,int))_imp(objcT226,selTransTbl[77]))(objcT226,selTransTbl[77],(objcT227=(id)self,(*(char*(*)(id,SEL))_imp(objcT227,selTransTbl[0]))(objcT227,selTransTbl[0])),(objcT228=(id)self,(*(int(*)(id,SEL))_imp(objcT228,selTransTbl[78]))(objcT228,selTransTbl[78])),(objcT229=(id)self,(*(int(*)(id,SEL))_imp(objcT229,selTransTbl[79]))(objcT229,selTransTbl[79])))); # 1121 "classdef.m" tab=self->nstdisptbl; shar=(struct _SHARED*)c; j=2;while(j--){ id objcT230; # 1125 "classdef.m" int i,n; struct _SLT*disptab; n=(objcT230=tab,(*(unsigned(*)(id,SEL))_imp(objcT230,selTransTbl[13]))(objcT230,selTransTbl[13])); disptab=OC_Malloc(sizeof(struct _SLT)*(n+1)); for(i=0;iclsSizDict=n; shar->clsDispTable=disptab; tab=self->clsdisptbl; shar=(struct _SHARED*)shar->isa; } (objcT239=c,(*_imp(objcT239,selTransTbl[82]))(objcT239,selTransTbl[82])); # 1170 "classdef.m" return(id)self; } static id i_ClassDef_getivarval___(struct ClassDef_PRIVATE *self,SEL _cmd,id instance,BOOL infactory,id varname) { id objcT240,objcT246; # 1180 "classdef.m" char*p; int i,n; p=(char*)instance+self->offset; for(i=0,n=(objcT240=self->ivarnames,(*(unsigned(*)(id,SEL))_imp(objcT240,selTransTbl[13]))(objcT240,selTransTbl[13]));iivartypes,(*(id(*)(id,SEL,unsigned))_imp(objcT241,selTransTbl[14]))(objcT241,selTransTbl[14],i)); if((objcT242=varname,(*(BOOL(*)(id,SEL,id))_imp(objcT242,selTransTbl[9]))(objcT242,selTransTbl[9],(objcT243=self->ivarnames,(*(id(*)(id,SEL,unsigned))_imp(objcT243,selTransTbl[14]))(objcT243,selTransTbl[14],i))))){ id objcT244; # 1186 "classdef.m" return(objcT244=t,(*(id(*)(id,SEL,char*))_imp(objcT244,selTransTbl[83]))(objcT244,selTransTbl[83],p)); } p+=(objcT245=t,(*(int(*)(id,SEL))_imp(objcT245,selTransTbl[72]))(objcT245,selTransTbl[72])); } (objcT246=(id)self,(*(id(*)(id,SEL,SEL))_imp(objcT246,selTransTbl[84]))(objcT246,selTransTbl[84],_cmd)); return(id)0; # 1196 "classdef.m" } static id i_ClassDef_setivarval____(struct ClassDef_PRIVATE *self,SEL _cmd,id instance,BOOL infactory,id varname,id value) { id objcT247,objcT253; char*p; int i,n; p=(char*)instance+self->offset; for(i=0,n=(objcT247=self->ivarnames,(*(unsigned(*)(id,SEL))_imp(objcT247,selTransTbl[13]))(objcT247,selTransTbl[13]));iivartypes,(*(id(*)(id,SEL,unsigned))_imp(objcT248,selTransTbl[14]))(objcT248,selTransTbl[14],i)); if((objcT249=varname,(*(BOOL(*)(id,SEL,id))_imp(objcT249,selTransTbl[9]))(objcT249,selTransTbl[9],(objcT250=self->ivarnames,(*(id(*)(id,SEL,unsigned))_imp(objcT250,selTransTbl[14]))(objcT250,selTransTbl[14],i))))){ id objcT251; # 1210 "classdef.m" return(objcT251=t,(*(id(*)(id,SEL,id,char*))_imp(objcT251,selTransTbl[85]))(objcT251,selTransTbl[85],value,p)); } p+=(objcT252=t,(*(int(*)(id,SEL))_imp(objcT252,selTransTbl[72]))(objcT252,selTransTbl[72])); } (objcT253=(id)self,(*(id(*)(id,SEL,SEL))_imp(objcT253,selTransTbl[84]))(objcT253,selTransTbl[84],_cmd)); return value; # 1219 "classdef.m" } static id i_ClassDef_browsevars(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT254,objcT255,objcT256,objcT258,objcT259; id objcT263; # 1223 "classdef.m" id fn; FILE*f; int i,n; fn=(objcT254=String,(*(id(*)(id,SEL,STR,...))_imp(objcT254,selTransTbl[3]))(objcT254,selTransTbl[3],"Menu.vars%s",(objcT255=(id)self,(*(char*(*)(id,SEL))_imp(objcT255,selTransTbl[0]))(objcT255,selTransTbl[0])))); f=freopen(browsepath((objcT256=fn,(*(STR(*)(id,SEL))_imp(objcT256,selTransTbl[6]))(objcT256,selTransTbl[6]))),"w",stderr); if( !f){ id objcT257; # 1230 "classdef.m" fatal("cannot open %s for writing\n",(objcT257=fn,(*(STR(*)(id,SEL))_imp(objcT257,selTransTbl[6]))(objcT257,selTransTbl[6]))); return(id)self; } gstderr(); fprintf(f,"menu=%s variables\n",(objcT258=(id)self,(*(char*(*)(id,SEL))_imp(objcT258,selTransTbl[0]))(objcT258,selTransTbl[0]))); for(i=0,n=(objcT259=self->ivarnames,(*(unsigned(*)(id,SEL))_imp(objcT259,selTransTbl[13]))(objcT259,selTransTbl[13]));icvarnames,(*(unsigned(*)(id,SEL))_imp(objcT263,selTransTbl[13]))(objcT263,selTransTbl[13]));iclssels,(*(unsigned(*)(id,SEL))_imp(objcT272,selTransTbl[13]))(objcT272,selTransTbl[13]));iclssels,(*(id(*)(id,SEL,unsigned))_imp(objcT274,selTransTbl[14]))(objcT274,selTransTbl[14],i)),(*(STR(*)(id,SEL))_imp(objcT273,selTransTbl[6]))(objcT273,selTransTbl[6]))); printf("action=none\n"); } for(i=0,n=(objcT275=self->nstsels,(*(unsigned(*)(id,SEL))_imp(objcT275,selTransTbl[13]))(objcT275,selTransTbl[13]));instsels,(*(id(*)(id,SEL,unsigned))_imp(objcT277,selTransTbl[14]))(objcT277,selTransTbl[14],i)),(*(STR(*)(id,SEL))_imp(objcT276,selTransTbl[6]))(objcT276,selTransTbl[6]))); printf("action=none\n"); } fclose(f); return(id)self; } static id i_ClassDef_browse(struct ClassDef_PRIVATE *self,SEL _cmd) { id objcT278,objcT279,objcT280,objcT282,objcT283; id objcT284,objcT285,objcT286,objcT287,objcT288; id objcT289; # 1285 "classdef.m" id fn; FILE*f; fn=(objcT278=String,(*(id(*)(id,SEL,STR,...))_imp(objcT278,selTransTbl[3]))(objcT278,selTransTbl[3],"Menu.%s",(objcT279=(id)self,(*(char*(*)(id,SEL))_imp(objcT279,selTransTbl[0]))(objcT279,selTransTbl[0])))); f=freopen(browsepath((objcT280=fn,(*(STR(*)(id,SEL))_imp(objcT280,selTransTbl[6]))(objcT280,selTransTbl[6]))),"w",stdout); if( !f){ id objcT281; # 1291 "classdef.m" fatal("cannot open %s for writing\n",(objcT281=fn,(*(STR(*)(id,SEL))_imp(objcT281,selTransTbl[6]))(objcT281,selTransTbl[6]))); return(id)self; } printf("menu=%s\n",(objcT282=(id)self,(*(char*(*)(id,SEL))_imp(objcT282,selTransTbl[0]))(objcT282,selTransTbl[0]))); printf("name=Spawn hierarchy\n"); printf("action=open Menu.super%s\n",(objcT283=(id)self,(*(char*(*)(id,SEL))_imp(objcT283,selTransTbl[0]))(objcT283,selTransTbl[0]))); printf("name=Inspect variables\n"); printf("action=open Menu.vars%s\n",(objcT284=(id)self,(*(char*(*)(id,SEL))_imp(objcT284,selTransTbl[0]))(objcT284,selTransTbl[0]))); printf("name=Method categories\n"); printf("action=open Menu.categories%s\n",(objcT285=(id)self,(*(char*(*)(id,SEL))_imp(objcT285,selTransTbl[0]))(objcT285,selTransTbl[0]))); printf("name=Show methods\n"); printf("action=open Menu.methods%s\n",(objcT286=(id)self,(*(char*(*)(id,SEL))_imp(objcT286,selTransTbl[0]))(objcT286,selTransTbl[0]))); printf("name=Spawn protocol\n"); printf("action=open Menu.protocol%s\n",(objcT287=(id)self,(*(char*(*)(id,SEL))_imp(objcT287,selTransTbl[0]))(objcT287,selTransTbl[0]))); fclose(f); (objcT288=(id)self,(*_imp(objcT288,selTransTbl[87]))(objcT288,selTransTbl[87])); (objcT289=(id)self,(*_imp(objcT289,selTransTbl[88]))(objcT289,selTransTbl[88])); return(id)self; } extern id Object; extern struct _SHARED _Object; extern struct _SHARED __Object; extern id Node; extern struct _SHARED _Node; extern struct _SHARED __Node; static struct _SLT _ClassDef_clsDispatchTbl[] ={ {"new",(id (*)())c_ClassDef_new}, {(char*)0,(id (*)())0} }; static struct _SLT _ClassDef_nstDispatchTbl[] ={ {"compare:",(id (*)())i_ClassDef_compare_}, {"privtypename",(id (*)())i_ClassDef_privtypename}, {"selftype",(id (*)())i_ClassDef_selftype}, {"shartypename",(id (*)())i_ClassDef_shartypename}, {"otbtypename",(id (*)())i_ClassDef_otbtypename}, {"shartypename:",(id (*)())i_ClassDef_shartypename_}, {"warnpending",(id (*)())i_ClassDef_warnpending}, {"classname:",(id (*)())i_ClassDef_classname_}, {"checksupername:",(id (*)())i_ClassDef_checksupername_}, {"supername:",(id (*)())i_ClassDef_supername_}, {"classname",(id (*)())i_ClassDef_classname}, {"globfunname",(id (*)())i_ClassDef_globfunname}, {"_classname",(id (*)())i_ClassDef__classname}, {"_m_classname",(id (*)())i_ClassDef__m_classname}, {"_classfunname",(id (*)())i_ClassDef__classfunname}, {"_m_classfunname",(id (*)())i_ClassDef__m_classfunname}, {"_superfunname",(id (*)())i_ClassDef__superfunname}, {"_m_superfunname",(id (*)())i_ClassDef__m_superfunname}, {"supername",(id (*)())i_ClassDef_supername}, {"superclassdef",(id (*)())i_ClassDef_superclassdef}, {"rootclassdef",(id (*)())i_ClassDef_rootclassdef}, {"rootname",(id (*)())i_ClassDef_rootname}, {"numidivars",(id (*)())i_ClassDef_numidivars}, {"synthrefcntmethods",(id (*)())i_ClassDef_synthrefcntmethods}, {"synthfilermethods",(id (*)())i_ClassDef_synthfilermethods}, {"ivars",(id (*)())i_ClassDef_ivars}, {"ivars:",(id (*)())i_ClassDef_ivars_}, {"cvars",(id (*)())i_ClassDef_cvars}, {"cvars:",(id (*)())i_ClassDef_cvars_}, {"checkvars::::",(id (*)())i_ClassDef_checkvars____}, {"checkivars:",(id (*)())i_ClassDef_checkivars_}, {"checkcvars:",(id (*)())i_ClassDef_checkcvars_}, {"addclsdisp:",(id (*)())i_ClassDef_addclsdisp_}, {"addclssel:",(id (*)())i_ClassDef_addclssel_}, {"addnstdisp:",(id (*)())i_ClassDef_addnstdisp_}, {"addnstsel:",(id (*)())i_ClassDef_addnstsel_}, {"check:includedin:factory:",(id (*)())i_ClassDef_check_includedin_factory_}, {"warnimplnotfound",(id (*)())i_ClassDef_warnimplnotfound}, {"undefcomps",(id (*)())i_ClassDef_undefcomps}, {"defivars",(id (*)())i_ClassDef_defivars}, {"defcvars",(id (*)())i_ClassDef_defcvars}, {"ivarnames",(id (*)())i_ClassDef_ivarnames}, {"cvarnames",(id (*)())i_ClassDef_cvarnames}, {"synth",(id (*)())i_ClassDef_synth}, {"genlineno",(id (*)())i_ClassDef_genlineno}, {"genivars",(id (*)())i_ClassDef_genivars}, {"gencvars",(id (*)())i_ClassDef_gencvars}, {"genprivtype",(id (*)())i_ClassDef_genprivtype}, {"genshartype",(id (*)())i_ClassDef_genshartype}, {"genslt:",(id (*)())i_ClassDef_genslt_}, {"gennilslt",(id (*)())i_ClassDef_gennilslt}, {"genclsdisptbl",(id (*)())i_ClassDef_genclsdisptbl}, {"gennstdisptbl",(id (*)())i_ClassDef_gennstdisptbl}, {"genclassimpl",(id (*)())i_ClassDef_genclassimpl}, {"genmetaimpl",(id (*)())i_ClassDef_genmetaimpl}, {"genclassglobal",(id (*)())i_ClassDef_genclassglobal}, {"genclassref",(id (*)())i_ClassDef_genclassref}, {"genglobfuncall",(id (*)())i_ClassDef_genglobfuncall}, {"gen",(id (*)())i_ClassDef_gen}, {"gensuper",(id (*)())i_ClassDef_gensuper}, {"genmetasuper",(id (*)())i_ClassDef_genmetasuper}, {"use",(id (*)())i_ClassDef_use}, {"define",(id (*)())i_ClassDef_define}, {"isimpl",(id (*)())i_ClassDef_isimpl}, {"forceimpl",(id (*)())i_ClassDef_forceimpl}, {"genintf",(id (*)())i_ClassDef_genintf}, {"genfwddecl",(id (*)())i_ClassDef_genfwddecl}, {"genimpl",(id (*)())i_ClassDef_genimpl}, {"defcomp:astype:",(id (*)())i_ClassDef_defcomp_astype_}, {"lookupivar:",(id (*)())i_ClassDef_lookupivar_}, {"lookupcvar:",(id (*)())i_ClassDef_lookupcvar_}, {"isivar:",(id (*)())i_ClassDef_isivar_}, {"iscvar:",(id (*)())i_ClassDef_iscvar_}, {"st80",(id (*)())i_ClassDef_st80}, {"methodFor:cls:methdef:",(id (*)())i_ClassDef_methodFor_cls_methdef_}, {"bytesizeOf:",(id (*)())i_ClassDef_bytesizeOf_}, {"ivarbytesize",(id (*)())i_ClassDef_ivarbytesize}, {"cvarbytesize",(id (*)())i_ClassDef_cvarbytesize}, {"go",(id (*)())i_ClassDef_go}, {"getivarval:::",(id (*)())i_ClassDef_getivarval___}, {"setivarval::::",(id (*)())i_ClassDef_setivarval____}, {"browsevars",(id (*)())i_ClassDef_browsevars}, {"browsemethods",(id (*)())i_ClassDef_browsemethods}, {"browse",(id (*)())i_ClassDef_browse}, {(char*)0,(id (*)())0} }; id ClassDef = (id)&_ClassDef; id *OBJCCLASS_ClassDef(void) { return &ClassDef; } struct _SHARED _ClassDef = { (id)&__ClassDef, (id)&_Node, "ClassDef", 0, sizeof(struct ClassDef_PRIVATE), 84, _ClassDef_nstDispatchTbl, 41, &classdef_modDesc, 0, (id)0, &ClassDef, }; id OBJCCFUNC_ClassDef(void) { return (id)&_ClassDef; } id OBJCCSUPER_ClassDef(void) { return _ClassDef.clsSuper; } struct _SHARED __ClassDef = { (id)&__Object, (id)&__Node, "ClassDef", 0, sizeof(struct _SHARED), 1, _ClassDef_clsDispatchTbl, 34, &classdef_modDesc, 0, (id)0, 0, }; id OBJCMFUNC_ClassDef(void) { return (id)&__ClassDef; } id OBJCMSUPER_ClassDef(void) { return __ClassDef.clsSuper; } static char *_selTransTbl[] ={ "classname", "new", "addspec:", "sprintf:", "decl:", "shartypename:", "str", "def:asclass:", "strCopy", "isEqual:", "lookupclass:", "superclassdef", "rootclassdef", "size", "at:", "isid", "find:", "synth", "elementsPerform:", "lineno", "filename", "undefcomps", "checkvars::::", "add:", "selector", "includes:", "check:includedin:factory:", "shartypename", "defivars", "defcvars", "genivars", "gen", "gencvars", "str:", "isgentype:", "addgentype:", "genlineno", "selname", "impname", "genslt:", "gennilslt", "_classname", "moddescname", "_m_classname", "_classfunname", "_m_classfunname", "genprivtype", "genshartype", "genfwddecl", "usesentry:", "addclsimpl:", "definesentry:", "define", "use", "genintf", "genclsdisptbl", "gennstdisptbl", "genclassglobal", "genclassimpl", "genmetaimpl", "isivar:", "iscvar:", "atKey:put:", "atKey:", "lookupivar:", "lookupcvar:", "ivarnames", "addAll:", "contains:", "cvarnames", "usingselfassign", "shouldNotImplement:", "bytesize", "bytesizeOf:", "error:", "findClass:", "unload", "subclass:::", "ivarbytesize", "cvarbytesize", "findSel:", "methodFor:cls:methdef:", "load", "peekAt:", "notImplemented:", "poke:at:", "gendef:", "browsevars", "browsemethods", 0 }; struct modDescriptor classdef_modDesc = { "classdef", "objc3.2.8", 0L, 0, 0, &ClassDef, 89, _selTransTbl, 0 }; struct modDescriptor *_OBJCBIND_classdef(void) { selTransTbl = _selTransTbl; return &classdef_modDesc; } int _OBJCPOSTLINK_classdef = 1;