/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- 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 r300fe_c2c(T0* a1){
r21add_position(X51start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms288_130368);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*No:NATIVE_JVM_INVOKEVIRTUAL.c_mapping_function*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.c_mapping_procedure*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.use_current*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.stupid_switch*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.c_define_function*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.c_define_procedure*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.fatal_error*/
/*No:CALL_INFIX_POWER.static_value*/
/*No:CALL_INFIX_POWER.call_proc_call_c2c*/
/*No:CALL_INFIX_POWER.feature_name*/


void r194finalize(T194* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(C)->_run_feature/*16*/;
_rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
}


T6 r194is_static(T194* C){
T6 R=0;
/*[IF*/
if(X54is_integer(r194result_type(C))){
/*[IF*/
if((X56is_static((C)->_target/*4*/))&&(X56is_static(r194arg1(C)))){
R=1;
C->_static_value_mem=r2_px_94(X56static_value((C)->_target/*4*/),X56static_value(r194arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_POWER.is_manifest_string*/


T0* r194start_position(T194* C){
T0* R=NULL;
R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
/*No:CALL_INFIX_POWER.c_simple*/


T0* r194add_comment(T194* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r194to_integer(T194* C){
T2 R=0;
r194error(r194start_position(C),((T0*)ms13_45846));
return R;
}


T6 r194use_current(T194* C){
T6 R=0;
/*[IF*/
{/*AT*/R=X149use_current((C)->_arguments/*8*/);
}
/*FI]*/
/*[IF*/
if(R){
}
 else if(X56is_current((C)->_target/*4*/)){
R=X51use_current((C)->_run_feature/*16*/);
}
else{
R=X56use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}


T0* r194to_runnable(T194* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r194runnable_expression((C)->_target/*4*/,a1);
_a=r194runnable_args((C)->_arguments/*8*/,a1);
_tt=X56result_type(_t);
_at=X56result_type(r194arg1(C));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r194run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r194run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T194*n=malloc(sizeof(*n));
*n=M194;
r194with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


void r194compile_to_c_old(T194* C){
X56compile_to_c_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_POWER.is_pre_computable*/
/*No:CALL_INFIX_POWER.fz_bad_argument*/


void r194collect_c_tmp(T194* C){
/*[IF*/
if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
X51collect_c_tmp((C)->_run_feature/*16*/);
}
/*FI]*/
X56collect_c_tmp((C)->_target/*4*/);
/*[IF*/
if(((C)->_arguments/*8*/)!=((void*)(NULL))){
X149collect_c_tmp((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_POWER.fz_iinaiv*/


T0* r194result_type(T194* C){
T0* R=NULL;
T0* _tla=NULL;
R=X51result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X54is_like_current(R)){
R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 258: 
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X54run_type(X56result_type(r194arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_POWER.static_value_mem*/
/*No:CALL_INFIX_POWER.run_feature*/


T0* r194runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=X149to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X149start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_POWER.fz_07*/
/*No:CALL_INFIX_POWER.arg_count*/


void r194with(T194* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r194run_feature_match(C,a5);
}
/*No:CALL_INFIX_POWER.is_result*/
/*No:CALL_INFIX_POWER.fatal_error*/


void r194mapping_c_target(T194* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r194result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
X54mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}


void r194run_feature_match(T194* C,T0* a1){
r194run_feature_has_result(C);
X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_POWER.arguments*/


T0* r194runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X56to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X56start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_POWER.can_be_dropped*/


void r194c_declare_for_old(T194* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_POWER.implicit_cast*/
/*No:CALL_INFIX_POWER.dca_inline_argument*/
/*No:CALL_INFIX_POWER.compile_to_c*/
/*No:CALL_INFIX_POWER.isa_dca_inline_argument*/


T0* r194arg1(T194* C){
T0* R=NULL;
R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
return R;
}


void r194run_feature_has_result(T194* C){
/*[IF*/
if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X51start_position((C)->_run_feature/*16*/));
r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}


T0* r194run_feature_for(T194* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type(a1));
R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_POWER.target*/


void r194error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}


void r194make(T194* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r194operator(),a2);
C->_feature_name=(T0*)n;
}
{T149*n=malloc(sizeof(*n));
*n=M149;
/*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_POWER.is_current*/


void r194mapping_c_arg(T194* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r194result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T194* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_POWER.is_void*/


T0* r194operator(void){
T0* R=NULL;
R=((T0*)ms14_95);
return R;
}


void r194afd_check(T194* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type((C)->_target/*4*/));
_running=(((T24*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X56start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r24set_at_run_time(((T24*)_rc));
}
 else if((r328count(((T328*)_running)))>(1)){
r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X56afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149afd_check((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_POWER.us_pow*/


void r28sfr_connect(T28* C,T0* a1,T0* a2){
r28put_string(C,((T0*)ms28_26523));
r28put_string(C,a2);
r28put_string(C,((T0*)ms13_288));
r37connect_to(((T37*)a1),a2);
}
/*No:ECHO.verbose*/


T0* r28read_word_in(T28* C,T0* a1){
T0* R=NULL;
r28put_string(C,((T0*)ms28_25494));
r28put_string(C,(((T37*)a1))->_path/*4*/);
r28put_string(C,((T0*)ms13_288));
/*[IF*/
if(r37end_of_input(((T37*)a1))){
r28w_put_string(((T0*)ms28_72891));
r28w_put_string((((T37*)a1))->_path/*4*/);
r28w_put_string(((T0*)ms13_288));
exit(1);
}
else{
r37read_word(((T37*)a1));
R=r7twin((T7*)(oBC38last_string));
}
/*FI]*/
return R;
}


void r28w_put_string(T0* a1){
r35put_string((T35*)(oBC1std_error),a1);
/*[IRF3.6flush*/{T35* C1=(T35*)(oBC1std_error);
fflush(stderr);
}/*]*/
}
T0*oBC1std_output=NULL;
/*No:ECHO.remove_file*/


void r28w_put_integer(T2 a1){
r35put_integer((T35*)(oBC1std_error),a1);
/*[IRF3.6flush*/{T35* C1=(T35*)(oBC1std_error);
fflush(stderr);
}/*]*/
}
/*No:ECHO.fz_01*/


void r28file_renaming(T28* C,T0* a1,T0* a2){
r28put_string(C,((T0*)ms28_8540));
r28put_string(C,a1);
r28put_string(C,((T0*)ms28_3174));
r28put_string(C,a2);
r28put_string(C,((T0*)ms13_288));
/*[IRF3.6rename_file*/{T0* b1=a1;
T0* b2=a2;
r44rename_to(b1,b2);
}/*]*/
}


void r28file_removing(T28* C,T0* a1){
/*[IF*/
if(r28file_exists(a1)){
r28put_string(C,((T0*)ms28_8760));
r28put_string(C,a1);
r28put_string(C,((T0*)ms13_288));
/*[IRF3.6remove_file*/{T0* b1=a1;
r44delete(oBC1file_tools,b1);
}/*]*/
}
/*FI]*/
}


void r28put_string(T28* C,T0* a1){
/*[IF*/
if((C)->_verbose/*0*/){
r29put_string((T29*)(oBC1std_output),a1);
/*[IRF3.6flush*/{T29* C1=(T29*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
/*No:ECHO.fz_43*/


void r28w_put_character(T3 a1){
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1=a1;
putc(b1,((FILE*)(stderr)));
}/*]*/
/*[IRF3.6flush*/{T35* C1=(T35*)(oBC1std_error);
fflush(stderr);
}/*]*/
}
/*No:ECHO.fz_b0*/


void r28sfr_connect_or_exit(T28* C,T0* a1,T0* a2){
r28sfr_connect(C,a1,a2);
/*[IF*/
if(!(/*(IRF4.7is_connected*/((((T37*)a1))->_path/*4*/)!=(NULL)/*)*/)){
r28w_put_string(((T0*)ms13_3810));
r28w_put_string(a2);
r28w_put_string(((T0*)ms13_11640));
exit(1);
}
/*FI]*/
}


void r28search_for_verbose_flag(T28* C){
T2 _i=0;
_i=/*(IRF4.9argument_count*/((T62*)(r28command_arguments()))->_upper/*8*//*)*/;
while (!((_i)==(0))) {
/*[IF*/
if(r7is_equal((T7*)(((T0*)ms13_10392)),r28argument(_i))){
C->_verbose=1;
_i=0;
}
else{
_i=(_i)-(1);
}
/*FI]*/
}
}


T6 r28file_exists(T0* a1){
T6 R=0;
R=r44is_readable(a1);
return R;
}
/*No:ECHO.fz_b6*/


void r28put_double_format(T28* C,T5 a1,T2 a2){
/*[IF*/
if((C)->_verbose/*0*/){
r29put_double_format((T29*)(oBC1std_output),a1,a2);
/*[IRF3.6flush*/{T29* C1=(T29*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}


T0* r28argument(T2 a1){
T0* R=NULL;
R=/*(IRF4.6item*/(((T62*)(r28command_arguments()))->_storage/*0*/)[a1]/*)*/;
return R;
}
/*No:ECHO.make*/


void r28put_character(T28* C,T3 a1){
/*[IF*/
if((C)->_verbose/*0*/){
/*[IRF3.6put_character*/{T29* C1=(T29*)(oBC1std_output);
T3 b1=a1;
putc(b1,((FILE*)(stdout)));
}/*]*/
/*[IRF3.6flush*/{T29* C1=(T29*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}


void r28print_count(T28* C,T0* a1,T2 a2){
/*[IF*/
if((C)->_verbose/*0*/){
/*[IF*/
if((a2)>(0)){
r28put_string(C,((T0*)ms28_4338));
r28put_string(C,a1);
/*[IF*/
if((a2)>(1)){
r28put_character(C,'s');
}
/*FI]*/
r28put_string(C,((T0*)ms28_186));
r28put_integer(C,a2);
r28put_string(C,((T0*)ms13_118));
}
else{
r28put_string(C,((T0*)ms28_681));
r28put_string(C,a1);
r28put_string(C,((T0*)ms13_118));
}
/*FI]*/
}
/*FI]*/
}
/*No:ECHO.argument_count*/
/*No:ECHO.exit_failure_code*/
/*No:ECHO.fz_verbose_flag*/


T0* r28command_arguments(void){
if(fBC1command_arguments==0){
T0* _arg=NULL;
T2 _i=0;
fBC1command_arguments=1;
_i=se_argc;
{T62*n=malloc(sizeof(*n));
*n=M62;
r62make(n,_i);
oBC1command_arguments=(T0*)n;
}
while (!((_i)==(0))) {
_i=(_i)-(1);
_arg=((T0*)e2s(se_argv[_i]));
/*[IRF3.5put*/((((T62*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
/*]*/
}
}
return oBC1command_arguments;}


void r28put_integer(T28* C,T2 a1){
/*[IF*/
if((C)->_verbose/*0*/){
r29put_integer((T29*)(oBC1std_output),a1);
/*[IRF3.6flush*/{T29* C1=(T29*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
/*No:ECHO.rename_file*/
/*No:PROC_CALL_0.call_proc_call_c2c*/
/*No:PROC_CALL_0.feature_name*/


void r163run_feature_match(T163* C){
r163run_feature_has_no_result(C);
/*[IF*/
if((X51arg_count((C)->_run_feature/*12*/))>(0)){
r21add_position(X83start_position((C)->_feature_name/*8*/));
r21add_position(X51start_position((C)->_run_feature/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms163_50512);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*No:PROC_CALL_0.arguments*/


T0* r163runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X56to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X56start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}


void r163finalize(T163* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(C)->_run_feature/*12*/;
_rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
}


T0* r163start_position(T163* C){
T0* R=NULL;
R=X83start_position((C)->_feature_name/*8*/);
return R;
}


T0* r163add_comment(T163* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
/*AF*/else{
{T225*n=malloc(sizeof(*n));
*n=M225;
r225make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


void r163run_feature_has_no_result(T163* C){
/*[IF*/
if((X51result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
r21add_position(X51start_position((C)->_run_feature/*12*/));
r21add_position(X83start_position((C)->_feature_name/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms162_67122);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}


T6 r163use_current(T163* C){
T6 R=0;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(R){
}
 else if(X56is_current((C)->_target/*4*/)){
R=X51use_current((C)->_run_feature/*12*/);
}
else{
R=X56use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}


void r163compile_to_c(T163* C){
r25se_trace_ins((T25*)(oBC12cpp),r163start_position(C));
/*[IRF3.6call_proc_call_c2c*/{T163* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
}


T0* r163to_runnable(T163* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _t=NULL;
_t=r163runnable_expression((C)->_target/*4*/,a1);
_rf=r163run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*12*/)==((void*)(NULL))){
C->_target=_t;
C->_run_feature=_rf;
r163run_feature_match(C);
R=(T0*)C;
}
 else if((_t)==((void*)((C)->_target/*4*/))){
R=(T0*)C;
}
else{
{T163*n=malloc(sizeof(*n));
*n=M163;
r163make(n,_t,(C)->_feature_name/*8*/);
R=(T0*)n;
}
R=r163to_runnable(((T163*)R),a1);
}
/*FI]*/
return R;
}
/*No:PROC_CALL_0.is_pre_computable*/


void r163collect_c_tmp(T163* C){
/*[IF*/
if(((C)->_run_feature/*12*/)!=((void*)(NULL))){
X51collect_c_tmp((C)->_run_feature/*12*/);
}
/*FI]*/
X56collect_c_tmp((C)->_target/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:PROC_CALL_0.set_run_feature*/


T0* r163run_feature_for(T163* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type(a1));
R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*8*/,a2);
return R;
}
/*No:PROC_CALL_0.target*/
/*No:PROC_CALL_0.run_feature*/
/*No:PROC_CALL_0.end_mark_comment*/


void r163make(T163* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
/*No:PROC_CALL_0.fz_07*/


T0* r163make_runnable(T163* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*[IF*/
if(((C)->_run_feature/*12*/)==((void*)(NULL))){
C->_target=a1;
C->_run_feature=a3;
R=(T0*)C;
}
else{
{T163*n=malloc(sizeof(*n));
*n=M163;
r163make(n,a1,(C)->_feature_name/*8*/);
R=(T0*)n;
}
/*[IRF3.3set_run_feature*/((((T163*)(((T163*)R))))->_run_feature)=(a3);
/*]*/
}
/*FI]*/
return R;
}


void r163afd_check(T163* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type((C)->_target/*4*/));
_running=(((T24*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X56start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r24set_at_run_time(((T24*)_rc));
}
 else if((r328count(((T328*)_running)))>(1)){
r331update((C)->_target/*4*/,(C)->_run_feature/*12*/);
}
/*FI]*/
X56afd_check((C)->_target/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:PROC_CALL_0.arg_count*/
/*No:PROC_CALL_0.fatal_error*/


void r258anchor_cycle_start(T258* C){
T2 _i=0;
/*[IF*/
if((((T69*)(oBC256visited))->_upper/*8*/)<(0)){
r69add_last((T69*)(oBC256visited),(C)->_start_position/*4*/);
}
 else if(r69fast_has((T69*)(oBC256visited),(C)->_start_position/*4*/)){
_i=0;
while (!((_i)>(((T69*)(oBC256visited))->_upper/*8*/))) {
r21add_position(/*(IRF4.6item*/(((T69*)(oBC256visited))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
else{
r69add_last((T69*)(oBC256visited),(C)->_start_position/*4*/);
}
/*FI]*/
}


void r258anchor_cycle_end(T258* C){
/*[IF*/
if(((C)->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/(((T69*)(oBC256visited))->_storage/*0*/)[0]/*)*//*)*/))){
/*[IRF3.3clear*/((((T69*)((T69*)(oBC256visited))))->_upper)=(-(1));
/*]*/
}
/*FI]*/
}
/*No:TYPE_LIKE_ARGUMENT.fz_void*/
/*No:TYPE_LIKE_ARGUMENT.start_position*/


void r258used_as_reference(T258* C){
X54used_as_reference(r258run_type(C));
}
/*No:TYPE_LIKE_ARGUMENT.fz_bad_anchor*/


T2 r258id(T258* C){
T2 R=0;
R=((T24*)(r258run_class(C)))->_id/*4*/;
return R;
}


T6 r258is_user_expanded(T258* C){
T6 R=0;
R=X54is_user_expanded(r258run_type(C));
return R;
}


T6 r258is_pointer(T258* C){
T6 R=0;
R=X54is_pointer(r258run_type(C));
return R;
}


T0* r258to_runnable(T258* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rf=NULL;
r258anchor_cycle_start(C);
_rf=r22top_rf((T22*)(oBC12small_eiffel));
/*[IF*/
if((X51arguments(_rf))==((void*)(NULL))){
r21add_position((C)->_start_position/*4*/);
r21add_position(X51start_position(_rf));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_10043);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_run_feature=_rf;
R=(T0*)C;
}
 else if(((C)->_run_feature/*16*/)==((void*)(_rf))){
R=(T0*)C;
}
else{
{T258*n=malloc(sizeof(*n));
*n=M258;
r258with(n,(T0*)C,_rf);
R=(T0*)n;
}
}
/*FI]*/
_rt=r258run_type(((T258*)R));
/*[IF*/
if(X54is_anchored(_rt)){
_rt=X54to_runnable(_rt,a1);
}
/*FI]*/
r258anchor_cycle_end(C);
return R;
}


void r258c_initialize_in(T258* C,T0* a1){
X54c_initialize_in(r258run_type(C),a1);
}


void r258gc_define1(T258* C){
X54gc_define1(r258run_type(C));
}


void r258to_reference(T258* C){
X54to_reference(r258run_type(C));
}


void r258gc_mark_in(T258* C,T0* a1){
r7append(((T7*)a1),((T0*)ms13_8869));
r2append_in(r258id(C),a1);
}


T0* r258run_class(T258* C){
T0* R=NULL;
R=r22run_class(r258run_type(C));
return R;
}


void r258c_header_pass2(T258* C){
X54c_header_pass2(r258run_type(C));
}


void r258c_header_pass4(T258* C){
X54c_header_pass4(r258run_type(C));
}
/*No:TYPE_LIKE_ARGUMENT.is_like_current*/


T6 r258is_bit(T258* C){
T6 R=0;
R=X54is_bit(r258run_type(C));
return R;
}


T0* r258smallest_ancestor(T258* C,T0* a1){
T0* R=NULL;
R=X54smallest_ancestor(r258run_type(C),a1);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fatal_error*/


T0* r258run_time_mark(T258* C){
T0* R=NULL;
/*[IF*/
if((r258run_type(C))!=((void*)(NULL))){
R=X54run_time_mark(r258run_type(C));
}
/*FI]*/
return R;
}


T6 r258is_expanded(T258* C){
T6 R=0;
R=X54is_expanded(r258run_type(C));
return R;
}


void r258gc_info_in(T258* C,T0* a1){
X54gc_info_in(r258run_type(C),a1);
}


void r258gc_define2(T258* C){
X54gc_define2(r258run_type(C));
}
/*No:TYPE_LIKE_ARGUMENT.is_like_feature*/
/*No:TYPE_LIKE_ARGUMENT.fz_dot*/


T6 r258is_a(T258* C,T0* a1){
T6 R=0;
R=X54is_a(r258run_type(C),a1);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.written_mark*/


void r258c_initialize(T258* C){
X54c_initialize(r258run_type(C));
}


T6 r258is_character(T258* C){
T6 R=0;
R=X54is_character(r258run_type(C));
return R;
}


void r258make(T258* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_like_what=a2;
r7copy((T7*)(((T0*)ms256_87371)),((T0*)ms13_1724));
r7extend((T7*)(((T0*)ms256_87371)),'\40');
r7append((T7*)(((T0*)ms256_87371)),r188to_string((T188*)((C)->_like_what/*8*/)));
C->_written_mark=r84item(((T0*)ms256_87371));
}


void r258demangling_in(T258* C,T0* a1){
/*[IF*/
if(r258is_reference(C)){
r7extend(((T7*)a1),'R');
}
else{
r7extend(((T7*)a1),'E');
}
/*FI]*/
r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r258run_time_mark(C));
}


void r258fatal_error_generic_list(T258* C){
r21add_type((T0*)C,((T0*)ms54_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}


T6 r258is_array(T258* C){
T6 R=0;
R=X54is_array(r258run_type(C));
return R;
}


T6 r258is_dummy_expanded(T258* C){
T6 R=0;
R=X54is_dummy_expanded(r258run_type(C));
return R;
}


T2 r258space_for_variable(T258* C){
T2 R=0;
R=X54space_for_variable(r258run_type(C));
return R;
}


void r258to_expanded(T258* C){
X54to_expanded(r258run_type(C));
}


T0* r258generic_list(T258* C){
T0* R=NULL;
/*[IF*/
if(r258is_generic(C)){
R=X54generic_list(r258run_type(C));
}
else{
r258fatal_error_generic_list(C);
}
/*FI]*/
return R;
}


T0* r258base_class(T258* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r258base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r64base_class(((T64*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}


void r258cast_to_ref(T258* C){
X54cast_to_ref(r258run_type(C));
}


T0* r258base_class_name(T258* C){
T0* R=NULL;
R=X54base_class_name(r258run_type(C));
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_formal_generic*/


T6 r258is_a_in(T258* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((C)->_written_mark/*12*/)==((void*)(X54written_mark(a1)))){
R=1;
}
else{
_ct=(((T24*)a2))->_current_type/*0*/;
_t1=r258to_runnable(C,_ct);
_t2=X54to_runnable(a1,_ct);
/*[IF*/
if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
R=1;
}
else{
R=X54is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_LIKE_ARGUMENT.rank*/


T0* r258look_up_for(T258* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r258base_class(C)),a1,a2);
return R;
}


void r258c_type_for_external_in(T258* C,T0* a1){
/*[IF*/
if(r258is_reference(C)){
r7append(((T7*)a1),((T0*)ms13_1776a));
r7extend(((T7*)a1),'\52');
}
else{
r258c_type_for_result_in(C,a1);
}
/*FI]*/
}


void r258c_type_for_argument_in(T258* C,T0* a1){
X54c_type_for_argument_in(r258run_type(C),a1);
}


void r258c_header_pass1(T258* C){
X54c_header_pass1(r258run_type(C));
}


void r258c_type_for_target_in(T258* C,T0* a1){
X54c_type_for_target_in(r258run_type(C),a1);
}


T0* r258run_type(T258* C){
T0* R=NULL;
T0* _fal=NULL;
_fal=X51arguments((C)->_run_feature/*16*/);
R=r187type(((T187*)_fal),/*(IRF4.6rank*/(((T188*)((C)->_like_what/*8*/)))->_rank/*8*//*)*/);
/*[IF*/
if(X54is_run_type(R)){
R=X54run_type(R);
}
/*FI]*/
return R;
}


void r258c_type_for_result_in(T258* C,T0* a1){
X54c_type_for_result_in(r258run_type(C),a1);
}


T0* r258expanded_initializer(T258* C){
T0* R=NULL;
R=X54expanded_initializer(r258run_type(C));
return R;
}


void r258c_frame_descriptor(T258* C){
r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
/*[IF*/
if(r258is_reference(C)){
r7extend((T7*)(oBC12c_frame_descriptor_format),'R');
}
else{
r7extend((T7*)(oBC12c_frame_descriptor_format),'E');
}
/*FI]*/
r2append_in(r258id(C),oBC12c_frame_descriptor_format);
r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
}


T6 r258has_creation(T258* C,T0* a1){
T6 R=0;
R=X54has_creation(r258run_type(C),a1);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_cad*/


void r258c_header_pass3(T258* C){
X54c_header_pass3(r258run_type(C));
}


void r258gc_call_new_in(T258* C,T0* a1){
r7append(((T7*)a1),((T0*)ms13_1008));
r2append_in(r258id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_LIKE_ARGUMENT.run_feature*/
/*No:TYPE_LIKE_ARGUMENT.fz_new*/


T6 r258is_boolean(T258* C){
T6 R=0;
R=X54is_boolean(r258run_type(C));
return R;
}


void r258mapping_cast(T258* C){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_15696)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms54_15696)),'\50');
r258c_type_for_target_in(C,((T0*)ms54_15696));
r7extend((T7*)(((T0*)ms54_15696)),'\51');
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_15696));
/*]*/
}


T6 r258is_generic(T258* C){
T6 R=0;
R=X54is_generic(r258run_type(C));
return R;
}


T6 r258is_real(T258* C){
T6 R=0;
R=X54is_real(r258run_type(C));
return R;
}


T6 r258need_c_struct(T258* C){
T6 R=0;
R=X54need_c_struct(r258run_type(C));
return R;
}


void r258with(T258* C,T0* a1,T0* a2){
C->_start_position=(((T258*)a1))->_start_position/*4*/;
C->_like_what=(((T258*)a1))->_like_what/*8*/;
C->_written_mark=(((T258*)a1))->_written_mark/*12*/;
C->_run_feature=a2;
}


T6 r258is_any(T258* C){
T6 R=0;
R=X54is_any(r258run_type(C));
return R;
}


T6 r258is_basic_eiffel_expanded(T258* C){
T6 R=0;
R=X54is_basic_eiffel_expanded(r258run_type(C));
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_gc_mark*/
/*No:TYPE_LIKE_ARGUMENT.fz_like*/


T6 r258need_gc_mark_function(T258* C){
T6 R=0;
R=X54need_gc_mark_function(r258run_type(C));
return R;
}


T6 r258is_native_array(T258* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 263: 
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}


T6 r258is_string(T258* C){
T6 R=0;
R=X54is_string(r258run_type(C));
return R;
}


T6 r258is_integer(T258* C){
T6 R=0;
R=X54is_integer(r258run_type(C));
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_anchored*/


T6 r258is_run_type(T258* C){
T6 R=0;
/*[IF*/
if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
R=X54is_run_type(r258run_type(C));
}
/*FI]*/
return R;
}


T6 r258is_reference(T258* C){
T6 R=0;
R=X54is_reference(r258run_type(C));
return R;
}
/*No:TYPE_LIKE_ARGUMENT.like_what*/
/*No:TYPE_LIKE_ARGUMENT.tmp_written_mark*/


T6 r258is_none(T258* C){
T6 R=0;
R=X54is_none(r258run_type(C));
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_like_argument*/


void r258just_before_gc_mark_in(T258* C,T0* a1){
X54just_before_gc_mark_in(r258run_type(C),a1);
}
/*No:TYPE_LIKE_ARGUMENT.mapping_cast_memory*/


T6 r258is_double(T258* C){
T6 R=0;
R=X54is_double(r258run_type(C));
return R;
}
/*No:CST_ATT_STRING.base_class*/


T0* r207start_position(T207* C){
T0* R=NULL;
R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
return R;
}


T6 r207is_merge_with(T207* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r187is_a_in((T187*)(/*(IRF4.1arguments*/NULL/*)*/),X93arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X54is_a_in(X93result_type(a1),(C)->_result_type/*20*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r187is_a_in((T187*)(X93arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r207merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_STRING.first_name*/
/*No:CST_ATT_STRING.first_value*/
/*No:CST_ATT_STRING.em1*/
/*No:CST_ATT_STRING.header_comment*/
/*No:CST_ATT_STRING.names*/
/*No:CST_ATT_STRING.result_type*/
/*No:CST_ATT_STRING.code_require*/
/*No:CST_ATT_STRING.make_e_feature*/


void r207add_into(T207* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
_fn=r85item((T85*)((C)->_names/*8*/),_i);
/*[IF*/
if(r92has(((T92*)a1),X83to_key(_fn))){
_fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
r21add_position(X83start_position(_fn));
r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
r21error((T21*)(oBC12eh),((T0*)ms93_41905));
/*[IRF3.6append*/{T0* b1=X83to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
else{
r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}


T6 r207can_hide(T207* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
r21add_position(X93start_position(a1));
r207error(r207start_position(C),((T0*)ms93_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
/*[IF*/
{/*AT*/r21add_position(X93start_position(a1));
r207error(r207start_position(C),((T0*)ms93_83182));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r207merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_STRING.ensure_assertion*/


T0* r207try_to_undefine(T207* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r21add_position(X83start_position(a1));
_fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X83undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r207try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r207merge_header_comments(C,R);
}
else{
r63fatal_undefine(((T63*)a2),a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_STRING.is_deferred*/
/*No:CST_ATT_STRING.remainder*/
/*No:CST_ATT_STRING.set_clients*/


T0* r207value(T207* C,T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)==(1)){
R=(C)->_first_value/*24*/;
}
else{
R=/*(IRF4.6item*/(((T208*)((C)->_remainder/*28*/))->_storage/*4*/)[(a1)-(2)]/*)*/;
}
/*FI]*/
return R;
}
/*No:CST_ATT_STRING.nb_errors*/


T0* r207to_run_feature(T207* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X54run_class(a1);
R=r24at(((T24*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 376: 
break;
default:
R=NULL;
};/*[IF*/
if((R)==((void*)(NULL))){
{T376*n=malloc(sizeof(*n));
*n=M376;
r376make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


void r207merge_header_comments(T207* C,T0* a1){
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
}
 else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X93set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_STRING.arguments*/
/*No:CST_ATT_STRING.require_assertion*/


T0* r207try_to_undefine_aux(T207* C,T0* a1,T0* a2){
T0* R=NULL;
r21add_position(r207start_position(C));
r207error(X83start_position(a1),((T0*)ms201_99414));
r63fatal_undefine(((T63*)a2),a1);
return R;
}
/*No:CST_ATT_STRING.fz_dot*/
/*No:CST_ATT_STRING.stupid_switch*/


void r207error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}

