/*
-- 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"
void r696make(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r696make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}
/*No:FUNCTION.not_computed*/
/*No:FUNCTION.nb_errors*/
/*No:FUNCTION.us_item*/
void r696make_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r696make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:FUNCTION.local_vars*/
void r696set_header_comment(T696* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r696start_position(T696* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r696to_run_feature(T696* C,T0* a1,T0* a2){
T0* R=NULL;
r696check_obsolete(C);
{T870*n=malloc(sizeof(*n));
*n=M870;
r870make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:FUNCTION.ensure_assertion*/
/*No:FUNCTION.code_require*/
T0* r696run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
_r=r696runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r696run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r696runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T567*n=malloc(sizeof(*n));
*n=M567;
/*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:FUNCTION.result_type*/
/*No:FUNCTION.fz_03*/
/*No:FUNCTION.em1*/
/*No:FUNCTION.obsolete_mark*/
/*No:FUNCTION.set_clients*/
/*No:FUNCTION.em2*/
/*No:FUNCTION.names*/
/*No:FUNCTION.require_assertion*/
/*No:FUNCTION.use_current_state*/
/*No:FUNCTION.code_ensure*/
int r696stupid_switch(T0* a1,T0* a2){
int R=0;
T0* _fn=NULL;
T0* _rf4=NULL;
_rf4=r355dynamic(((T355*)(r396first(((T396*)a2)))),a1);
if(NULL!=(_rf4))switch(((T0*)_rf4)->id) {
case 870: 
break;
default:
_rf4=NULL;
};/*IF*/if (r870is_empty_or_null_body(((T870*)_rf4))) {
R=1;
}
else {
_fn=r870is_attribute_reader(((T870*)_rf4));
/*IF*/if ((_fn)!=((void*)(NULL))) {
R=r324stupid_switch(r355get_feature(((T355*)(X496run_class(a1))),_fn));
}
else {
_fn=r870is_direct_call_on_attribute(((T870*)_rf4));
/*IF*/if ((_fn)!=((void*)(NULL))) {
R=r324stupid_switch(r355get_feature(((T355*)(X496run_class(a1))),_fn));
}
else {
R=r696stupid_switch_item(a1,a2);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
void r696set_rescue_compound(T696* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r696error(r696start_position(C),((T0*)ms6_368));
}
/*FI*/C->_rescue_compound=a1;
}
int r696can_hide(T696* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T696*)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 (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r696start_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:FUNCTION.header_comment*/
/*No:FUNCTION.routine_body*/
int r696is_merge_with(T696* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:FUNCTION.fz_dot*/
/*No:FUNCTION.set_ensure_assertion*/
int r696stupid_switch_item(T0* a1,T0* a2){
int R=0;
T0* _rf=NULL;
int _i=0;
T0* _bcn=NULL;
T0* _f=NULL;
_f=X496base_feature(a1);
/*IF*/if ((((T0*)ms86_473))==((void*)(X776to_string(/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)_f)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/))))) {
_bcn=(((T451*)((T451*)((((T605*)((T605*)(/*X359*/((T0*)(((T398*)((T398*)_f)))->_base_class/*4*/)))))->_base_class_name/*24*/))))->_to_string/*0*/;
/*IF*/if (((((T0*)ms2_473))==((void*)(_bcn)))||((((T0*)ms13_473))==((void*)(_bcn)))) {
_i=(((T396*)((T396*)a2)))->_upper/*8*/;
R=1;
while (!((!(R))||((_i)==(0)))) {
_rf=r355dynamic(((T355*)(r396item(((T396*)a2),_i))),a1);
/*IF*/if (X291is_expanded(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_result_type/*24*/))) {
R=0;
}
/*FI*/_i=(_i)-(1);
}
}
/*FI*/}
/*FI*/return R;
}
/*No:FUNCTION.first_name*/
/*No:FUNCTION.clients*/
void r696collect_for(T696* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T696*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T696*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r696make_effective_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r696make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1024;
}
void r696error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:FUNCTION.base_class*/
/*No:FUNCTION.base_class_name*/
/*No:FUNCTION.us_fixed_array*/
void r696make_e_feature(T696* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r696check_obsolete(T696* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T696*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r696warning(r696start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r696warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
int r657id(T657* C){
int R=0;
R=(((T605*)((T605*)(r657base_class(C)))))->_id/*0*/;
return R;
}
/*No:TYPE_CLASS.gc_set_unmarked_in*/
int r657standard_space_for_object(T657* C){
int R=0;
int _i=0;
T0* _a=NULL;
T0* _wa=NULL;
T0* _rc=NULL;
_rc=r657run_class(C);
/*IF*/if (r355is_tagged(((T355*)_rc))) {
R=r657space_for_integer();
}
/*FI*/_wa=r355writable_attributes(((T355*)_rc));
/*IF*/if ((_wa)!=((void*)(NULL))) {
_i=(((T280*)((T280*)_wa)))->_upper/*12*/;
while (!((_i)==(0))) {
_a=r280item(((T280*)_wa),_i);
R=(R)+(X291space_for_variable((((T820*)((T820*)_a)))->_result_type/*24*/));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
int r657has_creation(T657* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r657base_class(C))),a1);
return R;
}
/*No:TYPE_CLASS.is_anchored*/
/*No:TYPE_CLASS.is_array*/
/*No:TYPE_CLASS.fz_typedef*/
/*No:TYPE_CLASS.fz_else*/
int r657is_a(T657* C,T0* a1){
int R=0;
T0* _obcn=NULL;
T0* _bcn=NULL;
_bcn=(((T657*)C))->_base_class_name/*4*/;
_obcn=X291base_class_name(a1);
/*IF*/if (((((T451*)((T451*)_bcn)))->_to_string/*0*/)==((void*)((((T451*)((T451*)_obcn)))->_to_string/*0*/))) {
R=1;
}
 else if (r451is_subclass_of(((T451*)_bcn),_obcn)) {
/*IF*/if (X291is_generic(a1)) {
R=r605is_a_vncg(((T605*)(r451base_class(((T451*)_bcn)))),(T0*)C,a1);
}
else {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
void r657gcmt_max_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms55_291));
r2append_in(r657id(C),a1);
}
void r657c_initialize_in(T657* C,T0* a1){
/*IF*/if (r657is_expanded(C)) {
/*IF*/if (r657need_c_struct(C)) {
r355c_object_model_in(((T355*)(r657run_class(C))),a1);
}
else {
r7extend(((T7*)a1),'0');
}
/*FI*/}
else {
r7append(((T7*)a1),((T0*)ms117_470));
}
/*FI*/}
/*No:TYPE_CLASS.fz_gc_sweep*/
void r657c_type_for_argument_in(T657* C,T0* a1){
/*IF*/if (r657is_reference(C)) {
r7append(((T7*)a1),((T0*)ms128_470));
}
 else if (r657is_dummy_expanded(C)) {
r7append(((T7*)a1),((T0*)ms111_470));
}
else {
r7extend(((T7*)a1),'T');
r2append_in(r657id(C),a1);
r7extend(((T7*)a1),'\52');
}
/*FI*/}
void r657standard_c_object_model(T657* C){
T0* _rc=NULL;
int _mem_id=0;
T0* _wa=NULL;
_rc=r657run_class(C);
_mem_id=(((T355*)((T355*)_rc)))->_id/*4*/;
_wa=r355writable_attributes(((T355*)_rc));
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms103_470));
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(_mem_id,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7extend(((T7*)(oBC291tmp_string)),'M');
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
/*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(_mem_id,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7extend(((T7*)(oBC291tmp_string)),'M');
r2append_in(_mem_id,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\75');
r355c_object_model_in(((T355*)_rc),oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
r324swap_on_h(((T324*)(oBC364cpp)));
}
void r657gc_call_new_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms115_470));
r2append_in(r657id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_CLASS.fz_se_cmpt*/
int r657space_for_pointer(void){
int R=0;
void* _p=0;
R=sizeof(T8);
return R;
}
/*No:TYPE_CLASS.run_type*/
/*No:TYPE_CLASS.is_pointer*/
void r657gc_align_mark_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms58_291));
r2append_in(r657id(C),a1);
}
int r657is_dummy_expanded(T657* C){
int R=0;
/*IF*/if (r657is_expanded(C)) {
R=(r355writable_attributes(((T355*)(r657run_class(C)))))==((void*)(NULL));
}
/*FI*/return R;
}
void r657gcmt_used_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms56_291));
r2append_in(r657id(C),a1);
}
/*No:TYPE_CLASS.is_string*/
int r657space_for_variable(T657* C){
int R=0;
/*IF*/if (r657is_reference(C)) {
R=r657space_for_pointer();
}
else {
R=r657standard_space_for_object(C);
}
/*FI*/return R;
}
void r657standard_c_struct(T657* C){
T0* _t=NULL;
T0* _a=NULL;
int _mem_id=0;
int _i=0;
T0* _wa=NULL;
_mem_id=r657id(C);
_wa=r355writable_attributes(((T355*)(r657run_class(C))));
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
r7extend(((T7*)(oBC291tmp_string)),'S');
r2append_in(_mem_id,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\173');
/*IF*/if (r657is_reference(C)) {
/*IF*/if (r355is_tagged(((T355*)(r657run_class(C))))) {
r7append(((T7*)(oBC291tmp_string)),((T0*)ms4_291));
}
/*FI*/}
/*FI*//*IF*/if ((_wa)!=((void*)(NULL))) {
_i=(((T280*)((T280*)_wa)))->_upper/*12*/;
while (!((_i)==(0))) {
_a=r280item(((T280*)_wa),_i);
_t=X291run_type((((T820*)((T820*)_a)))->_result_type/*24*/);
X291c_type_for_result_in(_t,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7extend(((T7*)(oBC291tmp_string)),'\137');
r7append(((T7*)(oBC291tmp_string)),X776to_string((((T820*)((T820*)_a)))->_name/*16*/));
r7extend(((T7*)(oBC291tmp_string)),'\73');
_i=(_i)-(1);
}
}
/*FI*/r7extend(((T7*)(oBC291tmp_string)),'\175');
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
/*IF*/if (r657is_expanded(C)) {
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7append(((T7*)(oBC291tmp_string)),((T0*)ms122_470));
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms5_291));
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms6_291));
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms7_291));
r324put_c_function(((T324*)(oBC364cpp)),oBC291tmp_string,((T0*)ms8_291));
}
/*FI*/}
/*No:TYPE_CLASS.is_like_feature*/
T0*oBC291header=NULL;
/*No:TYPE_CLASS.fz_t0_star*/
/*No:TYPE_CLASS.is_like_current*/
/*No:TYPE_CLASS.make*/
/*No:TYPE_CLASS.fz_gc*/
T0* r657type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
/*No:TYPE_CLASS.gc_if_marked_in*/
/*No:TYPE_CLASS.fz_gc_sweep_pool*/
/*No:TYPE_CLASS.start_position*/
void r657mapping_cast(T657* C){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\50');
r657c_type_for_target_in(C,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\51');
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
/*No:TYPE_CLASS.fz_printf*/
void r657gc_free_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms57_291));
r2append_in(r657id(C),a1);
}
void r657c_type_for_target_in(T657* C,T0* a1){
/*IF*/if (r657is_dummy_expanded(C)) {
r7append(((T7*)a1),((T0*)ms111_470));
}
else {
r7extend(((T7*)a1),'T');
r2append_in(r657id(C),a1);
r7extend(((T7*)a1),'\52');
}
/*FI*/}
/*No:TYPE_CLASS.gc_set_marked_in*/
/*No:TYPE_CLASS.fz_gc_mark*/
/*No:TYPE_CLASS.fz_inako*/
void r657standard_gc_initialize(T657* C){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r657gcmt_in(C,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms53_291));
r657gcmt_max_in(C,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms150_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
void r657gc_initialize(T657* C){
/*IF*/if (r657is_reference(C)) {
r657standard_gc_initialize(C);
}
/*FI*/}
/*No:TYPE_CLASS.fz_00*/
/*No:TYPE_CLASS.is_character*/
/*No:TYPE_CLASS.is_user_expanded*/
/*No:TYPE_CLASS.written_mark*/
/*No:TYPE_CLASS.is_run_type*/
T0* r657to_runnable(T657* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
_bc=r451base_class(((T451*)((((T657*)C))->_base_class_name/*4*/)));
/*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
/*IF*/if (!(r863fast_has(((T863*)(oBC657check_memory)),_bc))) {
r355set_at_run_time(((T355*)(r657run_class(C))));
r863add_last(((T863*)(oBC657check_memory)),_bc);
}
/*FI*/}
/*FI*/R=(T0*)C;
return R;
}
/*No:TYPE_CLASS.fz_c_if_eq_null*/
/*No:TYPE_CLASS.fz_10*/
void r657c_type_for_external_in(T657* C,T0* a1){
/*IF*/if (r657is_reference(C)) {
r7append(((T7*)a1),((T0*)ms133_470));
r7extend(((T7*)a1),'\52');
}
else {
r657c_type_for_result_in(C,a1);
}
/*FI*/}
T0* r657generic_list(T657* C){
T0* R=NULL;
r657fatal_error_generic_list(C);
return R;
}
/*No:TYPE_CLASS.is_formal_generic*/
T0*oBC657check_memory=NULL;
/*No:TYPE_CLASS.fz_null*/
void r657demangling_in(T657* C,T0* a1){
/*IF*/if (r657is_reference(C)) {
r7extend(((T7*)a1),'R');
}
else {
r7extend(((T7*)a1),'E');
}
/*FI*/r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),/*(IRF4.6run_time_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/);
}
void r657c_initialize_expanded(T657* C){
T0* _rf=NULL;
int _i=0;
T0* _wa=NULL;
/*IF*/if (r657is_dummy_expanded(C)) {
/*[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*/)));
}/*]*/
/*]*/
}
else {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
_wa=r355writable_attributes(((T355*)(r657run_class(C))));
_i=(((T280*)((T280*)_wa)))->_upper/*12*/;
while (!((_i)==(0))) {
_rf=r280item(((T280*)_wa),_i);
X291c_initialize((((T820*)((T820*)_rf)))->_result_type/*24*/);
_i=(_i)-(1);
/*IF*/if ((_i)>(0)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\54';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
/*No:TYPE_CLASS.is_real*/
void r657gc_info_nb_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms59_291));
r2append_in(r657id(C),a1);
}
/*No:TYPE_CLASS.fz_14*/
/*No:TYPE_CLASS.is_bit*/
void r657fatal_error_generic_list(T657* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_CLASS.fz_new*/
/*No:TYPE_CLASS.fz_c_void_args*/
T0* r657smallest_ancestor(T657* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
T0* _rto_bc=NULL;
T0* _pl2=NULL;
T0* _pl1=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_none(a1)) {
R=(T0*)C;
}
 else if (X291is_any(_rto)) {
R=_rto;
}
else {
_rto_bc=X291base_class(_rto);
_bc=r657base_class(C);
/*IF*/if ((_rto_bc)==((void*)(_bc))) {
R=(T0*)C;
}
 else if (r605is_subclass_of(((T605*)_rto_bc),_bc)) {
R=(T0*)C;
}
 else if (r605is_subclass_of(((T605*)_bc),_rto_bc)) {
R=_rto;
}
 else if ((X291is_expanded(_rto))&&(!(r657is_expanded(C)))) {
R=X291smallest_ancestor(_rto,(T0*)C);
}
else {
_pl1=(((T605*)((T605*)_bc)))->_parent_list/*40*/;
_pl2=(((T605*)((T605*)_rto_bc)))->_parent_list/*40*/;
/*IF*/if (((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))) {
R=r657type_any();
}
 else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/)))/*)*/))))->_type/*4*/,(T0*)C);
}
 else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/)))/*)*/))))->_type/*4*/,a1);
}
else {
R=r673smallest_ancestor(((T673*)_pl1),(T0*)C);
R=X291smallest_ancestor(R,a1);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_CLASS.fz_16*/
void r657standard_gc_info_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms119_470));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),/*(IRF4.6run_time_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/);
r7append(((T7*)a1),((T0*)ms144_470));
r657gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms148_470));
r7append(((T7*)a1),((T0*)ms119_470));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r657gcmt_used_in(C,a1);
r7append(((T7*)a1),((T0*)ms144_470));
r657gcmt_used_in(C,a1);
r7append(((T7*)a1),((T0*)ms148_470));
r7append(((T7*)a1),((T0*)ms119_470));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r657gcmt_max_in(C,a1);
r7append(((T7*)a1),((T0*)ms144_470));
r657gcmt_max_in(C,a1);
r7append(((T7*)a1),((T0*)ms148_470));
}
T0*oBC291body=NULL;
/*No:TYPE_CLASS.is_boolean*/
void r657standard_c_typedef(T657* C){
int _mem_id=0;
_mem_id=r657id(C);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
/*IF*/if (r657need_c_struct(C)) {
r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
r7extend(((T7*)(oBC291tmp_string)),'S');
r2append_in(_mem_id,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
}
 else if (r657is_dummy_expanded(C)) {
r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
r7append(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
}
 else if (r657is_reference(C)) {
r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
r7append(((T7*)(oBC291tmp_string)),((T0*)ms133_470));
r7extend(((T7*)(oBC291tmp_string)),'\52');
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(_mem_id,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
}
/*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
/*No:TYPE_CLASS.is_double*/
T0* r657run_class(T657* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
/*No:TYPE_CLASS.fz_extern*/
void r657gcmt_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms54_291));
r2append_in(r657id(C),a1);
}
/*No:TYPE_CLASS.run_time_mark*/
void r657c_initialize(T657* C){
/*IF*/if (r657is_expanded(C)) {
r657c_initialize_expanded(C);
}
else {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms117_470));
/*]*/
}
/*FI*/}
void r657cast_to_ref(T657* C){
X291cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
}
void r657gc_mark_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms107_470));
r2append_in(r657id(C),a1);
}
int r657is_a_in(T657* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r657to_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* r657look_up_for(T657* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r657base_class(C))),a1,a2);
return R;
}
/*No:TYPE_CLASS.c_header_pass1*/
void r657c_type_for_result_in(T657* C,T0* a1){
/*IF*/if (r657is_reference(C)) {
r7append(((T7*)a1),((T0*)ms128_470));
}
 else if (r657is_dummy_expanded(C)) {
r7append(((T7*)a1),((T0*)ms111_470));
}
else {
r7extend(((T7*)a1),'T');
r2append_in(r657id(C),a1);
}
/*FI*/}
T0* r657expanded_initializer(T657* C){
T0* R=NULL;
/*IF*/if (r657is_expanded(C)) {
R=r605expanded_initializer(((T605*)(r657base_class(C))),(T0*)C);
}
/*FI*/return R;
}
/*No:TYPE_CLASS.fz_int*/
void r657gc_declare_h_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms105_470));
r2append_in(r657id(C),a1);
r7append(((T7*)a1),((T0*)ms60_291));
r2append_in(r657id(C),a1);
r7append(((T7*)a1),((T0*)ms61_291));
}
void r657standard_gc_define1(T657* C){
int _rcid=0;
T0* _rc=NULL;
_rc=r657run_class(C);
_rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
r7extend(((T7*)(oBC291tmp_string)),'B');
r2append_in(_rcid,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\40');
r7append(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
r2append_in(_rcid,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
r7extend(((T7*)(oBC291tmp_string)),'B');
r2append_in(_rcid,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms13_291));
r2append_in(_rcid,oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms14_291));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
r2append_in(_rcid,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\52');
r7extend(((T7*)(oBC291tmp_string)),'\52');
r657gcmt_in(C,oBC291tmp_string);
r324put_extern1(((T324*)(oBC364cpp)),oBC291tmp_string);
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r657gcmt_used_in(C,oBC291tmp_string);
r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r657gcmt_max_in(C,oBC291tmp_string);
r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'8');
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
r2append_in(_rcid,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\52');
r657gc_free_in(C,oBC291tmp_string);
r324put_extern5(((T324*)(oBC364cpp)),oBC291tmp_string,((T0*)ms117_470));
/*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r657gc_info_nb_in(C,oBC291tmp_string);
r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
}
/*FI*/}
/*No:TYPE_CLASS.fz_void*/
/*No:TYPE_CLASS.fz_dot*/
/*No:TYPE_CLASS.is_generic*/
/*No:TYPE_CLASS.used_as_reference*/
int r657space_for_integer(void){
int R=0;
R=sizeof(T2);
return R;
}
/*No:TYPE_CLASS.c_header_pass2*/
void r657gc_define1(T657* C){
/*IF*/if (r657is_reference(C)) {
r657standard_gc_define1(C);
}
/*FI*/}
int r657need_c_struct(T657* C){
int R=0;
/*IF*/if (r657is_dummy_expanded(C)) {
}
 else if (r657is_expanded(C)) {
R=1;
}
 else if (r355is_tagged(((T355*)(r657run_class(C))))) {
R=1;
}
else {
R=(r355writable_attributes(((T355*)(r657run_class(C)))))!=((void*)(NULL));
}
/*FI*/return R;
}
void r657gc_info_in(T657* C,T0* a1){
/*IF*/if (r657is_reference(C)) {
r657standard_gc_info_in(C,a1);
}
/*FI*/}
int r657is_reference(T657* C){
int R=0;
R=!((((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/);
return R;
}
T0* r657base_class(T657* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T657*)C))->_base_class_name/*4*/;
/*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 r657call_gc_sweep_in(T657* C,T0* a1){
/*IF*/if (r657is_reference(C)) {
r657standard_call_gc_sweep_in(C,a1);
}
/*FI*/}
void r657gc_define2(T657* C){
/*IF*/if (r657is_reference(C)) {
r657standard_gc_define2(C);
}
/*FI*/}
int r657need_gc_mark_function(T657* C){
int R=0;
/*IF*/if (r657is_reference(C)) {
R=1;
}
else {
R=r355gc_mark_to_follow(((T355*)(r657run_class(C))));
}
/*FI*/return R;
}
void r657standard_gc_define2(T657* C){
int _rcid=0;
T0* _rc=NULL;
_rc=r657run_class(C);
_rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
r7extend(((T7*)(oBC291header)),'\40');
r7append(((T7*)(oBC291header)),((T0*)ms109_470));
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\50');
r7append(((T7*)(oBC291header)),((T0*)ms105_470));
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\52');
r7extend(((T7*)(oBC291header)),'b');
r7extend(((T7*)(oBC291header)),'\54');
r7append(((T7*)(oBC291header)),((T0*)ms105_470));
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\52');
r7extend(((T7*)(oBC291header)),'h');
r7extend(((T7*)(oBC291header)),'\51');
r7copy(((T7*)(oBC291body)),((T0*)ms15_291));
/*[IRF3.6gc_if_marked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms64_291));
}/*]*/
/*[IRF3.6gc_set_unmarked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms63_291));
}/*]*/
r7extend(((T7*)(oBC291body)),'\175');
r7append(((T7*)(oBC291body)),((T0*)ms10_470));
r7extend(((T7*)(oBC291body)),'\n');
/*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms65_291));
}/*]*/
r7append(((T7*)(oBC291body)),((T0*)ms16_291));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms17_291));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms18_291));
/*IF*/if (r657need_c_struct(C)) {
r7append(((T7*)(oBC291body)),((T0*)ms19_291));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms134_470));
}
/*FI*/r7append(((T7*)(oBC291body)),((T0*)ms20_291));
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
r7extend(((T7*)(oBC291header)),'\40');
r7append(((T7*)(oBC291header)),((T0*)ms108_470));
r2append_in(_rcid,oBC291header);
r7append(((T7*)(oBC291header)),((T0*)ms97_470));
r7copy(((T7*)(oBC291body)),((T0*)ms21_291));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms22_291));
r657gcmt_in(C,oBC291body);
r7extend(((T7*)(oBC291body)),'\53');
r657gcmt_used_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms23_291));
r657gcmt_used_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms24_291));
r7append(((T7*)(oBC291body)),((T0*)ms25_291));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms26_291));
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
r7extend(((T7*)(oBC291header)),'\40');
r657gc_mark_in(C,oBC291header);
r7extend(((T7*)(oBC291header)),'\50');
r7extend(((T7*)(oBC291header)),'T');
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\52');
r7extend(((T7*)(oBC291header)),'o');
r7extend(((T7*)(oBC291header)),'\51');
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
/*]*/
r657gc_declare_h_in(C,oBC291body);
/*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms65_291));
}/*]*/
/*[IRF3.6gc_set_marked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms62_291));
}/*]*/
/*IF*/if (r355gc_mark_to_follow(((T355*)_rc))) {
r355gc_mark_in(((T355*)_rc),oBC291body);
}
/*FI*/r7extend(((T7*)(oBC291body)),'\175');
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
r7extend(((T7*)(oBC291header)),'\40');
r657gc_align_mark_in(C,oBC291header);
r7extend(((T7*)(oBC291header)),'\50');
r7extend(((T7*)(oBC291header)),'T');
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\52');
r7extend(((T7*)(oBC291header)),'o');
r7extend(((T7*)(oBC291header)),'\54');
r7append(((T7*)(oBC291header)),((T0*)ms105_470));
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\52');
r7extend(((T7*)(oBC291header)),'B');
r7extend(((T7*)(oBC291header)),'\51');
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
/*]*/
r657gc_declare_h_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms27_291));
r657gc_mark_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms28_291));
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
r7extend(((T7*)(oBC291header)),'\40');
r7append(((T7*)(oBC291header)),((T0*)ms116_470));
r2append_in(_rcid,oBC291header);
r7append(((T7*)(oBC291header)),((T0*)ms97_470));
r7copy(((T7*)(oBC291body)),((T0*)ms29_291));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms30_291));
r657gcmt_used_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms31_291));
/*IF*/if (r355is_tagged(((T355*)_rc))) {
r7append(((T7*)(oBC291body)),((T0*)ms32_291));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms134_470));
}
/*FI*/r7append(((T7*)(oBC291body)),((T0*)ms33_291));
r657gcmt_max_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms34_291));
r657gcmt_max_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms35_291));
r657gcmt_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms36_291));
r657gcmt_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms37_291));
r657gcmt_max_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms38_291));
r657gcmt_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms39_291));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms40_291));
r7append(((T7*)(oBC291body)),((T0*)ms41_291));
r657gc_align_mark_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms42_291));
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291header)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291header)),'T');
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\52');
r7append(((T7*)(oBC291header)),((T0*)ms115_470));
r2append_in(_rcid,oBC291header);
r7append(((T7*)(oBC291header)),((T0*)ms97_470));
r7copy(((T7*)(oBC291body)),((T0*)ms105_470));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms43_291));
/*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
r657gc_info_nb_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms44_291));
}
/*FI*/r7append(((T7*)(oBC291body)),((T0*)ms45_291));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms46_291));
r2append_in(r548threshold_start(_rcid),oBC291body);
r7extend(((T7*)(oBC291body)),'\74');
r657gcmt_used_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms47_291));
r7append(((T7*)(oBC291body)),((T0*)ms89_470));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms48_291));
r2append_in(_rcid,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms49_291));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms50_291));
r657gc_free_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms51_291));
/*[IRF3.6gc_set_unmarked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms63_291));
}/*]*/
r7append(((T7*)(oBC291body)),((T0*)ms52_291));
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
}
/*No:TYPE_CLASS.is_any*/
/*No:TYPE_CLASS.to_reference*/
void r657c_header_pass3(T657* C){
/*IF*/if (r657is_expanded(C)) {
/*IF*/if (r657need_c_struct(C)) {
r657standard_c_struct(C);
}
/*FI*/}
/*FI*/}
/*No:TYPE_CLASS.fz_new_pool*/
/*No:TYPE_CLASS.base_class_name*/
int r657is_expanded(T657* C){
int R=0;
R=(((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/;
return R;
}
void r657standard_call_gc_sweep_in(T657* C,T0* a1){
r7append(((T7*)a1),((T0*)ms108_470));
r2append_in(r657id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
r7append(((T7*)a1),((T0*)ms134_470));
}
/*No:TYPE_CLASS.gc_if_unmarked_in*/
/*No:TYPE_CLASS.is_basic_eiffel_expanded*/
/*No:TYPE_CLASS.is_none*/
/*No:TYPE_CLASS.to_expanded*/
/*No:TYPE_CLASS.is_integer*/
void r657c_header_pass4(T657* C){
/*IF*/if (r657is_reference(C)) {
/*IF*/if (r657need_c_struct(C)) {
r657standard_c_struct(C);
}
/*FI*/}
/*FI*/r657standard_c_object_model(C);
}
/*No:TYPE_CLASS.fz_struct*/
void r300fe_c2c(T0* a1){
r683add_position(X496start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_845);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*No:NATIVE_JVM_INVOKESTATIC.c_define_function*/
/*No:NATIVE_JVM_INVOKESTATIC.c_define_procedure*/
/*No:NATIVE_JVM_INVOKESTATIC.stupid_switch*/
/*No:NATIVE_JVM_INVOKESTATIC.c_mapping_procedure*/
/*No:NATIVE_JVM_INVOKESTATIC.c_mapping_function*/
/*No:NATIVE_JVM_INVOKESTATIC.use_current*/
/*No:NATIVE_JVM_INVOKESTATIC.fatal_error*/

