/*
-- 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 r297c_mapping_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r43boost((T43*)(oBC12run_control))){
r297c_mapping_external((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
}
else{
r384default_mapping_function(((T384*)a1));
}
/*FI]*/
}


void r297c_mapping_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r43boost((T43*)(oBC12run_control))){
r297c_mapping_external((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
/*]*/
}
else{
r387default_mapping_procedure(((T387*)a1));
}
/*FI]*/
}
/*No:NATIVE_INLINE_WITHOUT_CURRENT.use_current*/


void r297c_mapping_external(T0* a1,T2 a2){
T6 _tcbd=0;
T6 _eruc=0;
_eruc=/*(IRF4.1use_current*/0/*)*/;
/*[IF*/
if(!(_eruc)){
_tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X289external_c_name(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*/)));
}/*]*/
/*]*/
/*[IF*/
if(_eruc){
r25put_target_as_value((T25*)(oBC12cpp));
}
/*FI]*/
/*[IF*/
if((a2)>(0)){
/*[IF*/
if(_eruc){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r25put_arguments((T25*)(oBC12cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if((!(_eruc))&&(_tcbd)){
/*[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]*/
}
/*No:NATIVE_INLINE_WITHOUT_CURRENT.need_prototype*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.body*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.fz_00*/


void r297wrapped_external_call(T0* a1,T2 a2){
T2 _i=0;
r7append((T7*)(((T0*)ms288_3077376)),X289external_c_name(a1));
r7extend((T7*)(((T0*)ms288_3077376)),'\50');
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_i=1;
while (!((_i)>(a2))) {
r7extend((T7*)(((T0*)ms288_3077376)),'a');
r2append_in(_i,((T0*)ms288_3077376));
_i=(_i)+(1);
/*[IF*/
if((_i)<=(a2)){
r7extend((T7*)(((T0*)ms288_3077376)),'\54');
}
/*FI]*/
}
r7append((T7*)(((T0*)ms288_3077376)),((T0*)ms13_348));
}
/*No:NATIVE_INLINE_WITHOUT_CURRENT.stupid_switch*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.fz_14*/


void r297c_define_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms288_3077376)),'R');
r7extend((T7*)(((T0*)ms288_3077376)),'\75');
r297wrapped_external_call((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
r384c_define_with_body(((T384*)a1),((T0*)ms288_3077376));
}
/*FI]*/
}


void r297c_define_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
/*]*/
r297wrapped_external_call((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
r387c_define_with_body(((T387*)a1),((T0*)ms288_3077376));
}
/*FI]*/
}


T6 r357use_current(T357* C){
T6 R=0;
T2 _i=0;
_i=1;
while (!((R)||((_i)>(((T358*)((C)->_list/*0*/))->_upper/*8*/)))) {
R=r286use_current((T286*)(r358item((T358*)((C)->_list/*0*/),_i)));
_i=(_i)+(1);
}
return R;
}


void r357compile_to_c(T357* C){
T2 _i=0;
/*[IF*/
if((((T358*)((C)->_list/*0*/))->_upper/*8*/)==(1)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms357_24099));
/*]*/
r286compile_to_c((T286*)(r358first((T358*)((C)->_list/*0*/))));
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms357_60005));
/*]*/
r286compile_to_c((T286*)(r358first((T358*)((C)->_list/*0*/))));
_i=2;
while (!((_i)>(((T358*)((C)->_list/*0*/))->_upper/*8*/))) {
/*[IF*/
if((_i)==(((T358*)((C)->_list/*0*/))->_upper/*8*/)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms357_24099a));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms357_52800));
/*]*/
r286compile_to_c((T286*)(r358item((T358*)((C)->_list/*0*/),_i)));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_REQUIRE.fz_12*/


void r357clear_run_feature(T357* C){
T2 _i=0;
_i=((T358*)((C)->_list/*0*/))->_upper/*8*/;
while (!((_i)==(0))) {
/*[IRF3.3clear_run_feature*/((((T286*)((T286*)(r358item((T358*)((C)->_list/*0*/),_i)))))->_run_feature)=(NULL);
/*]*/
_i=(_i)-(1);
}
}
/*No:RUN_REQUIRE.make*/


