/*
-- 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 "pretty.h"
T0* r970language_name(void){
T0* R=NULL;
R=((T0*)ms29_470);
return R;
}
/*No:NATIVE_JVM_INVOKEVIRTUAL.pretty_print*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.fz_jvm_invokevirtual*/
void r620make(T620* C,T0* a1,T0* a2){
int _actual_count=0;
int _il=0;
C->_start_position=a1;
C->_list=a2;
_il=1;
while (!((_il)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) {
_actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T620*)C))->_list/*8*/)),_il)));
_il=(_il)+(1);
}
{T733*n=malloc(sizeof(*n));
*n=M733;
r733make(n,1,_actual_count);
C->_flat_list=(T0*)n;
}
_il=1;
while (!((_il)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) {
X411append_in(r382item(((T382*)((((T620*)C))->_list/*8*/)),_il),(T0*)C);
_il=(_il)+(1);
}
}
/*No:LOCAL_VAR_LIST.name*/
/*No:LOCAL_VAR_LIST.nb_errors*/
T0* r620type(T620* C,int a1){
T0* R=NULL;
R=(((T39*)((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*20*/;
return R;
}
/*No:LOCAL_VAR_LIST.start_position*/
T0* r620to_runnable(T620* C,T0* a1){
T0* R=NULL;
T0* _n2=NULL;
T0* _n1=NULL;
int _i=0;
/*IF*/if (((((T620*)C))->_current_type/*16*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
_i=(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*/;
while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_n1=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i);
_n2=r39to_runnable(((T39*)_n1),a1);
/*IF*/if ((_n2)==((void*)(NULL))) {
r620error((((T39*)((T39*)_n1)))->_start_position/*12*/,((T0*)ms3_535));
}
 else if ((_n1)!=((void*)(_n2))) {
/*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/));
T0* b1=_n2;
int b2=_i;
((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1);
}/*]*/
}
/*FI*/r39name_clash(((T39*)_n2));
_i=(_i)-(1);
}
}
else {
{T620*n=malloc(sizeof(*n));
*n=M620;
r620runnable_from_current(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:LOCAL_VAR_LIST.em1*/
void r620pretty_print(T620* C){
int _i=0;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_620));
/*IF*/if (r6_px_and(r238zen_mode(((T238*)(oBC364fmt))),(r382count(((T382*)((((T620*)C))->_list/*8*/))))==(1))) {
X411pretty_print(r382first(((T382*)((((T620*)C))->_list/*8*/))));
r238put_character(((T238*)(oBC364fmt)),'\73');
}
else {
_i=1;
while (!((_i)>((((T382*)((T382*)((((T620*)C))->_list/*8*/))))->_upper/*8*/))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
r238indent(((T238*)(oBC364fmt)));
X411pretty_print(r382item(((T382*)((((T620*)C))->_list/*8*/)),_i));
r238put_character(((T238*)(oBC364fmt)),'\73');
_i=(_i)+(1);
}
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
}
/*No:LOCAL_VAR_LIST.list*/
int r620rank_of(T620* C,T0* a1){
int R=0;
R=/*(IRF4.6count*/(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
while (!(((R)==(0))||((a1)==((void*)((((T39*)((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*8*/))))) {
R=(R)-(1);
}
return R;
}
/*No:LOCAL_VAR_LIST.current_type*/
void r620runnable_from_current(T620* C,T0* a1,T0* a2){
T0* _n2=NULL;
T0* _n1=NULL;
int _i=0;
C->_start_position=(((T620*)((T620*)a1)))->_start_position/*4*/;
C->_list=(((T620*)((T620*)a1)))->_list/*8*/;
C->_current_type=a2;
C->_flat_list=r733twin(((T733*)((((T620*)((T620*)a1)))->_flat_list/*12*/)));
_i=(((T733*)((T733*)((((T620*)C))->_flat_list/*12*/))))->_upper/*12*/;
while (!((_i)==(0))) {
_n1=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i);
_n2=r39to_runnable(((T39*)_n1),a2);
/*IF*/if ((_n2)==((void*)(NULL))) {
r620error((((T39*)((T39*)_n1)))->_start_position/*12*/,((T0*)ms3_535));
}
/*FI*//*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/));
T0* b1=_n2;
int b2=_i;
((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1);
}/*]*/
_i=(_i)-(1);
}
}
void r620error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r620add_last(T620* C,T0* a1){
T0* _n2=NULL;
int _i=0;
_i=1;
while (!((r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i))==((void*)(NULL)))) {
_n2=r733item(((T733*)((((T620*)C))->_flat_list/*12*/)),_i);
/*IF*/if (((((T39*)((T39*)_n2)))->_to_string/*8*/)==((void*)((((T39*)((T39*)a1)))->_to_string/*8*/))) {
r683add_position((((T39*)((T39*)a1)))->_start_position/*12*/);
r683add_position((((T39*)((T39*)_n2)))->_start_position/*12*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_535);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
/*[IRF3.6put*/{T733* C1=((T733*)((((T620*)C))->_flat_list/*12*/));
T0* b1=a1;
int b2=_i;
((((T733*)C1))->_storage/*4*/)[(b2)-((((T733*)C1))->_lower/*16*/)]=(b1);
}/*]*/
/*[IRF3.3set_rank*/((((T39*)(((T39*)a1))))->_rank)=(_i);
/*]*/
}
/*No:LOCAL_VAR_LIST.count*/
/*No:LOCAL_VAR_LIST.fatal_error*/
/*No:LOCAL_VAR_LIST.flat_list*/
/*No:TYPE_BIT_1.n*/
/*No:TYPE_BIT_1.nb*/
/*No:TYPE_BIT_1.fz_bit_foo*/
/*No:TYPE_BIT_1.has_creation*/
/*No:TYPE_BIT_1.is_anchored*/
/*No:TYPE_BIT_1.is_array*/
int r549is_a(T549* 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 ((/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*12*//*)*/)<=(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*)(r549base_class(C))),X291base_class(a1));
/*IF*/if (R) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
else {
r549used_as_reference(C);
}
/*FI*/}
/*FI*/return R;
}
void r549set_run_time_mark(T549* C){
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms78_470));
r7append(((T7*)(oBC291tmp_string)),r2to_string(/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*12*//*)*/));
C->_run_time_mark=r902item(oBC291tmp_string);
}
/*No:TYPE_BIT_1.run_type*/
/*No:TYPE_BIT_1.is_pointer*/
/*No:TYPE_BIT_1.us_put_0*/
/*No:TYPE_BIT_1.is_string*/
/*No:TYPE_BIT_1.is_like_feature*/
/*No:TYPE_BIT_1.is_like_current*/
/*No:TYPE_BIT_1.us_put_1*/
void r549make(T549* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_n=a2;
r549set_run_time_mark(C);
C->_written_mark=(((T549*)C))->_run_time_mark/*12*/;
}
/*No:TYPE_BIT_1.start_position*/
/*No:TYPE_BIT_1.fz_inako*/
/*No:TYPE_BIT_1.is_character*/
/*No:TYPE_BIT_1.written_mark*/
T0* r549to_runnable(T549* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r549to_runnable_1_2(C);
return R;
}
/*No:TYPE_BIT_1.is_run_type*/
/*No:TYPE_BIT_1.is_formal_generic*/
T0* r549generic_list(T549* C){
T0* R=NULL;
r549fatal_error_generic_list(C);
return R;
}
/*No:TYPE_BIT_1.is_real*/
/*No:TYPE_BIT_1.is_bit*/
void r549fatal_error_generic_list(T549* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
void r549to_runnable_1_2(T549* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rc=r549run_class(C);
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms105_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms106_473));
}
/*No:TYPE_BIT_1.us_bit_n*/
/*No:TYPE_BIT_1.pretty_print*/
T0*oBC291tmp_string=NULL;
T0* r549smallest_ancestor(T549* 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 ((/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*12*//*)*/)<(X609nb(_other_bit))) {
R=(T0*)C;
}
else {
R=a1;
}
/*FI*/return R;
}
/*No:TYPE_BIT_1.is_boolean*/
/*No:TYPE_BIT_1.is_double*/
T0* r549run_class(T549* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
/*No:TYPE_BIT_1.run_time_mark*/
int r549is_a_in(T549* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T549*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r549to_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* r549look_up_for(T549* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r549base_class(C))),a1,a2);
return R;
}
/*No:TYPE_BIT_1.expanded_initializer*/
T0*oBC609mem_type_bit_ref=NULL;
/*No:TYPE_BIT_1.fz_dot*/
/*No:TYPE_BIT_1.is_generic*/
void r549used_as_reference(T549* C){
T0* _rc=NULL;
T0* _type_bit_ref=NULL;
/*IF*/if (r226fast_has(((T226*)(oBC609mem_ref_nb)),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*12*//*)*/)) {
}
else {
r226add_last(((T226*)(oBC609mem_ref_nb)),/*(IRF4.6nb*/(((T342*)((T342*)((((T549*)C))->_n/*16*/))))->_value/*12*//*)*/);
{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));
r368set_at_run_time(((T368*)_rc));
}
/*FI*/}
/*No:TYPE_BIT_1.is_reference*/
T0* r549base_class(T549* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r549base_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_1.is_any*/
int fBC609base_class_name=0;
T0*oBC609base_class_name=NULL;
T0* r549base_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_1.is_expanded*/
/*No:TYPE_BIT_1.is_basic_eiffel_expanded*/
/*No:TYPE_BIT_1.is_none*/
T0*oBC609mem_ref_nb=NULL;
/*No:TYPE_BIT_1.is_integer*/
T0* r526add_comment(T526* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:E_RETRY.make*/
/*No:E_RETRY.start_position*/
T0* r526to_runnable(T526* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T526*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
R=(T0*)C;
}
 else if (((((T526*)C))->_run_compound/*4*/)==((void*)(a1))) {
R=(T0*)C;
}
else {
{T526*n=malloc(sizeof(*n));
*n=M526;
/*[IRF3.3make*/((((T526*)(n)))->_start_position)=((((T526*)C))->_start_position/*8*/);
/*]*/
R=(T0*)n;
}
R=r526to_runnable(((T526*)R),a1);
}
/*FI*/return R;
}
/*No:E_RETRY.pretty_print*/
/*No:E_RETRY.run_compound*/
/*No:E_RETRY.end_mark_comment*/
/*No:CHECK_INVARIANT.fz_bad_assertion*/
T0* r623runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r623error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void r623make(T623* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
T0* r623name(void){
T0* R=NULL;
R=((T0*)ms4_470);
return R;
}
/*No:CHECK_INVARIANT.nb_errors*/
/*No:CHECK_INVARIANT.start_position*/
T0* r623to_runnable(T623* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T623*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
/*IF*/if (((((T623*)C))->_list/*8*/)!=((void*)(NULL))) {
C->_list=r623runnable((((T623*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel))));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r623twin(C);
/*[IRF3.3set_current_type*/((((T623*)(((T623*)R))))->_current_type)=(NULL);
/*]*/
R=r623to_runnable(((T623*)R),a1);
}
/*FI*/return R;
}
T0* r623twin(T623* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T623*)R)=*C;
return R;
}
/*No:CHECK_INVARIANT.set_current_type*/
void r623pretty_print(T623* C){
int _i=0;
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),r623name());
r238level_incr(((T238*)(oBC364fmt)));
/*IF*/if (((((T623*)C))->_header_comment/*4*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T623*)C))->_header_comment/*4*/)));
}
else {
r238indent(((T238*)(oBC364fmt)));
}
/*FI*//*IF*/if (((((T623*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=1;
while (!((_i)>((((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/))) {
/*IF*/if (r6_px_and(r238zen_mode(((T238*)(oBC364fmt))),(_i)==((((T608*)((T608*)((((T623*)C))->_list/*8*/))))->_upper/*8*/))) {
/*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
/*]*/
}
else {
/*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(1);
/*]*/
}
/*FI*/r238indent(((T238*)(oBC364fmt)));
r348pretty_print(((T348*)(r608item(((T608*)((((T623*)C))->_list/*8*/)),_i))));
_i=(_i)+(1);
}
}
/*FI*/r238level_decr(((T238*)(oBC364fmt)));
r238indent(((T238*)(oBC364fmt)));
}
/*No:CHECK_INVARIANT.list*/
/*No:CHECK_INVARIANT.current_type*/
/*No:CHECK_INVARIANT.header_comment*/
void r623error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CHECK_INVARIANT.fz_check*/
/*No:RUN_FEATURE_5.arguments*/
/*No:RUN_FEATURE_5.actuals_clients*/
void r869make(T869* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r869run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r869initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_5.name*/
int r869arg_count(T869* C){
int R=0;
/*IF*/if (((((T869*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T869*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_5.local_vars*/
/*No:RUN_FEATURE_5.base_feature*/
/*No:RUN_FEATURE_5.start_position*/
/*No:RUN_FEATURE_5.ensure_assertion*/
int r869is_exported_in(T869* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r869clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_5.result_type*/
void r869add_client(T869* C,T0* a1){
int _i=0;
/*IF*/if (((((T869*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T869*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T869*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T869*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T869*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r869run_class(C))),a1);
}
/*No:RUN_FEATURE_5.require_assertion*/
/*No:RUN_FEATURE_5.use_current_state*/
/*No:RUN_FEATURE_5.current_type*/
T0* r869run_class(T869* C){
T0* R=NULL;
R=X291run_class((((T869*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_5.ucs_not_computed*/
/*No:RUN_FEATURE_5.routine_body*/
T0* r869clients(T869* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T869*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T869*)C))->_current_type/*4*/);
_bfbc=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T869*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T869*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_5.clients_memory*/
void r869initialize(T869* C){
C->_arguments=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if ((((((T869*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T869*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T869*)C))->_arguments/*20*/)),(((T869*)C))->_current_type/*4*/);
}
/*FI*/C->_local_vars=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if ((((((T869*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T869*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_local_vars=r620to_runnable(((T620*)((((T869*)C))->_local_vars/*48*/)),(((T869*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T134*)((T134*)((((T869*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T869*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T869*)C))->_routine_body/*32*/)),(((T869*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r134run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r134run_ensure((T0*)C);
}
/*FI*/r916add_procedure((T0*)C);
}
/*No:CALL_INFIX_LT.arguments*/
T0* r112add_comment(T112* 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 r112to_integer(T112* C){
int R=0;
r112error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T112*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r112is_a(T112* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T112*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T112*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r112error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_LT.is_current*/
void r112make(T112* 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,r112operator(),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;
}
r112make_call_1(C,a1,(((T112*)C))->_feature_name/*24*/,_eal);
}
void r112print_as_target(T112* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r112pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_LT.nb_errors*/
/*No:CALL_INFIX_LT.feature_name*/
/*No:CALL_INFIX_LT.fz_iinaiv*/
/*No:CALL_INFIX_LT.run_feature*/
/*No:CALL_INFIX_LT.start_position*/
/*No:CALL_INFIX_LT.target*/
/*No:CALL_INFIX_LT.precedence*/
T0* r112to_runnable(T112* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T112*)C))->_current_type/*4*/)==((void*)(NULL))) {
r112to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T112*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r112error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T112*)C))->_arguments/*20*/)),(((T112*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T112*)C))->_result_type/*16*/;
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(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r112twin(C);
/*[IRF3.3set_current_type*/((((T112*)(((T112*)R))))->_current_type)=(NULL);
/*]*/
R=r112to_runnable(((T112*)R),a1);
}
/*FI*/return R;
}
void r112bracketed_pretty_print(T112* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r112pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_LT.result_type*/
T0* r112twin(T112* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T112*)R)=*C;
return R;
}
/*No:CALL_INFIX_LT.set_current_type*/
T0* r112operator(void){
T0* R=NULL;
R=((T0*)ms36_473);
return R;
}
/*No:CALL_INFIX_LT.atomic_precedence*/
void r112pretty_print(T112* C){
/*IF*/if ((X662precedence((((T112*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T112*)C))->_target/*8*/);
r112print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T112*)C))->_target/*8*/))>=(6)) {
X662bracketed_pretty_print((((T112*)C))->_target/*8*/);
}
else {
X662pretty_print((((T112*)C))->_target/*8*/);
}
/*FI*/r112print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)<=(X662precedence((((T112*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T112*)C))->_target/*8*/);
r112print_op(C);
/*IF*/if ((6)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T112*)C))->_target/*8*/);
r112print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T112*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r112print_op(T112* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T112*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_LT.current_type*/
void r112make_call_1(T112* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_LT.is_manifest_string*/
/*No:CALL_INFIX_LT.is_void*/
void r112to_runnable_0(T112* C,T0* a1){
C->_current_type=a1;
r112cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T112*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T112*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T112*)C))->_run_feature/*12*/));
r112error((((T454*)((T454*)((((T112*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T112*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T112*)C))->_target/*8*/);
}
/*FI*/}
void r112cpc_to_runnable(T112* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T112*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T112*)C))->_target/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T112*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T112*)C))->_target/*8*/,(((T112*)C))->_run_feature/*12*/);
}
void r112error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_LT.fatal_error*/
/*No:CALL_INFIX_LT.fz_bad_argument*/
/*No:CALL_INFIX_LT.arg1*/
/*No:CALL_INFIX_LT.us_lt*/
int r648has_creation(T648* C,T0* a1){
int R=0;
R=X291has_creation((((T648*)C))->_run_type/*8*/,a1);
return R;
}
/*No:TYPE_LIKE_FEATURE.is_anchored*/
int r648is_array(T648* C){
int R=0;
R=X291is_array((((T648*)C))->_run_type/*8*/);
return R;
}
int r648is_a(T648* C,T0* a1){
int R=0;
R=X291is_a((((T648*)C))->_run_type/*8*/,a1);
return R;
}
int r648is_pointer(T648* C){
int R=0;
R=X291is_pointer((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.run_type*/
int r648is_string(T648* C){
int R=0;
R=X291is_string((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.is_like_feature*/
/*No:TYPE_LIKE_FEATURE.is_like_current*/
T0* r648ultimate_run_type(T648* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
_t=a1;
while (!((_t)==((void*)(X291run_type(_t))))) {
_t=X291run_type(_t);
}
/*IF*/if (((((T648*)C))->_run_type/*8*/)==((void*)(NULL))) {
C->_run_type=_t;
R=(T0*)C;
}
else {
R=r648twin(C);
/*[IRF3.3set_run_type*/((((T648*)(((T648*)R))))->_run_type)=(_t);
/*]*/
}
/*FI*/return R;
}
void r648make(T648* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_like_what=a2;
r7copy(((T7*)(oBC646tmp_written_mark)),((T0*)ms113_470));
r7append(((T7*)(oBC646tmp_written_mark)),X776to_string((((T648*)C))->_like_what/*12*/));
C->_written_mark=r902item(oBC646tmp_written_mark);
}
void r648anchor_cycle_start(T648* C){
int _i=0;
/*IF*/if (((((T907*)((T907*)(oBC646visited))))->_upper/*8*/)<(0)) {
r907add_last(((T907*)(oBC646visited)),(((T648*)C))->_start_position/*4*/);
}
 else if (r907fast_has(((T907*)(oBC646visited)),(((T648*)C))->_start_position/*4*/)) {
_i=0;
while (!((_i)>((((T907*)((T907*)(oBC646visited))))->_upper/*8*/))) {
r683add_position(/*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
r907add_last(((T907*)(oBC646visited)),(((T648*)C))->_start_position/*4*/);
}
/*FI*/}
/*No:TYPE_LIKE_FEATURE.fz_bad_anchor*/
/*No:TYPE_LIKE_FEATURE.start_position*/
/*No:TYPE_LIKE_FEATURE.like_what*/
int r648is_character(T648* C){
int R=0;
R=X291is_character((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.written_mark*/
T0* r648to_runnable(T648* C,T0* a1){
T0* R=NULL;
T0* _rc=NULL;
T0* _f=NULL;
T0* _t=NULL;
r648anchor_cycle_start(C);
_rc=X291run_class(a1);
_f=X291look_up_for(a1,_rc,(((T648*)C))->_like_what/*12*/);
/*IF*/if ((_f)==((void*)(NULL))) {
r648error((((T648*)C))->_start_position/*4*/,((T0*)ms1_648));
}
else {
_t=/*X359*/((T0*)(((T398*)((T398*)_f)))->_result_type/*12*/);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X359start_position(_f));
r648error((((T648*)C))->_start_position/*4*/,((T0*)ms2_648));
}
else {
_t=X291to_runnable(_t,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r648error((((T648*)C))->_start_position/*4*/,((T0*)ms54_470));
}
else {
R=r648ultimate_run_type(C,X291run_type(_t));
}
/*FI*/}
/*FI*/}
/*FI*/r648anchor_cycle_end(C);
return R;
}
/*No:TYPE_LIKE_FEATURE.is_run_type*/
/*No:TYPE_LIKE_FEATURE.is_formal_generic*/
T0* r648generic_list(T648* C){
T0* R=NULL;
/*IF*/if (r648is_generic(C)) {
R=X291generic_list((((T648*)C))->_run_type/*8*/);
}
else {
r648fatal_error_generic_list(C);
}
/*FI*/return R;
}
int r648is_real(T648* C){
int R=0;
R=X291is_real((((T648*)C))->_run_type/*8*/);
return R;
}
T0* r648twin(T648* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T648*)R)=*C;
return R;
}
int r648is_bit(T648* C){
int R=0;
R=X291is_bit((((T648*)C))->_run_type/*8*/);
return R;
}
void r648fatal_error_generic_list(T648* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_LIKE_FEATURE.pretty_print*/
T0* r648smallest_ancestor(T648* C,T0* a1){
T0* R=NULL;
R=X291smallest_ancestor((((T648*)C))->_run_type/*8*/,a1);
return R;
}
int r648is_boolean(T648* C){
int R=0;
R=X291is_boolean((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.set_run_type*/
int r648is_double(T648* C){
int R=0;
R=X291is_double((((T648*)C))->_run_type/*8*/);
return R;
}
T0* r648run_class(T648* C){
T0* R=NULL;
R=r604run_class((((T648*)C))->_run_type/*8*/);
return R;
}
T0* r648run_time_mark(T648* C){
T0* R=NULL;
/*IF*/if (((((T648*)C))->_run_type/*8*/)!=((void*)(NULL))) {
R=X291run_time_mark((((T648*)C))->_run_type/*8*/);
}
/*FI*/return R;
}
int r648is_a_in(T648* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T648*)C))->_written_mark/*16*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r648to_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* r648look_up_for(T648* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r648base_class(C))),a1,a2);
return R;
}
/*No:TYPE_LIKE_FEATURE.fz_cad*/
T0* r648expanded_initializer(T648* C){
T0* R=NULL;
R=X291expanded_initializer((((T648*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.fz_dot*/
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*/
int r648is_reference(T648* C){
int R=0;
R=X291is_reference((((T648*)C))->_run_type/*8*/);
return R;
}
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;
}
/*No:TYPE_LIKE_FEATURE.fatal_error*/
int r648is_any(T648* C){
int R=0;
R=X291is_any((((T648*)C))->_run_type/*8*/);
return R;
}
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;
}
int r648is_integer(T648* C){
int R=0;
R=X291is_integer((((T648*)C))->_run_type/*8*/);
return R;
}
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 r118pretty_tail(T118* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_418));
/*[IRF3.6pretty_print*/{T936* C1=((T936*)(/*(IRF4.3value*/(((T118*)C))->_value_mem/*24*//*)*/));
r238put_string(((T238*)(oBC364fmt)),(((T936*)C1))->_to_string/*12*/);
}/*]*/
}
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*/
void r118pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*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=r368at(((T368*)_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*/
void r118pretty_print(T118* C){
r118pretty_print_profile(C);
r118pretty_tail(C);
r238put_character(((T238*)(oBC364fmt)),'\73');
/*IF*/if (((((T118*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r393pretty_print(((T393*)((((T118*)C))->_header_comment/*16*/)));
}
/*FI*/}
/*No:CST_ATT_DOUBLE.set_clients*/
/*No:CST_ATT_DOUBLE.em2*/
/*No:CST_ATT_DOUBLE.require_assertion*/
/*No:CST_ATT_DOUBLE.value*/
/*No:CST_ATT_DOUBLE.names*/
/*No:CST_ATT_DOUBLE.value_mem*/
void r118pretty_print_profile(T118* C){
r118pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
/*[IRF3.1pretty_print_arguments*//*]*/
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T118*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T118*)C))->_result_type/*12*/);
}
/*FI*/}
void r118pretty_print_names(T118* C){
int _i=0;
_i=1;
r118pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r118pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T118*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
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((((T368*)((T368*)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.pretty_print_arguments*/
void r118make_e_feature(T118* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*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*/
/*No:TYPE_BIT_2.is_array*/
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 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);
}
/*No:TYPE_BIT_2.fz_not_found*/
/*No:TYPE_BIT_2.run_type*/
/*No:TYPE_BIT_2.is_pointer*/
/*No:TYPE_BIT_2.us_put_0*/
/*No:TYPE_BIT_2.is_string*/
/*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/*12*/);
C->_written_mark=r902item(oBC291tmp_string);
C->_start_position=a1;
C->_n=a2;
}
/*No:TYPE_BIT_2.fz_iinaiv*/
/*No:TYPE_BIT_2.start_position*/
/*No:TYPE_BIT_2.fz_inako*/
/*No:TYPE_BIT_2.is_character*/
/*No:TYPE_BIT_2.written_mark*/
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/*16*/);
/*[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/*32*/,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/*16*/);
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/*12*/;
/*IF*/if (((((T558*)C))->_nb/*20*/)<(0)) {
r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*16*/);
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/*16*/);
}
else {
r683add_position((((T446*)((T446*)((((T558*)C))->_n/*16*/))))->_start_position/*16*/);
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;
}
/*No:TYPE_BIT_2.is_run_type*/
/*No:TYPE_BIT_2.is_formal_generic*/
T0* r558generic_list(T558* C){
T0* R=NULL;
r558fatal_error_generic_list(C);
return R;
}
/*No:TYPE_BIT_2.is_real*/
/*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=r368get_feature_with(((T368*)_rc),((T0*)ms105_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms106_473));
}
/*No:TYPE_BIT_2.us_bit_n*/
/*No:TYPE_BIT_2.pretty_print*/
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.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*/
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=(((T368*)((T368*)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;
}
/*No:TYPE_BIT_2.expanded_initializer*/
/*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));
r368set_at_run_time(((T368*)_rc));
}
/*FI*/}
/*No:TYPE_BIT_2.is_reference*/
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.fatal_error*/
/*No:TYPE_BIT_2.is_any*/
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.is_integer*/

