#line 1 "compstmt.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_compstmt(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 compstmt_modDesc;

#line 1 "../../util//stdarg.h"
#include <stdarg.h>

#line 1 "../../util//stdlib.h"
#include <stdlib.h>

#line 1 "../../util//assert.h"
#include <assert.h>

#line 1 "../../util//string.h"
#include <string.h>

#line 1 "../../util//stdio.h"
#include <stdio.h>

#line 1 "../../util//stdio.h"
#include <stdio.h>

#line 1 "../../util//stddef.h"
#include <stddef.h>

#line 53 "../../include/objcrt/objcrt.h"
typedef char*SEL;
typedef char*STR;
typedef char BOOL;
typedef FILE*IOD;
typedef id SHR;
#line 62 "../../include/objcrt/objcrt.h"
typedef id(*IMP)();


typedef void(*ARGIMP)(id,SEL,void*);
#line 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;
#line 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);
#line 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);
#line 1 "../../util//string.h"
#include <string.h>

#line 32 "../../include/objpak/ocstring.h"
typedef struct objstr
{
int count;
int capacity;
char*ptr;
}*
objstr_t;
#line 31 "../../include/objpak/ordcltn.h"
typedef struct objcol
{
int count;
int capacity;
id*ptr;
}*
objcol_t;
#line 28 "../../include/objpak/set.h"
typedef struct objset
{
int count;
int capacity;
id*ptr;
}*
objset_t;
#line 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,...);
#line 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);
#line 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;
#line 22 "compstmt.h"
extern id curcompound;
extern id curloopcompound;
#line 22 "def.h"
extern id curdef;
#line 22 "classdef.h"
extern id curclassdef;
extern id curstruct;
#line 22 "trlunit.h"
extern id trlunit;
#line 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;
#line 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 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);
#line 22 "options.h"
void defoptions(void);

extern int o_warnings;
extern int o_gnu;
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_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;
#line 22 "stkframe.h"
extern id topframe;
#line 52 "compstmt.m"
id curcompound;
id curloopcompound;
#line 25 "compstmt.h"
struct CompoundStmt_PRIVATE {

#line 42 "../../include/objcrt/Object.h"
id isa;
#line 46 "../../include/objcrt/Object.h"
unsigned short attr;
unsigned short objID;
#line 27 "compstmt.h"
id lbrace;
id datadefs;
id initializers;
id stmts;
id rbrace;
id enclosing;
id returnlabel;
id parmnames;
id tmpvars;
id icaches;
id localdic;
id locals;
id alllocals;
id heapvars,heapnames,heaptypes;
id heapparms;
char*heapvarptrname;
char*heapvartypename;
id localexprs;
id heapvarblocks;
id restype;
id increfs,decrefs;
BOOL bracedgroup;
BOOL needreturnflag;
BOOL checkreturnflag;};

#line 25 "compstmt.h"
extern id  CompoundStmt;

#line 25 "compstmt.h"
extern struct _SHARED _CompoundStmt;
extern struct _SHARED __CompoundStmt;


#line 57 "compstmt.m"
static BOOL i_CompoundStmt_isbracedgroup(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
return self->bracedgroup;
}

static id i_CompoundStmt_setbracedgroup_(struct CompoundStmt_PRIVATE *self,SEL _cmd,BOOL flag)
{self->
bracedgroup=flag;
return(id)self;
}

static id i_CompoundStmt_setreturnflag(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
if(self->checkreturnflag){
return(id)self;
}else{
if(self->enclosing){
id objcT0;
self->
#line 74 "compstmt.m"
checkreturnflag++;
(objcT0=self->enclosing,(*_imp(objcT0,selTransTbl[0]))(objcT0,selTransTbl[0]));
}else{self->
needreturnflag++;
}
}
return(id)self;
}

static id i_CompoundStmt_usereturnflag(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
if(self->enclosing){
id objcT1;
self->
#line 86 "compstmt.m"
checkreturnflag++;
(objcT1=self->enclosing,(*_imp(objcT1,selTransTbl[0]))(objcT1,selTransTbl[0]));
}else{self->
needreturnflag++;
}
return(id)self;
}

static BOOL i_CompoundStmt_iscompstmt(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
return(BOOL)1;
}

static int i_CompoundStmt_lineno(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT2;

#line 101 "compstmt.m"
if(self->lbrace)return(objcT2=self->lbrace,(*(int(*)(id,SEL))_imp(objcT2,selTransTbl[1]))(objcT2,selTransTbl[1]));
return 0;
}

static id i_CompoundStmt_filename(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT3;

#line 107 "compstmt.m"
if(self->lbrace)return(objcT3=self->lbrace,(*_imp(objcT3,selTransTbl[2]))(objcT3,selTransTbl[2]));
return(id)0;
}

static id i_CompoundStmt_lbrace_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id lb)
{self->
lbrace=lb;
return(id)self;
}

static id i_CompoundStmt_rbrace_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id rb)
{self->
rbrace=rb;
return(id)self;
}

static id i_CompoundStmt_datadefs_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id defs)
{self->
datadefs=defs;
return(id)self;
}

static id i_CompoundStmt_stmts_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id stmtlist)
{self->
stmts=stmtlist;
return(id)self;
}