void r357afd_check(T357* C){
T2 _i=0;
_i=((T358*)((C)->_list/*0*/))->_upper/*8*/;
while (!((_i)==(0))) {
r286afd_check((T286*)(r358item((T358*)((C)->_list/*0*/),_i)));
_i=(_i)-(1);
}
}
/*No:RUN_REQUIRE.list*/
/*No:CALL_INFIX_DIV.static_value*/
/*No:CALL_INFIX_DIV.call_proc_call_c2c*/
/*No:CALL_INFIX_DIV.feature_name*/


void r133finalize(T133* 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);
}
/*No:CALL_INFIX_DIV.is_static*/
/*No:CALL_INFIX_DIV.is_manifest_string*/


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


T0* r133add_comment(T133* 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 r133to_integer(T133* C){
T2 R=0;
r133error(r133start_position(C),((T0*)ms13_45846));
return R;
}


T6 r133use_current(T133* 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* r133to_runnable(T133* 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=r133runnable_expression((C)->_target/*4*/,a1);
_a=r133runnable_args((C)->_arguments/*8*/,a1);
_tt=X56result_type(_t);
_at=X56result_type(r133arg1(C));
/*[IF*/
{/*AT*//*[IF*/
if(X54is_real(_at)){
/*[IF*/
if(X54is_integer(_tt)){
_tbee=X54run_type(_at);
if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
case 270: case 268: case 266: case 267: case 271: case 264: 
break;
default:
_tbee=NULL;
};{T377*n=malloc(sizeof(*n));
*n=M377;
r377make(n,_t,_tbee);
_t=(T0*)n;
}
}
/*FI]*/
}
 else if(X54is_double(_at)){
/*[IF*/
if((X54is_integer(_tt))||(X54is_real(_tt))){
_tbee=X54run_type(_at);
if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
case 270: case 268: case 266: case 267: case 271: case 264: 
break;
default:
_tbee=NULL;
};{T377*n=malloc(sizeof(*n));
*n=M377;
r377make(n,_t,_tbee);
_t=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_rf=r133run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r133run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T133*n=malloc(sizeof(*n));
*n=M133;
r133with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_DIV.us_slash*/


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


void r133collect_c_tmp(T133* 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_DIV.fz_iinaiv*/


T0* r133result_type(T133* 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(r133arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_DIV.static_value_mem*/
/*No:CALL_INFIX_DIV.run_feature*/


T0* r133runnable_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_DIV.fz_07*/
/*No:CALL_INFIX_DIV.arg_count*/


void r133with(T133* 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;
r133run_feature_match(C,a5);
}
/*No:CALL_INFIX_DIV.is_result*/
/*No:CALL_INFIX_DIV.fatal_error*/


void r133mapping_c_target(T133* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r133result_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*/{T133* 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*/{T133* 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*/{T133* 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*/{T133* 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*/{T133* 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 r133run_feature_match(T133* C,T0* a1){
r133run_feature_has_result(C);
X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_DIV.arguments*/


T0* r133runnable_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_DIV.can_be_dropped*/


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


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


void r133run_feature_has_result(T133* 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* r133run_feature_for(T133* 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_DIV.target*/


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


void r133make(T133* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r133operator(),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_DIV.is_current*/


void r133mapping_c_arg(T133* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r133result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T133* 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*/{T133* 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*/{T133* 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*/{T133* 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*/{T133* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_DIV.is_void*/


T0* r133operator(void){
T0* R=NULL;
R=((T0*)ms14_48);
return R;
}


void r133afd_check(T133* 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:LOCAL_NAME1.static_value*/
/*No:LOCAL_NAME1.is_used*/
/*No:LOCAL_NAME1.is_static*/
/*No:LOCAL_NAME1.is_manifest_string*/
/*No:LOCAL_NAME1.start_position*/
/*No:LOCAL_NAME1.to_string*/
/*No:LOCAL_NAME1.c_simple*/


T0* r183add_comment(T183* 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;
}
/*No:LOCAL_NAME1.rank*/


T2 r183to_integer(T183* C){
T2 R=0;
r183error((C)->_start_position/*4*/,((T0*)ms13_45846));
return R;
}
/*No:LOCAL_NAME1.use_current*/


T0* r183to_runnable(T183* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
_rt=X54to_runnable((C)->_result_type/*12*/,a1);
/*[IF*/
if((_rt)==((void*)(NULL))){
r21add_position(X54start_position((C)->_result_type/*12*/));
r183error((C)->_start_position/*4*/,((T0*)ms183_24548));
}
/*FI]*/
/*[IF*/
if((_rt)==((void*)((C)->_result_type/*12*/))){
R=(T0*)C;
}
else{
R=r183twin(C);
/*[IRF3.3set_result_type*/((((T183*)(((T183*)R))))->_result_type)=(_rt);
/*]*/
}
/*FI]*/
return R;
}
/*No:LOCAL_NAME1.fz_00*/
/*No:LOCAL_NAME1.compile_to_c_old*/
/*No:LOCAL_NAME1.is_pre_computable*/
/*No:LOCAL_NAME1.collect_c_tmp*/
/*No:LOCAL_NAME1.fz_iinaiv*/
/*No:LOCAL_NAME1.result_type*/


void r183c_frame_descriptor(T183* C,T0* a1){
/*[IF*/
if(r183produce_c(C)){
r204increment((T204*)(oBC12c_frame_descriptor_local_count));
r7append((T7*)(oBC12c_frame_descriptor_format),(C)->_to_string/*8*/);
r7append((T7*)(oBC12c_frame_descriptor_locals),((T0*)ms183_14390));
r7append((T7*)(oBC12c_frame_descriptor_locals),(C)->_to_string/*8*/);
r7extend((T7*)(oBC12c_frame_descriptor_locals),'\54');
X54c_frame_descriptor(a1);
}
/*FI]*/
}
/*No:LOCAL_NAME1.set_is_used*/


T6 r183produce_c(T183* C){
T6 R=0;
T0* _t=NULL;
/*[IF*/
if((C)->_is_used/*20*/){
R=1;
}
else{
_t=X54run_type((C)->_result_type/*12*/);
/*[IF*/
if(X54is_expanded(_t)){
R=!(X54is_basic_eiffel_expanded(_t));
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r183base_class_written(T183* C){
T0* R=NULL;
R=r64base_class((T64*)(r183written_in(C)));
return R;
}


void r183c_declare(T183* C){
T0* _t=NULL;
/*[IF*/
if(r183produce_c(C)){
_t=X54run_type((C)->_result_type/*12*/);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC181tmp_string))))->_count)=(0);
/*]*/
X54c_type_for_result_in(_t,oBC181tmp_string);
r7extend((T7*)(oBC181tmp_string),'\40');
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC181tmp_string);
/*]*/
r25print_local((T25*)(oBC12cpp),(C)->_to_string/*8*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\75';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X54c_initialize(_t);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
/*]*/
}
 else if(r43debug_check((T43*)(oBC12run_control))){
r183warning((C)->_start_position/*4*/,((T0*)ms183_34210));
}
/*FI]*/
}
/*No:LOCAL_NAME1.is_result*/


void r183mapping_c_target(T183* C,T0* a1){
T0* _rt=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_rt=X54run_type((C)->_result_type/*12*/);
/*[IF*/
if(X54is_reference(_rt)){
/*[IF*/
if(X54is_reference(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.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='T';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54id(a1));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\52';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
/*[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(_rt);
/*[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.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
/*[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(X54is_reference(a1)){
X54to_reference(_rt);
/*[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.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
/*[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(_rt)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
}
/*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]*/
}
/*No:LOCAL_NAME1.can_be_dropped*/


T0* r183twin(T183* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T183*)R)=*C;
return R;
}
/*No:LOCAL_NAME1.c_declare_for_old*/
/*No:LOCAL_NAME1.name_clash*/
/*No:LOCAL_NAME1.dca_inline_argument*/
/*No:LOCAL_NAME1.compile_to_c*/


void r183warning(T0* a1,T0* a2){
r21add_position(a1);
r21warning((T21*)(oBC12eh),a2);
}
/*No:LOCAL_NAME1.isa_dca_inline_argument*/


T0* r183written_in(T183* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position/*4*/;
/*[IF*/
if((_sp)!=((void*)(NULL))){
R=(((T70*)_sp))->_base_class_name/*0*/;
}
/*FI]*/
return R;
}
/*No:LOCAL_NAME1.set_result_type*/


void r183name_clash_for(T183* C,T0* a1,T0* a2){
T0* _bc=NULL;
T0* _rc=NULL;
T0* _rf=NULL;
_bc=r183base_class_written(C);
/*[IF*/
if(r63has_simple_feature_name(((T63*)_bc),(C)->_to_string/*8*/)){
_rc=X54run_class(a1);
_rf=r24get_feature_with(((T24*)_rc),(C)->_to_string/*8*/);
/*[IF*/
if((_rf)!=((void*)(NULL))){
r21add_position(X51start_position(_rf));
}
/*FI]*/
r183error((C)->_start_position/*4*/,a2);
}
/*FI]*/
}


void r183error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:LOCAL_NAME1.set_rank*/


void r183make(T183* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=r84item(a2);
}
/*No:LOCAL_NAME1.is_current*/


void r183mapping_c_arg(T183* C,T0* a1){
T0* _rt=NULL;
_rt=X54run_type((C)->_result_type/*12*/);
/*[IF*/
if(X54is_reference(_rt)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
}
else{
X54to_expanded(_rt);
/*[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.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
/*[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(X54is_reference(a1)){
X54to_reference(_rt);
/*[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.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
/*[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(_rt)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.6compile_to_c*/{T183* C1=C;
r25print_local((T25*)(oBC12cpp),(C1)->_to_string/*8*/);
}/*]*/
}
/*FI]*/
}
/*No:LOCAL_NAME1.is_void*/
T0*oBC181tmp_string=NULL;
/*No:LOCAL_NAME1.afd_check*/
/*No:EXPORT_LIST.start_position*/
/*No:EXPORT_LIST.items*/


T0* r317clients_for(T317* C,T0* a1){
T0* R=NULL;
T0* _ei=NULL;
T2 _i=0;
_i=((T318*)((C)->_items/*4*/))->_upper/*8*/;
while (!((_i)==(0))) {
_ei=r318item((T318*)((C)->_items/*4*/),_i);
/*[IF*/
if(r316affect(((T316*)_ei),a1)){
/*[IF*/
if((R)==((void*)(NULL))){
R=(((T316*)_ei))->_clients/*0*/;
}
else{
R=r101merge_with(((T101*)R),(((T316*)_ei))->_clients/*0*/);
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
return R;
}


void r317make(T317* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_items=a2;
}


T2 r377static_value(T377* C){
T2 R=0;
R=X56static_value((C)->_expression/*4*/);
return R;
}


void r377mapping_c_target(T377* C,T0* a1){
X56mapping_c_target((C)->_expression/*4*/,a1);
}


T6 r377is_static(T377* C){
T6 R=0;
R=X56is_static((C)->_expression/*4*/);
return R;
}


T6 r377can_be_dropped(T377* C){
T6 R=0;
R=X56can_be_dropped((C)->_expression/*4*/);
return R;
}
/*No:IMPLICIT_CAST.is_manifest_string*/


T0* r377start_position(T377* C){
T0* R=NULL;
R=X56start_position((C)->_expression/*4*/);
return R;
}


T6 r377c_simple(T377* C){
T6 R=0;
R=X56c_simple((C)->_expression/*4*/);
return R;
}


void r377c_declare_for_old(T377* C){
X56c_declare_for_old((C)->_expression/*4*/);
}


T0* r377add_comment(T377* 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;
}
/*No:IMPLICIT_CAST.expression*/


T2 r377to_integer(T377* C){
T2 R=0;
r377error(r377start_position(C),((T0*)ms13_45846));
return R;
}


T6 r377use_current(T377* C){
T6 R=0;
R=X56use_current((C)->_expression/*4*/);
return R;
}


void r377dca_inline_argument(T377* C,T0* a1){
X56dca_inline_argument((C)->_expression/*4*/,a1);
}


void r377compile_to_c(T377* C){
X56compile_to_c((C)->_expression/*4*/);
}


T0* r377to_runnable(T377* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
_e=X56to_runnable((C)->_expression/*4*/,a1);
/*[IF*/
if(((C)->_expression/*4*/)==((void*)(_e))){
R=(T0*)C;
}
else{
{T377*n=malloc(sizeof(*n));
*n=M377;
r377make(n,_e,(C)->_result_type/*8*/);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r377isa_dca_inline_argument(T377* C){
T2 R=0;
R=X56isa_dca_inline_argument((C)->_expression/*4*/);
return R;
}


void r377compile_to_c_old(T377* C){
X56compile_to_c_old((C)->_expression/*4*/);
}


T6 r377is_pre_computable(T377* C){
T6 R=0;
R=X56is_pre_computable((C)->_expression/*4*/);
return R;
}


void r377collect_c_tmp(T377* C){
X56collect_c_tmp((C)->_expression/*4*/);
}
/*No:IMPLICIT_CAST.fz_iinaiv*/
/*No:IMPLICIT_CAST.result_type*/


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


void r377make(T377* C,T0* a1,T0* a2){
C->_expression=a1;
C->_result_type=a2;
}


T6 r377is_current(T377* C){
T6 R=0;
R=X56is_current((C)->_expression/*4*/);
return R;
}


void r377mapping_c_arg(T377* C,T0* a1){
X56mapping_c_arg((C)->_expression/*4*/,a1);
}
/*No:IMPLICIT_CAST.is_void*/


void r377afd_check(T377* C){
X56afd_check((C)->_expression/*4*/);
}


T6 r377is_result(T377* C){
T6 R=0;
R=X56is_result((C)->_expression/*4*/);
return R;
}
/*No:CALL_INFIX_GT.static_value*/
/*No:CALL_INFIX_GT.call_proc_call_c2c*/
/*No:CALL_INFIX_GT.feature_name*/


void r124finalize(T124* 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 r124is_static(T124* C){
T6 R=0;
/*[IF*/
if(X54is_integer(X56result_type((C)->_target/*4*/))){
/*[IF*/
if((X56is_static((C)->_target/*4*/))&&(X56is_static(r124arg1(C)))){
R=1;
/*[IF*/
if((X56static_value((C)->_target/*4*/))>(X56static_value(r124arg1(C)))){
C->_static_value_mem=1;
}
else{
C->_static_value_mem=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_GT.is_manifest_string*/


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


T0* r124add_comment(T124* 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 r124to_integer(T124* C){
T2 R=0;
r124error(r124start_position(C),((T0*)ms13_45846));
return R;
}


T6 r124use_current(T124* 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;
}
/*No:CALL_INFIX_GT.fz_unsigned*/


T0* r124to_runnable(T124* 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=r124runnable_expression((C)->_target/*4*/,a1);
_a=r124runnable_args((C)->_arguments/*8*/,a1);
_tt=X56result_type(_t);
_at=X56result_type(r124arg1(C));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r124run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r124run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T124*n=malloc(sizeof(*n));
*n=M124;
r124with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


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


void r124collect_c_tmp(T124* 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_GT.fz_iinaiv*/


T0* r124result_type(T124* 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(r124arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_GT.static_value_mem*/
/*No:CALL_INFIX_GT.run_feature*/


T0* r124runnable_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_GT.fz_07*/
/*No:CALL_INFIX_GT.arg_count*/


void r124with(T124* 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;
r124run_feature_match(C,a5);
}
/*No:CALL_INFIX_GT.is_result*/
/*No:CALL_INFIX_GT.fatal_error*/


void r124mapping_c_target(T124* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r124result_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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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{
r124compile_to_c(C);
}
/*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 r124run_feature_match(T124* C,T0* a1){
r124run_feature_has_result(C);
X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_GT.arguments*/


T0* r124runnable_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_GT.can_be_dropped*/


void r124c_declare_for_old(T124* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_GT.us_gt*/
/*No:CALL_INFIX_GT.implicit_cast*/
/*No:CALL_INFIX_GT.dca_inline_argument*/


void r124compile_to_c(T124* C){
/*[IF*/
if((r43boost((T43*)(oBC12run_control)))&&(X54is_character(X54run_type(X56result_type((C)->_target/*4*/))))){
r124c2c_cast_op(C,((T0*)ms13_10920),((T0*)ms14_63));
}
else{
/*[IRF3.6call_proc_call_c2c*/{T124* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
}
/*FI]*/
}
/*No:CALL_INFIX_GT.isa_dca_inline_argument*/


void r124c2c_cast_op(T124* C,T0* a1,T0* a2){
/*[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.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
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.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
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*/)));
}/*]*/
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a2);
/*]*/
/*[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.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
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*/)));
}/*]*/
/*]*/
X56compile_to_c(r124arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}


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


void r124run_feature_has_result(T124* 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* r124run_feature_for(T124* 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_GT.target*/


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


void r124make(T124* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r124operator(),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_GT.is_current*/


void r124mapping_c_arg(T124* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r124result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
r124compile_to_c(C);
}
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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r124compile_to_c(C);
/*[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{
r124compile_to_c(C);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_GT.is_void*/


T0* r124operator(void){
T0* R=NULL;
R=((T0*)ms14_63);
return R;
}


void r124afd_check(T124* 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_LT.static_value*/
/*No:CALL_INFIX_LT.call_proc_call_c2c*/
/*No:CALL_INFIX_LT.feature_name*/


void r126finalize(T126* 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 r126is_static(T126* C){
T6 R=0;
/*[IF*/
if(X54is_integer(X56result_type((C)->_target/*4*/))){
/*[IF*/
if((X56is_static((C)->_target/*4*/))&&(X56is_static(r126arg1(C)))){
R=1;
/*[IF*/
if((X56static_value((C)->_target/*4*/))<(X56static_value(r126arg1(C)))){
C->_static_value_mem=1;
}
else{
C->_static_value_mem=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_LT.is_manifest_string*/


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


T0* r126add_comment(T126* 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 r126to_integer(T126* C){
T2 R=0;
r126error(r126start_position(C),((T0*)ms13_45846));
return R;
}


T6 r126use_current(T126* 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;
}
/*No:CALL_INFIX_LT.fz_unsigned*/


T0* r126to_runnable(T126* 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=r126runnable_expression((C)->_target/*4*/,a1);
_a=r126runnable_args((C)->_arguments/*8*/,a1);
_tt=X56result_type(_t);
_at=X56result_type(r126arg1(C));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r126run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r126run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T126*n=malloc(sizeof(*n));
*n=M126;
r126with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


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


void r126collect_c_tmp(T126* 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_LT.fz_iinaiv*/


T0* r126result_type(T126* 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(r126arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_LT.static_value_mem*/
/*No:CALL_INFIX_LT.run_feature*/


T0* r126runnable_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_LT.fz_07*/
/*No:CALL_INFIX_LT.arg_count*/


void r126with(T126* 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;
r126run_feature_match(C,a5);
}
/*No:CALL_INFIX_LT.is_result*/
/*No:CALL_INFIX_LT.fatal_error*/


void r126mapping_c_target(T126* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r126result_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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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{
r126compile_to_c(C);
}
/*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 r126run_feature_match(T126* C,T0* a1){
r126run_feature_has_result(C);
X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_LT.arguments*/


T0* r126runnable_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_LT.can_be_dropped*/


void r126c_declare_for_old(T126* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_LT.implicit_cast*/
/*No:CALL_INFIX_LT.dca_inline_argument*/


void r126compile_to_c(T126* C){
/*[IF*/
if((r43boost((T43*)(oBC12run_control)))&&(X54is_character(X54run_type(X56result_type((C)->_target/*4*/))))){
r126c2c_cast_op(C,((T0*)ms13_10920),((T0*)ms14_61));
}
else{
/*[IRF3.6call_proc_call_c2c*/{T126* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
}
/*FI]*/
}
/*No:CALL_INFIX_LT.isa_dca_inline_argument*/
/*No:CALL_INFIX_LT.us_lt*/


void r126c2c_cast_op(T126* C,T0* a1,T0* a2){
/*[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.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
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.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
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*/)));
}/*]*/
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a2);
/*]*/
/*[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.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
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*/)));
}/*]*/
/*]*/
X56compile_to_c(r126arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}


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


void r126run_feature_has_result(T126* 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* r126run_feature_for(T126* 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_LT.target*/


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


void r126make(T126* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r126operator(),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_LT.is_current*/


void r126mapping_c_arg(T126* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r126result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
r126compile_to_c(C);
}
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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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*/)));
}/*]*/
/*]*/
r126compile_to_c(C);
/*[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{
r126compile_to_c(C);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_LT.is_void*/


T0* r126operator(void){
T0* R=NULL;
R=((T0*)ms14_61);
return R;
}


void r126afd_check(T126* 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:LOOP_INVARIANT.nb_errors*/
/*No:LOOP_INVARIANT.start_position*/


T0* r243twin(T243* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T243*)R)=*C;
return R;
}


T0* r243check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms243_1011);
return R;
}


T6 r243is_always_true(T243* C){
T6 R=0;
T0* _assertion=NULL;
T2 _i=0;
_i=((T106*)((C)->_list/*8*/))->_upper/*8*/;
R=1;
while (!((!(R))||((_i)==(0)))) {
_assertion=r106item((T106*)((C)->_list/*8*/),_i);
R=r103is_always_true(((T103*)_assertion));
_i=(_i)-(1);
}
return R;
}


T0* r243runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r106empty(((T106*)a1)))){
R=r106twin(((T106*)a1));
_i=(((T106*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r22push((T22*)(oBC12small_eiffel),a3);
_a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r243error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
}
else{
/*[IRF3.6put*/{T106* C1=((T106*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r22pop((T22*)(oBC12small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}


T6 r243use_current(T243* C){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((C)->_list/*8*/)!=((void*)(NULL))){
_i=((T106*)((C)->_list/*8*/))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r103use_current((T103*)(r106item((T106*)((C)->_list/*8*/),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}

