예제 #1
0
void Cyc_usage(struct Cyc___cycFILE * stream) {
  struct Cyc_String_pa_PrintArg_struct _T0;
  struct Cyc___cycFILE * _T1;
  struct _fat_ptr _T2;
  struct _fat_ptr _T3;
  { struct Cyc_String_pa_PrintArg_struct _T4;
    _T4.tag = 0;
    _T4.f1 = Cyc_program_name;
    _T0 = _T4;
  }{ struct Cyc_String_pa_PrintArg_struct _T4 = _T0;
    void * _T5[1];
    _T5[0] = &_T4;
    _T1 = stream;
    _T2 = _tag_fat("Usage: %s [-dhklnTvyv] [-b file-prefix] [-o outfile] [-p name-prefix]\n       [--debug] [--defines] [--fixed-output-files] [--no-lines]\n       [--verbose] [--version] [--help] [--yacc]\n       [--no-parser] [--token-table]\n       [--file-prefix=prefix] [--name-prefix=prefix]\n       [--output=outfile] grammar-file\n",
		   sizeof(char),314U);
    _T3 = _tag_fat(_T5,sizeof(void *),1);
    Cyc_fprintf(_T1,_T2,_T3);
  }
}
예제 #2
0
static void Cyc_Callgraph_print_fndecl(struct Cyc___cycFILE * f,struct Cyc_Absyn_Fndecl * fd) {
  struct Cyc_String_pa_PrintArg_struct _T0;
  struct Cyc_Absyn_Fndecl * _T1;
  struct _tuple0 * _T2;
  struct Cyc___cycFILE * _T3;
  struct _fat_ptr _T4;
  struct _fat_ptr _T5;
  { struct Cyc_String_pa_PrintArg_struct _T6;
    _T6.tag = 0;
    _T1 = fd;
    _T2 = _T1->name;
    _T6.f1 = Cyc_Absynpp_qvar2string(_T2);
    _T0 = _T6;
  }{ struct Cyc_String_pa_PrintArg_struct _T6 = _T0;
    void * _T7[1];
    _T7[0] = &_T6;
    _T3 = f;
    _T4 = _tag_fat("%s ",sizeof(char),4U);
    _T5 = _tag_fat(_T7,sizeof(void *),1);
    Cyc_fprintf(_T3,_T4,_T5);
  }
}
예제 #3
0
void Cyc_getargs(int argc,struct _fat_ptr argv) {
  int _T0;
  struct _fat_ptr _T1;
  struct _fat_ptr _T2;
  struct Cyc_option * _T3;
  struct _fat_ptr _T4;
  int _T5;
  int _T6;
  int _T7;
  int _T8;
  struct Cyc_String_pa_PrintArg_struct _T9;
  struct _fat_ptr _TA;
  struct _fat_ptr _TB;
  struct Cyc_String_pa_PrintArg_struct _TC;
  struct Cyc___cycFILE * _TD;
  struct _fat_ptr _TE;
  struct _fat_ptr _TF;
  int _T10;
  int _T11;
  struct Cyc_String_pa_PrintArg_struct _T12;
  struct Cyc_String_pa_PrintArg_struct _T13;
  struct _fat_ptr _T14;
  int _T15;
  unsigned char * _T16;
  struct _fat_ptr * _T17;
  struct Cyc___cycFILE * _T18;
  struct _fat_ptr _T19;
  struct _fat_ptr _T1A;
  struct _fat_ptr _T1B;
  int _T1C;
  unsigned char * _T1D;
  struct _fat_ptr * _T1E;
  register int c;
  Cyc_verboseflag = 0;
  Cyc_definesflag = 0;
  Cyc_debugflag = 0;
  Cyc_noparserflag = 0;
  Cyc_rawtoknumflag = 0;
  Cyc_toknumflag = 0;
  Cyc_fixed_outfiles = 0;
  _TL0: _T0 = argc;
  _T1 = argv;
  _T2 = _tag_fat("yvdhrltknVo:b:p:",sizeof(char),17U);
  _T3 = Cyc_longopts;
  _T4 = _tag_fat(_T3,sizeof(struct Cyc_option),16U);
  c = Cyc_getopt_long(_T0,_T1,_T2,_T4,0);
  _T5 = c;
  _T6 = - 1;
  if (_T5 != _T6) { goto _TL1;
  }else { goto _TL2;
  }
  _TL1: _T7 = c;
  _T8 = (int)_T7;
  switch (_T8) {
  case 0: 
    goto _LL0;
  case 121: 
    Cyc_fixed_outfiles = 1;
    goto _LL0;
  case 104: 
    Cyc_usage(Cyc_stdout);
    exit(0);
    goto _LL0;
  case 86: 
    { struct Cyc_String_pa_PrintArg_struct _T1F;
      _T1F.tag = 0;
      _T1F.f1 = Cyc_version_string;
      _T9 = _T1F;
    }{ struct Cyc_String_pa_PrintArg_struct _T1F = _T9;
      void * _T20[1];
      _T20[0] = &_T1F;
      _TA = _tag_fat("%s",sizeof(char),3U);
      _TB = _tag_fat(_T20,sizeof(void *),1);
      Cyc_printf(_TA,_TB);
    }exit(0);
    goto _LL0;
  case 118: 
    Cyc_verboseflag = 1;
    goto _LL0;
  case 100: 
    Cyc_definesflag = 1;
    goto _LL0;
  case 108: 
    Cyc_nolinesflag = 1;
    goto _LL0;
  case 107: 
    Cyc_toknumflag = 1;
    goto _LL0;
  case 114: 
    Cyc_rawtoknumflag = 1;
    goto _LL0;
  case 110: 
    Cyc_noparserflag = 1;
    goto _LL0;
  case 116: 
    Cyc_debugflag = 1;
    goto _LL0;
  case 111: 
    Cyc_spec_outfile = Cyc_optarg;
    goto _LL0;
  case 98: 
    Cyc_spec_file_prefix = Cyc_optarg;
    goto _LL0;
  case 112: 
    Cyc_spec_name_prefix = Cyc_optarg;
    goto _LL0;
  default: 
    Cyc_usage(Cyc_stderr);
    exit(1);
    goto _LL0;
  }
  _LL0: goto _TL0;
  _TL2: if (Cyc_optind != argc) { goto _TL4;
  }
  { struct Cyc_String_pa_PrintArg_struct _T1F;
    _T1F.tag = 0;
    _T1F.f1 = Cyc_program_name;
    _TC = _T1F;
  }{ struct Cyc_String_pa_PrintArg_struct _T1F = _TC;
    void * _T20[1];
    _T20[0] = &_T1F;
    _TD = Cyc_stderr;
    _TE = _tag_fat("%s: no grammar file given\n",sizeof(char),27U);
    _TF = _tag_fat(_T20,sizeof(void *),1);
    Cyc_fprintf(_TD,_TE,_TF);
  }exit(1);
  goto _TL5;
  _TL4: _TL5: _T10 = Cyc_optind;
  _T11 = argc - 1;
  if (_T10 >= _T11) { goto _TL6;
  }
  { struct Cyc_String_pa_PrintArg_struct _T1F;
    _T1F.tag = 0;
    _T1F.f1 = Cyc_program_name;
    _T12 = _T1F;
  }{ struct Cyc_String_pa_PrintArg_struct _T1F = _T12;
    { struct Cyc_String_pa_PrintArg_struct _T20;
      _T20.tag = 0;
      _T14 = argv;
      _T15 = Cyc_optind;
      _T16 = _check_fat_subscript(_T14,sizeof(struct _fat_ptr),_T15);
      _T17 = (struct _fat_ptr *)_T16;
      _T20.f1 = *_T17;
      _T13 = _T20;
    }{ struct Cyc_String_pa_PrintArg_struct _T20 = _T13;
      void * _T21[2];
      _T21[0] = &_T1F;
      _T21[1] = &_T20;
      _T18 = Cyc_stderr;
      _T19 = _tag_fat("%s: extra arguments ignored after '%s'\n",sizeof(char),
		      40U);
      _T1A = _tag_fat(_T21,sizeof(void *),2);
      Cyc_fprintf(_T18,_T19,_T1A);
    }
  }goto _TL7;
  _TL6: _TL7: _T1B = argv;
  _T1C = Cyc_optind;
  _T1D = _check_fat_subscript(_T1B,sizeof(struct _fat_ptr),_T1C);
  _T1E = (struct _fat_ptr *)_T1D;
  Cyc_infile = *_T1E;
}
예제 #4
0
static int Cyc_RenameTemps_rename_visit_f1(struct Cyc_RenameTemps_Env*env,struct Cyc_Absyn_Exp*e){struct Cyc_Absyn_Exp*_T0;int*_T1;int _T2;struct Cyc_Absyn_Var_e_Absyn_Raw_exp_struct*_T3;void**_T4;void**_T5;void*_T6;int _T7;struct _handler_cons*_T8;int _T9;void**_TA;void*(*_TB)(struct Cyc_Dict_Dict,struct _tuple0*);void*(*_TC)(struct Cyc_Dict_Dict,void*);struct Cyc_RenameTemps_Env*_TD;struct Cyc_Dict_Dict _TE;struct _tuple0*_TF;void*_T10;struct Cyc_String_pa_PrintArg_struct _T11;struct Cyc___cycFILE*_T12;struct _fat_ptr _T13;struct _fat_ptr _T14;_T0=e;{
void*_T15=_T0->r;void*_T16;_T1=(int*)_T15;_T2=*_T1;if(_T2!=1)goto _TL6;{struct Cyc_Absyn_Var_e_Absyn_Raw_exp_struct*_T17=(struct Cyc_Absyn_Var_e_Absyn_Raw_exp_struct*)_T15;_T3=(struct Cyc_Absyn_Var_e_Absyn_Raw_exp_struct*)_T15;_T4=& _T3->f1;_T16=(void**)_T4;}{void**b=(void**)_T16;_T5=b;_T6=*_T5;{
# 59
struct _tuple0*qv=Cyc_Absyn_binding2qvar(_T6);_T7=
Cyc_RenameTemps_is_temp_var(qv);if(!_T7)goto _TL8;{struct _handler_cons _T17;_T8=& _T17;_push_handler(_T8);{int _T18=0;_T9=setjmp(_T17.handler);if(!_T9)goto _TLA;_T18=1;goto _TLB;_TLA: _TLB: if(_T18)goto _TLC;else{goto _TLE;}_TLE: _TA=b;_TC=Cyc_Dict_lookup;{
# 62
void*(*_T19)(struct Cyc_Dict_Dict,struct _tuple0*)=(void*(*)(struct Cyc_Dict_Dict,struct _tuple0*))_TC;_TB=_T19;}_TD=env;_TE=_TD->d;_TF=qv;*_TA=_TB(_TE,_TF);_pop_handler();goto _TLD;_TLC: _T10=Cyc_Core_get_exn_thrown();{void*_T19=(void*)_T10;{struct Cyc_String_pa_PrintArg_struct _T1A;_T1A.tag=0;
# 65
_T1A.f1=Cyc_Absynpp_exp2string(e);_T11=_T1A;}{struct Cyc_String_pa_PrintArg_struct _T1A=_T11;void*_T1B[1];_T1B[0]=& _T1A;_T12=Cyc_stderr;_T13=_tag_fat("can't find var %s!!!\n",sizeof(char),22U);_T14=_tag_fat(_T1B,sizeof(void*),1);Cyc_fprintf(_T12,_T13,_T14);}goto _LL5;_LL5:;}_TLD:;}}goto _TL9;_TL8: _TL9:
# 69
 return 0;}}_TL6:
 return 1;;}}