static id i_CompoundStmt_nextreturnlabel(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
if(self->returnlabel){
return self->returnlabel;
}else{
if(self->enclosing){
if(self->decrefs||self->heapvars){
id objcT4;

#line 142 "compstmt.m"
return(objcT4=(id)self,(*_imp(objcT4,selTransTbl[3]))(objcT4,selTransTbl[3]));
}else{
id objcT5;

#line 144 "compstmt.m"
return(objcT5=self->enclosing,(*_imp(objcT5,selTransTbl[4]))(objcT5,selTransTbl[4]));
}
}else{
id objcT6;
return(objcT6=(id)self,(*_imp(objcT6,selTransTbl[3]))(objcT6,selTransTbl[3]));
}
}
}

static id i_CompoundStmt_returnlabel(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
(void)0;

if( !self->returnlabel){
if(self->bracedgroup){
fatal("-refcnt doesn't work inside GNU ({...}) braced groups");
}else{
id objcT7;
self->
#line 161 "compstmt.m"
returnlabel=(objcT7=trlunit,(*_imp(objcT7,selTransTbl[3]))(objcT7,selTransTbl[3]));
}
}

return self->returnlabel;
}

static id i_CompoundStmt_lookupparm_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id sym)
{
return(id)0;
}

static id i_CompoundStmt_synth(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT16,objcT17,objcT18,objcT19;

#line 175 "compstmt.m"
int i,n;self->

enclosing=curcompound;
curcompound=(id)self;
if( !self->enclosing){
id objcT8,objcT9;
self->
#line 180 "compstmt.m"
restype=(objcT8=curdef,(*_imp(objcT8,selTransTbl[5]))(objcT8,selTransTbl[5]));self->
parmnames=(objcT9=curdef,(*_imp(objcT9,selTransTbl[6]))(objcT9,selTransTbl[6]));
if(o_refcnt){
id objcT10;

#line 183 "compstmt.m"
for(i=0,n=(objcT10=self->parmnames,(*(unsigned(*)(id,SEL))_imp(objcT10,selTransTbl[7]))(objcT10,selTransTbl[7]));i<n;i++){
id objcT11,objcT12,objcT13;

#line 184 "compstmt.m"
id x=(objcT11=self->parmnames,(*(id(*)(id,SEL,unsigned))_imp(objcT11,selTransTbl[8]))(objcT11,selTransTbl[8],i));

if((objcT12=(objcT13=curdef,(*_imp(objcT13,selTransTbl[9]))(objcT13,selTransTbl[9],x)),(*(BOOL(*)(id,SEL))_imp(objcT12,selTransTbl[10]))(objcT12,selTransTbl[10]))){
id objcT14,objcT15;

#line 187 "compstmt.m"
(objcT14=(id)self,(*_imp(objcT14,selTransTbl[11]))(objcT14,selTransTbl[11],x));
(objcT15=(id)self,(*_imp(objcT15,selTransTbl[12]))(objcT15,selTransTbl[12],x));
}
}
}
}
if(self->datadefs)
(objcT16=self->datadefs,(*(id(*)(id,SEL,SEL))_imp(objcT16,selTransTbl[13]))(objcT16,selTransTbl[13],_cmd));
if(self->stmts)
(objcT17=self->stmts,(*(id(*)(id,SEL,SEL))_imp(objcT17,selTransTbl[13]))(objcT17,selTransTbl[13],_cmd));
if(self->heapvars)
(objcT18=(id)self,(*_imp(objcT18,selTransTbl[14]))(objcT18,selTransTbl[14]));
if(o_refcnt)
for(i=0,n=(objcT19=self->locals,(*(unsigned(*)(id,SEL))_imp(objcT19,selTransTbl[7]))(objcT19,selTransTbl[7]));i<n;i++){
id objcT20,objcT21,objcT22,objcT23;

#line 201 "compstmt.m"
id x=(objcT20=self->locals,(*(id(*)(id,SEL,unsigned))_imp(objcT20,selTransTbl[8]))(objcT20,selTransTbl[8],i));

if((objcT21=(objcT22=(id)self,(*_imp(objcT22,selTransTbl[15]))(objcT22,selTransTbl[15],x)),(*(BOOL(*)(id,SEL))_imp(objcT21,selTransTbl[10]))(objcT21,selTransTbl[10]))&& !(objcT23=(id)self,(*(BOOL(*)(id,SEL,id))_imp(objcT23,selTransTbl[16]))(objcT23,selTransTbl[16],x))){
id objcT24;

#line 204 "compstmt.m"
(objcT24=(id)self,(*_imp(objcT24,selTransTbl[12]))(objcT24,selTransTbl[12],x));
}
}
curcompound=self->enclosing;
return(id)self;
}

