void Cyc_save_reductions() { struct _fat_ptr _T0; unsigned char * _T1; short * _T2; struct _fat_ptr _T3; unsigned char * _T4; short * _T5; struct _fat_ptr _T6; struct _fat_ptr _T7; unsigned char * _T8; short * _T9; short _TA; int _TB; unsigned char * _TC; short * _TD; short _TE; struct _fat_ptr _TF; int _T10; int _T11; unsigned char * _T12; short * _T13; int _T14; struct _fat_ptr * _T15; int _T16; void * _T17; struct Cyc_reductions_tag * _T18; struct Cyc_reductions_tag * _T19; struct Cyc_core_tag * _T1A; struct Cyc_reductions_tag * _T1B; int _T1C; struct Cyc_reductions_tag * _T1D; struct _fat_ptr _T1E; int _T1F; short * _T20; unsigned int _T21; unsigned int _T22; struct Cyc_reductions_tag * _T23; struct _fat_ptr _T24; int _T25; struct _fat_ptr _T26; unsigned char * _T27; short * _T28; struct _fat_ptr _T29; unsigned char * _T2A; short * _T2B; struct _fat_ptr * _T2C; struct _fat_ptr _T2D; unsigned char * _T2E; short * _T2F; struct _fat_ptr * _T30; struct _fat_ptr _T31; unsigned char * _T32; short * _T33; struct Cyc_reductions_tag * _T34; unsigned int _T35; struct Cyc_reductions_tag * _T36; struct _fat_ptr isp; struct _fat_ptr rp1; struct _fat_ptr rp2; int item; int count; struct Cyc_reductions_tag * p; struct _fat_ptr rend; count = 0; isp = Cyc_itemset; _TL6C: _T0 = isp; _T1 = _T0.curr; _T2 = (short *)_T1; _T3 = Cyc_itemsetend; _T4 = _T3.curr; _T5 = (short *)_T4; if (_T2 < _T5) { goto _TL6A; }else { goto _TL6B; } _TL6A: _T6 = Cyc_ritem; _T7 = isp; _T8 = _check_fat_subscript(_T7,sizeof(short),0U); _T9 = (short *)_T8; _TA = *_T9; _TB = (int)_TA; _TC = _check_fat_subscript(_T6,sizeof(short),_TB); _TD = (short *)_TC; _TE = *_TD; item = (int)_TE; if (item >= 0) { goto _TL6D; } _TF = Cyc_redset; _T10 = count; count = _T10 + 1; _T11 = _T10; _T12 = _check_fat_subscript(_TF,sizeof(short),_T11); _T13 = (short *)_T12; _T14 = - item; *_T13 = (short)_T14; goto _TL6E; _TL6D: _TL6E: _T15 = &isp; _fat_ptr_inplace_plus(_T15,sizeof(short),1); goto _TL6C; _TL6B: _T16 = count; if (! _T16) { goto _TL6F; } _T17 = _cycalloc(sizeof(struct Cyc_reductions_tag)); p = (struct Cyc_reductions_tag *)_T17; _T18 = p; _T18->next = 0; _T19 = p; _T1A = _check_null(Cyc_this_state); _T19->number = _T1A->number; _T1B = p; _T1C = count; _T1B->nreds = (short)_T1C; _T1D = p; _T1F = count; { unsigned int _T37 = (unsigned int)_T1F; _T21 = _check_times(_T37,sizeof(short)); { short * _T38 = _cycalloc_atomic(_T21); { unsigned int _T39 = _T37; unsigned int _new2_cyclone; _new2_cyclone = 0; _TL74: if (_new2_cyclone < _T39) { goto _TL72; }else { goto _TL73; } _TL72: _T22 = _new2_cyclone; _T38[_T22] = 0; _new2_cyclone = _new2_cyclone + 1; goto _TL74; _TL73: ; }_T20 = (short *)_T38; }_T1E = _tag_fat(_T20,sizeof(short),_T37); }_T1D->rules = _T1E; rp1 = Cyc_redset; _T23 = p; rp2 = _T23->rules; _T24 = rp1; _T25 = count; rend = _fat_ptr_plus(_T24,sizeof(short),_T25); _TL75: _T26 = rp1; _T27 = _T26.curr; _T28 = (short *)_T27; _T29 = rend; _T2A = _T29.curr; _T2B = (short *)_T2A; if (_T28 < _T2B) { goto _TL76; }else { goto _TL77; } _TL76: _T2C = &rp2; _T2D = _fat_ptr_inplace_plus_post(_T2C,sizeof(short),1); _T2E = _check_fat_subscript(_T2D,sizeof(short),0U); _T2F = (short *)_T2E; _T30 = &rp1; _T31 = _fat_ptr_inplace_plus_post(_T30,sizeof(short),1); _T32 = _check_fat_subscript(_T31,sizeof(short),0U); _T33 = (short *)_T32; *_T2F = *_T33; goto _TL75; _TL77: _T34 = Cyc_last_reduction; _T35 = (unsigned int)_T34; if (! _T35) { goto _TL78; } _T36 = Cyc_last_reduction; _T36->next = p; Cyc_last_reduction = p; goto _TL79; _TL78: Cyc_first_reduction = p; Cyc_last_reduction = p; _TL79: goto _TL70; _TL6F: _TL70: ; }
struct Cyc_APQ_T*Cyc_APQ_fromstr(struct _fat_ptr str,int base){void*_T0;struct _fat_ptr _T1;unsigned char*_T2;const char*_T3;char _T4;int _T5;struct _fat_ptr _T6;unsigned char*_T7;const char*_T8;char _T9;int _TA;struct _fat_ptr*_TB;struct Cyc_APQ_T*_TC;struct _fat_ptr _TD;unsigned char*_TE;const char*_TF;int _T10;struct _fat_ptr _T11;unsigned char*_T12;const char*_T13;char _T14;int _T15;struct _fat_ptr _T16;struct _fat_ptr _T17;unsigned char*_T18;const char*_T19;int _T1A;int _T1B;struct Cyc_APQ_T*_T1C;struct Cyc_Invalid_argument_exn_struct*_T1D;void*_T1E;struct Cyc_APQ_T*_T1F;struct Cyc_APQ_T*_T20;_T0=_cycalloc(sizeof(struct Cyc_APQ_T));{ struct Cyc_APQ_T*q=(struct Cyc_APQ_T*)_T0; struct _fat_ptr s=str; _TL6: _T1=s;_T2=_check_fat_subscript(_T1,sizeof(char),0U);_T3=(const char*)_T2;_T4=*_T3;_T5=(int)_T4;if(_T5)goto _TL9;else{goto _TL8;}_TL9: _T6=s;_T7=_T6.curr;_T8=(const char*)_T7;_T9=*_T8;_TA=(int)_T9;if(_TA!=47)goto _TL7;else{goto _TL8;}_TL7: _TB=& s;_fat_ptr_inplace_plus(_TB,sizeof(char),1);goto _TL6;_TL8: _TC=q;_TD=str;_TE=_untag_fat_ptr_check_bound(_TD,sizeof(char),1U);_TF=(const char*)_TE;_T10=base; _TC->n=Cyc_AP_fromstr(_TF,_T10);_T11=s;_T12=_T11.curr;_T13=(const char*)_T12;_T14=*_T13;_T15=(int)_T14; if(!_T15)goto _TLA;_T16=s;_T17= _fat_ptr_plus(_T16,sizeof(char),1);_T18=_untag_fat_ptr_check_bound(_T17,sizeof(char),1U);_T19=(const char*)_T18;_T1A=base;{struct Cyc_AP_T*d=Cyc_AP_fromstr(_T19,_T1A);_T1B= Cyc_AP_cmp(d,Cyc_AP_zero);if(!_T1B)goto _TLC;_T1C=q; _T1C->d=d;goto _TLD; _TLC:{struct Cyc_Invalid_argument_exn_struct*_T21=_cycalloc(sizeof(struct Cyc_Invalid_argument_exn_struct));_T21->tag=Cyc_Invalid_argument;_T21->f1=_tag_fat("APQ_fromstr: malformed string",sizeof(char),30U);_T1D=(struct Cyc_Invalid_argument_exn_struct*)_T21;}_T1E=(void*)_T1D;_throw(_T1E);_TLD:;}goto _TLB; # 54 _TLA: _T1F=q;_T1F->d=Cyc_AP_one;_TLB: _T20= Cyc_reduce(q);return _T20;}}
void Cyc_RTC(struct _fat_ptr R,int n) { int _T0; int _T1; int _T2; unsigned int _T3; unsigned int _T4; struct _fat_ptr _T5; int _T6; unsigned int _T7; unsigned int _T8; int _T9; struct _fat_ptr _TA; unsigned char * _TB; unsigned int * _TC; struct _fat_ptr _TD; unsigned char * _TE; unsigned int * _TF; struct _fat_ptr _T10; unsigned char * _T11; unsigned int * _T12; unsigned int _T13; struct _fat_ptr * _T14; struct _fat_ptr _T15; int _T16; unsigned int _T17; unsigned int _T18; int _T19; register int rowsize; register unsigned int mask; struct _fat_ptr rp; struct _fat_ptr relend; Cyc_TC(R,n); _T0 = n + 32; _T1 = _T0 - 1; _T2 = _T1 / 32; _T3 = (unsigned int)_T2; _T4 = _T3 * sizeof(unsigned int); rowsize = (int)_T4; _T5 = R; _T6 = n * rowsize; _T7 = (unsigned int)_T6; _T8 = _T7 / sizeof(unsigned int); _T9 = (int)_T8; relend = _fat_ptr_plus(_T5,sizeof(unsigned int),_T9); mask = 1U; rp = R; _TLD: _TA = rp; _TB = _TA.curr; _TC = (unsigned int *)_TB; _TD = relend; _TE = _TD.curr; _TF = (unsigned int *)_TE; if (_TC < _TF) { goto _TLE; }else { goto _TLF; } _TLE: _T10 = rp; _T11 = _check_fat_subscript(_T10,sizeof(unsigned int),0U); _T12 = (unsigned int *)_T11; _T13 = mask; *_T12 = *_T12 | _T13; mask = mask << 1U; if (mask != 0U) { goto _TL10; } mask = 1U; _T14 = &rp; _fat_ptr_inplace_plus(_T14,sizeof(unsigned int),1); goto _TL11; _TL10: _TL11: _T15 = rp; _T16 = rowsize; _T17 = (unsigned int)_T16; _T18 = _T17 / sizeof(unsigned int); _T19 = (int)_T18; rp = _fat_ptr_plus(_T15,sizeof(unsigned int),_T19); goto _TLD; _TLF: ; }
void Cyc_set_nullable() { struct _fat_ptr _T0; int _T1; unsigned int _T2; char * _T3; unsigned int _T4; unsigned int _T5; struct _fat_ptr _T6; int _T7; struct _fat_ptr _T8; int _T9; short * _TA; unsigned int _TB; unsigned int _TC; struct _fat_ptr _TD; int _TE; short * _TF; unsigned int _T10; unsigned int _T11; struct _fat_ptr _T12; int _T13; struct Cyc_shorts_tag * * _T14; unsigned int _T15; unsigned int _T16; struct _fat_ptr _T17; int _T18; struct _fat_ptr _T19; int _T1A; int _T1B; struct Cyc_shorts_tag * _T1C; unsigned int _T1D; unsigned int _T1E; unsigned int _T1F; struct _fat_ptr _T20; unsigned char * _T21; short * _T22; short _T23; int _T24; struct _fat_ptr _T25; unsigned char * _T26; short * _T27; short _T28; int _T29; struct _fat_ptr _T2A; struct _fat_ptr * _T2B; struct _fat_ptr _T2C; unsigned char * _T2D; short * _T2E; short _T2F; short _T30; int _T31; unsigned char * _T32; short * _T33; short _T34; struct _fat_ptr _T35; int _T36; unsigned char * _T37; char * _T38; char _T39; int _T3A; struct _fat_ptr _T3B; int _T3C; unsigned char * _T3D; char * _T3E; unsigned int _T3F; unsigned char * _T40; char * _T41; struct _fat_ptr * _T42; struct _fat_ptr _T43; unsigned char * _T44; short * _T45; int _T46; struct _fat_ptr * _T47; struct _fat_ptr _T48; unsigned char * _T49; short * _T4A; short _T4B; struct _fat_ptr * _T4C; struct _fat_ptr _T4D; unsigned char * _T4E; short * _T4F; short _T50; char _T51; int _T52; struct _fat_ptr * _T53; struct _fat_ptr _T54; unsigned char * _T55; short * _T56; short _T57; struct _fat_ptr _T58; int _T59; unsigned char * _T5A; short * _T5B; struct _fat_ptr _T5C; unsigned char * _T5D; struct Cyc_shorts_tag * _T5E; struct _fat_ptr _T5F; int _T60; unsigned char * _T61; struct Cyc_shorts_tag * * _T62; struct _fat_ptr _T63; unsigned char * _T64; struct Cyc_shorts_tag * _T65; int _T66; struct _fat_ptr _T67; unsigned char * _T68; struct Cyc_shorts_tag * * _T69; int _T6A; struct _fat_ptr _T6B; unsigned char * _T6C; struct _fat_ptr * _T6D; struct _fat_ptr * _T6E; struct _fat_ptr _T6F; unsigned char * _T70; short * _T71; short _T72; struct _fat_ptr _T73; unsigned char * _T74; short * _T75; struct _fat_ptr _T76; unsigned char * _T77; short * _T78; struct _fat_ptr _T79; struct _fat_ptr * _T7A; struct _fat_ptr _T7B; unsigned char * _T7C; short * _T7D; short _T7E; int _T7F; unsigned char * _T80; struct Cyc_shorts_tag * * _T81; struct Cyc_shorts_tag * _T82; struct _fat_ptr _T83; unsigned char * _T84; unsigned int _T85; struct _fat_ptr _T86; unsigned char * _T87; struct Cyc_shorts_tag * _T88; short _T89; struct _fat_ptr _T8A; unsigned char * _T8B; struct Cyc_shorts_tag * _T8C; struct Cyc_shorts_tag * _T8D; struct _fat_ptr _T8E; int _T8F; unsigned char * _T90; short * _T91; short _T92; int _T93; struct _fat_ptr _T94; int _T95; unsigned char * _T96; short * _T97; short _T98; struct _fat_ptr _T99; int _T9A; unsigned char * _T9B; char * _T9C; char _T9D; int _T9E; struct _fat_ptr _T9F; int _TA0; unsigned char * _TA1; char * _TA2; unsigned int _TA3; unsigned char * _TA4; char * _TA5; struct _fat_ptr * _TA6; struct _fat_ptr _TA7; unsigned char * _TA8; short * _TA9; int _TAA; struct _fat_ptr _TAB; int _TAC; struct _fat_ptr r; struct _fat_ptr s1; struct _fat_ptr s2; register int ruleno; register int symbol; struct _fat_ptr p; struct _fat_ptr squeue; struct _fat_ptr rcount; struct _fat_ptr rsets; struct _fat_ptr relts; char any_tokens; struct _fat_ptr r1; _T1 = Cyc_nvars; _T2 = (unsigned int)_T1; { unsigned int _TAD = _T2 + 1U; _T4 = _check_times(_TAD,sizeof(char)); { char * _TAE = _cycalloc_atomic(_T4); { unsigned int _TAF = _TAD; unsigned int i; i = 0; _TL3: if (i < _TAF) { goto _TL1; }else { goto _TL2; } _TL1: _T5 = i; _TAE[_T5] = '\000'; i = i + 1; goto _TL3; _TL2: _TAE[_TAF] = 0; }_T3 = (char *)_TAE; }_T0 = _tag_fat(_T3,sizeof(char),_TAD); }{ struct _fat_ptr temp_string = _T0; _T6 = temp_string; _T7 = - Cyc_ntokens; Cyc_nullable = _fat_ptr_plus(_T6,sizeof(char),_T7); _T9 = Cyc_nvars; { unsigned int _TAD = (unsigned int)_T9; _TB = _check_times(_TAD,sizeof(short)); { short * _TAE = _cycalloc_atomic(_TB); { unsigned int _TAF = _TAD; unsigned int _new2_cyclone; _new2_cyclone = 0; _TL7: if (_new2_cyclone < _TAF) { goto _TL5; }else { goto _TL6; } _TL5: _TC = _new2_cyclone; _TAE[_TC] = 0; _new2_cyclone = _new2_cyclone + 1; goto _TL7; _TL6: ; }_TA = (short *)_TAE; }_T8 = _tag_fat(_TA,sizeof(short),_TAD); }squeue = _T8; s2 = squeue; s1 = s2; _TE = Cyc_nrules + 1; { unsigned int _TAD = (unsigned int)_TE; _T10 = _check_times(_TAD,sizeof(short)); { short * _TAE = _cycalloc_atomic(_T10); { unsigned int _TAF = _TAD; unsigned int _new2_cyclone; _new2_cyclone = 0; _TLB: if (_new2_cyclone < _TAF) { goto _TL9; }else { goto _TLA; } _TL9: _T11 = _new2_cyclone; _TAE[_T11] = 0; _new2_cyclone = _new2_cyclone + 1; goto _TLB; _TLA: ; }_TF = (short *)_TAE; }_TD = _tag_fat(_TF,sizeof(short),_TAD); }rcount = _TD; _T13 = Cyc_nvars; { unsigned int _TAD = (unsigned int)_T13; _T15 = _check_times(_TAD,sizeof(struct Cyc_shorts_tag *)); { struct Cyc_shorts_tag * * _TAE = _cycalloc(_T15); { unsigned int _TAF = _TAD; unsigned int _new2p_cyclone; _new2p_cyclone = 0; _TLF: if (_new2p_cyclone < _TAF) { goto _TLD; }else { goto _TLE; } _TLD: _T16 = _new2p_cyclone; _TAE[_T16] = 0; _new2p_cyclone = _new2p_cyclone + 1; goto _TLF; _TLE: ; }_T14 = (struct Cyc_shorts_tag * *)_TAE; }_T12 = _tag_fat(_T14,sizeof(struct Cyc_shorts_tag *),_TAD); }_T17 = _T12; _T18 = - Cyc_ntokens; rsets = _fat_ptr_plus(_T17,sizeof(struct Cyc_shorts_tag *),_T18); _T1A = Cyc_nitems + Cyc_nvars; _T1B = _T1A + 1; { unsigned int _TAD = (unsigned int)_T1B; _T1D = _check_times(_TAD,sizeof(struct Cyc_shorts_tag)); { struct Cyc_shorts_tag * _TAE = _cycalloc(_T1D); { unsigned int _TAF = _TAD; unsigned int _temp_; _temp_ = 0; _TL13: if (_temp_ < _TAF) { goto _TL11; }else { goto _TL12; } _TL11: _T1E = _temp_; (_TAE[_T1E]).next = 0; _T1F = _temp_; (_TAE[_T1F]).value = 0; _temp_ = _temp_ + 1; goto _TL13; _TL12: ; }_T1C = (struct Cyc_shorts_tag *)_TAE; }_T19 = _tag_fat(_T1C,sizeof(struct Cyc_shorts_tag),_TAD); }relts = _T19; p = relts; r = Cyc_ritem; _TL14: _T20 = r; _T21 = _check_fat_subscript(_T20,sizeof(short),0U); _T22 = (short *)_T21; _T23 = *_T22; _T24 = (int)_T23; if (_T24) { goto _TL15; }else { goto _TL16; } _TL15: _T25 = r; _T26 = _T25.curr; _T27 = (short *)_T26; _T28 = *_T27; _T29 = (int)_T28; if (_T29 >= 0) { goto _TL17; } _T2A = Cyc_rlhs; _T2B = &r; _T2C = _fat_ptr_inplace_plus_post(_T2B,sizeof(short),1); _T2D = _T2C.curr; _T2E = (short *)_T2D; _T2F = *_T2E; _T30 = - _T2F; _T31 = (int)_T30; _T32 = _check_fat_subscript(_T2A,sizeof(short),_T31); _T33 = (short *)_T32; _T34 = *_T33; symbol = (int)_T34; if (symbol < 0) { goto _TL19; } _T35 = Cyc_nullable; _T36 = symbol; _T37 = _check_fat_subscript(_T35,sizeof(char),_T36); _T38 = (char *)_T37; _T39 = *_T38; _T3A = (int)_T39; if (_T3A) { goto _TL19; }else { goto _TL1B; } _TL1B: _T3B = Cyc_nullable; _T3C = symbol; { struct _fat_ptr _TAD = _fat_ptr_plus(_T3B,sizeof(char),_T3C); _T3D = _TAD.curr; _T3E = (char *)_T3D; { char _TAE = *_T3E; char _TAF = '\001'; _T3F = _get_fat_size(_TAD,sizeof(char)); if (_T3F != 1U) { goto _TL1C; } if (_TAE != 0) { goto _TL1C; } if (_TAF == 0) { goto _TL1C; } _throw_arraybounds(); goto _TL1D; _TL1C: _TL1D: _T40 = _TAD.curr; _T41 = (char *)_T40; *_T41 = _TAF; } }_T42 = &s2; _T43 = _fat_ptr_inplace_plus_post(_T42,sizeof(short),1); _T44 = _check_fat_subscript(_T43,sizeof(short),0U); _T45 = (short *)_T44; _T46 = symbol; *_T45 = (short)_T46; goto _TL1A; _TL19: _TL1A: goto _TL18; _TL17: r1 = r; any_tokens = '\000'; _T47 = &r; _T48 = _fat_ptr_inplace_plus_post(_T47,sizeof(short),1); _T49 = _T48.curr; _T4A = (short *)_T49; _T4B = *_T4A; symbol = (int)_T4B; _TL21: if (symbol > 0) { goto _TL1F; }else { goto _TL20; } _TL1F: if (symbol >= Cyc_ntokens) { goto _TL22; } any_tokens = '\001'; goto _TL23; _TL22: _TL23: _T4C = &r; _T4D = _fat_ptr_inplace_plus_post(_T4C,sizeof(short),1); _T4E = _check_fat_subscript(_T4D,sizeof(short),0U); _T4F = (short *)_T4E; _T50 = *_T4F; symbol = (int)_T50; goto _TL21; _TL20: _T51 = any_tokens; _T52 = (int)_T51; if (_T52) { goto _TL24; }else { goto _TL26; } _TL26: ruleno = - symbol; r = r1; _T53 = &r; _T54 = _fat_ptr_inplace_plus_post(_T53,sizeof(short),1); _T55 = _T54.curr; _T56 = (short *)_T55; _T57 = *_T56; symbol = (int)_T57; _TL2A: if (symbol > 0) { goto _TL28; }else { goto _TL29; } _TL28: _T58 = rcount; _T59 = ruleno; _T5A = _check_fat_subscript(_T58,sizeof(short),_T59); _T5B = (short *)_T5A; *_T5B = *_T5B + 1; _T5C = p; _T5D = _check_fat_subscript(_T5C,sizeof(struct Cyc_shorts_tag),0U); _T5E = (struct Cyc_shorts_tag *)_T5D; _T5F = rsets; _T60 = symbol; _T61 = _check_fat_subscript(_T5F,sizeof(struct Cyc_shorts_tag *),_T60); _T62 = (struct Cyc_shorts_tag * *)_T61; _T5E->next = *_T62; _T63 = p; _T64 = _T63.curr; _T65 = (struct Cyc_shorts_tag *)_T64; _T66 = ruleno; _T65->value = (short)_T66; _T67 = rsets; _T68 = _T67.curr; _T69 = (struct Cyc_shorts_tag * *)_T68; _T6A = symbol; _T6B = p; _T6C = _untag_fat_ptr(_T6B,sizeof(struct Cyc_shorts_tag),1U); _T69[_T6A] = (struct Cyc_shorts_tag *)_T6C; _T6D = &p; _fat_ptr_inplace_plus(_T6D,sizeof(struct Cyc_shorts_tag),1); _T6E = &r; _T6F = _fat_ptr_inplace_plus_post(_T6E,sizeof(short),1); _T70 = _check_fat_subscript(_T6F,sizeof(short),0U); _T71 = (short *)_T70; _T72 = *_T71; symbol = (int)_T72; goto _TL2A; _TL29: goto _TL25; _TL24: _TL25: _TL18: goto _TL14; _TL16: _TL2B: _T73 = s1; _T74 = _T73.curr; _T75 = (short *)_T74; _T76 = s2; _T77 = _T76.curr; _T78 = (short *)_T77; if (_T75 < _T78) { goto _TL2C; }else { goto _TL2D; } _TL2C: _T79 = rsets; _T7A = &s1; _T7B = _fat_ptr_inplace_plus_post(_T7A,sizeof(short),1); _T7C = _check_fat_subscript(_T7B,sizeof(short),0U); _T7D = (short *)_T7C; _T7E = *_T7D; _T7F = (int)_T7E; _T80 = _check_fat_subscript(_T79,sizeof(struct Cyc_shorts_tag *),_T7F); _T81 = (struct Cyc_shorts_tag * *)_T80; _T82 = *_T81; p = _tag_fat(_T82,sizeof(struct Cyc_shorts_tag),1U); _TL2E: _T83 = p; _T84 = _T83.curr; _T85 = (unsigned int)_T84; if (_T85) { goto _TL2F; }else { goto _TL30; } _TL2F: _T86 = p; _T87 = _check_fat_subscript(_T86,sizeof(struct Cyc_shorts_tag),0U); _T88 = (struct Cyc_shorts_tag *)_T87; _T89 = _T88->value; ruleno = (int)_T89; _T8A = p; _T8B = _T8A.curr; _T8C = (struct Cyc_shorts_tag *)_T8B; _T8D = _T8C->next; p = _tag_fat(_T8D,sizeof(struct Cyc_shorts_tag),1U); _T8E = rcount; _T8F = ruleno; _T90 = _check_fat_subscript(_T8E,sizeof(short),_T8F); _T91 = (short *)_T90; *_T91 = *_T91 + -1; _T92 = *_T91; _T93 = (int)_T92; if (_T93 != 0) { goto _TL31; } _T94 = Cyc_rlhs; _T95 = ruleno; _T96 = _check_fat_subscript(_T94,sizeof(short),_T95); _T97 = (short *)_T96; _T98 = *_T97; symbol = (int)_T98; if (symbol < 0) { goto _TL33; } _T99 = Cyc_nullable; _T9A = symbol; _T9B = _check_fat_subscript(_T99,sizeof(char),_T9A); _T9C = (char *)_T9B; _T9D = *_T9C; _T9E = (int)_T9D; if (_T9E) { goto _TL33; }else { goto _TL35; } _TL35: _T9F = Cyc_nullable; _TA0 = symbol; { struct _fat_ptr _TAD = _fat_ptr_plus(_T9F,sizeof(char),_TA0); _TA1 = _TAD.curr; _TA2 = (char *)_TA1; { char _TAE = *_TA2; char _TAF = '\001'; _TA3 = _get_fat_size(_TAD,sizeof(char)); if (_TA3 != 1U) { goto _TL36; } if (_TAE != 0) { goto _TL36; } if (_TAF == 0) { goto _TL36; } _throw_arraybounds(); goto _TL37; _TL36: _TL37: _TA4 = _TAD.curr; _TA5 = (char *)_TA4; *_TA5 = _TAF; } }_TA6 = &s2; _TA7 = _fat_ptr_inplace_plus_post(_TA6,sizeof(short),1); _TA8 = _check_fat_subscript(_TA7,sizeof(short),0U); _TA9 = (short *)_TA8; _TAA = symbol; *_TA9 = (short)_TAA; goto _TL34; _TL33: _TL34: goto _TL32; _TL31: _TL32: goto _TL2E; _TL30: goto _TL2B; _TL2D: squeue = _tag_fat(0,0,0); rcount = _tag_fat(0,0,0); _TAB = rsets; _TAC = Cyc_ntokens; rsets = _fat_ptr_plus(_TAB,sizeof(struct Cyc_shorts_tag *),_TAC); rsets = _tag_fat(0,0,0); relts = _tag_fat(0,0,0); } }
void Cyc_TC(struct _fat_ptr R,int n) { int _T0; int _T1; int _T2; unsigned int _T3; unsigned int _T4; struct _fat_ptr _T5; int _T6; unsigned int _T7; unsigned int _T8; int _T9; struct _fat_ptr _TA; unsigned char * _TB; unsigned int * _TC; struct _fat_ptr _TD; unsigned char * _TE; unsigned int * _TF; struct _fat_ptr _T10; unsigned char * _T11; unsigned int * _T12; struct _fat_ptr _T13; unsigned char * _T14; unsigned int * _T15; struct _fat_ptr _T16; unsigned char * _T17; unsigned int * _T18; unsigned int _T19; unsigned int _T1A; unsigned int _T1B; int _T1C; struct _fat_ptr _T1D; int _T1E; int _T1F; int _T20; struct _fat_ptr _T21; unsigned char * _T22; unsigned int * _T23; struct _fat_ptr _T24; unsigned char * _T25; unsigned int * _T26; struct _fat_ptr * _T27; struct _fat_ptr _T28; unsigned char * _T29; unsigned int * _T2A; struct _fat_ptr * _T2B; struct _fat_ptr _T2C; unsigned char * _T2D; unsigned int * _T2E; unsigned int _T2F; struct _fat_ptr _T30; int _T31; unsigned int _T32; unsigned int _T33; int _T34; struct _fat_ptr _T35; int _T36; unsigned int _T37; unsigned int _T38; int _T39; struct _fat_ptr * _T3A; struct _fat_ptr _T3B; int _T3C; unsigned int _T3D; unsigned int _T3E; int _T3F; register int rowsize; register unsigned int mask; struct _fat_ptr rowj; struct _fat_ptr rp; struct _fat_ptr rend; struct _fat_ptr ccol; struct _fat_ptr relend; struct _fat_ptr cword; struct _fat_ptr rowi; _T0 = n + 32; _T1 = _T0 - 1; _T2 = _T1 / 32; _T3 = (unsigned int)_T2; _T4 = _T3 * sizeof(unsigned int); rowsize = (int)_T4; _T5 = R; _T6 = n * rowsize; _T7 = (unsigned int)_T6; _T8 = _T7 / sizeof(unsigned int); _T9 = (int)_T8; relend = _fat_ptr_plus(_T5,sizeof(unsigned int),_T9); cword = R; mask = 1U; rowi = R; _TL0: _TA = rowi; _TB = _TA.curr; _TC = (unsigned int *)_TB; _TD = relend; _TE = _TD.curr; _TF = (unsigned int *)_TE; if (_TC < _TF) { goto _TL1; }else { goto _TL2; } _TL1: ccol = cword; rowj = R; _TL3: _T10 = rowj; _T11 = _T10.curr; _T12 = (unsigned int *)_T11; _T13 = relend; _T14 = _T13.curr; _T15 = (unsigned int *)_T14; if (_T12 < _T15) { goto _TL4; }else { goto _TL5; } _TL4: _T16 = ccol; _T17 = _check_fat_subscript(_T16,sizeof(unsigned int),0U); _T18 = (unsigned int *)_T17; _T19 = *_T18; _T1A = mask; _T1B = _T19 & _T1A; _T1C = (int)_T1B; if (! _T1C) { goto _TL6; } rp = rowi; _T1D = rowj; _T1E = rowsize; _T1F = (int)sizeof(unsigned int); _T20 = _T1E / _T1F; rend = _fat_ptr_plus(_T1D,sizeof(unsigned int),_T20); _TL8: _T21 = rowj; _T22 = _T21.curr; _T23 = (unsigned int *)_T22; _T24 = rend; _T25 = _T24.curr; _T26 = (unsigned int *)_T25; if (_T23 < _T26) { goto _TL9; }else { goto _TLA; } _TL9: _T27 = &rowj; _T28 = _fat_ptr_inplace_plus_post(_T27,sizeof(unsigned int),1); _T29 = _check_fat_subscript(_T28,sizeof(unsigned int),0U); _T2A = (unsigned int *)_T29; _T2B = &rp; _T2C = _fat_ptr_inplace_plus_post(_T2B,sizeof(unsigned int),1); _T2D = _check_fat_subscript(_T2C,sizeof(unsigned int),0U); _T2E = (unsigned int *)_T2D; _T2F = *_T2E; *_T2A = *_T2A | _T2F; goto _TL8; _TLA: goto _TL7; _TL6: _T30 = rowj; _T31 = rowsize; _T32 = (unsigned int)_T31; _T33 = _T32 / sizeof(unsigned int); _T34 = (int)_T33; rowj = _fat_ptr_plus(_T30,sizeof(unsigned int),_T34); _TL7: _T35 = ccol; _T36 = rowsize; _T37 = (unsigned int)_T36; _T38 = _T37 / sizeof(unsigned int); _T39 = (int)_T38; ccol = _fat_ptr_plus(_T35,sizeof(unsigned int),_T39); goto _TL3; _TL5: mask = mask << 1U; if (mask != 0U) { goto _TLB; } mask = 1U; _T3A = &cword; _fat_ptr_inplace_plus(_T3A,sizeof(unsigned int),1); goto _TLC; _TLB: _TLC: _T3B = rowi; _T3C = rowsize; _T3D = (unsigned int)_T3C; _T3E = _T3D / sizeof(unsigned int); _T3F = (int)_T3E; rowi = _fat_ptr_plus(_T3B,sizeof(unsigned int),_T3F); goto _TL0; _TL2: ; }