예제 #5
0
void Cyc_Hashtable_print_hist(struct Cyc_Hashtable_Table * t) {
  struct Cyc_Hashtable_Table * _T0;
  struct _fat_ptr _T1;
  struct _fat_ptr _T2;
  unsigned int * _T3;
  unsigned int _T4;
  unsigned int _T5;
  struct _fat_ptr _T6;
  unsigned char * _T7;
  struct Cyc_Hashtable_Bucket * _T8;
  struct Cyc_Hashtable_Bucket * _T9;
  unsigned int _TA;
  int _TB;
  struct Cyc_Hashtable_Bucket _TC;
  struct _fat_ptr _TD;
  unsigned char * _TE;
  unsigned int * _TF;
  unsigned int _T10;
  int _T11;
  unsigned int _T12;
  struct Cyc_Int_pa_PrintArg_struct _T13;
  unsigned int _T14;
  int _T15;
  struct Cyc_Int_pa_PrintArg_struct _T16;
  struct _fat_ptr _T17;
  unsigned char * _T18;
  unsigned int * _T19;
  unsigned int _T1A;
  int _T1B;
  unsigned int _T1C;
  int _T1D;
  struct Cyc_Double_pa_PrintArg_struct _T1E;
  struct _fat_ptr _T1F;
  unsigned char * _T20;
  unsigned int * _T21;
  unsigned int _T22;
  int _T23;
  unsigned int _T24;
  unsigned int _T25;
  unsigned int _T26;
  unsigned int _T27;
  struct Cyc___cycFILE * _T28;
  struct _fat_ptr _T29;
  struct _fat_ptr _T2A;
  _T0 = t;
  { struct _fat_ptr odata = _T0->tab;
    _T1 = odata;
    { unsigned int osize = _get_fat_size(_T1,sizeof(struct Cyc_Hashtable_Bucket));
      { unsigned int _T2B = osize;
	_T4 = _check_times(_T2B,sizeof(unsigned int));
	{ unsigned int * _T2C = _cycalloc_atomic(_T4);
	  { unsigned int _T2D = _T2B;
	    unsigned int i;
	    i = 0;
	    _TL5E: if (i < _T2D) { goto _TL5C;
	    }else { goto _TL5D;
	    }
	    _TL5C: _T5 = i;
	    _T6 = odata;
	    _T7 = _T6.curr;
	    _T8 = (struct Cyc_Hashtable_Bucket *)_T7;
	    _T9 = _check_null(_T8);
	    _TA = i;
	    _TB = (int)_TA;
	    _TC = _T9[_TB];
	    _T2C[_T5] = _TC.length;
	    i = i + 1;
	    goto _TL5E;
	    _TL5D: ;
	  }_T3 = (unsigned int *)_T2C;
	}_T2 = _tag_fat(_T3,sizeof(unsigned int),_T2B);
      }{ struct _fat_ptr counts = _T2;
	unsigned int sum = 0U;
	{ unsigned int i = 0U;
	  _TL62: if (i < osize) { goto _TL60;
	  }else { goto _TL61;
	  }
	  _TL60: _TD = counts;
	  _TE = _TD.curr;
	  _TF = (unsigned int *)_TE;
	  _T10 = i;
	  _T11 = (int)_T10;
	  _T12 = _TF[_T11];
	  sum = sum + _T12;
	  i = i + 1;
	  goto _TL62;
	  _TL61: ;
	}if (sum != 0U) { goto _TL63;
	}
	sum = 1U;
	goto _TL64;
	_TL63: _TL64: { unsigned int i = 0U;
	  _TL68: if (i < osize) { goto _TL66;
	  }else { goto _TL67;
	  }
	  _TL66: { struct Cyc_Int_pa_PrintArg_struct _T2B;
	    _T2B.tag = 1;
	    _T14 = i;
	    _T15 = (int)_T14;
	    _T2B.f1 = (unsigned long)_T15;
	    _T13 = _T2B;
	  }{ struct Cyc_Int_pa_PrintArg_struct _T2B = _T13;
	    { struct Cyc_Int_pa_PrintArg_struct _T2C;
	      _T2C.tag = 1;
	      _T17 = counts;
	      _T18 = _T17.curr;
	      _T19 = (unsigned int *)_T18;
	      _T1A = i;
	      _T1B = (int)_T1A;
	      _T1C = _T19[_T1B];
	      _T1D = (int)_T1C;
	      _T2C.f1 = (unsigned long)_T1D;
	      _T16 = _T2C;
	    }{ struct Cyc_Int_pa_PrintArg_struct _T2C = _T16;
	      { struct Cyc_Double_pa_PrintArg_struct _T2D;
		_T2D.tag = 2;
		_T1F = counts;
		_T20 = _T1F.curr;
		_T21 = (unsigned int *)_T20;
		_T22 = i;
		_T23 = (int)_T22;
		_T24 = _T21[_T23];
		_T25 = sum;
		_T26 = _T24 / _T25;
		_T27 = _T26 * 100U;
		_T2D.f1 = (double)_T27;
		_T1E = _T2D;
	      }{ struct Cyc_Double_pa_PrintArg_struct _T2D = _T1E;
		void * _T2E[3];
		_T2E[0] = &_T2B;
		_T2E[1] = &_T2C;
		_T2E[2] = &_T2D;
		_T28 = Cyc_stderr;
		_T29 = _tag_fat("%d: %d (%g pct)\n",sizeof(char),17U);
		_T2A = _tag_fat(_T2E,sizeof(void *),3);
		Cyc_fprintf(_T28,_T29,_T2A);
	      }
	    }
	  }i = i + 1;
	  goto _TL68;
	  _TL67: ;
	}
      }
    }
  }
}
예제 #6
0
파일: main.c 프로젝트: pippijn/cyclone-boot
int Cyc_main(int argc,struct _fat_ptr argv) {
  struct Cyc___cycFILE * _T0;
  struct _fat_ptr _T1;
  struct _fat_ptr _T2;
  struct _fat_ptr _T3;
  unsigned char * _T4;
  struct _fat_ptr * _T5;
  struct _fat_ptr _T6;
  unsigned char * _T7;
  struct _fat_ptr * _T8;
  struct _fat_ptr _T9;
  struct _fat_ptr _TA;
  long _TB;
  struct _fat_ptr _TC;
  struct _fat_ptr _TD;
  struct _fat_ptr _TE;
  struct _fat_ptr _TF;
  struct _handler_cons * _T10;
  int _T11;
  struct _fat_ptr _T12;
  struct _fat_ptr _T13;
  struct _fat_ptr _T14;
  struct _fat_ptr _T15;
  void * _T16;
  struct Cyc___cycFILE * _T17;
  struct _fat_ptr _T18;
  struct _fat_ptr _T19;
  struct _fat_ptr _T1A;
  unsigned char * _T1B;
  unsigned char * _T1C;
  const char * _T1D;
  struct _handler_cons * _T1E;
  int _T1F;
  struct _fat_ptr _T20;
  struct Cyc___cycFILE * _T21;
  struct Cyc___cycFILE * _T22;
  struct Cyc_Syntax_Lexer_definition * _T23;
  struct Cyc_Syntax_Location * _T24;
  struct Cyc_Compact_Lex_tables * _T25;
  struct Cyc_List_List * _T26;
  struct Cyc_Syntax_Lexer_definition * _T27;
  struct Cyc_Syntax_Location * _T28;
  void * _T29;
  struct Cyc_Parser_Parser_error_exn_struct * _T2A;
  char * _T2B;
  char * _T2C;
  struct Cyc_String_pa_PrintArg_struct _T2D;
  struct Cyc_Int_pa_PrintArg_struct _T2E;
  int _T2F;
  struct Cyc___cycFILE * _T30;
  struct _fat_ptr _T31;
  struct _fat_ptr _T32;
  struct Cyc_Lexer_Lexical_error_exn_struct * _T33;
  char * _T34;
  char * _T35;
  struct Cyc_String_pa_PrintArg_struct _T36;
  struct Cyc_Int_pa_PrintArg_struct _T37;
  int _T38;
  struct Cyc_Int_pa_PrintArg_struct _T39;
  int _T3A;
  struct Cyc_String_pa_PrintArg_struct _T3B;
  struct Cyc___cycFILE * _T3C;
  struct _fat_ptr _T3D;
  struct _fat_ptr _T3E;
  struct Cyc_Output_Table_overflow_exn_struct * _T3F;
  char * _T40;
  char * _T41;
  struct Cyc_String_pa_PrintArg_struct _T42;
  struct Cyc___cycFILE * _T43;
  struct _fat_ptr _T44;
  struct _fat_ptr _T45;
  struct Cyc___cycFILE * _T46;
  struct _fat_ptr _T47;
  struct _fat_ptr _T48;
  struct _fat_ptr _T49;
  unsigned char * _T4A;
  unsigned char * _T4B;
  const char * _T4C;
  GC_blacklist_warn_clear();
  if (argc < 2) { goto _TL2;
  }else { goto _TL3;
  }
  _TL3: if (argc > 3) { goto _TL2;
  }else { goto _TL0;
  }
  _TL2: _T0 = Cyc_stderr;
  _T1 = _tag_fat("Usage: cyclex <input file> [<output file>]",sizeof(char),
		 43U);
  _T2 = _tag_fat(0U,sizeof(void *),0);
  Cyc_fprintf(_T0,_T1,_T2);
  return 1;
  _TL0: _T3 = argv;
  _T4 = _check_fat_subscript(_T3,sizeof(struct _fat_ptr),1);
  _T5 = (struct _fat_ptr *)_T4;
  { struct _fat_ptr source_name = *_T5;
    struct _fat_ptr dest_name;
    if (argc != 3) { goto _TL4;
    }
    _T6 = argv;
    _T7 = _check_fat_subscript(_T6,sizeof(struct _fat_ptr),2);
    _T8 = (struct _fat_ptr *)_T7;
    dest_name = *_T8;
    goto _TL5;
    _TL4: _T9 = source_name;
    _TA = _tag_fat(".cyl",sizeof(char),5U);
    _TB = Cyc_Filename_check_suffix(_T9,_TA);
    if (! _TB) { goto _TL6;
    }
    _TC = Cyc_Filename_chop_extension(source_name);
    _TD = _tag_fat(".cyc",sizeof(char),5U);
    dest_name = Cyc_strconcat(_TC,_TD);
    goto _TL7;
    _TL6: _TE = source_name;
    _TF = _tag_fat(".cyc",sizeof(char),5U);
    dest_name = Cyc_strconcat(_TE,_TF);
    _TL7: _TL5: { struct Cyc___cycFILE * ic;
      struct Cyc___cycFILE * oc;
      { struct _handler_cons _T4D;
	_T10 = &_T4D;
	_push_handler(_T10);
	{ int _T4E = 0;
	  _T11 = setjmp(_T4D.handler);
	  if (! _T11) { goto _TL8;
	  }
	  _T4E = 1;
	  goto _TL9;
	  _TL8: _TL9: if (_T4E) { goto _TLA;
	  }else { goto _TLC;
	  }
	  _TLC: _T12 = source_name;
	  _T13 = _tag_fat("rb",sizeof(char),3U);
	  ic = Cyc_file_open(_T12,_T13);
	  _T14 = dest_name;
	  _T15 = _tag_fat("w",sizeof(char),2U);
	  oc = Cyc_file_open(_T14,_T15);
	  _pop_handler();
	  goto _TLB;
	  _TLA: _T16 = Cyc_Core_get_exn_thrown();
	  { void * _T4F = (void *)_T16;
	    _T17 = Cyc_stderr;
	    _T18 = _tag_fat("trouble opening files",sizeof(char),22U);
	    _T19 = _tag_fat(0U,sizeof(void *),0);
	    Cyc_fprintf(_T17,_T18,_T19);
	    _T1A = dest_name;
	    _T1B = _untag_fat_ptr_check_bound(_T1A,sizeof(char),1U);
	    _T1C = _check_null(_T1B);
	    _T1D = (const char *)_T1C;
	    remove(_T1D);
	    return 1;
	    ;
	  }_TLB: ;
	}
      }{ struct _handler_cons _T4D;
	_T1E = &_T4D;
	_push_handler(_T1E);
	{ int _T4E = 0;
	  _T1F = setjmp(_T4D.handler);
	  if (! _T1F) { goto _TLD;
	  }
	  _T4E = 1;
	  goto _TLE;
	  _TLD: _TLE: if (_T4E) { goto _TLF;
	  }else { goto _TL11;
	  }
	  _TL11: { struct Cyc_Syntax_Lexer_definition * def = Cyc_Parser_parse_file(ic);
	    struct _tuple6 * _T4F = Cyc_Lexgen_make_dfa(def);
	    struct _fat_ptr _T50;
	    struct Cyc_List_List * _T51;
	    { struct _tuple6 _T52 = *_T4F;
	      _T51 = _T52.f0;
	      _T50 = _T52.f1;
	    }{ struct Cyc_List_List * entries = _T51;
	      struct _fat_ptr transitions = _T50;
	      struct Cyc_Compact_Lex_tables * tables = Cyc_Compact_compact_tables(transitions);
	      _T20 = source_name;
	      _T21 = ic;
	      _T22 = oc;
	      _T23 = _check_null(def);
	      _T24 = _T23->header;
	      _T25 = tables;
	      _T26 = entries;
	      _T27 = def;
	      _T28 = _T27->trailer;
	      Cyc_Output_output_lexdef(_T20,_T21,_T22,_T24,_T25,_T26,_T28);
	    }
	  }_pop_handler();
	  goto _TL10;
	  _TLF: _T29 = Cyc_Core_get_exn_thrown();
	  { void * _T4F = (void *)_T29;
	    void * _T50;
	    int _T51;
	    int _T52;
	    struct _fat_ptr _T53;
	    _T2A = (struct Cyc_Parser_Parser_error_exn_struct *)_T4F;
	    _T2B = _T2A->tag;
	    _T2C = Cyc_Parser_Parser_error;
	    if (_T2B != _T2C) { goto _TL12;
	    }
	    { struct Cyc_Parser_Parser_error_exn_struct * _T54 = (struct Cyc_Parser_Parser_error_exn_struct *)_T4F;
	      _T53 = _T54->f1;
	    }{ struct _fat_ptr s = _T53;
	      { struct Cyc_String_pa_PrintArg_struct _T54;
		_T54.tag = 0;
		_T54.f1 = source_name;
		_T2D = _T54;
	      }{ struct Cyc_String_pa_PrintArg_struct _T54 = _T2D;
		{ struct Cyc_Int_pa_PrintArg_struct _T55;
		  _T55.tag = 1;
		  _T2F = Cyc_Lexer_line_num;
		  _T55.f1 = (unsigned long)_T2F;
		  _T2E = _T55;
		}{ struct Cyc_Int_pa_PrintArg_struct _T55 = _T2E;
		  void * _T56[2];
		  _T56[0] = &_T54;
		  _T56[1] = &_T55;
		  _T30 = Cyc_stderr;
		  _T31 = _tag_fat("File \"%s\", line %d: syntax error.\n",
				  sizeof(char),35U);
		  _T32 = _tag_fat(_T56,sizeof(void *),2);
		  Cyc_fprintf(_T30,_T31,_T32);
		}
	      }goto _LL6;
	    }_TL12: _T33 = (struct Cyc_Lexer_Lexical_error_exn_struct *)_T4F;
	    _T34 = _T33->tag;
	    _T35 = Cyc_Lexer_Lexical_error;
	    if (_T34 != _T35) { goto _TL14;
	    }
	    { struct Cyc_Lexer_Lexical_error_exn_struct * _T54 = (struct Cyc_Lexer_Lexical_error_exn_struct *)_T4F;
	      _T53 = _T54->f1;
	      _T52 = _T54->f2;
	      _T51 = _T54->f3;
	    }{ struct _fat_ptr msg = _T53;
	      int line = _T52;
	      int col = _T51;
	      { struct Cyc_String_pa_PrintArg_struct _T54;
		_T54.tag = 0;
		_T54.f1 = source_name;
		_T36 = _T54;
	      }{ struct Cyc_String_pa_PrintArg_struct _T54 = _T36;
		{ struct Cyc_Int_pa_PrintArg_struct _T55;
		  _T55.tag = 1;
		  _T38 = line;
		  _T55.f1 = (unsigned long)_T38;
		  _T37 = _T55;
		}{ struct Cyc_Int_pa_PrintArg_struct _T55 = _T37;
		  { struct Cyc_Int_pa_PrintArg_struct _T56;
		    _T56.tag = 1;
		    _T3A = col;
		    _T56.f1 = (unsigned long)_T3A;
		    _T39 = _T56;
		  }{ struct Cyc_Int_pa_PrintArg_struct _T56 = _T39;
		    { struct Cyc_String_pa_PrintArg_struct _T57;
		      _T57.tag = 0;
		      _T57.f1 = msg;
		      _T3B = _T57;
		    }{ struct Cyc_String_pa_PrintArg_struct _T57 = _T3B;
		      void * _T58[4];
		      _T58[0] = &_T54;
		      _T58[1] = &_T55;
		      _T58[2] = &_T56;
		      _T58[3] = &_T57;
		      _T3C = Cyc_stderr;
		      _T3D = _tag_fat("File \"%s\", line %d, character %d: %s.\n",
				      sizeof(char),39U);
		      _T3E = _tag_fat(_T58,sizeof(void *),4);
		      Cyc_fprintf(_T3C,_T3D,_T3E);
		    }
		  }
		}
	      }goto _LL6;
	    }_TL14: _T3F = (struct Cyc_Output_Table_overflow_exn_struct *)_T4F;
	    _T40 = _T3F->tag;
	    _T41 = Cyc_Output_Table_overflow;
	    if (_T40 != _T41) { goto _TL16;
	    }
	    { struct Cyc_String_pa_PrintArg_struct _T54;
	      _T54.tag = 0;
	      _T54.f1 = source_name;
	      _T42 = _T54;
	    }{ struct Cyc_String_pa_PrintArg_struct _T54 = _T42;
	      void * _T55[1];
	      _T55[0] = &_T54;
	      _T43 = Cyc_stderr;
	      _T44 = _tag_fat("File \"%s\":\ntransition table overflow, automaton is too big\n",
			      sizeof(char),60U);
	      _T45 = _tag_fat(_T55,sizeof(void *),1);
	      Cyc_fprintf(_T43,_T44,_T45);
	    }goto _LL6;
	    _TL16: _T50 = _T4F;
	    { void * exn = _T50;
	      _T46 = Cyc_stderr;
	      _T47 = _tag_fat("error in parsing, generation, compaction, or output",
			      sizeof(char),52U);
	      _T48 = _tag_fat(0U,sizeof(void *),0);
	      Cyc_fprintf(_T46,_T47,_T48);
	      _T49 = dest_name;
	      _T4A = _untag_fat_ptr_check_bound(_T49,sizeof(char),1U);
	      _T4B = _check_null(_T4A);
	      _T4C = (const char *)_T4B;
	      remove(_T4C);
	      _throw(exn);
	      return 1;
	    }_LL6: ;
	  }_TL10: ;
	}
      }return 0;
    }
  }
}