static id i_CompoundStmt_gen(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT25,objcT26,objcT30,objcT31,objcT32;
id objcT33,objcT34,objcT41;

#line 213 "compstmt.m"
if(self->lbrace)
(objcT25=self->lbrace,(*_imp(objcT25,selTransTbl[17]))(objcT25,selTransTbl[17]));
else
gc('{');
if(self->heapvars||self->tmpvars||self->icaches||(o_refcnt&&self->enclosing==(id)0))
gc('\n');
if(self->needreturnflag)gs("int _returnflag = 0;\n");
if(o_refcnt&&self->enclosing==(id)0&& !(objcT26=self->restype,(*(BOOL(*)(id,SEL))_imp(objcT26,selTransTbl[18]))(objcT26,selTransTbl[18]))){
id objcT27,objcT28;

#line 221 "compstmt.m"
(objcT27=self->restype,(*_imp(objcT27,selTransTbl[19]))(objcT27,selTransTbl[19],s_returnval));
if((objcT28=self->restype,(*(BOOL(*)(id,SEL))_imp(objcT28,selTransTbl[20]))(objcT28,selTransTbl[20]))){
id objcT29;
gs("=(");
(objcT29=self->restype,(*_imp(objcT29,selTransTbl[21]))(objcT29,selTransTbl[21]));
gs(")0");
}
gs(";\n");
}
if(self->heapvars)
(objcT30=(id)self,(*_imp(objcT30,selTransTbl[22]))(objcT30,selTransTbl[22]));
if(self->tmpvars)
gvarlist(self->tmpvars,"id",(o_refcnt)?"=(id)0":"");
if(self->icaches)
gvarlist(self->icaches,"static struct objcrt_inlineCache","");
if(self->datadefs)
(objcT31=self->datadefs,(*(id(*)(id,SEL,SEL))_imp(objcT31,selTransTbl[13]))(objcT31,selTransTbl[13],_cmd));
if(self->increfs)
(objcT32=(id)self,(*_imp(objcT32,selTransTbl[23]))(objcT32,selTransTbl[23]));
if(self->initializers)
(objcT33=self->initializers,(*(id(*)(id,SEL,SEL))_imp(objcT33,selTransTbl[13]))(objcT33,selTransTbl[13],_cmd));
if(self->stmts)
(objcT34=self->stmts,(*(id(*)(id,SEL,SEL))_imp(objcT34,selTransTbl[13]))(objcT34,selTransTbl[13],_cmd));
if(self->returnlabel){
id objcT35;

#line 245 "compstmt.m"
gc('\n');
gs((objcT35=self->returnlabel,(*(STR(*)(id,SEL))_imp(objcT35,selTransTbl[24]))(objcT35,selTransTbl[24])));
gs(":\n");
}
if(self->heapvars){
id objcT36;

#line 250 "compstmt.m"
(objcT36=(id)self,(*_imp(objcT36,selTransTbl[25]))(objcT36,selTransTbl[25]));
}
if(o_refcnt){
id objcT37;

#line 253 "compstmt.m"
if(self->decrefs)
(objcT37=(id)self,(*_imp(objcT37,selTransTbl[26]))(objcT37,selTransTbl[26]));
if(self->checkreturnflag){
id objcT38,objcT39;

#line 256 "compstmt.m"
gf("if (_returnflag) goto %s;\n",(objcT38=(objcT39=self->enclosing,(*_imp(objcT39,selTransTbl[4]))(objcT39,selTransTbl[4])),(*(STR(*)(id,SEL))_imp(objcT38,selTransTbl[24]))(objcT38,selTransTbl[24])));
}
if(self->enclosing==(id)0){
id objcT40;

#line 259 "compstmt.m"
if((objcT40=self->restype,(*(BOOL(*)(id,SEL))_imp(objcT40,selTransTbl[18]))(objcT40,selTransTbl[18]))){
gs("return;\n");
}else{
gs("return _returnval;");
}
}
}
if(self->rbrace)
(objcT41=self->rbrace,(*_imp(objcT41,selTransTbl[17]))(objcT41,selTransTbl[17]));
else
gc('}');
return(id)self;
}

#line 24 "shared.m"
static id i_CompoundStmt_enclosing(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
return self->enclosing;
}

#line 39 "../../include/objpak/ordcltn.h"
extern id  OrdCltn;

#line 29 "shared.m"
static id i_CompoundStmt_addtmpvar_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id tvar)
{
id objcT42,objcT43;

#line 31 "shared.m"
if( !self->tmpvars)self->
tmpvars=(objcT42=OrdCltn,(*_imp(objcT42,selTransTbl[27]))(objcT42,selTransTbl[27]));
(objcT43=self->tmpvars,(*_imp(objcT43,selTransTbl[28]))(objcT43,selTransTbl[28],tvar));
return(id)self;
}

static id i_CompoundStmt_addicache_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id tvar)
{
id objcT44,objcT45;

#line 39 "shared.m"
if( !self->icaches)self->
icaches=(objcT44=OrdCltn,(*_imp(objcT44,selTransTbl[27]))(objcT44,selTransTbl[27]));
(objcT45=self->icaches,(*_imp(objcT45,selTransTbl[28]))(objcT45,selTransTbl[28],tvar));
return(id)self;
}

static id i_CompoundStmt_addincref_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id v)
{
id objcT46,objcT47;

#line 47 "shared.m"
if( !self->increfs)self->
increfs=(objcT46=OrdCltn,(*_imp(objcT46,selTransTbl[27]))(objcT46,selTransTbl[27]));
(objcT47=self->increfs,(*_imp(objcT47,selTransTbl[28]))(objcT47,selTransTbl[28],v));
return(id)self;
}

static id i_CompoundStmt_genincrefs(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT48;

#line 55 "shared.m"
int i,n=(objcT48=self->increfs,(*(unsigned(*)(id,SEL))_imp(objcT48,selTransTbl[7]))(objcT48,selTransTbl[7]));

for(i=0;i<n;i++){
id objcT49,objcT50,objcT51,objcT52,objcT53;

#line 58 "shared.m"
if(self->lbrace)gl((objcT49=self->lbrace,(*(int(*)(id,SEL))_imp(objcT49,selTransTbl[1]))(objcT49,selTransTbl[1])),(objcT50=(objcT51=self->lbrace,(*_imp(objcT51,selTransTbl[2]))(objcT51,selTransTbl[2])),(*(STR(*)(id,SEL))_imp(objcT50,selTransTbl[24]))(objcT50,selTransTbl[24])));
gf("idincref(%s);\n",(objcT52=(objcT53=self->increfs,(*(id(*)(id,SEL,unsigned))_imp(objcT53,selTransTbl[8]))(objcT53,selTransTbl[8],i)),(*(STR(*)(id,SEL))_imp(objcT52,selTransTbl[24]))(objcT52,selTransTbl[24])));
}
gc('\n');
return(id)self;
}

