home *** CD-ROM | disk | FTP | other *** search
Wrap
/* -- ANSI C code generated by : -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) -- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE -- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr -- -- http://www.loria.fr/SmallEiffel -- */ #include "compile_to_c.h" /*No:WHEN_ITEM_2.lower_value*/ /*No:WHEN_ITEM_2.upper_value*/ T0* r372to_runnable_integer(T372* C,T0* a1){ T0* R=NULL; T0* _v=NULL; /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) { C->_e_when=a1; _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/); /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) { C->_lower=_v; C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/); } else { r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms60_470)); } /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/); /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) { C->_upper=_v; C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/); } else { r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms60_470)); } /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C); R=(T0*)C; } else { {T372*n=malloc(sizeof(*n)); *n=M372; r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/); R=(T0*)n; } R=r372to_runnable_integer(((T372*)R),a1); } /*FI*/return R; } void r372make(T372* C,T0* a1,T0* a2){ C->_lower=a1; C->_upper=a2; } T0* r372start_position(T372* C){ T0* R=NULL; R=X662start_position((((T372*)C))->_lower/*12*/); return R; } /*No:WHEN_ITEM_2.clear_e_when*/ /*No:WHEN_ITEM_2.fz_bcv*/ T0* r372twin(T372* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T372*)R)=*C; return R; } /*No:WHEN_ITEM_2.current_type*/ /*No:WHEN_ITEM_2.fz_biv*/ /*No:WHEN_ITEM_2.lower*/ /*No:WHEN_ITEM_2.upper*/ void r372error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } T0* r372to_runnable_character(T372* C,T0* a1){ T0* R=NULL; T0* _v=NULL; /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) { C->_e_when=a1; _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/); /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) { C->_lower=_v; C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/); } else { r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms58_470)); } /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/); /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) { C->_upper=_v; C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/); } else { r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms58_470)); } /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C); R=(T0*)C; } else { {T372*n=malloc(sizeof(*n)); *n=M372; r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/); R=(T0*)n; } R=r372to_runnable_character(((T372*)R),a1); } /*FI*/return R; } /*No:WHEN_ITEM_2.e_when*/ void r153add_into(T153* C,T0* a1){ T0* _f=NULL; int _i=0; /*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) { _i=0; while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) { _f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/; X359set_clients(_f,(((T153*)C))->_clients/*0*/); X359add_into(_f,a1); _i=(_i)+(1); } } /*FI*/} void r153make(T153* C,T0* a1,T0* a2,T0* a3){ C->_clients=a1; C->_comment=a2; C->_list=a3; } /*No:FEATURE_CLAUSE.comment*/ /*No:FEATURE_CLAUSE.list*/ /*No:FEATURE_CLAUSE.clients*/ /*No:CALL_INFIX_INT_DIV.arguments*/ T0* r460add_comment(T460* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } else { {T529*n=malloc(sizeof(*n)); *n=M529; r529make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } int r460to_integer(T460* C){ int R=0; r460error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470)); return R; } int r460is_a(T460* C,T0* a1){ int R=0; R=X291is_a(X291run_type((((T460*)C))->_result_type/*20*/),X291run_type(X662result_type(a1))); /*IF*/if (!(R)) { r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/); r460error(X662start_position(a1),((T0*)ms4_662)); } /*FI*/return R; } /*No:CALL_INFIX_INT_DIV.is_current*/ void r460mapping_c_arg(T460* C,T0* a1){ T0* _actual_type=NULL; _actual_type=X291run_type((((T460*)C))->_result_type/*20*/); /*IF*/if (X291is_reference(_actual_type)) { /*IF*/if (X291is_reference(a1)) { /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ } else { X291to_expanded(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } /*FI*/} else { /*IF*/if (X291is_reference(a1)) { X291to_reference(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*IF*/if (X291need_c_struct(a1)) { /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\46'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ } /*FI*/} /*FI*/} /*FI*/} /*No:CALL_INFIX_INT_DIV.static_value*/ void r460make(T460* C,T0* a1,T0* a2,T0* a3){ T0* _eal=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) { r683add_position(a2); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/{T454*n=malloc(sizeof(*n)); *n=M454; r454make(n,((T0*)ms1_460),a2); C->_feature_name=(T0*)n; } {T431*n=malloc(sizeof(*n)); *n=M431; /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3)); /*]*/ _eal=(T0*)n; } r460make_call_1(C,a1,(((T460*)C))->_feature_name/*28*/,_eal); } void r460mapping_c_target(T460* C,T0* a1){ T0* _actual_type=NULL; int _flag=0; _flag=r324call_invariant_start(a1); _actual_type=X291run_type((((T460*)C))->_result_type/*20*/); /*IF*/if (X291is_reference(_actual_type)) { /*IF*/if (X291is_reference(a1)) { /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='T'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1)); /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\52'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { X291to_expanded(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } /*FI*/} else { /*IF*/if (X291is_reference(a1)) { X291to_reference(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*IF*/if (X291need_c_struct(a1)) { /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\46'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T460* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ /*]*/ } /*FI*/} /*FI*/} /*FI*//*IF*/if (_flag) { /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } /*FI*/} /*No:CALL_INFIX_INT_DIV.nb_errors*/ /*No:CALL_INFIX_INT_DIV.feature_name*/ /*No:CALL_INFIX_INT_DIV.fz_iinaiv*/ /*No:CALL_INFIX_INT_DIV.arg_count*/ /*No:CALL_INFIX_INT_DIV.dca_inline_argument*/ /*No:CALL_INFIX_INT_DIV.run_feature*/ /*No:CALL_INFIX_INT_DIV.call_proc_call_c2c*/ /*No:CALL_INFIX_INT_DIV.start_position*/ /*No:CALL_INFIX_INT_DIV.target*/ /*No:CALL_INFIX_INT_DIV.compile_to_c*/ /*No:CALL_INFIX_INT_DIV.c_simple*/ T0* r460to_runnable(T460* C,T0* a1){ T0* R=NULL; T0* _tla=NULL; T0* _a=NULL; /*IF*/if (((((T460*)C))->_current_type/*8*/)==((void*)(NULL))) { r460to_runnable_0(C,a1); _a=X431to_runnable((((T460*)C))->_arguments/*24*/,a1); /*IF*/if ((_a)==((void*)(NULL))) { r460error(X662start_position(r460arg1(C)),((T0*)ms55_470)); } else { C->_arguments=_a; } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { X431match_with((((T460*)C))->_arguments/*24*/,(((T460*)C))->_run_feature/*16*/); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { _tla=(((T460*)C))->_result_type/*20*/; if(NULL!=(_tla))switch(((T0*)_tla)->id) { case 239: break; default: _tla=NULL; };/*IF*/if ((_tla)!=((void*)(NULL))) { C->_result_type=X291run_type(X662result_type(r460arg1(C))); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r460twin(C); /*[IRF3.3set_current_type*/((((T460*)(((T460*)R))))->_current_type)=(NULL); /*]*/ R=r460to_runnable(((T460*)R),a1); } /*FI*/return R; } /*No:CALL_INFIX_INT_DIV.result_type*/ /*No:CALL_INFIX_INT_DIV.is_result*/ T0* r460twin(T460* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T460*)R)=*C; return R; } /*No:CALL_INFIX_INT_DIV.set_current_type*/ /*No:CALL_INFIX_INT_DIV.operator*/ int r460is_static(T460* C){ int R=0; /*IF*/if (X291is_integer((((T460*)C))->_result_type/*20*/)) { /*IF*/if ((X662is_static((((T460*)C))->_target/*12*/))&&(X662is_static(r460arg1(C)))) { R=1; C->_static_value_mem=(X662static_value((((T460*)C))->_target/*12*/))/(X662static_value(r460arg1(C))); } /*FI*/} /*FI*/return R; } /*No:CALL_INFIX_INT_DIV.fz_07*/ /*No:CALL_INFIX_INT_DIV.can_be_dropped*/ /*No:CALL_INFIX_INT_DIV.current_type*/ void r460compile_to_c_old(T460* C){ X662compile_to_c_old((((T460*)C))->_target/*12*/); /*IF*/{/*AT*/X431compile_to_c_old((((T460*)C))->_arguments/*24*/); } /*FI*/} /*No:CALL_INFIX_INT_DIV.static_value_mem*/ void r460make_call_1(T460* C,T0* a1,T0* a2,T0* a3){ C->_target=a1; C->_feature_name=a2; C->_arguments=a3; } /*No:CALL_INFIX_INT_DIV.is_manifest_string*/ /*No:CALL_INFIX_INT_DIV.is_void*/ void r460to_runnable_0(T460* C,T0* a1){ C->_current_type=a1; r460cpc_to_runnable(C,a1); C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T460*)C))->_run_feature/*16*/))))->_result_type/*24*/); /*IF*/if (((((T460*)C))->_result_type/*20*/)==((void*)(NULL))) { r683add_position(X496start_position((((T460*)C))->_run_feature/*16*/)); r460error((((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295)); } else if (X291is_like_current((((T460*)C))->_result_type/*20*/)) { C->_result_type=X662result_type((((T460*)C))->_target/*12*/); } /*FI*/} /*No:CALL_INFIX_INT_DIV.is_pre_computable*/ void r460cpc_to_runnable(T460* C,T0* a1){ T0* _rc=NULL; T0* _t=NULL; _t=X662to_runnable((((T460*)C))->_target/*12*/,a1); /*IF*/if ((_t)==((void*)(NULL))) { r683add_position(X662start_position((((T460*)C))->_target/*12*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/C->_target=_t; _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/)); C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C); r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/); } int r460use_current(T460* C){ int R=0; /*IF*/{/*AT*/R=X431use_current((((T460*)C))->_arguments/*24*/); } /*FI*//*IF*/if (R) { } else if (X662is_current((((T460*)C))->_target/*12*/)) { R=X496use_current((((T460*)C))->_run_feature/*16*/); } else { R=X662use_current((((T460*)C))->_target/*12*/); } /*FI*/return R; } void r460finalize(T460* C){ T0* _rf=NULL; T0* _rc=NULL; _rf=(((T460*)C))->_run_feature/*16*/; _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/)); /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) { _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf); C->_run_feature=_rf; } /*FI*/} void r460error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/ /*No:CALL_INFIX_INT_DIV.fatal_error*/ /*No:CALL_INFIX_INT_DIV.fz_bad_argument*/ T0* r460arg1(T460* C){ T0* R=NULL; R=X431first((((T460*)C))->_arguments/*24*/); return R; } void r460afd_check(T460* C){ T0* _running=NULL; T0* _rc=NULL; _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/)); _running=(((T355*)((T355*)_rc)))->_running/*12*/; /*IF*/if ((_running)==((void*)(NULL))) { r683add_position(X662start_position((((T460*)C))->_target/*12*/)); /*[IRF3.6append*/{T0* b1=((T0*)ms1_135); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms141_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); r355set_at_run_time(((T355*)_rc)); } else if ((r396count(((T396*)_running)))>(0)) { r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/); } /*FI*/X662afd_check((((T460*)C))->_target/*12*/); /*IF*/{/*AT*/X431afd_check((((T460*)C))->_arguments/*24*/); } /*FI*/} /*No:CALL_PREFIX_NOT.arguments*/ T0* r180add_comment(T180* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } else { {T529*n=malloc(sizeof(*n)); *n=M529; r529make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } int r180to_integer(T180* C){ int R=0; T0* _rf1=NULL; _rf1=(((T180*)C))->_run_feature/*16*/; if(NULL!=(_rf1))switch(((T0*)_rf1)->id) { case 808: break; default: _rf1=NULL; };/*IF*/if ((_rf1)==((void*)(NULL))) { r180error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470)); } else { R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/); } /*FI*/return R; } int r180is_a(T180* C,T0* a1){ int R=0; R=X291is_a(X291run_type((((T180*)C))->_result_type/*20*/),X291run_type(X662result_type(a1))); /*IF*/if (!(R)) { r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/); r180error(X662start_position(a1),((T0*)ms4_662)); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.is_current*/ void r180mapping_c_arg(T180* C,T0* a1){ T0* _actual_type=NULL; _actual_type=X291run_type((((T180*)C))->_result_type/*20*/); /*IF*/if (X291is_reference(_actual_type)) { /*IF*/if (X291is_reference(a1)) { r180compile_to_c(C); } else { X291to_expanded(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } /*FI*/} else { /*IF*/if (X291is_reference(a1)) { X291to_reference(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*IF*/if (X291need_c_struct(a1)) { /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\46'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { r180compile_to_c(C); } /*FI*/} /*FI*/} /*FI*/} /*No:CALL_PREFIX_NOT.static_value*/ void r180make(T180* C,T0* a1,T0* a2){ {T406*n=malloc(sizeof(*n)); *n=M406; r406make(n,r180operator(),a1); C->_feature_name=(T0*)n; } r180make_call0(C,a2,(((T180*)C))->_feature_name/*24*/); } void r180mapping_c_target(T180* C,T0* a1){ T0* _actual_type=NULL; int _flag=0; _flag=r324call_invariant_start(a1); _actual_type=X291run_type((((T180*)C))->_result_type/*20*/); /*IF*/if (X291is_reference(_actual_type)) { /*IF*/if (X291is_reference(a1)) { /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='T'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1)); /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\52'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { X291to_expanded(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } /*FI*/} else { /*IF*/if (X291is_reference(a1)) { X291to_reference(_actual_type); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*IF*/if (X291need_c_struct(a1)) { /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\46'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\50'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ r180compile_to_c(C); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { r180compile_to_c(C); } /*FI*/} /*FI*/} /*FI*//*IF*/if (_flag) { /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } /*FI*/} /*No:CALL_PREFIX_NOT.nb_errors*/ /*No:CALL_PREFIX_NOT.feature_name*/ /*No:CALL_PREFIX_NOT.fz_iinaiv*/ /*No:CALL_PREFIX_NOT.arg_count*/ /*No:CALL_PREFIX_NOT.dca_inline_argument*/ /*No:CALL_PREFIX_NOT.run_feature*/ /*No:CALL_PREFIX_NOT.call_proc_call_c2c*/ /*No:CALL_PREFIX_NOT.start_position*/ /*No:CALL_PREFIX_NOT.target*/ void r180compile_to_c(T180* C){ /*IF*/if ((r590boost(((T590*)(oBC364run_control))))&&(X291is_boolean(X291run_type(X662result_type((((T180*)C))->_target/*12*/))))) { /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_180)); /*]*/ X662compile_to_c((((T180*)C))->_target/*12*/); /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)); char b1='\51'; putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/))); }/*]*/ /*]*/ } else { /*[IRF3.6call_proc_call_c2c*/{T180* C1=C; r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1); }/*]*/ } /*FI*/} /*No:CALL_PREFIX_NOT.c_simple*/ T0* r180to_runnable(T180* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T180*)C))->_current_type/*8*/)==((void*)(NULL))) { r180to_runnable_0(C,a1); /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T180*)C))->_run_feature/*16*/))>(0))) { r683add_position((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/); r180error(X496start_position((((T180*)C))->_run_feature/*16*/),((T0*)ms1_752)); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r180twin(C); /*[IRF3.3set_current_type*/((((T180*)(((T180*)R))))->_current_type)=(NULL); /*]*/ R=r180to_runnable(((T180*)R),a1); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.result_type*/ /*No:CALL_PREFIX_NOT.is_result*/ T0* r180twin(T180* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T180*)R)=*C; return R; } /*No:CALL_PREFIX_NOT.set_current_type*/ T0* r180operator(void){ T0* R=NULL; R=((T0*)ms40_473); return R; } int r180is_static(T180* C){ int R=0; /*IF*/if (X291is_boolean(X662result_type((((T180*)C))->_target/*12*/))) { /*IF*/if (X662is_static((((T180*)C))->_target/*12*/)) { R=1; /*IF*/if ((X662static_value((((T180*)C))->_target/*12*/))==(0)) { C->_static_value_mem=1; } /*FI*/} /*FI*/} /*FI*/return R; } /*No:CALL_PREFIX_NOT.fz_07*/ int r180can_be_dropped(T180* C){ int R=0; /*IF*/if (X662can_be_dropped((((T180*)C))->_target/*12*/)) { R=X496can_be_dropped((((T180*)C))->_run_feature/*16*/); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.current_type*/ void r180compile_to_c_old(T180* C){ X662compile_to_c_old((((T180*)C))->_target/*12*/); /*IF*//*AF*//*AE*/ /*FI*/} /*No:CALL_PREFIX_NOT.static_value_mem*/ /*No:CALL_PREFIX_NOT.is_manifest_string*/ /*No:CALL_PREFIX_NOT.is_void*/ void r180to_runnable_0(T180* C,T0* a1){ C->_current_type=a1; r180cpc_to_runnable(C,a1); C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T180*)C))->_run_feature/*16*/))))->_result_type/*24*/); /*IF*/if (((((T180*)C))->_result_type/*20*/)==((void*)(NULL))) { r683add_position(X496start_position((((T180*)C))->_run_feature/*16*/)); r180error((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295)); } else if (X291is_like_current((((T180*)C))->_result_type/*20*/)) { C->_result_type=X662result_type((((T180*)C))->_target/*12*/); } /*FI*/} /*No:CALL_PREFIX_NOT.is_pre_computable*/ void r180cpc_to_runnable(T180* C,T0* a1){ T0* _rc=NULL; T0* _t=NULL; _t=X662to_runnable((((T180*)C))->_target/*12*/,a1); /*IF*/if ((_t)==((void*)(NULL))) { r683add_position(X662start_position((((T180*)C))->_target/*12*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/C->_target=_t; _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/)); C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C); r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/); } int r180use_current(T180* C){ int R=0; /*IF*//*AF*//*AE*/ /*FI*//*IF*/if (R) { } else if (X662is_current((((T180*)C))->_target/*12*/)) { R=X496use_current((((T180*)C))->_run_feature/*16*/); } else { R=X662use_current((((T180*)C))->_target/*12*/); } /*FI*/return R; } /*No:CALL_PREFIX_NOT.us_not*/ void r180make_call0(T180* C,T0* a1,T0* a2){ C->_target=a1; C->_feature_name=a2; } void r180finalize(T180* C){ T0* _rf=NULL; T0* _rc=NULL; _rf=(((T180*)C))->_run_feature/*16*/; _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/)); /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) { _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf); C->_run_feature=_rf; } /*FI*/} void r180error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CALL_PREFIX_NOT.isa_dca_inline_argument*/ /*No:CALL_PREFIX_NOT.fatal_error*/ void r180afd_check(T180* C){ T0* _running=NULL; T0* _rc=NULL; _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/)); _running=(((T355*)((T355*)_rc)))->_running/*12*/; /*IF*/if ((_running)==((void*)(NULL))) { r683add_position(X662start_position((((T180*)C))->_target/*12*/)); /*[IRF3.6append*/{T0* b1=((T0*)ms1_135); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms141_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); r355set_at_run_time(((T355*)_rc)); } else if ((r396count(((T396*)_running)))>(0)) { r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/); } /*FI*/X662afd_check((((T180*)C))->_target/*12*/); /*IF*//*AF*//*AE*/ /*FI*/} void r158make(T158* C,T0* a1,T0* a2,T0* a3){ C->_comment=a3; C->_tag=a1; C->_expression=a2; } /*No:LOOP_VARIANT_2.nb_errors*/ /*No:LOOP_VARIANT_2.expression*/ T0* r158start_position(T158* C){ T0* R=NULL; R=X662start_position((((T158*)C))->_expression/*8*/); return R; } /*No:LOOP_VARIANT_2.comment*/ T0* r158to_runnable(T158* C,T0* a1){ T0* R=NULL; T0* _e=NULL; /*IF*/if (((((T158*)C))->_current_type/*12*/)==((void*)(NULL))) { C->_current_type=a1; _e=X662to_runnable((((T158*)C))->_expression/*8*/,a1); /*IF*/if ((_e)==((void*)(NULL))) { r158error(r158start_position(C),((T0*)ms1_856)); } else { C->_expression=_e; /*IF*/if (!(X291is_integer(X662result_type((((T158*)C))->_expression/*8*/)))) { r158error(X662start_position((((T158*)C))->_expression/*8*/),((T0*)ms2_856)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { R=r158twin(C); /*[IRF3.3set_current_type*/((((T158*)(((T158*)R))))->_current_type)=(NULL); /*]*/ R=r158to_runnable(((T158*)R),a1); } /*FI*/return R; } T0* r158twin(T158* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T158*)R)=*C; return R; } /*No:LOOP_VARIANT_2.set_current_type*/ /*No:LOOP_VARIANT_2.tag*/ /*No:LOOP_VARIANT_2.current_type*/ int r158use_current(T158* C){ int R=0; R=X662use_current((((T158*)C))->_expression/*8*/); return R; } void r158error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } void r158afd_check(T158* C){ X662afd_check((((T158*)C))->_expression/*8*/); } /*No:DEFERRED_FUNCTION.arguments*/ T0* r649try_to_undefine(T649* C,T0* a1,T0* a2){ T0* R=NULL; X776undefine_in(a1,a2); R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/; /*IF*/if ((R)!=((void*)(NULL))) { /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T649*)C))->_clients/*20*/); /*]*/ } else { r605fatal_undefine(((T605*)a2),a1); } /*FI*/return R; } /*No:DEFERRED_FUNCTION.is_deferred*/ /*No:DEFERRED_FUNCTION.rescue_compound*/ void r649add_into(T649* C,T0* a1){ T0* _fn=NULL; int _i=0; C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/)))); _i=1; while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) { _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/; /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) { _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); r683add_position(X776start_position(_fn)); r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/)); r683error(((T683*)(oBC364eh)),((T0*)ms11_359)); /*[IRF3.6append*/{T0* b1=X776to_string(_fn); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } else { r237put(((T237*)a1),(T0*)C,X776to_key(_fn)); } /*FI*/_i=(_i)+(1); } } /*No:DEFERRED_FUNCTION.end_comment*/ /*No:DEFERRED_FUNCTION.try_to_undefine_aux*/ void r649make(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){ r649make_routine(C,a1,a2,a4,a5,a6); C->_result_type=a3; } /*No:DEFERRED_FUNCTION.nb_errors*/ void r649make_routine(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){ r649make_e_feature(C,a1,NULL); C->_header_comment=a4; C->_arguments=a2; C->_obsolete_mark=a3; C->_require_assertion=a5; } void r649set_header_comment(T649* C,T0* a1){ /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) { C->_end_comment=a1; } /*FI*/} T0* r649start_position(T649* C){ T0* R=NULL; R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); return R; } T0* r649to_run_feature(T649* C,T0* a1,T0* a2){ T0* R=NULL; r649check_obsolete(C); {T904*n=malloc(sizeof(*n)); *n=M904; r904make(n,a1,a2,(T0*)C); R=(T0*)n; } return R; } /*No:DEFERRED_FUNCTION.ensure_assertion*/ /*No:DEFERRED_FUNCTION.code_require*/ /*No:DEFERRED_FUNCTION.result_type*/ /*No:DEFERRED_FUNCTION.fz_03*/ /*No:DEFERRED_FUNCTION.em1*/ /*No:DEFERRED_FUNCTION.obsolete_mark*/ /*No:DEFERRED_FUNCTION.em2*/ /*No:DEFERRED_FUNCTION.set_clients*/ /*No:DEFERRED_FUNCTION.names*/ /*No:DEFERRED_FUNCTION.require_assertion*/ void r649from_effective(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){ {T953*n=malloc(sizeof(*n)); *n=M953; r953make(n,se_ma855(1,a1)); C->_names=(T0*)n; } r649make(C,(((T649*)C))->_names/*8*/,a2,a3,NULL,NULL,a4); /*[IRF3.3set_ensure_assertion*/((((T649*)(C)))->_ensure_assertion)=(a5); /*]*/ C->_base_class=a6; } /*No:DEFERRED_FUNCTION.stupid_switch*/ void r649set_rescue_compound(T649* C,T0* a1){ /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) { r649error(r649start_position(C),((T0*)ms6_368)); } /*FI*/C->_rescue_compound=a1; } int r649can_hide(T649* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms5_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) { /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms6_359)); } else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms7_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { /*[IRF3.6append*/{T0* b1=((T0*)ms13_359); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } /*FI*/} /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) { /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) { r683add_position(X359start_position(a1)); r683add_position(r649start_position(C)); /*[IRF3.6append*/{T0* b1=((T0*)ms13_359); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } /*FI*/} /*FI*/} /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:DEFERRED_FUNCTION.header_comment*/ int r649is_merge_with(T649* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms2_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) { /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms3_359)); } else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms4_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { r683error(((T683*)(oBC364eh)),((T0*)ms12_359)); } /*FI*/} /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) { /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) { r683add_position(X359start_position(a1)); r649error(r649start_position(C),((T0*)ms12_359)); } /*FI*/} /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:DEFERRED_FUNCTION.fz_dot*/ /*No:DEFERRED_FUNCTION.set_ensure_assertion*/ /*No:DEFERRED_FUNCTION.first_name*/ /*No:DEFERRED_FUNCTION.clients*/ void r649collect_for(T649* C,int a1){ /*IF*/if ((a1)==(1001)) { /*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) { /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/))) { r522add_last(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/); } /*FI*/} /*FI*/} else { /*IF*/if (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) { /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T649*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/); /*]*/ r633add_into(((T633*)((((T649*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector); } /*FI*/} /*FI*/} void r649error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:DEFERRED_FUNCTION.base_class*/ /*No:DEFERRED_FUNCTION.base_class_name*/ void r649make_e_feature(T649* C,T0* a1,T0* a2){ C->_names=a1; C->_result_type=a2; } void r649check_obsolete(T649* C){ /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) { /*IF*/if (((((T649*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=((T0*)ms7_368); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T649*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r649warning(r649start_position(C),((T0*)ms137_470)); } /*FI*/} /*FI*/} void r649warning(T0* a1,T0* a2){ r683add_position(a1); r683warning(((T683*)(oBC364eh)),a2); } void r953make(T953* C,T0* a1){ int _i2=0; int _i=0; C->_list=a1; _i=(((T855*)((T855*)a1)))->_upper/*8*/; while (!((_i)==(0))) { _i2=r953index_of(C,r855item(((T855*)a1),_i)); /*IF*/if ((_i2)!=(_i)) { r683add_position(X776start_position(r855item(((T855*)a1),_i2))); r683add_position(X776start_position(r855item(((T855*)a1),_i))); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_953); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/_i=(_i)-(1); } } /*No:FEATURE_NAME_LIST.item*/ /*No:FEATURE_NAME_LIST.list*/ int r953has(T953* C,T0* a1){ int R=0; R=(r953index_of(C,a1))>(0); return R; } /*No:FEATURE_NAME_LIST.count*/ /*No:FEATURE_NAME_LIST.fatal_error*/ int r953index_of(T953* C,T0* a1){ int R=0; T0* _fn_key=NULL; _fn_key=X776to_key(a1); R=(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*/; while (!(((R)==(0))||((_fn_key)==((void*)(X776to_key(/*(IRF4.6item*/r855item(((T855*)((((T953*)C))->_list/*0*/)),R)/*)*/)))))) { R=(R)-(1); } return R; } /*No:IFTHEN.fz_is_not_boolean*/ /*No:IFTHEN.static_false*/ void r809make(T809* C,T0* a1,T0* a2){ C->_expression=a1; C->_then_compound=a2; } /*No:IFTHEN.nb_errors*/ /*No:IFTHEN.expression*/ /*No:IFTHEN.static_true*/ int r809compile_to_c(T809* C,int a1){ int R=0; int _trace=0; /*IF*/if (X662is_static((((T809*)C))->_expression/*0*/)) { r324incr_static_expression_count(((T324*)(oBC364cpp))); /*IF*/if ((X662static_value((((T809*)C))->_expression/*0*/))==(1)) { r809print_else(a1); /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_809)); /*]*/ /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { r592compile_to_c(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_809)); /*]*/ R=1016; } else { /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_809)); /*]*/ R=1017; } /*FI*/} else { R=1018; _trace=(!(X662c_simple((((T809*)C))->_expression/*0*/)))&&(r590no_check(((T590*)(oBC364run_control)))); r809print_else(a1); /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_809)); /*]*/ /*IF*/if (_trace) { r324trace_boolean_expression(((T324*)(oBC364cpp)),(((T809*)C))->_expression/*0*/); } else { X662compile_to_c((((T809*)C))->_expression/*0*/); } /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_809)); /*]*/ /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { r592compile_to_c(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_809)); /*]*/ } /*FI*/return R; } void r809print_else(int a1){ /*IF*/if (a1) { /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_809)); /*]*/ } /*FI*/} T0* r809to_runnable(T809* C,T0* a1){ T0* R=NULL; T0* _t=NULL; T0* _tc=NULL; T0* _e=NULL; /*IF*/if (((((T809*)C))->_run_compound/*8*/)==((void*)(NULL))) { C->_run_compound=a1; _e=X662to_runnable((((T809*)C))->_expression/*0*/,/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/); /*IF*/if ((_e)==((void*)(NULL))) { r809error(X662start_position((((T809*)C))->_expression/*0*/),((T0*)ms8_809)); } else { C->_expression=_e; _t=X662result_type((((T809*)C))->_expression/*0*/); /*IF*/if (!(X291is_boolean(_t))) { /*[IRF3.6append*/{T0* b1=((T0*)ms9_809); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type(X662result_type((((T809*)C))->_expression/*0*/),((T0*)ms73_470)); r683add_position(X662start_position((((T809*)C))->_expression/*0*/)); r683print_as_error(((T683*)(oBC364eh))); } /*FI*/} /*FI*//*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { _tc=r592to_runnable(((T592*)((((T809*)C))->_then_compound/*4*/)),/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/); /*IF*/if ((_tc)!=((void*)(NULL))) { C->_then_compound=_tc; } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { {T809*n=malloc(sizeof(*n)); *n=M809; r809make(n,(((T809*)C))->_expression/*0*/,(((T809*)C))->_then_compound/*4*/); R=(T0*)n; } R=r809to_runnable(((T809*)R),a1); } /*FI*/return R; } /*No:IFTHEN.then_compound*/ /*No:IFTHEN.current_type*/ /*No:IFTHEN.run_compound*/ /*No:IFTHEN.non_static*/ int r809use_current(T809* C){ int R=0; R=X662use_current((((T809*)C))->_expression/*0*/); /*IF*/if ((!(R))&&(((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL)))) { R=r592use_current(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*/return R; } void r809error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } void r809afd_check(T809* C){ X662afd_check((((T809*)C))->_expression/*0*/); /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) { r592afd_check(((T592*)((((T809*)C))->_then_compound/*4*/))); } /*FI*/} /*No:CST_ATT_INTEGER.arguments*/ T0* r689try_to_undefine(T689* C,T0* a1,T0* a2){ T0* R=NULL; X776undefine_in(a1,a2); R=r689try_to_undefine_aux(C,a1,a2); /*IF*/if ((R)!=((void*)(NULL))) { /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T689*)C))->_clients/*20*/); /*]*/ } else { r605fatal_undefine(((T605*)a2),a1); } /*FI*/return R; } /*No:CST_ATT_INTEGER.is_deferred*/ void r689add_into(T689* C,T0* a1){ T0* _fn=NULL; int _i=0; C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/)))); _i=1; while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) { _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/; /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) { _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); r683add_position(X776start_position(_fn)); r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/)); r683error(((T683*)(oBC364eh)),((T0*)ms11_359)); /*[IRF3.6append*/{T0* b1=X776to_string(_fn); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } else { r237put(((T237*)a1),(T0*)C,X776to_key(_fn)); } /*FI*/_i=(_i)+(1); } } T0* r689try_to_undefine_aux(T689* C,T0* a1,T0* a2){ T0* R=NULL; r683add_position(r689start_position(C)); r689error(X776start_position(a1),((T0*)ms1_308)); r605fatal_undefine(((T605*)a2),a1); return R; } void r689make(T689* C,T0* a1,T0* a2,T0* a3){ r689make_e_feature(C,a1,a2); C->_value_mem=a3; } /*No:CST_ATT_INTEGER.nb_errors*/ /*No:CST_ATT_INTEGER.set_header_comment*/ T0* r689start_position(T689* C){ T0* R=NULL; R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/); return R; } T0* r689to_run_feature(T689* C,T0* a1,T0* a2){ T0* R=NULL; T0* _rc=NULL; _rc=X291run_class(a1); R=r355at(((T355*)_rc),a2); if(NULL!=(R))switch(((T0*)R)->id) { case 808: break; default: R=NULL; };/*IF*/if ((R)==((void*)(NULL))) { {T808*n=malloc(sizeof(*n)); *n=M808; r808make(n,a1,a2,(T0*)C); R=(T0*)n; } } /*FI*/return R; } /*No:CST_ATT_INTEGER.ensure_assertion*/ /*No:CST_ATT_INTEGER.code_require*/ /*No:CST_ATT_INTEGER.result_type*/ /*No:CST_ATT_INTEGER.em1*/ /*No:CST_ATT_INTEGER.set_clients*/ /*No:CST_ATT_INTEGER.em2*/ /*No:CST_ATT_INTEGER.value*/ /*No:CST_ATT_INTEGER.require_assertion*/ /*No:CST_ATT_INTEGER.names*/ /*No:CST_ATT_INTEGER.value_mem*/ /*No:CST_ATT_INTEGER.stupid_switch*/ int r689can_hide(T689* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms5_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) { /*IF*/{/*AT*/r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms6_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { /*[IRF3.6append*/{T0* b1=((T0*)ms13_359); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683error(((T683*)(oBC364eh)),((T0*)ms67_470)); } /*FI*/} /*FI*/} /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*//*AF*//*AE*/ /*FI*/} /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:CST_ATT_INTEGER.header_comment*/ int r689is_merge_with(T689* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) { /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) { r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms2_359)); } /*FI*/} /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) { /*IF*/{/*AT*/r683add_position(X359start_position(a1)); r689error(r689start_position(C),((T0*)ms3_359)); } /*FI*/} /*FI*//*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) { /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) { r683error(((T683*)(oBC364eh)),((T0*)ms12_359)); } /*FI*/} /*FI*//*IF*//*AF*//*AE*/ /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0); return R; } /*No:CST_ATT_INTEGER.fz_dot*/ /*No:CST_ATT_INTEGER.first_name*/ /*No:CST_ATT_INTEGER.clients*/ void r689collect_for(int a1){ /*IF*/if ((a1)==(1001)) { /*IF*//*AF*//*AE*/ /*FI*/} else { /*IF*//*AF*//*AE*/ /*FI*/} /*FI*/} void r689error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CST_ATT_INTEGER.base_class*/ /*No:CST_ATT_INTEGER.base_class_name*/ void r689make_e_feature(T689* C,T0* a1,T0* a2){ C->_names=a1; C->_result_type=a2; } /*No:BASE_CLASS.fz_is_invalid*/ /*No:BASE_CLASS.set_end_comment*/ /*No:BASE_CLASS.id*/ void r605add_feature_clause(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)==((void*)(NULL))) { {T913*n=malloc(sizeof(*n)); *n=M913; /*[IRF3.3make*/((((T913*)(n)))->_list)=(se_ma764(1,a1)); /*]*/ C->_feature_clause_list=(T0*)n; } } else { /*[IRF3.5add_last*/r764add_last(((T764*)((((T913*)((T913*)((((T605*)C))->_feature_clause_list/*48*/))))->_list/*0*/)),a1); /*]*/ } /*FI*/} void r605set_parent_list(T605* C,T0* a1,T0* a2,T0* a3){ {T673*n=malloc(sizeof(*n)); *n=M673; r673make(n,(T0*)C,a1,a2,a3); C->_parent_list=(T0*)n; } } /*No:BASE_CLASS.is_deferred*/ int r605has_creation(T605* C,T0* a1){ int R=0; T0* _cn=NULL; T0* _bc=NULL; T0* _cc=NULL; /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms7_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_position(X776start_position(a1)); r683print_as_error(((T683*)(oBC364eh))); } else { _cc=r378get_clause(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1); /*IF*/if ((_cc)==((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=((T0*)ms143_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(a1); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms8_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r605error(X776start_position(a1),((T0*)ms67_470)); } else { R=1; _bc=X776origin_base_class(a1); /*IF*/if ((_bc)!=((void*)(NULL))) { _cn=(((T605*)((T605*)_bc)))->_base_class_name/*24*/; R=r636gives_permission_to(((T636*)((((T583*)((T583*)_cc)))->_clients/*4*/)),_cn); } /*FI*/} /*FI*/} /*FI*//*IF*/if (!(R)) { r605error(X776start_position(a1),((T0*)ms9_605)); } /*FI*/return R; } void r605add_creation_clause(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) { {T378*n=malloc(sizeof(*n)); *n=M378; /*[IRF3.3make*/((((T378*)(n)))->_list)=(se_ma235(1,a1)); /*]*/ C->_creation_clause_list=(T0*)n; } } else { /*[IRF3.5add_last*/r235add_last(((T235*)((((T378*)((T378*)((((T605*)C))->_creation_clause_list/*44*/))))->_list/*0*/)),a1); /*]*/ } /*FI*/} /*No:BASE_CLASS.us_copy*/ /*No:BASE_CLASS.feature_clause_list*/ int r605once_flag(T605* C,T0* a1){ int R=0; /*IF*/if (((((T605*)C))->_once_mark_list/*64*/)==((void*)(NULL))) { {T927*n=malloc(sizeof(*n)); *n=M927; r927with_capacity(n,4); C->_once_mark_list=(T0*)n; } r927add_last(((T927*)((((T605*)C))->_once_mark_list/*64*/)),a1); } else if (r927fast_has(((T927*)((((T605*)C))->_once_mark_list/*64*/)),a1)) { R=1; } else { r927add_last(((T927*)((((T605*)C))->_once_mark_list/*64*/)),a1); } /*FI*/return R; } void r605get_started(T605* C){ C->_id=r410item(((T410*)(r605id_provider())),(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/); /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)!=((void*)(NULL))) { r913get_started(((T913*)((((T605*)C))->_feature_clause_list/*48*/)),(((T605*)C))->_feature_dictionary/*60*/); } /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r673get_started(((T673*)((((T605*)C))->_parent_list/*40*/))); } /*FI*//*IF*/if (((((T605*)C))->_end_comment/*56*/)!=((void*)(NULL))) { r393good_end(((T393*)((((T605*)C))->_end_comment/*56*/)),(((T605*)C))->_base_class_name/*24*/); } /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r863clear(((T863*)(oBC605visited))); r863add_last(((T863*)(oBC605visited)),(T0*)C); r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/))); } /*FI*//*IF*/if (((r590all_check(((T590*)(oBC364run_control))))&&((((T605*)C))->_is_deferred/*16*/))&&(((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL)))) { r683add_position((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/); r605warning(r378start_position(((T378*)((((T605*)C))->_creation_clause_list/*44*/))),((T0*)ms6_605)); } /*FI*/} int r605is_subclass_of(T605* C,T0* a1){ int R=0; /*IF*/if (r863fast_has(((T863*)((((T605*)C))->_isom/*68*/)),a1)) { R=1; } else { /*IF*/if (r605is_any(((T605*)a1))) { R=1; } else { r863clear(((T863*)(oBC605visited))); R=r605is_subclass_of_aux(C,a1); } /*FI*//*IF*/if (R) { r863add_last(((T863*)((((T605*)C))->_isom/*68*/)),a1); } /*FI*/} /*FI*/return R; } int fBC364class_any=0; T0*oBC364class_any=NULL; T0* r605class_any(void){ if (fBC364class_any==0){ T0* R=NULL; fBC364class_any=1; R=r605class_with(((T0*)ms1_473)); oBC364class_any=R;} return oBC364class_any;} int r605has_feature(T605* C,T0* a1){ int R=0; r446make(((T446*)(r605mem_fn())),a1,NULL); R=r605has(C,r605mem_fn()); return R; } int fBC605mem_fn=0; T0*oBC605mem_fn=NULL; T0* r605mem_fn(void){ if (fBC605mem_fn==0){ T0* R=NULL; fBC605mem_fn=1; {T446*n=malloc(sizeof(*n)); *n=M446; r446make(n,((T0*)ms27_605),NULL); R=(T0*)n; } oBC605mem_fn=R;} return oBC605mem_fn;} int r605is_subclass_of_aux(T605* C,T0* a1){ int R=0; /*IF*/if (r863fast_has(((T863*)(oBC605visited)),(T0*)C)) { } else { r863add_last(((T863*)(oBC605visited)),(T0*)C); /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673has_parent(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } else if (!(r863fast_has(((T863*)(oBC605visited)),r605class_any()))) { R=r605is_subclass_of_aux(((T605*)(r605class_any())),a1); } /*FI*/} /*FI*/return R; } /*No:BASE_CLASS.end_comment*/ void r605add_index_clause(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_index_list/*8*/)==((void*)(NULL))) { {T688*n=malloc(sizeof(*n)); *n=M688; /*[IRF3.3make*/((((T688*)(n)))->_list)=(se_ma848(1,a1)); /*]*/ C->_index_list=(T0*)n; } } else { r848add_last(((T848*)((((T688*)((T688*)((((T605*)C))->_index_list/*8*/))))->_list/*0*/)),a1); } /*FI*/} /*No:BASE_CLASS.obsolete_type_string*/ T0* r605class_with(T0* a1){ T0* R=NULL; R=r604get_class(a1); return R; } /*No:BASE_CLASS.has_creation_clause*/ void r605make(T605* C){ {T863*n=malloc(sizeof(*n)); *n=M863; r863with_capacity(n,6,1); C->_isom=(T0*)n; } C->_path=r902item((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/); {T451*n=malloc(sizeof(*n)); *n=M451; r451make_unknown(n); C->_base_class_name=(T0*)n; } {T237*n=malloc(sizeof(*n)); *n=M237; r237with_capacity(n,32); C->_feature_dictionary=(T0*)n; } } /*No:BASE_CLASS.parent_list*/ T0* r605root_procedure(T605* C,T0* a1){ T0* R=NULL; T0* _f=NULL; T0* _rc=NULL; /*IF*/if (/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms10_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*//*IF*/if ((((T605*)C))->_is_deferred/*16*/) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms11_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/r446make(((T446*)(r605mem_rpn())),a1,(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/); /*IF*/if (!(r605has_creation(C,r605mem_rpn()))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6extend*/{char b1='\57'; r7extend(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms12_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*//*IF*/if (!(r605has_feature(C,a1))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms13_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms14_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/_rc=r605run_class(C); r355set_at_run_time(((T355*)_rc)); _f=r605look_up_for(C,_rc,r605mem_rpn()); /*IF*/if ((_f)==((void*)(NULL))) { /*[IRF3.6append*/{T0* b1=((T0*)ms15_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/R=_f; if(NULL!=(R))switch(((T0*)R)->id) { case 297: break; default: R=NULL; };/*IF*/if ((R)==((void*)(NULL))) { r683add_position(X359start_position(_f)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms17_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/return R; } /*No:BASE_CLASS.once_mark_list*/ /*No:BASE_CLASS.error_vtec1*/ /*No:BASE_CLASS.path*/ /*No:BASE_CLASS.next_parent_for*/ void r605check_expanded_with(T605* C,T0* a1){ T0* _rf=NULL; /*IF*/if ((((T605*)C))->_is_deferred/*16*/) { r683add_type(a1,((T0*)ms72_470)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*//*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) { r378check_expanded_with(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1); } /*FI*/_rf=r605expanded_initializer(C,a1); } /*No:BASE_CLASS.isom*/ /*No:BASE_CLASS.first_parent_for*/ /*No:BASE_CLASS.index_list*/ /*No:BASE_CLASS.set_heading_comment1*/ void r605inherit_cycle_check(T605* C){ int _i=0; r863add_last(((T863*)(oBC605visited)),(T0*)C); /*IF*/if ((r863first(((T863*)(oBC605visited))))==((void*)(C))) { /*[IRF3.6append*/{T0* b1=((T0*)ms19_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ _i=1; while (!((_i)>((((T863*)((T863*)(oBC605visited))))->_upper/*8*/))) { /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)(r863item(((T863*)(oBC605visited)),_i)))))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*IF*/if ((_i)<((((T863*)((T863*)(oBC605visited))))->_upper/*8*/)) { /*[IRF3.6append*/{T0* b1=((T0*)ms20_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ } /*FI*/_i=(_i)+(1); } /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms21_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/))); } /*FI*/} T0* r605new_name_of(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if ((C)==((void*)(a1))) { R=a2; } else { R=r605up_to_original(((T605*)a1),(T0*)C,a2); /*IF*/if ((R)==((void*)(NULL))) { r683add_position(X776start_position(a2)); /*[IRF3.6append*/{T0* b1=((T0*)ms143_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(a2); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms2_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms3_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} /*FI*/return R; } void r605set_is_expanded(T605* C){ /*IF*/if ((((T605*)C))->_is_deferred/*16*/) { /*[IRF3.6error_vtec1*/{T605* C1=C; r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605)); }/*]*/ } /*FI*/C->_is_expanded=1; } int r605super_has(T605* C,T0* a1){ int R=0; /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { /*IF*/if (r605is_general(C)) { R=0; } else { R=r605has(((T605*)(r605class_any())),a1); } /*FI*/} else { R=r673has(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*/return R; } T0* r605up_to_original(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if (r605proper_has(C,a2)) { /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605new_name_of_original(((T605*)a1),(T0*)C,a2); } else { R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); /*IF*/if ((R)==((void*)(NULL))) { R=r605new_name_of_original(((T605*)a1),(T0*)C,a2); } /*FI*/} /*FI*/} else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); } else if (r605is_general(C)) { } else { R=r605up_to_original(((T605*)(r605class_any())),a1,a2); } /*FI*/return R; } void r605collect_invariant(T605* C,T0* a1){ /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { r673collect_invariant(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*//*IF*/if (((((T605*)C))->_invariant_assertion/*52*/)!=((void*)(NULL))) { /*[IRF3.6collect_invariant*/{T0* b1=(((T605*)C))->_invariant_assertion/*52*/; r699add_into(((T699*)b1),oBC355ci_collector); }/*]*/ } /*FI*/} int fBC605mem_rpn=0; T0*oBC605mem_rpn=NULL; T0* r605mem_rpn(void){ if (fBC605mem_rpn==0){ T0* R=NULL; fBC605mem_rpn=1; {T446*n=malloc(sizeof(*n)); *n=M446; r446make(n,((T0*)ms28_605),NULL); R=(T0*)n; } oBC605mem_rpn=R;} return oBC605mem_rpn;} /*No:BASE_CLASS.set_heading_comment2*/ int r605has(T605* C,T0* a1){ int R=0; /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))) { R=1; } else { R=r605super_has(C,a1); } /*FI*/return R; } T0* r605id_provider(void){ if (fBC364id_provider==0){ T0* R=NULL; fBC364id_provider=1; {T410*n=malloc(sizeof(*n)); *n=M410; r410make(n); R=(T0*)n; } oBC364id_provider=R;} return oBC364id_provider;} T0* r605run_class(T605* C){ T0* R=NULL; T0* _type=NULL; T0* _name=NULL; T0* _rcd=NULL; _name=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; /*IF*/if ((!((((T605*)C))->_is_deferred/*16*/))&&(!(/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/))) { _rcd=oBC604run_class_dictionary; /*IF*/if (r250has(((T250*)_rcd),_name)) { R=r250at(((T250*)_rcd),_name); } else { {T657*n=malloc(sizeof(*n)); *n=M657; /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)C))->_base_class_name/*24*/); /*]*/ _type=(T0*)n; } R=r657run_class(((T657*)_type)); } /*FI*/} else { r605error(NULL,((T0*)ms18_605)); } /*FI*/return R; } /*No:BASE_CLASS.fz_09*/ int r605has_redefine(T605* C,T0* a1){ int R=0; /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673has_redefine(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*/return R; } T0* r605look_up_for(T605* C,T0* a1,T0* a2){ T0* R=NULL; int _i=0; T0* _super_fn=NULL; T0* _fnl=NULL; T0* _cst_att=NULL; T0* _fn_key=NULL; T0* _super=NULL; _fn_key=X776to_key(a2); /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) { R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key); _super=r605super_look_up_for(C,a1,a2); /*IF*/if ((_super)!=((void*)(NULL))) { _cst_att=_super; if(NULL!=(_cst_att))switch(((T0*)_cst_att)->id) { case 380: case 588: case 398: case 689: case 554: case 580: case 835: case 118: break; default: _cst_att=NULL; };/*IF*/if ((_cst_att)!=((void*)(NULL))) { r683add_position(X359start_position(_super)); r683add_position(X359start_position(R)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms22_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/_fnl=/*X359*/((T0*)(((T398*)((T398*)_super)))->_names/*8*/); _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/))))->_upper/*8*//*)*/; while (!((_i)<(1))) { _super_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/)),_i)/*)*/; /*IF*/if (X776is_frozen(_super_fn)) { /*IF*/if ((X776to_key(_super_fn))==((void*)(_fn_key))) { r683add_position(X776start_position(_super_fn)); r683add_position(X359start_position(R)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms23_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} /*FI*/_i=(_i)-(1); } /*IF*/if (!(X359can_hide(R,_super,a1))) { r683add_position(X359start_position(_super)); r683add_position(X359start_position(R)); /*[IRF3.6append*/{T0* b1=((T0*)ms24_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_warning(((T683*)(oBC364eh))); } /*FI*//*IF*/if (X359is_deferred(_super)) { } else if (r605has_redefine(C,a2)) { } else { r683add_position(X359start_position(R)); r683add_position(X359start_position(_super)); /*[IRF3.6append*/{T0* b1=((T0*)ms25_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms26_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683print_as_error(((T683*)(oBC364eh))); } /*FI*/} /*FI*/} else { R=r605super_look_up_for(C,a1,a2); } /*FI*/return R; } T0* r605get_copy(T605* C){ T0* R=NULL; R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),((T0*)ms64_473)); return R; } T0* r605expanded_initializer(T605* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) { R=r378expanded_initializer(((T378*)((((T605*)C))->_creation_clause_list/*44*/)),a1); } /*FI*/return R; } void r605fatal_undefine(T605* C,T0* a1){ /*[IRF3.6append*/{T0* b1=((T0*)ms34_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(a1); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms35_605); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_605); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } T0* r605super_look_up_for(T605* C,T0* a1,T0* a2){ T0* R=NULL; /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { /*IF*/if (r605is_general(C)) { R=NULL; } else { R=r605look_up_for(((T605*)(r605class_any())),a1,a2); } /*FI*/} else { R=r673look_up_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); } /*FI*/return R; } /*No:BASE_CLASS.invariant_assertion*/ void r605set_invariant(T605* C,T0* a1,T0* a2,T0* a3){ /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) { {T699*n=malloc(sizeof(*n)); *n=M699; r699make(n,a1,a2,a3); C->_invariant_assertion=(T0*)n; } } /*FI*/} /*No:BASE_CLASS.fz_dot*/ /*No:BASE_CLASS.set_formal_generic_list*/ T0* r605clients_for(T605* C,T0* a1){ T0* R=NULL; /*IF*/if (r605proper_has(C,a1)) { R=X359clients(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))); } else if (r605is_general(C)) { } else if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605clients_for(((T605*)(r605class_any())),a1); } else { R=r673clients_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1); } /*FI*/return R; } /*No:BASE_CLASS.is_generic*/ T0*oBC605going_up_trace=NULL; /*No:BASE_CLASS.heading_comment1*/ void r605set_is_deferred(T605* C){ /*IF*/if ((((T605*)C))->_is_expanded/*20*/) { /*[IRF3.6error_vtec1*/{T605* C1=C; r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605)); }/*]*/ } /*FI*/C->_is_deferred=1; } int r605proper_has(T605* C,T0* a1){ int R=0; R=r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1)); return R; } T0* r605going_up(T605* C,T0* a1,T0* a2,T0* a3){ T0* R=NULL; /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { R=r605going_up(((T605*)(r605class_any())),a1,a2,a3); } else { R=r673going_up(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2,a3); } /*FI*/return R; } /*No:BASE_CLASS.set_obsolete_type_string*/ /*No:BASE_CLASS.formal_generic_list*/ int r605is_a_vncg(T605* C,T0* a1,T0* a2){ int R=0; /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) { R=r673is_a_vncg(((T673*)((((T605*)C))->_parent_list/*40*/)),X291run_type(a1),X291run_type(a2)); } /*FI*/return R; } void r605collect_for(T605* C,int a1,T0* a2){ T0* _fn_key=NULL; _fn_key=X776to_key(a2); /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) { X359collect_for(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key),a1); } /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) { /*IF*/if (r605is_general(C)) { } else { r605collect_for(((T605*)(r605class_any())),a1,a2); } /*FI*/} else { r673collect_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2); } /*FI*/} void r605error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:BASE_CLASS.fatal_error*/