char*l31;static char l71[256];l84*l78;int l178=(0!=0);int l69[740]={2,2,585,
521,1,512,8,5,256,40,540,536,41,8,535,530,583,40,527,41,525,524,6,530
,583,40,527,41,525,3,583,525,524,1,518,1,519,1,520,3,40,580,41,3,8,
535,530,583,40,527,41,525,524,6,530,583,40,527,41,525,3,584,525,524,3
,1,514,1,515,0,4,4,91,580,93,525,3,46,583,525,4,45,62,583,525,0,2,4,
256,40,540,41,6,536,530,583,40,527,41,2,2,576,528,0,2,3,44,576,528,0,
2,3,535,530,522,1,523,2,1,534,0,2,2,532,523,2,533,522,5,1,514,1,515,2
,536,534,1,38,1,256,11,1,514,1,515,1,43,1,45,1,33,1,126,2,536,534,1,
535,1,38,1,256,0,1,4,40,540,536,41,1,2,42,536,2,1,535,0,3,1,257,1,258
,0,5,1,259,1,260,1,261,1,262,0,1,1,41,12,1,263,2,264,617,4,265,40,529
,41,4,541,266,266,267,3,541,266,266,3,541,266,267,2,541,266,2,541,267
,3,541,268,267,2,541,268,2,541,269,1,270,3,1,271,1,272,0,1,2,531,553,
1,2,542,554,1,2,543,555,1,2,544,556,1,2,545,557,1,2,546,558,1,2,547,
559,1,2,548,560,1,2,549,561,1,2,550,562,1,2,551,575,2,3,563,531,553,0
,2,3,564,542,554,0,2,3,565,543,555,0,2,3,566,544,556,0,2,3,567,545,
557,0,2,3,568,546,558,0,2,3,570,547,559,0,2,3,571,548,560,0,2,3,573,
549,561,0,2,3,574,550,562,0,3,1,42,1,47,1,37,2,1,43,1,45,2,2,60,60,2,
62,62,4,2,60,61,1,60,2,62,61,1,62,2,2,61,61,2,33,61,1,2,33337,38,1,2,
38,38,1,1,94,1,2,33340,124,1,2,124,124,1,2,38,38,1,2,124,124,2,4,63,
551,58,552,0,1,2,578,552,1,2,61,61,2,4,529,33345,579,578,0,11,1,61,2,
43,61,2,45,61,2,42,61,2,47,61,2,37,61,2,38,61,2,94,61,2,124,61,3,60,
60,61,3,62,62,61,1,2,576,581,2,3,44,576,581,0,1,1,580,1,1,513,1,1,513
,7,3,123,590,125,1,586,1,593,1,588,1,613,1,615,1,616,3,3,583,58,585,4
,273,587,58,585,3,274,58,585,1,1,580,1,2,589,59,2,1,580,0,1,2,591,612
,2,1,592,0,1,2,593,591,2,1,594,2,595,596,1,5,264,617,123,592,125,1,4,
538,537,540,536,3,5,583,40,606,41,598,4,583,605,597,59,4,583,599,601,
59,2,5,44,536,583,605,597,0,2,1,59,3,123,590,125,1,4,91,610,93,600,2,
4,91,610,93,600,0,2,4,61,123,602,125,0,1,2,604,603,3,3,44,604,603,1,
44,0,2,1,587,3,123,602,125,2,2,61,580,0,2,2,263,16923,2,608,607,2,3,
44,608,607,0,1,4,540,536,583,609,2,4,91,610,93,609,0,2,1,587,0,1,2,
585,612,2,2,585,612,0,2,6,275,40,580,41,585,614,7,276,40,580,41,123,
590,125,2,2,277,585,0,3,5,278,40,580,41,585,7,279,585,278,40,580,41,
59,9,280,40,589,59,589,59,589,41,585,4,3,281,583,59,2,282,59,2,283,59
,3,284,589,59,1,1,513,};char*l102[29]={"sizeof","const","volatile",
"auto","register","static","extern","void","struct","typeof","long",
"int","short","char","FILE","unsigned","signed","case","default","if"
,"switch","else","while","do","for","goto","continue","break",
"return",};int l156[9]={0,1,2,3,4,5,6,7,8,};char*l109[106]={"EOD","TAG",
"PPP","MMM","CHAR","KEYWORD","integer-constant","character-constant",
"string-constant","SS","level14","level14-lv","opt-post-ppp-or-mmm",
"opt-postfix","function-call","opt-argument-list",
"comma-opt-argument-list","lvalue","opt-cast","level13",
"prefix-operator-lv","opt-prefix-operator","cast","pointer-seq",
"opt-pointer-seq","opt-qualifier","opt-scope","closer","type",
"signed","level12","level11","level10","level9","level8","level7",
"level6","level5","level4","level3","level2","opt-level12",
"opt-level11","opt-level10","opt-level9","opt-level8","opt-level7",
"opt-level6","opt-level5","opt-level4","opt-level3","level12-op",
"level11-op","level10-op","level9-op","level8-op","level7-op",
"ANDAND","level6-op","level5-op","OROR","level4-op","level3-op",
"opt-conditional","level1","equiv","opt-assign-list","assign-op",
"expression","opt-comma-level0-list","rvalue","identifier",
"identifier-lv","statement","labeled-statement","constant-expression"
,"expression-statement","opt-expression","compound-statement",
"opt-declaration-list","declaration-list","declaration","struct-decl"
,"decl","rest-of-decl","opt-more-scalar-decls",
"forward-decl-or-actual-body","array-bounds","opt-array-bounds",
"opt-array-init","constant-initializer-list",
"rest-of-constant-initializer-list","constant-initializer",
"opt-scalar-init","opt-param-list","opt-rest-of-param-list","param",
"opt-empty-array-bounds","opt-constant-expression","statement-list",
"opt-statement-list","selection-statement","opt-else-statement",
"iteration-statement","jump-statement","structname",};int l169[106-9]=
{0,6,43,64,70,86,99,104,110,117,121,128,140,163,169,173,177,183,193,
196,238,244,248,252,256,260,264,268,272,276,280,284,288,294,300,306,
312,318,324,330,336,342,348,355,360,367,378,385,389,393,396,400,404,
408,412,419,423,427,434,469,473,479,482,485,488,505,519,522,526,530,
534,538,542,548,555,561,578,586,593,599,606,613,617,625,632,637,644,
650,656,663,667,671,676,692,697,722,737,};int l38=-1;char*l111=
"<UNKNOWN>";char l62[(1024*32)];int l43=0;int l140(char*ln){int l36;for(l36=
0;l36<=l43;l36++){if(l49(l62+l36,ln)==0){return l36;}}}struct l174{char*ln;int
l37;int l4;int l35;char*l54;};static struct l174*lm=l28;int lv=0,l50=0;char*l94;
static int*li=l28;int l66=0,l119=0;l84*l17;char*l41;int l139=(0==0),l45=(0==0
),l29=1,l4=0,lq,l40;static void*l61(void*lm,int lv,int*l50,int l137){if((lm==
l28)||( *l50==0)||(lv==0)){lm=l191((32*1024),l137); *l50=(32*1024)-1;
}else if(lv>= *l50){ *l50=( *l50*2)+1;lm=(void* )l186(lm,( *l50+1) *l137
);}if(lm==l28){lr(l2,"makespace: %s\n",l131(l98));l18(l98);}return lm;}
void l59(char*ln,int l29,int l4,int l114,char*l104){int l36;if(l43+l58(ln)+1>=
(1024*32))l18(1);l126(l62+l43,ln);l36=l140(ln);if(l36==l43)l43+=l58(
ln)+1;lm=(l68(lm))l61(lm,lv,&l50,sizeof(lm[0]));lm[lv].ln=l62+l36;lm[lv]
.l37=l29;lm[lv].l4=l4;lm[lv].l54=l104;lm[lv].l35=l114;lv++;}void l106(
int lq,int l29,int l4,int l114,char*l104){l94[lq*2]=lq;l94[lq*2+1]='\0';l59
(&l94[lq*2],l29,l4,l114,l104);}int l171(char*ln){int l36;if(l43+l58(ln)+1
>=(1024*32))l18(1);l126(l62+l43,ln);l36=l140(ln);if(l36==l43)l43+=l58
(ln)+1;lm=(l68(lm))l61(lm,lv,&l50,sizeof(lm[0]));lm[lv].ln=l62+l36;lm[lv
].l37=-1;lm[lv].l4=-1;lm[lv].l54="";lm[lv].l35=6;return lv++;}char*l118(char*
ln,int l35){static char l108[1024];char*l12;int l57;l12=l108;if((l35!=7)&&(l35
!=8)){l12+=lp(l12,"%s",ln);return l108;}if(l35==7)l57='\'';if(l35==8)l57=
'"';l12+=lp(l12,"%c",l57);for(;;){int lm= *ln++;if(lm=='\n')l12+=lp(
l12,"\\n");else if(lm=='\r')l12+=lp(l12,"\\r");else if(lm=='\t')l12+=lp(
l12,"\\t");else if(lm==0)l12+=lp(l12,"\\0");else if(lm=='\\')l12+=lp(l12,
"\\\\");else if((lm=='"')&&(l57=='"'))l12+=lp(l12,"\\\"");else if((lm==
'\'')&&(l57=='\''))l12+=lp(l12,"\\'");else l12+=lp(l12,"%c",lm);if((lm
==0)||(l57=='\''))break;}l12+=lp(l12,"%c",l57);return l108;}int l163(char*ln){
int lu;for(lu=0;lu<29;lu++)if(l49(ln,l102[lu])==0)return(0==0);return(0!=0);}
static int l34(l84*l54);static void l67(int lm,l84*l54);void l168(void){for(;;){
lq=l34(l17);if(lq==l129)break;lq&=255;l40=l34(l17);l67(l40,l17);if(l155(
lq)||(lq=='_')){int lv=0,l105=0,l157=l4;char*l51=l28;l45=(0!=0);for(;;){
l51=(l68(l51))l61(l51,lv,&l105,sizeof(l51[0]));if(l155(lq)||l125(lq)||(
lq=='_')){l4++;l51[lv++]=lq;}else{l51[lv]='\0';l67(lq,l17);break;}lq=l34(
l17);}l59(l51,l29,l157,l163(l51)?5:1,l41);l130(l51);}else if(l125(lq)){
int lv=0,l177=0;char*l55=l28;l45=(0!=0);for(;;){l55=(l68(l55))l61(l55,lv
,&l177,sizeof(l55[0]));if(l125(lq)){l4++;l55[lv++]=lq;}else{l55[lv]='\0';
l67(lq,l17);break;}lq=l34(l17);}l59(l55,l29,l4,6,l41);l130(l55);}else switch(
lq){case '"':case '\'':{int lv=0,l105=0,l124=lq;char*l25=l28;l45=(0!=0);l4++;
for(;;){lq=l34(l17);l4++;l25=(l68(l25))l61(l25,lv,&l105,sizeof(l25[0]));
if(lq==l124){l25[lv]='\0';break;}else if(lq=='\\'){lq=l34(l17);l4++;if(lq
=='\\'){l25[lv++]=lq;}else if(lq=='\''){l25[lv++]='\'';}else if(lq=='"'){
l25[lv++]='"';}else if(lq=='n'){l25[lv++]='\n';}else if(lq=='r'){l25[lv++
]='\r';}else if(lq=='t'){l25[lv++]='\t';}else{l25[lv++]='\\';l25[lv++]=lq
;}}else{l25[lv++]=lq;}}l59(l25,l29,l4,(l124=='\''?7:8),l41);l130(l25);}
break;case '/':l4++;l45=(0!=0);if(l40=='/'){do{lq=l34(l17);}while(lq!='\n');
l29++;l4=0;l45=(0==0);}else if(l40=='*'){lq=l34(l17);for(;;){l4++;lq=
l34(l17);l40=l34(l17);if((lq=='*')&&(l40=='/'))break;l67(l40,l17);}l4+=2
;(void)l34(l17);}else{l106(lq,l29,l4,4,l41);}break;case '+':case '-':l45=(0!=0);
if(l40==lq){lq=l34(l17);l40=l34(l17);l67(l40,l17);if(lq=='+')l59("++"
,l29,l4,2,l41);else l59("--",l29,l4,3,l41);l4++;}else l106(lq,l29,l4,4,
l41);l4++;break;case '\n':l29++;case '\r':l139=(0==0);l4=0;l45=(0==0);break;case
'\t':case ' ':l4++;break;default:l45=(0!=0);l106(lq,l29,l4++,4,l41);}}l59(
"<EOF>",l29,l4,0,l41);lv--;}static char l80[1024];static int l48=0,l89=1;static
void l67(int lm,l84*l54){if(l48>0){l48-=1;}else if(lm=='\n'){l89-=1;l48=
l58(l80);}l183(lm,l54);}static int l34(l84*l54){static int l120=-1;int lm,lq;
lm=l194(l54);if(lm==l129)return l129;lq=lm&255;if(lq=='\n'){l80[l48]='\0'
;l48=0;if(l120!=l89){l126(l62+l43,l80);l120=l89;}l89+=1;}else l80[l48++
]=lq;if(l48==1023)l48=1022;l80[l48]='\0';return lm;}void l187(int l22){int lu
,l37;l37=lm[0].l37;for(lu=0;lu<lv;lu++){if(lm[lu].l35==7){if(lm[lu].
l37==l22)lr(l78,"'%s' ",lm[lu].ln);}else{if(lm[lu].l37==l22)lr(l78,
"%s ",lm[lu].ln);}}}int l26=0;int ld=0;int l95(int l127,int l83){int l116,
l39,lu,l47,l122,l42;char l193[256];l47=l169[l127-512-9];l122=l69[l47];
l47++;l116=l26;l39=ld;for(lu=0;lu<l122;lu++){int l44,l81=l69[l47++],
l88,l82=0;l26=l116;ld=l39;if(ld+3>l66)l66=ld+3;li=(l68(li))l61(li,l66
,&l119,sizeof(li[0]));li[ld++]=l127;li[ld++]=lu;for(l44=0;l44<l81;l44++)if
(l69[l47+l44]>=512)l82++;li[ld++]=l82;ld=ld+l82;if(l39+3+l82>l66)l66=
l39+3+l82;li=(l68(li))l61(li,l66,&l119,sizeof(li[0]));l42=(0==0);l88=0;
for(l44=0;l44<l81;l44++){int l7=l69[l47+l44]&((1<<14)-1),l149=l69[l47+
l44]&(1<<14),l152=l69[l47+l44]&(1<<15);if(l26>l38){static char ln[128];if(
l7<256){lp(ln,"'%c'",l7);}else if(l7<512){lp(ln,"\"%s\"",l102[l7-256]);
}else if(l7<512+9){lp(ln,"{%s}",l109[l7-512]);}else{lp(ln,"<%s>",l109[l7-
512]);}l111=ln;l38=l26;}if(l7<256){if((lm[l26].l35!=4)||(lm[l26].ln[0
]!=l7))l42=(0!=0);else l26++;}else if(l7<512){if((lm[l26].l35!=5)||(l49(
l102[l7-256],lm[l26].ln)!=0))l42=(0!=0);else l26++;}else if(l7<512+9){int
l97=ld;if(lm[l26].l35!=l156[l7-512]){l42=(0!=0);}else{li[ld++]=l7;li[ld
++]=1;li[ld++]=1;li[ld++]=l26++;li[l39+3+l88++]=l97;}}else{int l97=ld;if
(l152){int l154=l26;if(!l95(l7,l83+1)){li[l39+3+l88++]=-1;}else{l42=(0!=
0);}l26=l154;}else if(l149){int l173=l26;if(l95(l7,l83+1)){li[l39+3+l88
++]=l97;l26=l173;}else{l42=(0!=0);}}else{if(l95(l7,l83+1)){li[l39+3+l88++
]=l97;}else{l42=(0!=0);}}}if(!l42)break;}l47+=l81;if(l42)break;}return(l42);}struct
l166{int l184;int l63;char*l56;char*l180;char*l143;int l74;};struct l166 l9[]={{
1000,2,"AST_Add","+","ADD",3},{1001,2,"AST_Sub","-","SUB",3},{1002,2,
"AST_Mul","*","MUL",3},{1003,2,"AST_Div","/","DIV",3},{1004,2,
"AST_Mod","%","MOD",3},{1005,2,"AST_AddAss","+=","ADDI",3},{1006,2,
"AST_SubAss","-=","SUBI",3},{1007,2,"AST_MulAss","*=","MULI",3},{1008
,2,"AST_DivAss","/=","DIVI",3},{1009,2,"AST_ModAss","%=","MODI",3},{
1010,1,"AST_Post_Inc","()++","",1},{1011,1,"AST_Pre_Inc","++()","",1}
,{1012,1,"AST_Post_Dec","()--","",1},{1013,1,"AST_Pre_Dec","--()","",
1},{1014,2,"AST_Idx","[]","POPI    4",3},{1015,2,"AST_Member",".",
"ADDI",3},{1016,2,"AST_Ptr","->","ADD",3},{1017,2,"AST_Call","()","",
3},{1018,3,"AST_Cond","( ? : )","",7},{1019,1,"AST_Type",
"simple type","",1},{1020,1,"AST_Return","return","RET",0},{1021,2,
"AST_ReturnResult","return ...","RET",2},{1022,2,"AST_LE","<=",
"CMPLE",3},{1023,2,"AST_GT",">","CMPGT",3},{1024,2,"AST_LT","<",
"CMPLT",3},{1025,2,"AST_GE",">=","CMPGE",3},{1026,2,"AST_EQ","==",
"CMPEQ",3},{1027,2,"AST_NE","!=","CMPNE",3},{1028,3,"AST_IFTHENELSE",
"if () ... else ...","",7},{1029,2,"AST_IFTHEN","if () ...","",3},{
1030,1,"AST_UNeg","-()","NEG",1},{1031,1,"AST_UPos","+()","NOOP",1},{
1032,1,"AST_UBitNot","~()","NOT",1},{1033,1,"AST_UBoolNot","!()",
"BNOT",1},{1034,2,"AST_BoolAnd","&&","BAND",3},{1035,2,"AST_BoolOr",
"||","BOR",3},{1036,2,"AST_ShortcutBoolAnd","&&","",3},{1037,2,
"AST_ShortcutBoolOr","||","",3},{1038,2,"AST_BitAnd","&","AND",3},{
1039,2,"AST_BitOr","|","OR",3},{1040,2,"AST_BitAndAss","&=","ANDI",3}
,{1041,2,"AST_BitOrAss","|=","ORI",3},{1042,2,"AST_BitXor","^","XOR",
3},{1043,2,"AST_BitXorAss","^=","XORI",3},{1044,2,"AST_BitLsh","<<",
"LSH",3},{1045,2,"AST_BitRsh",">>","RSH",3},{1046,2,"AST_BitLshAss",
"<<=","LSHI",3},{1047,2,"AST_BitRshAss",">>=","RSHI",3},{1048,2,
"AST_Const","Const","",0},{1049,2,"AST_Var","Var","",0},{1050,2,
"AST_AssignTo","=","POPI",3},{1051,2,"AST_Declare","VarDec","",3},{
1052,4,"AST_DefProc","DefProc","",7},{1053,1,"AST_DefParam",
"DefParam","",1},{1054,2,"AST_UseParam","Param","",3},{1055,1,
"AST_AddressOf","&","",1},{1056,1,"AST_IndirectThrough","*","PUSHI",1
},{1057,2,"AST_SizeOf","sizeof","",0},{1058,4+3,"AST_C_ForLoop",
"for (;;) ...","",15<<3},{1059,2+3,"AST_C_While","while () ...","",3
<<3},{1060,2+3,"AST_C_DoWhile","do ... while ();","",3<<3},{1061,1,
"AST_C_Break","break","",0},{1062,1,"AST_C_Continue","continue","",0}
,{1063,2,"AST_Cast","()...","",2},{1064,2,"AST_Label","lab:","",2},{
1065,2,"AST_Case","case <n>:","",2},{1066,1,"AST_DefaultCase",
"default:","",0},{1067,1,"AST_Goto","goto ...","",1},{1068,5,
"AST_Switch","switch (...)","",3<<3},{1069,1,"AST_Sourceline","src",
"",1},{1070,1,"AST_LINENO","Line #","",1},{1071,1,"AST_REDIRECT",
"REDIR","",1},{1072,2,"AST_SEQ",";","",3},{1073,2,"AST_CommaSEQ",",",
"",3},{1074,1,"AST_LINEAR_BLOB","BLOB","",0},{-1,0,(char* )0}};static int
l27=0;int la[64*1024];static int l132=-1;void l117(char*ln,char*lg){lr(l2,ln,lg
);lr(l2,"Text cells used = %d, Code cells used = %d\n\n",lv,l27);l87(
l2);l18(2);}int l150(int ld){return lz(1048,li[ld+4],lm[li[ld+4]].ln[0]);}
int l162(int ld){return lz(1048,li[ld+4],l192(lm[li[ld+4]].ln));}int l146(int
ld){return lz(1048,li[ld+4],li[ld+4]);}int l60(int l79,int l6,int lb[]){int l14
;int l75;l14=l27;la[l14]=l79;la[l14+1]=l6;for(l75=0;l75<l6;l75++){la[
l14+l75+2]=lb[l75+1];}l27+=2+l6;return l14;}int l11(int l79,int l21){int l14;
l14=l27;la[l14]=l79;la[l14+1]=1;la[l14+2]=l21;l27+=3;return l14;}int lz(int
l79,int l165,int l145){int l14;l14=l27;la[l14]=l79;la[l14+1]=2;la[l14+2]
=l165;la[l14+3]=l145;l27+=4;return l14;}int l73(int l115){char ln[128];int l14
=l27;lp(ln,"%d",l115);la[l27]=1048;la[l27+1]=2;la[l27+2]=l171(ln);la[
l27+3]=l115;l27+=4;return l14;}void l8(int lg,int l144){la[lg]=1071;la[lg+2]
=l73(l144);}int lk(int ld,int l160){int lb[100];int l39;int l7;int ll;int l81
;int lu;l39=ld;l7=li[ld++]&((1<<14)-1);ll=li[ld++];l81=li[ld++];if((l7
<512)||(l7>740)){lr(l2,
"* Internal error: build_ast(%d) called from line %d - phrase = %d\n"
,ld,l160,l7);l18(1);}switch(l7){case 512:return-1;case 513:case 514:case 515:case 516:
case 517:case 518:case 519:case 520:if(lm[li[ld]].l37>l132)l132=lm[li[ld]].
l37;return li[ld];case 521:if(ll==0){lb[1]=lk(li[ld+0],163);lb[2]=lk(li[ld+
1],164);return lz(1072,lb[1],lb[2]);}else{return-1;}return lb[0];case 522:if(ll==0){
lb[1]=lk(li[ld+0],188);lb[2]=lk(li[ld+1],189);if(lb[2]!=-1)return 4;return l73
(lb[0]&65535);}else if((ll==1)||(ll==2)){if(ll==1){lb[1]=lk(li[ld+0],
194);lb[2]=lk(li[ld+1],195);lb[3]=lk(li[ld+2],196);lb[4]=lk(li[ld+3],
197);lb[5]=lk(li[ld+4],198);lb[6]=lk(li[ld+5],199);}else{lb[1]=-1;lb[2]
=lk(li[ld+0],202);lb[3]=lk(li[ld+1],203);lb[4]=lk(li[ld+2],204);lb[5]
=lk(li[ld+3],205);lb[6]=-1;}lb[0]=lz(1017,lb[3],lb[4]);if(lb[1]!=-1)lb
[0]=l11(lb[1],lb[0]);if(lb[5]!=-1){lb[7]=lb[5];while(la[(lb[5])+2]!=-1)lb
[5]=la[(lb[5])+2];la[(lb[5])+2]=lb[0];lb[0]=lb[7];}if(lb[6]!=-1){lb[7
]=lb[6];while(la[(lb[6])+2]!=-1)lb[6]=la[(lb[6])+2];la[(lb[6])+2]=lb[0]
;lb[0]=lb[7];}return lb[0];}else if(ll==3){lb[1]=lk(li[ld+0],231);lb[2]=lk(
li[ld+1],232);lb[3]=lk(li[ld+2],233);if((lb[2]==-1)&&(lb[3]==-1))return lb
[1];if(lb[2]==-1)return l11(lb[3],lb[1]);lb[0]=lb[2];while(la[(lb[2])+2]!=-
1)lb[2]=la[(lb[2])+2];la[(lb[2])+2]=lb[1];if(lb[3]==-1)return lb[0];return l11
(lb[3],lb[0]);}else if(ll==4){return l162(ld+0);}else if(ll==5){return l150(ld+0);
}else if(ll==6){return l146(ld+0);}else{return lk(li[ld+0],248);}case 523:if(ll<=1){
if(ll==0){lb[1]=lk(li[ld+0],261);lb[2]=lk(li[ld+1],262);lb[3]=lk(li[
ld+2],263);lb[4]=lk(li[ld+3],264);lb[5]=lk(li[ld+4],265);lb[6]=lk(li[
ld+5],266);}else{lb[1]=-1;lb[2]=lk(li[ld+0],269);lb[3]=lk(li[ld+1],270);
lb[4]=lk(li[ld+2],271);lb[5]=lk(li[ld+3],272);lb[6]=-1;}lb[0]=lz(1017
,lb[3],lb[4]);if(lb[1]!=-1)lb[0]=l11(lb[1],lb[0]);if(lb[5]!=-1){lb[7]
=lb[5];while(la[(lb[5])+2]!=-1)lb[5]=la[(lb[5])+2];la[(lb[5])+2]=lb[0];
lb[0]=lb[7];}if(lb[6]!=-1){lb[7]=lb[6];while(la[(lb[6])+2]!=-1)lb[6]=la
[(lb[6])+2];la[(lb[6])+2]=lb[0];lb[0]=lb[7];}return lb[0];}else{lb[1]=lk(li
[ld+0],298);lb[2]=lk(li[ld+1],299);lb[3]=lk(li[ld+2],300);if((lb[2]==
-1)&&(lb[3]==-1))return lb[1];if(lb[2]==-1)return l11(lb[3],lb[1]);lb[0]=lb[2
];while(la[(lb[2])+2]!=-1)lb[2]=la[(lb[2])+2];la[(lb[2])+2]=lb[1];if(lb
[3]==-1)return lb[0];return l11(lb[3],lb[0]);}case 524:if(ll==0)return 1010;if(ll==
1)return 1012;return-1;case 525:if(ll==3)return-1;lb[1]=lk(li[ld+0],334);lb[2]=lk(
li[ld+1],335);if(ll==0){lb[3]=lz(1014,-1,lb[1]);}else if(ll==1){lb[3]=
lz(1015,-1,lb[1]);}else if(ll==2){lb[3]=lz(1016,-1,lb[1]);}if(lb[2]==-1
)return lb[3];lb[0]=lb[2];while(la[(lb[2])+2]!=-1)lb[2]=la[(lb[2])+2];la[(
lb[2])+2]=lb[3];return lb[0];case 526:if(ll==0){lb[1]=lk(li[ld+0],359);return lz
(1057,lb[1],2);}else{lb[1]=lk(li[ld+2],364);lb[2]=lk(li[ld+3],365);return lz
(1017,lb[1],lb[2]);}case 527:case 528:if(ll==0){lb[1]=lk(li[ld+0],380);lb
[2]=lk(li[ld+1],381);return lz(1054,lb[1],lb[2]);}else{return lz(1054,-1,-1);}
case 529:if(ll==0){lb[1]=lk(li[ld+0],396);lb[2]=lk(li[ld+1],397);lb[3]=
lk(li[ld+2],398);lb[0]=lb[1];while(la[(lb[1])+2]!=-1)lb[1]=la[(lb[1])+2
];la[(lb[1])+2]=lb[3];return lb[0];}return lk(li[ld+0],405);case 530:return-1;case 531
:if(ll==0){lb[1]=lk(li[ld+0],418);lb[2]=lk(li[ld+1],419);lb[0]=lb[1];
while(la[(lb[0])+2]!=-1)lb[0]=la[(lb[0])+2];la[(lb[0])+2]=lb[2];return lb[1
];}else{lb[1]=lk(li[ld+0],425);lb[2]=lk(li[ld+1],426);if(lb[1]==-1)return lb
[2];lb[0]=lb[1];while(la[(lb[0])+2]!=-1)lb[0]=la[(lb[0])+2];la[(lb[0])+
2]=lb[2];return lb[1];}case 532:if(ll==0){return l11(1011,-1);}else if(ll==1){return
l11(1013,-1);}else if(ll==2){lb[1]=lk(li[ld+0],448);lb[2]=lk(li[ld+1],
449);if(lb[1]==-1)return lb[2];lb[0]=lb[1];while(la[(lb[1])+2]!=-1)lb[1]=la
[(lb[1])+2];la[(lb[1])+2]=lb[2];return lb[0];}else if(ll==3){return l11(1055,-1
);}else{return lz(1057,-1,0);}case 533:if(ll==0){return l11(1011,-1);}else if(ll==1
){return l11(1013,-1);}else if(ll==2){return l11(1031,-1);}else if(ll==3){return l11(
1030,-1);}else if(ll==4){return l11(1033,-1);}else if(ll==5){return l11(1032,-1);
}else if(ll==6){return lk(li[ld+0],491);}else if(ll==7){return lk(li[ld+0],494);}
else if(ll==8){return l11(1055,-1);}else if(ll==9){return lz(1057,-1,1);}return-1;case
534:lb[1]=lk(li[ld+0],515);lb[2]=lk(li[ld+1],516);if(lb[2]==-1)return lz(
1063,-1,lb[1]);lb[0]=lb[2];while(la[(lb[2])+2]!=-1)lb[2]=la[(lb[2])+2];
la[(lb[2])+2]=lb[1];return lz(1063,-1,lb[0]);case 535:return l11(1056,lk(li[ld+
0],528));case 536:if(ll==0)return lk(li[ld+0],535);return-1;case 537:return-1;case 538:
return-1;case 539:return-1;case 540:if(ll==0)return 0;if(ll==1)return(1<<16)-1;lb[0]=lk(
li[ld+0],574);if(ll==2)return(1<<16)-1;if(ll<=4)return 8+lb[0];if(ll==7)return 4+
lb[0];if(ll<=9)return 2+lb[0];if(ll<=10)return 1+lb[0];return(1<<16)-1;case 541:if(
ll==0)return 1<<16;if(ll==0)return 2<<16;return 0;case 542:case 543:case 544:case 545:case
546:case 547:case 548:case 549:case 550:case 551:case 552:lb[1]=lk(li[ld+0],632);
lb[2]=lk(li[ld+1],633);if(lb[2]==-1)return lb[1];lb[0]=lb[2];while(la[(lb[0
])+2]!=-1)lb[0]=la[(lb[0])+2];la[(lb[0])+2]=lb[1];return lb[2];case 553:case
554:case 555:case 556:case 557:case 558:case 559:case 560:case 561:case 562:if(ll==0){
lb[1]=lk(li[ld+0],695);lb[2]=lk(li[ld+1],696);lb[3]=lk(li[ld+2],697);
if(lb[3]==-1)return lz(lb[1],-1,lb[2]);lb[0]=lb[3];while(la[(lb[3])+2]!=-1)lb
[3]=la[(lb[3])+2];la[(lb[3])+2]=lz(lb[1],-1,lb[2]);return lb[3];}return-1;case
563:if(ll==0){return 1002;}else if(ll==1){return 1003;}else{return 1004;}case 564:if(ll
==0){return 1000;}else{return 1001;}case 565:if(ll==0){return 1044;}else{return 1045;}case 566
:if(ll==0){return 1022;}else if(ll==1){return 1024;}else if(ll==2){return 1025;}else{return
1023;}case 567:if(ll==0){return 1026;}else{return 1027;}case 568:return 1038;case 569:return-
1;case 570:return 1042;case 571:return 1039;case 572:return-1;case 573:return 1034;case 574:return
1035;case 575:if(ll==0){lb[1]=-1;lb[2]=lk(li[ld+0],816);lb[3]=lk(li[ld+
1],817);return l60(1018,3,lb);}else{return-1;}case 576:lb[1]=lk(li[ld+0],831);lb[
2]=lk(li[ld+1],832);if(lb[1]==-1)return lb[2];lb[0]=lb[1];while(la[(lb[0])+
3]!=-1)lb[0]=la[(lb[0])+3];la[(lb[0])+3]=lb[2];return lb[1];case 577:return-1;
case 578:if(ll==0){lb[1]=lk(li[ld+0],852);lb[2]=-1;lb[3]=lk(li[ld+2],
854);lb[4]=lk(li[ld+3],855);return lz(lb[3],lb[1],lb[4]);}else{return-1;}case 579
:if(ll==0){return 1050;}else if(ll==1){return 1005;}else if(ll==2){return 1006;}else if
(ll==3){return 1007;}else if(ll==4){return 1008;}else if(ll==5){return 1009;}else if(ll
==6){return 1040;}else if(ll==7){return 1043;}else if(ll==8){return 1041;}else if(ll==9
){return 1046;}else{return 1047;}case 580:case 581:if(ll==1)return-1;lb[1]=lk(li[ld+0],
913);lb[2]=lk(li[ld+1],914);if(lb[2]==-1)return lb[1];return lz(1073,lb[1],lb
[2]);case 582:return lk(li[ld+0],923);case 583:lb[1]=lk(li[ld+0],930);return lz(
1049,lb[1],0);case 584:lb[1]=lk(li[ld+0],937);return lz(1049,lb[1],1);case 585
:lb[1]=lk(li[ld+0],952);return lb[1];case 586:if(ll==0){return lz(1072,lz(1064,
lk(li[ld+0],962),-1),lk(li[ld+1],963));}else if(ll==1){return lz(1072,lz(
1065,lk(li[ld+0],965),-1),lk(li[ld+1],966));}return lz(1072,l11(1066,-1),
lk(li[ld+0],969));case 587:return lk(li[ld+0],975);case 588:return lk(li[ld+0],
979);case 589:if(ll==1)return-1;return lk(li[ld+0],984);case 590:lb[1]=lk(li[ld+0
],989);lb[2]=lk(li[ld+1],990);return lz(1072,lb[1],lb[2]);case 591:if(ll==1
)return-1;return lk(li[ld+0],998);case 592:lb[1]=lk(li[ld+0],1002);lb[2]=lk(li[
ld+1],1003);return lz(1072,lb[1],lb[2]);case 593:if(ll==0){return lk(li[ld+0],
1011);}else{lb[1]=lk(li[ld+0],1013);lb[2]=lk(li[ld+1],1014);return lz(1072,
lb[1],lb[2]);}case 594:return-1;case 595:lb[1]=lk(li[ld+0],1025);lb[2]=lk(li[
ld+1],1026);lb[3]=lk(li[ld+1],1027);lb[4]=lk(li[ld+1],1028);return-1;case
596:lb[1]=-1;lb[2]=lk(li[ld+0],1036);lb[3]=lk(li[ld+1],1037);lb[4]=lk
(li[ld+2],1038);if(ll==0){if(lb[4]==-1)return-1;return l60(1052,4,lb);}else if(
ll==1){}else{if(lb[4]==-1)return lb[3];return lz(1073,lb[3],lb[4]);}return-1;case 597
:return-1;case 598:if(ll==0)return-1;return lk(li[ld+0],1060);case 599:case 600:return-1;case
601:return-1;case 602:case 603:return-1;case 604:return-1;case 605:return-1;case 606:case 607:return-
1;case 608:return-1;case 609:return-1;case 610:return-1;case 611:case 612:if(ll==1)return-1;lb[
1]=lk(li[ld+0],1121);lb[2]=lk(li[ld+1],1122);if(lb[2]==-1)return lb[1];return
lz(1072,lb[1],lb[2]);case 613:lb[1]=lk(li[ld+0],1129);lb[2]=lk(li[ld+1]
,1130);if(ll==0){lb[3]=lk(li[ld+2],1132);if(lb[3]==-1)return lz(1029,lb[1
],lb[2]);return l60(1028,3,lb);}lb[3]=-1;lb[4]=-1;lb[5]=-1;return l60(1068,5,
lb);case 614:if(ll==1)return-1;lb[1]=lk(li[ld+0],1144);return lb[1];case 615:lb[1
]=lk(li[ld+0],1155);lb[2]=lk(li[ld+1],1156);lb[3]=-1;lb[4]=-1;lb[5]=-
1;if(ll==0){return l60(1059,2+3,lb);}else if(ll==1){return l60(1060,2+3,lb);}else
{lb[3]=lk(li[ld+2],1166);lb[4]=lk(li[ld+3],1167);lb[5]=-1;lb[6]=-1;lb
[7]=-1;return l60(1058,4+3,lb);}case 616:if(ll==0){lb[1]=lk(li[ld+0],1183);
return l11(1067,lb[1]);}else if(ll==1){return l11(1062,-1);}else if(ll==2){return l11
(1061,-1);}else{lb[1]=lk(li[ld+0],1191);if(lb[1]==-1){return l11(1020,-1);}
else{return lz(1021,lb[1],-1);}}case 617:lb[1]=lk(li[ld+0],1206);return l11(1019,
lb[1]);default:if((l7>=512)&&(l7<512+106)){l117(
"* Missing case label P_%s:\n",l109[l7-512]);}else{char lo[16];lp(lo,"%d"
,l7);l117("* Missing case label P_<<%s>>\n",lo);}}return-1;}int l128(void){
int ld=0;for(;;){int lx=la[ld],l6=la[ld+1];int l21=ld+2,l30=l9[lx-1000].
l74;int l5;if((lx>=1000)&&(lx<=1074)){lr(l20,"%4d: %s",ld,l9[lx-1000].
l56);}else{lr(l20,"%4d: %d",ld,lx);}l5=1<<(l6-1);for(;;){if(l21==ld+2+
l6)break;if(l30&l5)lr(l20," %d",la[l21]);l5=l5>>1;l21+=1;}lr(l20,"\n");
ld=ld+2+la[ld+1];if(ld>=l27)break;}lr(l20,"-----------------\n");}int l133
(int ld,int l83,int l138){int lx=la[ld],l6=la[ld+1];int l21=ld+2,l30;int l5
;if(ld==-1){return-1;}if((lx<1000)||(lx>1074)){lr(l2,
"%4d: oper = %d,  count = %d,  Children = %d (came from %4d:)\n",ld,
lx,l6,l9[lx-1000].l63,l138);l18(1);}else if(l6!=l9[lx-1000].l63){lr(l2,
"%4d: oper = %d (%s),  count = %d,  Children = %d (came from %4d:)\n"
,ld,lx,l9[lx-1000].l56,l6,l9[lx-1000].l63,l138);l87(l2);l113(l6==l9[
lx-1000].l63);}switch(lx){case 1049:lr(l20,"%4d: %s %s %d\n",ld,l9[lx-1000
].l56,lm[la[ld+2]].ln,la[ld+3]);break;case 1048:lr(l20,"%4d: %s %s\n",ld,
l9[lx-1000].l56,l118(lm[la[ld+2]].ln,lm[la[ld+2]].l35));break;default:if((lx
<1000)||(lx>1074)){lr(l2,
"* WARNING: show_ast oper=%d branched via 'default:' - add a case for it.\n"
,lx);}else{lr(l2,
"* WARNING: show_ast oper=%s branched via 'default:' - add a case for it.\n"
,l9[lx-1000].l56);}l18(0);case 1000:;case 1001:;case 1002:;case 1003:;case 1004
:;case 1005:;case 1006:;case 1007:;case 1008:;case 1009:;case 1010:;case 1011:;case
1012:;case 1013:;case 1014:;case 1015:;case 1016:;case 1017:;case 1018:;case 1019:;
case 1020:;case 1021:;case 1022:;case 1023:;case 1024:;case 1025:;case 1026:;case 1027
:;case 1028:;case 1029:;case 1068:;case 1030:;case 1031:;case 1032:;case 1033:;case
1034:;case 1035:;case 1036:;case 1037:;case 1038:;case 1039:;case 1040:;case 1041:;
case 1042:;case 1043:;case 1044:;case 1045:;case 1046:;case 1047:;case 1050:;case 1051
:;case 1052:;case 1053:;case 1054:;case 1055:;case 1056:;case 1058:;case 1059:;case
1060:;case 1061:;case 1062:;case 1063:;case 1057:;case 1065:;case 1066:;case 1064:;
case 1067:;case 1069:;case 1070:;case 1071:;case 1074:;case 1072:;case 1073:;l30=l9
[lx-1000].l74;lr(l20,"%4d: %s",ld,l9[lx-1000].l56);if(l30==0){lr(l20,
"\n");return;}l5=1<<(l6-1);for(;;){if(l21==ld+2+l6)break;if(l30&l5)lr(l20,
" %d",la[l21]);l5=l5>>1;l21+=1;}lr(l20,"\n");l5=1<<(l6-1);{l21=ld+2;
for(;;){if(l21==ld+2+l6)break;if(l30&l5)l133(la[l21],l83+1,ld);l5=l5>>1;
l21+=1;}}break;}l87(l20);return-1;}static char*l197=
"                                                                                        "
;void lt(char*l153,char*l172,char*l158,char*l161,char*l167){char l22[512];char*ln;int
l4=0,l188;lp(l22,"%s          ",l153);l22[9]=' ';l22[10]='\0';lp(l22+
10,"%s            ",l172);l22[18]=' ';l22[19]='\0';lp(l22+19,"%s%s ",
l158,l161);if(l58(l22)<55){l123(l22,
"                                                         ");l22[54]=
' ';l22[55]='\0';}l123(l22,"; ");l123(l22,l167);lr(l20,"%s\n",l22);}
int l3(int ld,int ly,int l1,int l0){char lo[128];int lx,l6;int l30;char*l92;char*
l91;int l5;if((ld==-1)||la[ld]==-1)return-1;while(la[ld]==1071)la[ld]=la[(la
[ld])+2];if((ld==-1)||la[ld]==-1)return-1;lx=la[ld];l6=la[ld+1];if((lx<
1000)||(lx>1074)){lr(l2,"* Bad oper %d at switch in genstack.c\n",lx);
l18(1);}l30=l9[lx-1000].l74;l92=l9[lx-1000].l56;l91=l9[lx-1000].l143;
if(l6!=l9[lx-1000].l63){lr(l2,"Oper = %d (%s)\n",lx,l92);l113(l6==l9[
lx-1000].l63);}switch(lx){case 1072:l3(la[(ld)+2],ly,l1,l0);l3(la[(ld)+3],
ly,l1,l0);break;case 1049:if(la[(ld)+3]==0){lt("","PUSH","",lm[la[(ld)+2]]
.ln,"AST_VAR 0");}else if(la[(ld)+3]==1){lt("","PUSH","&",lm[la[(ld)+2]
].ln,"AST_Var 1");}else{lr(l2,"VAR: rightchild(%d) (type) = %d\n",ld,la
[(ld)+3]);l113((unsigned int)la[(ld)+3]<=1);}break;case 1048:lt("","PUSH","#",
l118(lm[la[(ld)+2]].ln,lm[la[(ld)+2]].l35),"AST_Const");break;case 1073:l3
(la[(ld)+2],ly,l1,l0);if(la[(ld)+3]!=-1){lt("","POP","","","void");l3
(la[(ld)+3],ly,l1,l0);}break;case 1017:;{int l77,l90,l6;char l136[128];l113((
la[(ld)+3]==-1?-1:la[la[(ld)+3]])==1054);l77=la[(ld)+3];l6=0;while((l77
==-1?-1:la[l77])==1054){l6+=1;l77=la[(l77)+3];}l3(la[(ld)+3],ly,l1,l0
);l90=la[(ld)+2];if(l58(lm[la[(l90)+2]].ln)>102){lr(l2,
"Problematic string: \"%s\"\n",lm[la[(l90)+2]].ln);}lp(l136,"%s,%d",
lm[la[(l90)+2]].ln,l6-1);lt("","CALL","",l136,"AST_Call");}break;case 1064
:lt(lm[la[(la[(ld)+2])+2]].ln,"","","","AST_Label");break;case 1067:lt("",
"B","",lm[la[(la[(ld)+2])+2]].ln,"AST_Goto");break;case 1059:;lp(lo,
"__L%0d",la[(ld)+2+(2+2)]);lt(lo,"","","","START: AST_C_While");lp(lo
,"__L%0d",la[(ld)+2+(2+1)]);lt(lo,"","","","CONTINUE: AST_C_While");
l3(la[(ld)+2],ly,l1,l0);lp(lo,"__L%0d",la[(ld)+2+(2+0)]);lt("","BF",
"",lo,"");l3(la[(ld)+3],ly,l1,l0);lp(lo,"__L%0d",la[(ld)+2+(2+1)]);lt
("","B","",lo,"LOOP: AST_C_While");lp(lo,"__L%0d",la[(ld)+2+(2+0)]);
lt(lo,"","","","EXIT: AST_C_While");break;case 1060:;lp(lo,"__L%0d",la[(ld
)+2+(2+2)]);lt(lo,"","","","START: AST_C_DoWhile");l3(la[(ld)+2],ly,
l1,l0);lp(lo,"__L%0d",la[(ld)+2+(2+1)]);lt(lo,"","","",
"CONTINUE: AST_C_DoWhile");l3(la[(ld)+3],ly,l1,l0);lp(lo,"__L%0d",la[
(ld)+2+(2+2)]);lt("","BT","",lo,"LOOP: AST_C_While");lp(lo,"__L%0d",
la[(ld)+2+(2+0)]);lt(lo,"","","","EXIT: AST_C_DoWhile");break;case 1058:l3
(la[(ld)+2],ly,l1,l0);lp(lo,"__L%0d",la[(ld)+2+(2+4)]);lt(lo,"","",""
,"START: AST_C_ForLoop");l3(la[(ld)+3],ly,l1,l0);lp(lo,"__L%0d",la[(
ld)+2+(2+2)]);lt("","BF","",lo,"");l3(la[(ld)+2+(2+1)],ly,l1,l0);lp(
lo,"__L%0d",la[(ld)+2+(2+3)]);lt(lo,"","","",
"CONTINUE: AST_C_ForLoop");l3(la[(ld)+2+(2)],ly,l1,l0);lp(lo,"__L%0d"
,la[(ld)+2+(2+4)]);lt("","B","",lo,"LOOP: AST_C_ForLoop");lp(lo,
"__L%0d",la[(ld)+2+(2+2)]);lt(lo,"","","","EXIT: AST_C_ForLoop");break;
case 1061:if(la[(ld)+2]==-1){lr(l2,
"* ERROR: break (AST %4d:) does not know its jump destination.",ld);
l18(1);}lp(lo,"__L%0d",la[(ld)+2]);lt("","B","",lo,"AST_C_Break");break;
case 1062:if(la[(ld)+2]==-1){lr(l2,
"* ERROR: continue (AST %4d:) does not know its jump destination.",ld
);l18(1);}lp(lo,"__L%0d",la[(ld)+2]);lt("","B","",lo,"AST_C_Continue"
);break;case 1018:l3(la[(ld)+2],ly,l1,l0);lt("","DEC","","","Now -1 or 0");
lt("","DUP","","","");lt("","NEG","","","    0 or -1");l3(la[(ld)+3],
ly,l1,l0);lt("","AND","","","");lt("","SWAP","","",
"Condition back on top (two registers would be much neater)");l3(la[(
ld)+2+(2)],ly,l1,l0);lt("","AND","","",
"One result is 0, the other is the value");lt("","OR","","","");break;case
1022:;case 1023:;case 1024:;case 1025:;case 1026:;case 1027:;{l3(la[(ld)+2],ly,
l1,l0);l3(la[(ld)+3],ly,l1,l0);lt("",l91,"","","");if(ly!=l0){lp(lo,
"__L%0d",ly);lt("","BT","",lo,"");}if(l1!=l0){lp(lo,"__L%0d",l1);lt(
"","BF","",lo,"");}}break;case 1034:case 1036:case 1035:case 1037:if((0==0)){int
l142=ly,l135=l1,l151=l0;int ly,l1,l0;int l96=l23();if(((ld==-1?-1:la[ld
])==1034)||((ld==-1?-1:la[ld])==1036)){ly=l96;l1=l135;}else{ly=l142;l1=
l96;}l0=l96;if(((la[(ld)+2]==-1?-1:la[la[(ld)+2]])<1022)||((la[(ld)+2
]==-1?-1:la[la[(ld)+2]])>1027)){if(((la[(ld)+2]==-1?-1:la[la[(ld)+2]]
)<1034)||((la[(ld)+2]==-1?-1:la[la[(ld)+2]])>1037)){la[(ld)+2]=lz(
1027,la[(ld)+2],l73(0));}}l3(la[(ld)+2],ly,l1,l0);lp(lo,"__L%0d",l96);
lt(lo,"","","","nexttestlab");if(((la[(ld)+3]==-1?-1:la[la[(ld)+3]])<
1022)||((la[(ld)+3]==-1?-1:la[la[(ld)+3]])>1027)){if(((la[(ld)+3]==-1
?-1:la[la[(ld)+3]])<1034)||((la[(ld)+3]==-1?-1:la[la[(ld)+3]])>1037)){
la[(ld)+3]=lz(1027,la[(ld)+3],l73(0));}}l3(la[(ld)+3],l142,l135,l151);
}else{}break;case 1029:;if((0==0)){int l10=la[(ld)+2],l107=la[(ld)+3];{int ly=
l23();int l0=l23();if(((l10==-1?-1:la[l10])<1022)||((l10==-1?-1:la[l10
])>1027)){if(((l10==-1?-1:la[l10])<1034)||((l10==-1?-1:la[l10])>1037)){
l10=lz(1027,l10,l73(0));}}l3(l10,ly,l0,ly);lp(lo,"__L%0d",ly);lt(lo,
"","","","thenlab");l3(l107,-1,-1,-1);lp(lo,"__L%0d",l0);lt(lo,"","",
"","donelab");}}else{int l93=l23();lp(lo,"__L%0d",l93);l3(la[(ld)+2],ly,
l1,l0);lt("","BF","",lo,"START: if-then");l3(la[(ld)+3],ly,l1,l0);lt(
lo,"","","","END: if-then");}break;case 1028:;if((0==0)){int l10=la[(ld)+2]
,l107=la[(ld)+3],l170=la[(ld)+2+(2)];{int ly=l23();int l0=l23();int l1=
l23();if(((l10==-1?-1:la[l10])<1022)||((l10==-1?-1:la[l10])>1027)){if
(((l10==-1?-1:la[l10])<1034)||((l10==-1?-1:la[l10])>1037)){l10=lz(
1027,l10,l73(0));}}l3(l10,ly,l1,ly);lp(lo,"__L%0d",ly);lt(lo,"","",""
,"thenlab");l3(l107,-1,-1,-1);lp(lo,"__L%0d",l0);lt("","B","",lo,"");
lp(lo,"__L%0d",l1);lt(lo,"","","","elselab");l3(l170,-1,-1,-1);lp(lo,
"__L%0d",l0);lt(lo,"","","","donelab");}}else{int l93=l23(),l141=l23();
l3(la[(ld)+2],ly,l1,l0);lp(lo,"__L%0d",l93);lt("","BF","",lo,
"START: if-then");l3(la[(ld)+3],ly,l1,l0);lp(lo,"__L%0d",l141);lt("",
"B","",lo,"");lp(lo,"__L%0d",l93);lt(lo,"","","","ELSE:");l3(la[(ld)+
2+(2)],ly,l1,l0);lp(lo,"__L%0d",l141);lt(lo,"","","","END: if-then");
}break;default:if((lx<1000)||(lx>1074)){lr(l2,
"* WARNING: genstack oper=%d branched via 'default:' - add a case for it.\n"
,lx);}else{lr(l2,
"* WARNING: genstack oper=%s branched via 'default:' - add a case for it.\n"
,l9[lx-1000].l56);}l18(0);case 1000:;case 1001:;case 1002:;case 1003:;case 1004
:;case 1005:;case 1006:;case 1007:;case 1008:;case 1009:;case 1010:;case 1011:;case
1012:;case 1013:;case 1014:;case 1015:;case 1016:;case 1019:;case 1020:;case 1021:;
case 1030:;case 1031:;case 1032:;case 1033:;case 1038:;case 1039:;case 1040:;case 1041
:;case 1042:;case 1043:;case 1044:;case 1045:;case 1046:;case 1047:;case 1050:;case
1051:;case 1052:;case 1053:;case 1054:;case 1055:;case 1056:;case 1057:;case 1068:;
case 1065:;case 1066:;case 1063:;case 1069:;case 1070:;case 1071:;case 1074:;{int l21
=0;if((l6<=2)&&( *l91!='\0')){if(l6>=1)l3(la[(ld)+2],ly,l1,l0);if(l6
>=2)l3(la[(ld)+3],ly,l1,l0);lt("",l91,"","",l92);return;}l5=1<<(l6-1);for
(;;){if(l21==l6)break;if(l30&l5)l3(la[(ld)+2+(l21)],ly,l1,l0);l5=l5>>1;
l21+=1;}if(lx!=1054)lt("","","","",l92);}break;}l87(l20);return-1;}void l148(
void){}void l179(int lg){int l9,l110;if((lg==-1)||((lg==-1?-1:la[lg])==-1
))return;l9=(lg==-1?-1:la[lg]);l110=((lg)==-1?-1:la[(lg)+1]);if(l110==1){
if((la[(lg)+2]!=-1)&&((la[(lg)+2]==-1?-1:la[la[(lg)+2]])==1048)){switch(
l9){case 1030:l8(lg,-la[(la[(lg)+2])+3]);return;case 1031:l8(lg,+la[(la[(lg)+
2])+3]);return;case 1032:l8(lg,~la[(la[(lg)+2])+3]);return;case 1033:l8(lg,!la[(
la[(lg)+2])+3]);return;default:return;}}}else if(l110==2){if(((la[(lg)+2]==-1?-1:la
[la[(lg)+2]])==1048)&&((la[(lg)+3]==-1?-1:la[la[(lg)+3]])==1048)){switch
(l9){case 1000:l8(lg,la[(la[(lg)+2])+3]+la[(la[(lg)+3])+3]);return;case 1001:
l8(lg,la[(la[(lg)+2])+3]-la[(la[(lg)+3])+3]);return;case 1002:l8(lg,la[(la[
(lg)+2])+3] *la[(la[(lg)+3])+3]);return;case 1003:l8(lg,la[(la[(lg)+2])+3]/
la[(la[(lg)+3])+3]);return;case 1004:l8(lg,la[(la[(lg)+2])+3]%la[(la[(lg)+3
])+3]);return;case 1022:l8(lg,la[(la[(lg)+2])+3]<=la[(la[(lg)+3])+3]);return;case
1023:l8(lg,la[(la[(lg)+2])+3]>la[(la[(lg)+3])+3]);return;case 1024:l8(lg,la
[(la[(lg)+2])+3]<la[(la[(lg)+3])+3]);return;case 1025:l8(lg,la[(la[(lg)+2])+
3]>=la[(la[(lg)+3])+3]);return;case 1026:l8(lg,la[(la[(lg)+2])+3]==la[(la[(
lg)+3])+3]);return;case 1027:l8(lg,la[(la[(lg)+2])+3]!=la[(la[(lg)+3])+3]);
return;case 1034:l8(lg,la[(la[(lg)+2])+3]&&la[(la[(lg)+3])+3]);return;case 1035:
l8(lg,la[(la[(lg)+2])+3]||la[(la[(lg)+3])+3]);return;case 1036:l8(lg,la[(la
[(lg)+2])+3]&&la[(la[(lg)+3])+3]);return;case 1037:l8(lg,la[(la[(lg)+2])+3]
||la[(la[(lg)+3])+3]);return;case 1038:l8(lg,la[(la[(lg)+2])+3]&la[(la[(lg)+
3])+3]);return;case 1039:l8(lg,la[(la[(lg)+2])+3]|la[(la[(lg)+3])+3]);return;case
1042:l8(lg,la[(la[(lg)+2])+3]^la[(la[(lg)+3])+3]);return;case 1044:l8(lg,la
[(la[(lg)+2])+3]<<la[(la[(lg)+3])+3]);return;case 1045:l8(lg,la[(la[(lg)+2]
)+3]>>la[(la[(lg)+3])+3]);return;default:return;}}}else if(l9==1018){if(((la[(lg)+2
]==-1?-1:la[la[(lg)+2]])==1048)&&((la[(lg)+3]==-1?-1:la[la[(lg)+3]])==
1048)&&((la[(lg)+2+(2)]==-1?-1:la[la[(lg)+2+(2)]])==1048)){l8(lg,(la[
(la[(lg)+2])+3]?la[(la[(lg)+3])+3]:la[(la[(lg)+2+(2)])+3]));return;}}}void
l134(int lg){int lu,l30,l5;if((lg==-1)||((lg==-1?-1:la[lg])==-1))return;l30
=l9[(lg==-1?-1:la[lg])-1000].l74;l5=1<<(((lg)==-1?-1:la[(lg)+1])-1);
for(lu=0;lu<((lg)==-1?-1:la[(lg)+1]);lu++){if((la[(lg)+2+(lu)]!=-1)&&
(l30&l5)){l134(la[(lg)+2+(lu)]);while((la[(lg)+2+(lu)]==-1?-1:la[la[(lg
)+2+(lu)]])==1071)la[(lg)+2+(lu)]=la[(la[(lg)+2+(lu)])+2];}l5=l5>>1;}
l179(lg);}int l23(void){static int l121=999;l121+=1;return l121;}void l86(int lg,
int l32,int l46,int l53){int lu,l30,l5;if((lg==-1)||((lg==-1?-1:la[lg])==
-1))return;if((lg==-1?-1:la[lg])==1062){la[(lg)+2]=l46;return;}else if((lg==-1?
-1:la[lg])==1061){la[(lg)+2]=l32;return;}if(((lg==-1?-1:la[lg])==1059)||(
(lg==-1?-1:la[lg])==1060)){l32=la[(lg)+2+(2+0)];l46=la[(lg)+2+(2+1)];
l53=la[(lg)+2+(2+2)];if(l32==-1){la[(lg)+2+(2+0)]=l32=l23();la[(lg)+2
+(2+1)]=l46=l23();la[(lg)+2+(2+2)]=l53=l23();}l86(la[(lg)+3],l32,l46,
l53);return;}else if((lg==-1?-1:la[lg])==1058){l32=la[(lg)+2+(4+0)];l46=la[
(lg)+2+(4+1)];l53=la[(lg)+2+(4+2)];if(l32==-1){la[(lg)+2+(4+0)]=l32=
l23();la[(lg)+2+(4+1)]=l46=l23();la[(lg)+2+(4+2)]=l53=l23();}l86(la[(
lg)+2+(3)],l32,l46,l53);return;}else if((lg==-1?-1:la[lg])==1068){int l176,
l175;l32=la[(lg)+2+(2+0)];l176=la[(lg)+2+(2+1)];l175=la[(lg)+2+(2+2)]
;if(l32==-1){la[(lg)+2+(2)]=l32=l23();}l86(la[(lg)+3],l32,l46,l53);return
;}l30=l9[(lg==-1?-1:la[lg])-1000].l74;l5=1<<(((lg)==-1?-1:la[(lg)+1])-
1);for(lu=0;lu<((lg)==-1?-1:la[(lg)+1]);lu++){if((la[(lg)+2+(lu)]!=-1
)&&(l30&l5)){l86(la[(lg)+2+(lu)],l32,l46,l53);}l5=l5>>1;}}int main(int
l33,char* *l15){int l100=(0!=0),l185=(0!=0),l99=(0!=0),l112=(0!=0),l101=
(0!=0),l147=(0!=0);char*ln;l31=l196(l15[0]);if((ln=l65(l31,'/'))!=l28)l31
=ln+1;if((ln=l65(l31,'\\'))!=l28)l31=ln+1;if((ln=l65(l31,']'))!=l28)l31
=ln+1;if((ln=l65(l31,';'))!=l28) *ln='\0';if(((ln=l65(l31,'.'))!=l28)&&
(l164(ln,".exe")==0)) *ln='\0';if(((ln=l65(l31,'.'))!=l28)&&(l164(ln,
".com")==0)) *ln='\0';l70:if((l33>=2)&&l49(l15[1],"-O")==0){l15++;l33
--;l147=(0==0);goto l70;}if((l33>=2)&&l49(l15[1],"-d")==0){l15++;l33--
;l178=(0==0);goto l70;}if((l33>=2)&&l49(l15[1],"-3")==0){l15++;l33--;
l100=(0==0);goto l70;}if((l33>=2)&&l49(l15[1],"-s")==0){l15++;l33--;
l99=(0==0);goto l70;}if((l33>=2)&&l49(l15[1],"-c")==0){l15++;l33--;
l112=(0==0);goto l70;}if((l33>=2)&&l49(l15[1],"-e")==0){l15++;l33--;
l101=(0==0);goto l70;}if((l33>=2)&&l49(l15[1],"-h")==0){lr(l2,"%s:\n",
l31);lr(l2,"\t-3\tgenerate low-level 3-address code using c\n");lr(l2
,"\t-c\tgenerate high-level c translation\n");lr(l2,
"\t-s\tgenerate stack-based assembly code\n");lr(l2,
"\t-e\texecute directly\n");lr(l2,"\t-d\tdebug\n");lr(l2,
"\t-h\thelp (this info)\n");l18(0);}if(l33!=2){lr(l2,
"syntax: %s [-3cdehs] filename\n",l31);l18(1);}if(!(l100||l112||l101
||l99))l99=(0==0);l17=l159(l15[1],"r");if(l17==l28){lr(l2,
"%s: %s - %s\n",l31,l131(l98),l15[1]);l18(l98);}if(l101){l78=l20;}else{
char*ln;lp(l71,"%s",l15[1]);ln=l65(l71,'.');if(ln==l28)ln=l71+l58(l71);
if(l100||l112){lp(ln,"%s",".c");}else if(l99){lp(ln,"%s",".asm");}else{lr
(l2,"Won't\n");l18(123);}l78=l159(l71,"w");if(l78==l28){lr(l2,
"%s: cannot output to %s - %s\n",l31,l71,l131(l98));}}l41=l15[1];l139
=(0==0);l45=(0==0);l94=(char* )l182(512);l168();l190:if(!l95(521,0)){if
(l38==lv){lr(l2,
"\"%s\", Line %d, Col %d: Premature end of file while looking for %s\n"
,l15[1],lm[l38].l37,lm[l38].l4+1,l111);l18(1);}else{int lu;lr(l2,
"\"%s\", Line %d, Col %d: Syntax error while looking for %s near ",
l15[1],lm[l38].l37,lm[l38].l4+1,l111);for(lu=l38;lu<l38+3;lu++){if(lu
==lv){lr(l2,"<End of file>\n");l18(1);break;}switch(lm[lu].l35){case 1:case 4:
case 6:lr(l2,"%s",lm[lu].ln);break;case 7:lr(l2,"'%s'",lm[lu].ln);break;case 8:lr
(l2,"\"%s\"",lm[lu].ln);break;}lr(l2,(lu==(l38+2)?" ...":" "));}lr(l2,
"\n");l18(1);}l18(1);}else{int l52=lk(0,268);lr(l20,
"Text cells used = %d, Code cells used = %d\n",lv,l27);l87(l20);l128(
);l133(l52,0,-1);l134(l52);l86(l52,-1,-1,-1);l128();while((l52==-1?-1:
la[l52])==1071)l52=la[(l52)+2];l148();l3(l52,-1,-1,-1);lr(l20,"\n");
l87(l20);}l18(0);return(1);}