static id i_CompoundStmt_adddecref_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id v)
{
id objcT54,objcT55,objcT56;

#line 67 "shared.m"
if( !self->decrefs)self->
decrefs=(objcT54=OrdCltn,(*_imp(objcT54,selTransTbl[27]))(objcT54,selTransTbl[27]));
(objcT55=self->decrefs,(*_imp(objcT55,selTransTbl[28]))(objcT55,selTransTbl[28],v));

if(curloopcompound&&(id)self!=curloopcompound)
(objcT56=curloopcompound,(*_imp(objcT56,selTransTbl[12]))(objcT56,selTransTbl[12],v));
return(id)self;
}

static id i_CompoundStmt_gendecrefs(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT57;

#line 78 "shared.m"
int i,n=(objcT57=self->decrefs,(*(unsigned(*)(id,SEL))_imp(objcT57,selTransTbl[7]))(objcT57,selTransTbl[7]));

for(i=0;i<n;i++){
id objcT58,objcT59,objcT60,objcT61,objcT62;

#line 81 "shared.m"
char*s=(objcT58=(objcT59=self->decrefs,(*(id(*)(id,SEL,unsigned))_imp(objcT59,selTransTbl[8]))(objcT59,selTransTbl[8],i)),(*(STR(*)(id,SEL))_imp(objcT58,selTransTbl[24]))(objcT58,selTransTbl[24]));

if(self->rbrace)gl((objcT60=self->rbrace,(*(int(*)(id,SEL))_imp(objcT60,selTransTbl[1]))(objcT60,selTransTbl[1])),(objcT61=(objcT62=self->rbrace,(*_imp(objcT62,selTransTbl[2]))(objcT62,selTransTbl[2])),(*(STR(*)(id,SEL))_imp(objcT61,selTransTbl[24]))(objcT61,selTransTbl[24])));
gf("%s=iddecref(%s);\n",s,s);
}
gc('\n');
return(id)self;
}

static id i_CompoundStmt_lookuplocal_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id sym)
{
id objcT63;

#line 92 "shared.m"
return(self->localdic)?(objcT63=self->localdic,(*_imp(objcT63,selTransTbl[29]))(objcT63,selTransTbl[29],sym)):(id)0;
}

#line 32 "../../include/objpak/dictnary.h"
extern id  Dictionary;

#line 95 "shared.m"
static id i_CompoundStmt_deflocal_astype_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id sym,id t)
{
id objcT66,objcT67,objcT68;

#line 97 "shared.m"
if( !self->localdic){
id objcT64,objcT65;
self->
#line 98 "shared.m"
localdic=(objcT64=Dictionary,(*_imp(objcT64,selTransTbl[27]))(objcT64,selTransTbl[27]));self->
locals=(objcT65=OrdCltn,(*_imp(objcT65,selTransTbl[27]))(objcT65,selTransTbl[27]));
}
(objcT66=self->localdic,(*_imp(objcT66,selTransTbl[30]))(objcT66,selTransTbl[30],sym,t));
(objcT67=self->locals,(*_imp(objcT67,selTransTbl[28]))(objcT67,selTransTbl[28],sym));
if(curdef&&((objcT68=curdef,(*(BOOL(*)(id,SEL))_imp(objcT68,selTransTbl[31]))(objcT68,selTransTbl[31])))){
id objcT69,objcT71;

#line 104 "shared.m"
(void)0;
if((objcT69=curclassdef,(*(BOOL(*)(id,SEL,id))_imp(objcT69,selTransTbl[32]))(objcT69,selTransTbl[32],sym))){
id objcT70;

#line 106 "shared.m"
warnat(sym,"definition of local '%s' hides instance variable",(objcT70=sym,(*(STR(*)(id,SEL))_imp(objcT70,selTransTbl[24]))(objcT70,selTransTbl[24])));
}
if((objcT71=curclassdef,(*(BOOL(*)(id,SEL,id))_imp(objcT71,selTransTbl[33]))(objcT71,selTransTbl[33],sym))){
id objcT72;

#line 109 "shared.m"
warnat(sym,"definition of local '%s' hides class variable",(objcT72=sym,(*(STR(*)(id,SEL))_imp(objcT72,selTransTbl[24]))(objcT72,selTransTbl[24])));
}
}
return(id)self;
}

static id i_CompoundStmt_genheapvarptr(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
char*p=self->heapvarptrname;
char*t=self->heapvartypename;

(void)0;

gf("%s *%s=(%s *)OC_Calloc(sizeof(%s));\n",t,p,t,t);
return(id)self;
}

static id i_CompoundStmt_freeheapvarptr(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT73;

#line 128 "shared.m"
char*p=self->heapvarptrname;

gf("if (%s->heaprefcnt-- == 0) {\n",p);
if(o_refcnt)(objcT73=(id)self,(*_imp(objcT73,selTransTbl[34]))(objcT73,selTransTbl[34]));
gf("OC_Free(%s);\n",p);
gs("}\n");

return(id)self;
}

