/*
-- 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"
int r648is_generic(T648* C){
int R=0;
R=X291is_generic((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.used_as_reference*/
void r648c_header_pass2(T648* C){
X291c_header_pass2((((T648*)C))->_run_type/*8*/);
}
void r648gc_define1(T648* C){
X291gc_define1((((T648*)C))->_run_type/*8*/);
}
int r648need_c_struct(T648* C){
int R=0;
R=X291need_c_struct((((T648*)C))->_run_type/*8*/);
return R;
}
int r648is_reference(T648* C){
int R=0;
R=X291is_reference((((T648*)C))->_run_type/*8*/);
return R;
}
void r648gc_info_in(T648* C,T0* a1){
X291gc_info_in((((T648*)C))->_run_type/*8*/,a1);
}
void r648error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r648base_class(T648* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r648base_class_name(C);
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
void r648call_gc_sweep_in(T648* C,T0* a1){
X291call_gc_sweep_in((((T648*)C))->_run_type/*8*/,a1);
}
void r648gc_define2(T648* C){
X291gc_define2((((T648*)C))->_run_type/*8*/);
}
int r648need_gc_mark_function(T648* C){
int R=0;
R=X291need_gc_mark_function((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.fatal_error*/
int r648is_any(T648* C){
int R=0;
R=X291is_any((((T648*)C))->_run_type/*8*/);
return R;
}
void r648to_reference(T648* C){
X291to_reference((((T648*)C))->_run_type/*8*/);
}
void r648c_header_pass3(T648* C){
X291c_header_pass3((((T648*)C))->_run_type/*8*/);
}
T0* r648base_class_name(T648* C){
T0* R=NULL;
R=X291base_class_name((((T648*)C))->_run_type/*8*/);
return R;
}
int r648is_expanded(T648* C){
int R=0;
R=X291is_expanded((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.fz_like_foo*/
int r648is_basic_eiffel_expanded(T648* C){
int R=0;
R=X291is_basic_eiffel_expanded((((T648*)C))->_run_type/*8*/);
return R;
}
int r648is_none(T648* C){
int R=0;
R=X291is_none((((T648*)C))->_run_type/*8*/);
return R;
}
void r648to_expanded(T648* C){
X291to_expanded((((T648*)C))->_run_type/*8*/);
}
int r648is_integer(T648* C){
int R=0;
R=X291is_integer((((T648*)C))->_run_type/*8*/);
return R;
}
void r648c_header_pass4(T648* C){
X291c_header_pass4((((T648*)C))->_run_type/*8*/);
}
void r648anchor_cycle_end(T648* C){
/*IF*/if (((((T648*)C))->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[0]/*)*//*)*/))) {
/*[IRF3.3clear*/((((T907*)(((T907*)(oBC646visited)))))->_upper)=(-(1));
/*]*/
}
/*FI*/}
/*No:CST_ATT_DOUBLE.arguments*/
T0* r118try_to_undefine(T118* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r118try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T118*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_DOUBLE.is_deferred*/
void r118add_into(T118* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)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*)((((T118*)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* r118try_to_undefine_aux(T118* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r118start_position(C));
r118error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r118make(T118* C,T0* a1,T0* a2,T0* a3){
r118make_e_feature(C,a1,a2);
C->_value_mem=a3;
}
/*No:CST_ATT_DOUBLE.nb_errors*/
/*No:CST_ATT_DOUBLE.set_header_comment*/
T0* r118start_position(T118* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r118to_run_feature(T118* 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_DOUBLE.ensure_assertion*/
/*No:CST_ATT_DOUBLE.code_require*/
/*No:CST_ATT_DOUBLE.result_type*/
/*No:CST_ATT_DOUBLE.em1*/
/*No:CST_ATT_DOUBLE.set_clients*/
/*No:CST_ATT_DOUBLE.em2*/
/*No:CST_ATT_DOUBLE.value*/
/*No:CST_ATT_DOUBLE.require_assertion*/
/*No:CST_ATT_DOUBLE.names*/
/*No:CST_ATT_DOUBLE.value_mem*/
/*No:CST_ATT_DOUBLE.stupid_switch*/
int r118can_hide(T118* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T118*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r118error(r118start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r118error(r118start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T118*)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_DOUBLE.header_comment*/
int r118is_merge_with(T118* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T118*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r118error(r118start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r118error(r118start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T118*)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_DOUBLE.fz_dot*/
/*No:CST_ATT_DOUBLE.first_name*/
/*No:CST_ATT_DOUBLE.clients*/
void r118collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r118error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_DOUBLE.base_class*/
/*No:CST_ATT_DOUBLE.base_class_name*/
void r118make_e_feature(T118* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
int r558id(T558* C){
int R=0;
R=(((T355*)((T355*)(r558run_class(C)))))->_id/*4*/;
return R;
}
/*No:TYPE_BIT_2.nb*/
/*No:TYPE_BIT_2.n*/
/*No:TYPE_BIT_2.fz_bit_foo*/
/*No:TYPE_BIT_2.has_creation*/
/*No:TYPE_BIT_2.is_anchored*/
int r558is_c_int(T558* C){
int R=0;
R=(1020)==(r558mapping_code(C));
return R;
}
/*No:TYPE_BIT_2.is_array*/
/*No:TYPE_BIT_2.fz_typedef*/
int r558is_a(T558* C,T0* a1){
int R=0;
T0* _other_bit=NULL;
/*IF*/if (X291is_bit(a1)) {
_other_bit=a1;
if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
case 549: case 558: 
break;
default:
_other_bit=NULL;
};/*IF*/if (((((T558*)C))->_nb/*20*/)<=(X609nb(_other_bit))) {
R=1;
}
else {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms1_609));
}
/*FI*/}
else {
R=r605is_subclass_of(((T605*)(r558base_class(C))),X291base_class(a1));
/*IF*/if (R) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
else {
r558used_as_reference(C);
}
/*FI*/}
/*FI*/return R;
}
void r558c_initialize_in(T558* C,T0* a1){
int _i=0;
/*IF*/if ((r558mapping_code(C))==(1021)) {
r7extend(((T7*)a1),'\173');
_i=r558nb_unsigned(C);
while (!((_i)==(0))) {
r7extend(((T7*)a1),'0');
_i=(_i)-(1);
/*IF*/if ((_i)>(0)) {
r7extend(((T7*)a1),'\54');
}
/*FI*/}
r7extend(((T7*)a1),'\175');
}
else {
r7extend(((T7*)a1),'0');
}
/*FI*/}
void r558c_type_for_argument_in(T558* C,T0* a1){
r7extend(((T7*)a1),'T');
r2append_in(r558id(C),a1);
}
/*No:TYPE_BIT_2.Cchar*/
void r558set_run_time_mark(T558* C){
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
r7append(((T7*)(oBC291tmp_string)),r2to_string((((T558*)C))->_nb/*20*/));
C->_run_time_mark=r902item(oBC291tmp_string);
}
void r558gc_call_new_in(T558* C,T0* a1){
r7append(((T7*)a1),((T0*)ms115_470));
r2append_in(r558id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_BIT_2.fz_not_found*/
/*No:TYPE_BIT_2.us_put_0*/
/*No:TYPE_BIT_2.run_type*/
/*No:TYPE_BIT_2.is_pointer*/
/*No:TYPE_BIT_2.is_dummy_expanded*/
/*No:TYPE_BIT_2.is_string*/
int r558space_for_variable(T558* C){
int R=0;
R=(r558nb_unsigned(C))*(( (CHAR_BIT*sizeof(int)) )/( CHAR_BIT ));
return R;
}
/*No:TYPE_BIT_2.is_like_feature*/
/*No:TYPE_BIT_2.is_like_current*/
/*No:TYPE_BIT_2.us_put_1*/
void r558make(T558* C,T0* a1,T0* a2){
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
r7append(((T7*)(oBC291tmp_string)),(((T446*)((T446*)a2)))->_to_string/*16*/);
C->_written_mark=r902item(oBC291tmp_string);
C->_start_position=a1;
C->_n=a2;
}
/*No:TYPE_BIT_2.Cint*/
/*No:TYPE_BIT_2.fz_iinaiv*/
void r558mapping_cast(T558* C){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\50');
/*[IRF3.6c_type_for_target_in*/{T558* C1=C;
T0* b1=oBC291tmp_string;
r558c_type_for_argument_in(C1,b1);
}/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\51');
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
/*No:TYPE_BIT_2.start_position*/
/*No:TYPE_BIT_2.c_type_for_target_in*/
/*No:TYPE_BIT_2.fz_gc_mark*/
/*No:TYPE_BIT_2.fz_inako*/
/*No:TYPE_BIT_2.gc_initialize*/
/*No:TYPE_BIT_2.fz_00*/
/*No:TYPE_BIT_2.is_character*/
/*No:TYPE_BIT_2.is_user_expanded*/
/*No:TYPE_BIT_2.written_mark*/
/*No:TYPE_BIT_2.is_run_type*/
T0* r558to_runnable(T558* C,T0* a1){
T0* R=NULL;
T0* _ic=NULL;
T0* _rf8=NULL;
T0* _rf1=NULL;
T0* _rf=NULL;
/*IF*/if (((((T558*)C))->_run_time_mark/*12*/)==((void*)(NULL))) {
_rf=r446run_feature(((T446*)((((T558*)C))->_n/*16*/)),a1);
/*IF*/if ((_rf)==((void*)(NULL))) {
r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms74_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
_rf1=_rf;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 808: 
break;
default:
_rf1=NULL;
};_rf8=_rf;
if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
case 892: 
break;
default:
_rf8=NULL;
};/*IF*/if ((_rf1)!=((void*)(NULL))) {
_ic=X418value((((T808*)((T808*)_rf1)))->_base_feature/*44*/,1);
if(NULL!=(_ic))switch(((T0*)_ic)->id) {
case 342: 
break;
default:
_ic=NULL;
};/*IF*/if ((_ic)==((void*)(NULL))) {
r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
r683add_position(r808start_position(((T808*)_rf1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_nb=(((T342*)((T342*)_ic)))->_value/*16*/;
/*IF*/if (((((T558*)C))->_nb/*20*/)<(0)) {
r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
r683add_position(r808start_position(((T808*)_rf1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_558);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
 else if ((_rf8)!=((void*)(NULL))) {
C->_nb=r892integer_value(((T892*)_rf8),(((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
}
else {
r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*20*/);
r683add_position(X496start_position(_rf));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/r558set_run_time_mark(C);
R=(T0*)C;
r558to_runnable_1_2(C);
}
/*FI*/}
else {
{T558*n=malloc(sizeof(*n));
*n=M558;
r558make(n,(((T558*)C))->_start_position/*4*/,(((T558*)C))->_n/*16*/);
R=(T0*)n;
}
R=r558to_runnable(((T558*)R),a1);
}
/*FI*/return R;
}
void r558c_type_for_external_in(T558* C,T0* a1){
/*IF*//*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T558* C1=C;
T0* b1=a1;
r558c_type_for_argument_in(C1,b1);
}/*]*/
/*FI*/}
int r558is_c_char(T558* C){
int R=0;
R=(1019)==(r558mapping_code(C));
return R;
}
T0* r558generic_list(T558* C){
T0* R=NULL;
r558fatal_error_generic_list(C);
return R;
}
/*No:TYPE_BIT_2.is_formal_generic*/
void r558demangling_in(T558* C,T0* a1){
/*IF*//*AF*//*AE*/
r7extend(((T7*)a1),'E');
/*FI*/r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),(((T558*)C))->_run_time_mark/*12*/);
}
/*No:TYPE_BIT_2.is_real*/
int r558nb_unsigned(T558* C){
int R=0;
int _ib=0;
_ib= (CHAR_BIT*sizeof(int)) ;
R=((((T558*)C))->_nb/*20*/)/(_ib);
/*IF*/if ((((((T558*)C))->_nb/*20*/)%(_ib))>(0)) {
R=(R)+(1);
}
/*FI*/return R;
}
/*No:TYPE_BIT_2.is_bit*/
void r558fatal_error_generic_list(T558* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
void r558to_runnable_1_2(T558* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rc=r558run_class(C);
_rf=r355get_feature_with(((T355*)_rc),((T0*)ms105_473));
_rf=r355get_feature_with(((T355*)_rc),((T0*)ms106_473));
}
/*No:TYPE_BIT_2.fz_new*/
/*No:TYPE_BIT_2.us_bit_n*/
T0* r558smallest_ancestor(T558* C,T0* a1){
T0* R=NULL;
T0* _other_bit=NULL;
_other_bit=a1;
if(NULL!=(_other_bit))switch(((T0*)_other_bit)->id) {
case 549: case 558: 
break;
default:
_other_bit=NULL;
};/*IF*/if (((((T558*)C))->_nb/*20*/)<(X609nb(_other_bit))) {
R=(T0*)C;
}
else {
R=a1;
}
/*FI*/return R;
}
/*No:TYPE_BIT_2.fz_unsigned*/
/*No:TYPE_BIT_2.is_boolean*/
/*No:TYPE_BIT_2.is_double*/
T0* r558run_class(T558* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
/*No:TYPE_BIT_2.run_time_mark*/
void r558c_initialize(T558* C){
int _i=0;
/*IF*/if ((r558mapping_code(C))==(1021)) {
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\173');
_i=r558nb_unsigned(C);
while (!((_i)==(0))) {
r7extend(((T7*)(oBC291tmp_string)),'0');
_i=(_i)-(1);
/*IF*/if ((_i)>(0)) {
r7extend(((T7*)(oBC291tmp_string)),'\54');
}
/*FI*/}
r7extend(((T7*)(oBC291tmp_string)),'\175');
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
else {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='0';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
void r558cast_to_ref(T558* C){
X609cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
}
void r558gc_mark_in(T558* C,T0* a1){
r7append(((T7*)a1),((T0*)ms107_470));
r2append_in(r558id(C),a1);
}
int r558is_a_in(T558* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T558*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r558to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r558look_up_for(T558* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r558base_class(C))),a1,a2);
return R;
}
void r558c_header_pass1(T558* C){
int _mem_id=0;
int _mc=0;
_mc=r558mapping_code(C);
_mem_id=r558id(C);
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
{int z1=r558mapping_code(C);

if((1019==z1)){
r7append(((T7*)(oBC291tmp_string)),((T0*)ms132_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7append(((T7*)(oBC291tmp_string)),((T0*)ms79_470));
}
 else 
if((1020==z1)){
r7append(((T7*)(oBC291tmp_string)),((T0*)ms132_470));
}
 else {r7append(((T7*)(oBC291tmp_string)),((T0*)ms132_470));
}}
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(_mem_id,oBC291tmp_string);
/*IF*/if ((r558mapping_code(C))==(1021)) {
r7extend(((T7*)(oBC291tmp_string)),'\133');
r2append_in(r558nb_unsigned(C),oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\135');
}
/*FI*/r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
int r558is_c_unsigned_ptr(T558* C){
int R=0;
R=(1021)==(r558mapping_code(C));
return R;
}
/*No:TYPE_BIT_2.c_type_for_result_in*/
/*No:TYPE_BIT_2.expanded_initializer*/
/*No:TYPE_BIT_2.Cuptr*/
/*No:TYPE_BIT_2.fz_void*/
/*No:TYPE_BIT_2.fz_dot*/
/*No:TYPE_BIT_2.is_generic*/
void r558used_as_reference(T558* C){
T0* _rc=NULL;
T0* _type_bit_ref=NULL;
/*IF*/if (r226fast_has(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/)) {
}
else {
r226add_last(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/);
{T963*n=malloc(sizeof(*n));
*n=M963;
r963make(n,(T0*)C);
_type_bit_ref=(T0*)n;
}
r41add_last(((T41*)(oBC609mem_type_bit_ref)),_type_bit_ref);
_rc=r963run_class(((T963*)_type_bit_ref));
r355set_at_run_time(((T355*)_rc));
}
/*FI*/}
/*No:TYPE_BIT_2.c_header_pass2*/
/*No:TYPE_BIT_2.gc_define1*/
/*No:TYPE_BIT_2.need_c_struct*/
/*No:TYPE_BIT_2.is_reference*/
/*No:TYPE_BIT_2.gc_info_in*/
T0* r558base_class(T558* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r558base_class_name();
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_BIT_2.call_gc_sweep_in*/
int r558mapping_code(T558* C){
int R=0;
/*IF*/if (((((T558*)C))->_nb/*20*/)<=( CHAR_BIT )) {
R=1019;
}
 else if (((((T558*)C))->_nb/*20*/)<=( (CHAR_BIT*sizeof(int)) )) {
R=1020;
}
else {
R=1021;
}
/*FI*/return R;
}
/*No:TYPE_BIT_2.gc_define2*/
/*No:TYPE_BIT_2.need_gc_mark_function*/
/*No:TYPE_BIT_2.fatal_error*/
/*No:TYPE_BIT_2.fz_char*/
/*No:TYPE_BIT_2.is_any*/
void r558to_reference(T558* C){
T0* _type_bit_ref=NULL;
int _idx=0;
_idx=r226fast_index_of(((T226*)(oBC609mem_ref_nb)),(((T558*)C))->_nb/*20*/);
_type_bit_ref=/*(IRF4.6item*/((((T41*)((T41*)(oBC609mem_type_bit_ref))))->_storage/*4*/)[_idx]/*)*/;
r963to_reference(((T963*)_type_bit_ref));
}
/*No:TYPE_BIT_2.c_header_pass3*/
T0* r558base_class_name(void){
if (fBC609base_class_name==0){
T0* R=NULL;
fBC609base_class_name=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms4_473),NULL);
R=(T0*)n;
}
oBC609base_class_name=R;}
return oBC609base_class_name;}
/*No:TYPE_BIT_2.is_expanded*/
/*No:TYPE_BIT_2.is_basic_eiffel_expanded*/
/*No:TYPE_BIT_2.is_none*/
/*No:TYPE_BIT_2.to_expanded*/
/*No:TYPE_BIT_2.is_integer*/
/*No:TYPE_BIT_2.c_header_pass4*/
/*No:CALL_INFIX_OR.arguments*/
T0* r121add_comment(T121* 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 r121to_integer(T121* C){
int R=0;
r121error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T121*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r121is_a(T121* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T121*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T121*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
r121error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_OR.is_current*/
void r121mapping_c_arg(T121* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X291run_type((((T121*)C))->_result_type/*20*/);
/*IF*/if (X291is_reference(_actual_type)) {
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T121* 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*/{T121* 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*/{T121* 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*/{T121* 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*/{T121* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_INFIX_OR.static_value*/
void r121make(T121* 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,r121operator(),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;
}
r121make_call_1(C,a1,(((T121*)C))->_feature_name/*28*/,_eal);
}
void r121mapping_c_target(T121* C,T0* a1){
T0* _actual_type=NULL;
int _flag=0;
_flag=r324call_invariant_start(a1);
_actual_type=X291run_type((((T121*)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*/{T121* 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*/{T121* 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*/{T121* 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*/{T121* 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*/{T121* 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_OR.nb_errors*/
/*No:CALL_INFIX_OR.feature_name*/
/*No:CALL_INFIX_OR.fz_iinaiv*/
/*No:CALL_INFIX_OR.arg_count*/
/*No:CALL_INFIX_OR.dca_inline_argument*/
/*No:CALL_INFIX_OR.run_feature*/
/*No:CALL_INFIX_OR.call_proc_call_c2c*/
/*No:CALL_INFIX_OR.start_position*/
/*No:CALL_INFIX_OR.target*/
/*No:CALL_INFIX_OR.compile_to_c*/
/*No:CALL_INFIX_OR.c_simple*/
T0* r121to_runnable(T121* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T121*)C))->_current_type/*8*/)==((void*)(NULL))) {
r121to_runnable_0(C,a1);
_a=X431to_runnable((((T121*)C))->_arguments/*24*/,a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r121error(X662start_position(r121arg1(C)),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
X431match_with((((T121*)C))->_arguments/*24*/,(((T121*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T121*)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(r121arg1(C)));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r121twin(C);
/*[IRF3.3set_current_type*/((((T121*)(((T121*)R))))->_current_type)=(NULL);
/*]*/
R=r121to_runnable(((T121*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_OR.result_type*/
/*No:CALL_INFIX_OR.is_result*/
T0* r121twin(T121* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T121*)R)=*C;
return R;
}
/*No:CALL_INFIX_OR.set_current_type*/
T0* r121operator(void){
T0* R=NULL;
R=((T0*)ms41_473);
return R;
}
int r121is_static(T121* C){
int R=0;
/*IF*/if (X291is_boolean(X662result_type((((T121*)C))->_target/*12*/))) {
/*IF*/if ((X662is_static((((T121*)C))->_target/*12*/))&&(X662is_static(r121arg1(C)))) {
R=1;
C->_static_value_mem=(X662static_value((((T121*)C))->_target/*12*/))+(X662static_value(r121arg1(C)));
/*IF*/if (((((T121*)C))->_static_value_mem/*4*/)==(2)) {
C->_static_value_mem=1;
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:CALL_INFIX_OR.fz_07*/
/*No:CALL_INFIX_OR.can_be_dropped*/
/*No:CALL_INFIX_OR.current_type*/
void r121compile_to_c_old(T121* C){
X662compile_to_c_old((((T121*)C))->_target/*12*/);
/*IF*/{/*AT*/X431compile_to_c_old((((T121*)C))->_arguments/*24*/);
}
/*FI*/}
/*No:CALL_INFIX_OR.static_value_mem*/
void r121make_call_1(T121* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_OR.is_manifest_string*/
/*No:CALL_INFIX_OR.is_void*/
void r121to_runnable_0(T121* C,T0* a1){
C->_current_type=a1;
r121cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T121*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T121*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T121*)C))->_run_feature/*16*/));
r121error((((T454*)((T454*)((((T121*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T121*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T121*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_INFIX_OR.is_pre_computable*/
void r121cpc_to_runnable(T121* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T121*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T121*)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((((T121*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T121*)C))->_target/*12*/,(((T121*)C))->_run_feature/*16*/);
}
int r121use_current(T121* C){
int R=0;
/*IF*/{/*AT*/R=X431use_current((((T121*)C))->_arguments/*24*/);
}
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T121*)C))->_target/*12*/)) {
R=X496use_current((((T121*)C))->_run_feature/*16*/);
}
else {
R=X662use_current((((T121*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r121finalize(T121* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(((T121*)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 r121error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_OR.isa_dca_inline_argument*/
/*No:CALL_INFIX_OR.fatal_error*/
/*No:CALL_INFIX_OR.fz_bad_argument*/
T0* r121arg1(T121* C){
T0* R=NULL;
R=X431first((((T121*)C))->_arguments/*24*/);
return R;
}
void r121afd_check(T121* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T121*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T121*)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((((T121*)C))->_target/*12*/,(((T121*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T121*)C))->_target/*12*/);
/*IF*/{/*AT*/X431afd_check((((T121*)C))->_arguments/*24*/);
}
/*FI*/}
/*No:CALL_INFIX_OR.us_or*/
int r590debug_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)==(1);
return R;
}
/*No:RUN_CONTROL.level_check_debug*/
/*No:RUN_CONTROL.set_require_check*/
/*No:RUN_CONTROL.set_trace*/
/*No:RUN_CONTROL.set_all_check*/
int r590all_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(0);
return R;
}
/*No:RUN_CONTROL.set_no_check*/
/*No:RUN_CONTROL.root_class*/
/*No:RUN_CONTROL.level_ensure*/
/*No:RUN_CONTROL.level_require*/
/*No:RUN_CONTROL.make*/
/*No:RUN_CONTROL.set_root_class*/
/*No:RUN_CONTROL.cecil_path*/
/*No:RUN_CONTROL.trace*/
/*No:RUN_CONTROL.set_ensure_check*/
/*No:RUN_CONTROL.level_loop*/
/*No:RUN_CONTROL.level_check_all*/
int r590ensure_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-3);
return R;
}
int r590require_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-4);
return R;
}
/*No:RUN_CONTROL.level*/
/*No:RUN_CONTROL.set_boost*/
/*No:RUN_CONTROL.set_debug_check*/
/*No:RUN_CONTROL.level_no*/
/*No:RUN_CONTROL.set_invariant_check*/
int r590loop_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-1);
return R;
}
/*No:RUN_CONTROL.level_invariant*/
int r590invariant_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-2);
return R;
}
/*No:RUN_CONTROL.set_cecil_path*/
/*No:RUN_CONTROL.set_loop_check*/
int r590no_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-5);
return R;
}
/*No:RUN_CONTROL.level_boost*/
int r590boost(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)==(-6);
return R;
}