static id i_CompoundStmt_gendecrefsheapvars(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT74;

#line 140 "shared.m"
int i,n=(objcT74=self->heapnames,(*(unsigned(*)(id,SEL))_imp(objcT74,selTransTbl[7]))(objcT74,selTransTbl[7]));
char*hvp=self->heapvarptrname;

for(i=0;i<n;i++){
id objcT75,objcT76,objcT77;

#line 144 "shared.m"
id x=(objcT75=self->heapnames,(*(id(*)(id,SEL,unsigned))_imp(objcT75,selTransTbl[8]))(objcT75,selTransTbl[8],i));
id t=(objcT76=self->heaptypes,(*(id(*)(id,SEL,unsigned))_imp(objcT76,selTransTbl[8]))(objcT76,selTransTbl[8],i));

(void)0;
if((objcT77=t,(*(BOOL(*)(id,SEL))_imp(objcT77,selTransTbl[10]))(objcT77,selTransTbl[10]))){
id objcT78;

#line 149 "shared.m"
char*s=(objcT78=x,(*(STR(*)(id,SEL))_imp(objcT78,selTransTbl[24]))(objcT78,selTransTbl[24]));
gf("%s->%s=iddecref(%s->%s);\n",hvp,s,hvp,s);
}
}
return(id)self;
}

static id i_CompoundStmt_genheapvartype(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT79;

#line 158 "shared.m"
int i,n=(objcT79=self->heapnames,(*(unsigned(*)(id,SEL))_imp(objcT79,selTransTbl[7]))(objcT79,selTransTbl[7]));

if( !n)
return(id)self;
gf("%s {\n",self->heapvartypename);
gs("int heaprefcnt;\n");
for(i=0;i<n;i++){
id objcT80,objcT81,objcT82;

#line 165 "shared.m"
id x=(objcT80=self->heapnames,(*(id(*)(id,SEL,unsigned))_imp(objcT80,selTransTbl[8]))(objcT80,selTransTbl[8],i));
id t=(objcT81=self->heaptypes,(*(id(*)(id,SEL,unsigned))_imp(objcT81,selTransTbl[8]))(objcT81,selTransTbl[8],i));

(void)0;
(objcT82=t,(*_imp(objcT82,selTransTbl[19]))(objcT82,selTransTbl[19],x));
gs(";\n");
}
gs("};\n");
return(id)self;
}

static id i_CompoundStmt_heapvars(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
return(id)0;
}

static BOOL i_CompoundStmt_isheapvar_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id x)
{
id objcT83;

#line 183 "shared.m"
return(self->heapvars)?(objcT83=self->heapvars,(*(BOOL(*)(id,SEL,id))_imp(objcT83,selTransTbl[35]))(objcT83,selTransTbl[35],x)):(BOOL)0;
}

#line 36 "../../include/objpak/set.h"
extern id  Set;

#line 40 "../../include/objpak/ocstring.h"
extern id  String;

#line 186 "shared.m"
static id i_CompoundStmt_defheapvar_type_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id x,id t)
{
id objcT92;

#line 188 "shared.m"
int i;

if( !self->heapvars){
id objcT84,objcT85,objcT86,objcT87,objcT88;
id objcT89,objcT90,objcT91;
self->
#line 191 "shared.m"
heapvars=(objcT84=Set,(*_imp(objcT84,selTransTbl[27]))(objcT84,selTransTbl[27]));self->
heapnames=(objcT85=OrdCltn,(*_imp(objcT85,selTransTbl[27]))(objcT85,selTransTbl[27]));self->
heaptypes=(objcT86=OrdCltn,(*_imp(objcT86,selTransTbl[27]))(objcT86,selTransTbl[27]));
i=(objcT87=trlunit,(*(int(*)(id,SEL))_imp(objcT87,selTransTbl[36]))(objcT87,selTransTbl[36]));self->
heapvarptrname=(objcT88=(objcT89=String,(*(id(*)(id,SEL,STR,...))_imp(objcT89,selTransTbl[37]))(objcT89,selTransTbl[37],"heapvars%i",i)),(*(STR(*)(id,SEL))_imp(objcT88,selTransTbl[38]))(objcT88,selTransTbl[38]));self->
heapvartypename=(objcT90=(objcT91=String,(*(id(*)(id,SEL,STR,...))_imp(objcT91,selTransTbl[37]))(objcT91,selTransTbl[37],"struct heaptype%i",i)),(*(STR(*)(id,SEL))_imp(objcT90,selTransTbl[38]))(objcT90,selTransTbl[38]));
}
if((objcT92=t,(*(BOOL(*)(id,SEL))_imp(objcT92,selTransTbl[39]))(objcT92,selTransTbl[39]))){
id objcT93;

#line 199 "shared.m"
char*msg="can't use static local variables (%s) from within block";

fatalat(x,msg,(objcT93=x,(*(STR(*)(id,SEL))_imp(objcT93,selTransTbl[24]))(objcT93,selTransTbl[24])));
}else{
id objcT94;

#line 203 "shared.m"
if((objcT94=self->heapvars,(*_imp(objcT94,selTransTbl[40]))(objcT94,selTransTbl[40],x))!=(id)0){
id objcT95,objcT96;

#line 204 "shared.m"
(objcT95=self->heapnames,(*_imp(objcT95,selTransTbl[28]))(objcT95,selTransTbl[28],x));
(objcT96=self->heaptypes,(*_imp(objcT96,selTransTbl[28]))(objcT96,selTransTbl[28],t));
}
}
return(id)self;
}

static char*i_CompoundStmt_heapvarptrname(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
(void)0;
return self->heapvarptrname;
}

static char*i_CompoundStmt_heapvartypename(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
(void)0;
return self->heapvartypename;
}

static id i_CompoundStmt_removeheapvarsfromdatadefs(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT97,objcT109;

#line 225 "shared.m"
int n;

(void)0;self->
initializers=(objcT97=OrdCltn,(*_imp(objcT97,selTransTbl[27]))(objcT97,selTransTbl[27]));

if(self->parmnames){
id objcT98;

#line 231 "shared.m"
n=(objcT98=self->parmnames,(*(unsigned(*)(id,SEL))_imp(objcT98,selTransTbl[7]))(objcT98,selTransTbl[7]));
while(n--){
id objcT99,objcT100;

#line 233 "shared.m"
id p=(objcT99=self->parmnames,(*(id(*)(id,SEL,unsigned))_imp(objcT99,selTransTbl[8]))(objcT99,selTransTbl[8],n));

if((objcT100=self->heapvars,(*(BOOL(*)(id,SEL,id))_imp(objcT100,selTransTbl[35]))(objcT100,selTransTbl[35],p))){
id objcT101,objcT102,objcT103;

#line 236 "shared.m"
id x=(objcT101=(objcT102=mkidentexpr(p),(*(id(*)(id,SEL,BOOL))_imp(objcT102,selTransTbl[41]))(objcT102,selTransTbl[41],(BOOL)1)),(*_imp(objcT101,selTransTbl[42]))(objcT101,selTransTbl[42]));
id y=mkidentexpr(p);

(objcT103=self->initializers,(*_imp(objcT103,selTransTbl[28]))(objcT103,selTransTbl[28],mkexprstmt(mkassignexpr(x,"=",y))));
}
}
}
if(self->datadefs){
id objcT104;

#line 244 "shared.m"
n=(objcT104=self->datadefs,(*(unsigned(*)(id,SEL))_imp(objcT104,selTransTbl[7]))(objcT104,selTransTbl[7]));
while(n--){
id objcT105,objcT106,objcT107,objcT108;

#line 246 "shared.m"
id def=(objcT105=self->datadefs,(*(id(*)(id,SEL,unsigned))_imp(objcT105,selTransTbl[8]))(objcT105,selTransTbl[8],n));

(objcT106=def,(*_imp(objcT106,selTransTbl[43]))(objcT106,selTransTbl[43],self->heapvars,self->initializers));
if((objcT107=def,(*_imp(objcT107,selTransTbl[44]))(objcT107,selTransTbl[44]))==(id)0)
(objcT108=self->datadefs,(*(id(*)(id,SEL,unsigned))_imp(objcT108,selTransTbl[45]))(objcT108,selTransTbl[45],n));
}
}
if((objcT109=self->datadefs,(*(unsigned(*)(id,SEL))_imp(objcT109,selTransTbl[7]))(objcT109,selTransTbl[7]))==0)self->
datadefs=(id)0;
return(id)self;
}

static id i_CompoundStmt_fcall_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id x)
{
id objcT110,objcT111;

#line 260 "shared.m"
if((objcT110=x,(*(unsigned(*)(id,SEL))_imp(objcT110,selTransTbl[7]))(objcT110,selTransTbl[7]))<(objcT111=self->parmnames,(*(unsigned(*)(id,SEL))_imp(objcT111,selTransTbl[7]))(objcT111,selTransTbl[7]))){
id objcT112;

#line 261 "shared.m"
return(objcT112=(id)self,(*(id(*)(id,SEL,STR,...))_imp(objcT112,selTransTbl[46]))(objcT112,selTransTbl[46],"Arguments expected"));
}else{
id objcT113,objcT117,objcT118;

#line 263 "shared.m"
int i,n;
(void)0;
for(i=0,n=(objcT113=self->parmnames,(*(unsigned(*)(id,SEL))_imp(objcT113,selTransTbl[7]))(objcT113,selTransTbl[7]));i<n;i++){
id objcT114,objcT115,objcT116;

#line 266 "shared.m"
(objcT114=topframe,(*_imp(objcT114,selTransTbl[47]))(objcT114,selTransTbl[47],(objcT115=self->parmnames,(*(id(*)(id,SEL,unsigned))_imp(objcT115,selTransTbl[8]))(objcT115,selTransTbl[8],i)),(objcT116=x,(*(id(*)(id,SEL,unsigned))_imp(objcT116,selTransTbl[8]))(objcT116,selTransTbl[8],i))));
}
(objcT117=(id)self,(*_imp(objcT117,selTransTbl[48]))(objcT117,selTransTbl[48]));
if((objcT118=topframe,(*(BOOL(*)(id,SEL))_imp(objcT118,selTransTbl[49]))(objcT118,selTransTbl[49]))){
id objcT119;

#line 270 "shared.m"
return(objcT119=topframe,(*_imp(objcT119,selTransTbl[50]))(objcT119,selTransTbl[50]));
}else{
return(id)0;
}
}
}

#line 24 "stkframe.h"
extern id  Stackframe;

#line 277 "shared.m"
static id i_CompoundStmt_switchOn__(struct CompoundStmt_PRIVATE *self,SEL _cmd,BOOL dosw,id e)
{
id objcT120,objcT121,objcT122,objcT123,objcT131;
id objcT135,objcT136;

#line 279 "shared.m"
int i,n;
BOOL quit=(BOOL)0;
BOOL dobrk=(BOOL)0;
BOOL docont=(BOOL)0;
id frame=(objcT120=(objcT121=Stackframe,(*_imp(objcT121,selTransTbl[51]))(objcT121,selTransTbl[51])),(*_imp(objcT120,selTransTbl[52]))(objcT120,selTransTbl[52],(id)self));
if(self->datadefs)(objcT122=self->datadefs,(*(id(*)(id,SEL,SEL))_imp(objcT122,selTransTbl[13]))(objcT122,selTransTbl[13],selTransTbl[48]));
i=0;
n=(objcT123=self->stmts,(*(unsigned(*)(id,SEL))_imp(objcT123,selTransTbl[7]))(objcT123,selTransTbl[7]));
if(dosw)for(;i<n;i++){
id objcT124,objcT125;

#line 288 "shared.m"
if((objcT124=(objcT125=self->stmts,(*(id(*)(id,SEL,unsigned))_imp(objcT125,selTransTbl[8]))(objcT125,selTransTbl[8],i)),(*(BOOL(*)(id,SEL,id))_imp(objcT124,selTransTbl[53]))(objcT124,selTransTbl[53],e)))break;
}
for(;i<n;i++){
id objcT126,objcT127,objcT128,objcT129,objcT130;

#line 291 "shared.m"
(objcT126=(objcT127=self->stmts,(*(id(*)(id,SEL,unsigned))_imp(objcT127,selTransTbl[8]))(objcT127,selTransTbl[8],i)),(*_imp(objcT126,selTransTbl[48]))(objcT126,selTransTbl[48]));
if((quit=(objcT128=frame,(*(BOOL(*)(id,SEL))_imp(objcT128,selTransTbl[49]))(objcT128,selTransTbl[49]))))break;
if((docont=(objcT129=frame,(*(BOOL(*)(id,SEL))_imp(objcT129,selTransTbl[54]))(objcT129,selTransTbl[54]))))break;
if((dobrk=(objcT130=frame,(*(BOOL(*)(id,SEL))_imp(objcT130,selTransTbl[55]))(objcT130,selTransTbl[55]))))break;
}
(objcT131=Stackframe,(*_imp(objcT131,selTransTbl[56]))(objcT131,selTransTbl[56]));
if(quit){
id objcT132,objcT133,objcT134;

#line 298 "shared.m"
(objcT132=topframe,(*(id(*)(id,SEL,BOOL))_imp(objcT132,selTransTbl[57]))(objcT132,selTransTbl[57],(BOOL)1));
(objcT133=topframe,(*_imp(objcT133,selTransTbl[58]))(objcT133,selTransTbl[58],(objcT134=frame,(*_imp(objcT134,selTransTbl[50]))(objcT134,selTransTbl[50]))));
}
if(docont)(objcT135=topframe,(*(id(*)(id,SEL,BOOL))_imp(objcT135,selTransTbl[59]))(objcT135,selTransTbl[59],(BOOL)1));
if(dobrk)(objcT136=topframe,(*(id(*)(id,SEL,BOOL))_imp(objcT136,selTransTbl[60]))(objcT136,selTransTbl[60],(BOOL)1));
return(id)self;
}

static id i_CompoundStmt_switchOn_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id e)
{
id objcT137;

#line 308 "shared.m"
return(objcT137=(id)self,(*(id(*)(id,SEL,BOOL,id))_imp(objcT137,selTransTbl[61]))(objcT137,selTransTbl[61],(BOOL)1,e));
}

static id i_CompoundStmt_go(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT138;

#line 313 "shared.m"
return(objcT138=(id)self,(*(id(*)(id,SEL,BOOL,id))_imp(objcT138,selTransTbl[61]))(objcT138,selTransTbl[61],(BOOL)0,(id)0));
}

#line 275 "compstmt.m"
static id i_CompoundStmt_addheapvarblock_(struct CompoundStmt_PRIVATE *self,SEL _cmd,id c)
{
if(c==(id)self){
return(id)self;
}else{
id objcT139;

#line 280 "compstmt.m"
if(self->enclosing)
(objcT139=self->enclosing,(*_imp(objcT139,selTransTbl[62]))(objcT139,selTransTbl[62],c));
return(id)self;
}
}

static id i_CompoundStmt_st80(struct CompoundStmt_PRIVATE *self,SEL _cmd)
{
id objcT140,objcT141,objcT142;

#line 288 "compstmt.m"
gc('|');
if(self->datadefs)
(objcT140=self->datadefs,(*(id(*)(id,SEL,SEL))_imp(objcT140,selTransTbl[13]))(objcT140,selTransTbl[13],_cmd));
gc('|');
gc('\n');
if(self->datadefs)
(objcT141=self->datadefs,(*(id(*)(id,SEL,SEL))_imp(objcT141,selTransTbl[13]))(objcT141,selTransTbl[13],selTransTbl[63]));
(objcT142=self->stmts,(*(id(*)(id,SEL,SEL))_imp(objcT142,selTransTbl[13]))(objcT142,selTransTbl[13],_cmd));
return(id)self;
}
extern id  Object;
extern struct _SHARED _Object;
extern struct _SHARED __Object;
extern id  Stmt;
extern struct _SHARED _Stmt;
extern struct _SHARED __Stmt;
static struct _SLT _CompoundStmt_clsDispatchTbl[] ={
{(char*)0,(id (*)())0}
};
static struct _SLT _CompoundStmt_nstDispatchTbl[] ={
{"isbracedgroup",(id (*)())i_CompoundStmt_isbracedgroup},
{"setbracedgroup:",(id (*)())i_CompoundStmt_setbracedgroup_},
{"setreturnflag",(id (*)())i_CompoundStmt_setreturnflag},
{"usereturnflag",(id (*)())i_CompoundStmt_usereturnflag},
{"iscompstmt",(id (*)())i_CompoundStmt_iscompstmt},
{"lineno",(id (*)())i_CompoundStmt_lineno},
{"filename",(id (*)())i_CompoundStmt_filename},
{"lbrace:",(id (*)())i_CompoundStmt_lbrace_},
{"rbrace:",(id (*)())i_CompoundStmt_rbrace_},
{"datadefs:",(id (*)())i_CompoundStmt_datadefs_},
{"stmts:",(id (*)())i_CompoundStmt_stmts_},
{"nextreturnlabel",(id (*)())i_CompoundStmt_nextreturnlabel},
{"returnlabel",(id (*)())i_CompoundStmt_returnlabel},
{"lookupparm:",(id (*)())i_CompoundStmt_lookupparm_},
{"synth",(id (*)())i_CompoundStmt_synth},
{"gen",(id (*)())i_CompoundStmt_gen},
{"enclosing",(id (*)())i_CompoundStmt_enclosing},
{"addtmpvar:",(id (*)())i_CompoundStmt_addtmpvar_},
{"addicache:",(id (*)())i_CompoundStmt_addicache_},
{"addincref:",(id (*)())i_CompoundStmt_addincref_},
{"genincrefs",(id (*)())i_CompoundStmt_genincrefs},
{"adddecref:",(id (*)())i_CompoundStmt_adddecref_},
{"gendecrefs",(id (*)())i_CompoundStmt_gendecrefs},
{"lookuplocal:",(id (*)())i_CompoundStmt_lookuplocal_},
{"deflocal:astype:",(id (*)())i_CompoundStmt_deflocal_astype_},
{"genheapvarptr",(id (*)())i_CompoundStmt_genheapvarptr},
{"freeheapvarptr",(id (*)())i_CompoundStmt_freeheapvarptr},
{"gendecrefsheapvars",(id (*)())i_CompoundStmt_gendecrefsheapvars},
{"genheapvartype",(id (*)())i_CompoundStmt_genheapvartype},
{"heapvars",(id (*)())i_CompoundStmt_heapvars},
{"isheapvar:",(id (*)())i_CompoundStmt_isheapvar_},
{"defheapvar:type:",(id (*)())i_CompoundStmt_defheapvar_type_},
{"heapvarptrname",(id (*)())i_CompoundStmt_heapvarptrname},
{"heapvartypename",(id (*)())i_CompoundStmt_heapvartypename},
{"removeheapvarsfromdatadefs",(id (*)())i_CompoundStmt_removeheapvarsfromdatadefs},
{"fcall:",(id (*)())i_CompoundStmt_fcall_},
{"switchOn::",(id (*)())i_CompoundStmt_switchOn__},
{"switchOn:",(id (*)())i_CompoundStmt_switchOn_},
{"go",(id (*)())i_CompoundStmt_go},
{"addheapvarblock:",(id (*)())i_CompoundStmt_addheapvarblock_},
{"st80",(id (*)())i_CompoundStmt_st80},
{(char*)0,(id (*)())0}
};
id CompoundStmt = (id)&_CompoundStmt;
id  *OBJCCLASS_CompoundStmt(void) { return &CompoundStmt; }
struct _SHARED  _CompoundStmt = {
  (id)&__CompoundStmt,
  (id)&_Stmt,
  "CompoundStmt",
  0,
  sizeof(struct CompoundStmt_PRIVATE),
  41,
  _CompoundStmt_nstDispatchTbl,
  41,
  &compstmt_modDesc,
  0,
  (id)0,
  &CompoundStmt,
};
id  OBJCCFUNC_CompoundStmt(void) { return (id)&_CompoundStmt; }
id  OBJCCSUPER_CompoundStmt(void) { return _CompoundStmt.clsSuper; }
struct _SHARED __CompoundStmt = {
  (id)&__Object,
  (id)&__Stmt,
  "CompoundStmt",
  0,
  sizeof(struct _SHARED),
  0,
  _CompoundStmt_clsDispatchTbl,
  34,
  &compstmt_modDesc,
  0,
  (id)0,
  0,
};
id  OBJCMFUNC_CompoundStmt(void) { return (id)&__CompoundStmt; }
id  OBJCMSUPER_CompoundStmt(void) { return __CompoundStmt.clsSuper; }
static char *_selTransTbl[] ={
"setreturnflag",
"lineno",
"filename",
"returnlabel",
"nextreturnlabel",
"restype",
"parmnames",
"size",
"at:",
"lookupparm:",
"isid",
"addincref:",
"adddecref:",
"elementsPerform:",
"removeheapvarsfromdatadefs",
"lookuplocal:",
"isheapvar:",
"gen",
"isvoid",
"gendef:",
"isscalartype",
"genabstrtype",
"genheapvarptr",
"genincrefs",
"str",
"freeheapvarptr",
"gendecrefs",
"new",
"add:",
"atKey:",
"atKey:put:",
"ismethdef",
"isivar:",
"iscvar:",
"gendecrefsheapvars",
"contains:",
"heapvarcount",
"sprintf:",
"strCopy",
"isstatic",
"addNTest:",
"lhsself:",
"synth",
"removevars:initializers:",
"decllist",
"removeAt:",
"error:",
"defval:as:",
"go",
"quitframe",
"returnval",
"push",
"compound:",
"iscaseOf:",
"contframe",
"breakframe",
"pop",
"quitframe:",
"returnval:",
"contframe:",
"breakframe:",
"switchOn::",
"addheapvarblock:",
"st80inits",
0
};
struct modDescriptor compstmt_modDesc = {
  "compstmt",
  "objc3.1.26",
  0L,
  0,
  0,
  &CompoundStmt,
  64,
  _selTransTbl,
  0
};
struct modDescriptor *_OBJCBIND_compstmt(void)
{
  selTransTbl = _selTransTbl;
  return &compstmt_modDesc;
}
int _OBJCPOSTLINK_compstmt = 1;


