/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "compile_to_c.h"
/*No:CALL_INFIX_GE.arguments*/
T0* r890add_comment(T890* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r890to_integer(T890* C){
int R=0;
r890error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T890*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r890is_a(T890* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T890*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T890*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
r890error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_GE.is_current*/
void r890mapping_c_arg(T890* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X291run_type((((T890*)C))->_result_type/*20*/);
/*IF*/if (X291is_reference(_actual_type)) {
/*IF*/if (X291is_reference(a1)) {
r890compile_to_c(C);
}
else {
X291to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
else {
/*IF*/if (X291is_reference(a1)) {
X291to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*IF*/if (X291need_c_struct(a1)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\46';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
r890compile_to_c(C);
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_INFIX_GE.static_value*/
void r890make(T890* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,r890operator(),a2);
C->_feature_name=(T0*)n;
}
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r890make_call_1(C,a1,(((T890*)C))->_feature_name/*28*/,_eal);
}
void r890mapping_c_target(T890* C,T0* a1){
T0* _actual_type=NULL;
int _flag=0;
_flag=r324call_invariant_start(a1);
_actual_type=X291run_type((((T890*)C))->_result_type/*20*/);
/*IF*/if (X291is_reference(_actual_type)) {
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='T';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\52';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
X291to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
else {
/*IF*/if (X291is_reference(a1)) {
X291to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*IF*/if (X291need_c_struct(a1)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\46';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r890compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
r890compile_to_c(C);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (_flag) {
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
/*No:CALL_INFIX_GE.nb_errors*/
/*No:CALL_INFIX_GE.feature_name*/
/*No:CALL_INFIX_GE.fz_iinaiv*/
/*No:CALL_INFIX_GE.arg_count*/
/*No:CALL_INFIX_GE.dca_inline_argument*/
/*No:CALL_INFIX_GE.run_feature*/
/*No:CALL_INFIX_GE.call_proc_call_c2c*/
/*No:CALL_INFIX_GE.start_position*/
/*No:CALL_INFIX_GE.target*/
void r890compile_to_c(T890* C){
/*IF*/if ((r590boost(((T590*)(oBC364run_control))))&&(X291is_character(X291run_type(X662result_type((((T890*)C))->_target/*12*/))))) {
r890c2c_cast_op(C,((T0*)ms132_470),((T0*)ms32_473));
}
else {
/*[IRF3.6call_proc_call_c2c*/{T890* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
}
/*FI*/}
/*No:CALL_INFIX_GE.c_simple*/
/*No:CALL_INFIX_GE.us_ge*/
T0* r890to_runnable(T890* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T890*)C))->_current_type/*8*/)==((void*)(NULL))) {
r890to_runnable_0(C,a1);
_a=X431to_runnable((((T890*)C))->_arguments/*24*/,a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r890error(X662start_position(r890arg1(C)),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
X431match_with((((T890*)C))->_arguments/*24*/,(((T890*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T890*)C))->_result_type/*20*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
C->_result_type=X291run_type(X662result_type(r890arg1(C)));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r890twin(C);
/*[IRF3.3set_current_type*/((((T890*)(((T890*)R))))->_current_type)=(NULL);
/*]*/
R=r890to_runnable(((T890*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_GE.result_type*/
/*No:CALL_INFIX_GE.is_result*/
T0* r890twin(T890* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T890*)R)=*C;
return R;
}
/*No:CALL_INFIX_GE.set_current_type*/
T0* r890operator(void){
T0* R=NULL;
R=((T0*)ms32_473);
return R;
}
int r890is_static(T890* C){
int R=0;
/*IF*/if (X291is_integer(X662result_type((((T890*)C))->_target/*12*/))) {
/*IF*/if ((X662is_static((((T890*)C))->_target/*12*/))&&(X662is_static(r890arg1(C)))) {
R=1;
/*IF*/if ((X662static_value((((T890*)C))->_target/*12*/))>=(X662static_value(r890arg1(C)))) {
C->_static_value_mem=1;
}
else {
C->_static_value_mem=0;
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:CALL_INFIX_GE.fz_07*/
/*No:CALL_INFIX_GE.fz_unsigned*/
/*No:CALL_INFIX_GE.can_be_dropped*/
/*No:CALL_INFIX_GE.current_type*/
void r890compile_to_c_old(T890* C){
X662compile_to_c_old((((T890*)C))->_target/*12*/);
/*IF*/{/*AT*/X431compile_to_c_old((((T890*)C))->_arguments/*24*/);
}
/*FI*/}
void r890c2c_cast_op(T890* C,T0* a1,T0* a2){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
X662compile_to_c((((T890*)C))->_target/*12*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a2);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
X662compile_to_c(r890arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:CALL_INFIX_GE.static_value_mem*/
void r890make_call_1(T890* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_GE.is_manifest_string*/
/*No:CALL_INFIX_GE.is_void*/
void r890to_runnable_0(T890* C,T0* a1){
C->_current_type=a1;
r890cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T890*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T890*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T890*)C))->_run_feature/*16*/));
r890error((((T454*)((T454*)((((T890*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T890*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T890*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_INFIX_GE.is_pre_computable*/
void r890cpc_to_runnable(T890* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T890*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T890*)C))->_target/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T890*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T890*)C))->_target/*12*/,(((T890*)C))->_run_feature/*16*/);
}
int r890use_current(T890* C){
int R=0;
/*IF*/{/*AT*/R=X431use_current((((T890*)C))->_arguments/*24*/);
}
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T890*)C))->_target/*12*/)) {
R=X496use_current((((T890*)C))->_run_feature/*16*/);
}
else {
R=X662use_current((((T890*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r890finalize(T890* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(((T890*)C))->_run_feature/*16*/;
_rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
/*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
_rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
C->_run_feature=_rf;
}
/*FI*/}
void r890error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_GE.isa_dca_inline_argument*/
/*No:CALL_INFIX_GE.fatal_error*/
/*No:CALL_INFIX_GE.fz_bad_argument*/
T0* r890arg1(T890* C){
T0* R=NULL;
R=X431first((((T890*)C))->_arguments/*24*/);
return R;
}
void r890afd_check(T890* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T890*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T890*)C))->_target/*12*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_warning(((T683*)(oBC364eh)));
r355set_at_run_time(((T355*)_rc));
}
 else if ((r396count(((T396*)_running)))>(0)) {
r576update((((T890*)C))->_target/*12*/,(((T890*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T890*)C))->_target/*12*/);
/*IF*/{/*AT*/X431afd_check((((T890*)C))->_arguments/*24*/);
}
/*FI*/}
/*No:CALL_INFIX_TIMES.arguments*/
T0* r414add_comment(T414* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r414to_integer(T414* C){
int R=0;
r414error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T414*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r414is_a(T414* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T414*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T414*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
r414error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_TIMES.is_current*/
void r414mapping_c_arg(T414* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X291run_type((((T414*)C))->_result_type/*20*/);
/*IF*/if (X291is_reference(_actual_type)) {
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
}
else {
X291to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
else {
/*IF*/if (X291is_reference(a1)) {
X291to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*IF*/if (X291need_c_struct(a1)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\46';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_INFIX_TIMES.static_value*/
void r414make(T414* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,r414operator(),a2);
C->_feature_name=(T0*)n;
}
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r414make_call_1(C,a1,(((T414*)C))->_feature_name/*28*/,_eal);
}
void r414mapping_c_target(T414* C,T0* a1){
T0* _actual_type=NULL;
int _flag=0;
_flag=r324call_invariant_start(a1);
_actual_type=X291run_type((((T414*)C))->_result_type/*20*/);
/*IF*/if (X291is_reference(_actual_type)) {
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='T';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\52';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
X291to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
else {
/*IF*/if (X291is_reference(a1)) {
X291to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*IF*/if (X291need_c_struct(a1)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\46';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T414* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (_flag) {
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
/*No:CALL_INFIX_TIMES.nb_errors*/
/*No:CALL_INFIX_TIMES.feature_name*/
/*No:CALL_INFIX_TIMES.fz_iinaiv*/
/*No:CALL_INFIX_TIMES.arg_count*/
/*No:CALL_INFIX_TIMES.dca_inline_argument*/
/*No:CALL_INFIX_TIMES.run_feature*/
/*No:CALL_INFIX_TIMES.call_proc_call_c2c*/
/*No:CALL_INFIX_TIMES.start_position*/
/*No:CALL_INFIX_TIMES.target*/
/*No:CALL_INFIX_TIMES.compile_to_c*/
/*No:CALL_INFIX_TIMES.c_simple*/
T0* r414to_runnable(T414* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T414*)C))->_current_type/*8*/)==((void*)(NULL))) {
r414to_runnable_0(C,a1);
_a=X431to_runnable((((T414*)C))->_arguments/*24*/,a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r414error(X662start_position(r414arg1(C)),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
X431match_with((((T414*)C))->_arguments/*24*/,(((T414*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T414*)C))->_result_type/*20*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
C->_result_type=X291run_type(X662result_type(r414arg1(C)));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r414twin(C);
/*[IRF3.3set_current_type*/((((T414*)(((T414*)R))))->_current_type)=(NULL);
/*]*/
R=r414to_runnable(((T414*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_TIMES.result_type*/
/*No:CALL_INFIX_TIMES.is_result*/
T0* r414twin(T414* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T414*)R)=*C;
return R;
}
/*No:CALL_INFIX_TIMES.set_current_type*/
T0* r414operator(void){
T0* R=NULL;
R=((T0*)ms38_473);
return R;
}
int r414is_static(T414* C){
int R=0;
/*IF*/if (X291is_integer((((T414*)C))->_result_type/*20*/)) {
/*IF*/if ((X662is_static((((T414*)C))->_target/*12*/))&&(X662is_static(r414arg1(C)))) {
R=1;
C->_static_value_mem=(X662static_value((((T414*)C))->_target/*12*/))*(X662static_value(r414arg1(C)));
}
/*FI*/}
/*FI*/return R;
}
/*No:CALL_INFIX_TIMES.fz_07*/
/*No:CALL_INFIX_TIMES.can_be_dropped*/
/*No:CALL_INFIX_TIMES.current_type*/
void r414compile_to_c_old(T414* C){
X662compile_to_c_old((((T414*)C))->_target/*12*/);
/*IF*/{/*AT*/X431compile_to_c_old((((T414*)C))->_arguments/*24*/);
}
/*FI*/}
/*No:CALL_INFIX_TIMES.static_value_mem*/
void r414make_call_1(T414* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_TIMES.is_manifest_string*/
/*No:CALL_INFIX_TIMES.is_void*/
void r414to_runnable_0(T414* C,T0* a1){
C->_current_type=a1;
r414cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T414*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T414*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T414*)C))->_run_feature/*16*/));
r414error((((T454*)((T454*)((((T414*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T414*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T414*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_INFIX_TIMES.is_pre_computable*/
void r414cpc_to_runnable(T414* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T414*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T414*)C))->_target/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T414*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T414*)C))->_target/*12*/,(((T414*)C))->_run_feature/*16*/);
}
int r414use_current(T414* C){
int R=0;
/*IF*/{/*AT*/R=X431use_current((((T414*)C))->_arguments/*24*/);
}
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T414*)C))->_target/*12*/)) {
R=X496use_current((((T414*)C))->_run_feature/*16*/);
}
else {
R=X662use_current((((T414*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r414finalize(T414* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(((T414*)C))->_run_feature/*16*/;
_rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
/*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
_rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
C->_run_feature=_rf;
}
/*FI*/}
/*No:CALL_INFIX_TIMES.us_muls*/
void r414error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_TIMES.isa_dca_inline_argument*/
/*No:CALL_INFIX_TIMES.fatal_error*/
/*No:CALL_INFIX_TIMES.fz_bad_argument*/
T0* r414arg1(T414* C){
T0* R=NULL;
R=X431first((((T414*)C))->_arguments/*24*/);
return R;
}
void r414afd_check(T414* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T414*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T414*)C))->_target/*12*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_warning(((T683*)(oBC364eh)));
r355set_at_run_time(((T355*)_rc));
}
 else if ((r396count(((T396*)_running)))>(0)) {
r576update((((T414*)C))->_target/*12*/,(((T414*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T414*)C))->_target/*12*/);
/*IF*/{/*AT*/X431afd_check((((T414*)C))->_arguments/*24*/);
}
/*FI*/}
T0*oBC817tmp_file_read=NULL;
/*No:STD_OUTPUT.make*/
void r830append_file(T830* C,T0* a1){
char _c=0;
r675connect_to(((T675*)(oBC817tmp_file_read)),a1);
r675read_character(((T675*)(oBC817tmp_file_read)));
while (!(r675end_of_input(((T675*)(oBC817tmp_file_read))))) {
_c=/*(IRF4.6last_character*/((char)((((T675*)((T675*)(oBC817tmp_file_read))))->_memory/*12*/))/*)*/;
/*[IRF3.6put_character*/{T830* C1=C;
char b1=_c;
putc(b1,((FILE*)(stdout)));
}/*]*/
r675read_character(((T675*)(oBC817tmp_file_read)));
}
r675disconnect(((T675*)(oBC817tmp_file_read)));
}
/*No:STD_OUTPUT.flush*/
void r830put_double_format(T830* C,double a1,int a2){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
/*]*/
r5append_in_format(a1,oBC817tmp_string,a2);
r830put_string(C,oBC817tmp_string);
}
void r830put_string(T830* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
/*[IRF3.6put_character*/{T830* C1=C;
char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
putc(b1,((FILE*)(stdout)));
}/*]*/
_i=(_i)+(1);
}
}
void r830put_integer(T830* C,int a1){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
/*]*/
r2append_in(a1,oBC817tmp_string);
r830put_string(C,oBC817tmp_string);
}
/*No:STD_OUTPUT.put_character*/
/*No:TYPE_NATIVE_ARRAY.us_put*/
int r933id(T933* C){
int R=0;
R=(((T355*)((T355*)(r933run_class(C)))))->_id/*4*/;
return R;
}
/*No:TYPE_NATIVE_ARRAY.has_creation*/
/*No:TYPE_NATIVE_ARRAY.is_anchored*/
/*No:TYPE_NATIVE_ARRAY.is_array*/
/*No:TYPE_NATIVE_ARRAY.fz_typedef*/
int r933is_a(T933* C,T0* a1){
int R=0;
R=(r933run_time_mark(C))==((void*)(X291run_time_mark(a1)));
/*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
T0*oBC933tmp_str=NULL;
/*No:TYPE_NATIVE_ARRAY.c_initialize_in*/
void r933c_type_for_argument_in(T933* C,T0* a1){
r7extend(((T7*)a1),'T');
r2append_in(r933id(C),a1);
}
void r933gc_call_new_in(T933* C,T0* a1){
r7append(((T7*)a1),((T0*)ms115_470));
r2append_in(r933id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
int r933space_for_pointer(void){
int R=0;
void* _p=0;
R=sizeof(T8);
return R;
}
/*No:TYPE_NATIVE_ARRAY.is_pointer*/
/*No:TYPE_NATIVE_ARRAY.run_type*/
/*No:TYPE_NATIVE_ARRAY.is_dummy_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_string*/
/*No:TYPE_NATIVE_ARRAY.space_for_variable*/
/*No:TYPE_NATIVE_ARRAY.is_like_feature*/
/*No:TYPE_NATIVE_ARRAY.is_like_current*/
void r933make(T933* C,T0* a1,T0* a2){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms18_473),a1);
C->_base_class_name=(T0*)n;
}
C->_generic_list=se_ma701(1,a2);
r7copy(((T7*)(oBC933tmp_str)),((T0*)ms18_473));
r7extend(((T7*)(oBC933tmp_str)),'\133');
r7append(((T7*)(oBC933tmp_str)),X291written_mark(a2));
r7extend(((T7*)(oBC933tmp_str)),'\135');
C->_written_mark=r902item(oBC933tmp_str);
}
/*No:TYPE_NATIVE_ARRAY.nb_errors*/
/*No:TYPE_NATIVE_ARRAY.us_item*/
T0* r933type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
void r933mapping_cast(T933* C){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\50');
/*[IRF3.6c_type_for_target_in*/{T933* C1=C;
T0* b1=oBC291tmp_string;
r933c_type_for_argument_in(C1,b1);
}/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\51');
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
/*No:TYPE_NATIVE_ARRAY.start_position*/
/*No:TYPE_NATIVE_ARRAY.c_type_for_target_in*/
/*No:TYPE_NATIVE_ARRAY.fz_printf*/
/*No:TYPE_NATIVE_ARRAY.gc_set_marked_in*/
/*No:TYPE_NATIVE_ARRAY.fz_gc_mark*/
/*No:TYPE_NATIVE_ARRAY.fz_inako*/
/*No:TYPE_NATIVE_ARRAY.gc_initialize*/
/*No:TYPE_NATIVE_ARRAY.fz_00*/
/*No:TYPE_NATIVE_ARRAY.is_character*/
/*No:TYPE_NATIVE_ARRAY.is_user_expanded*/
void r933c_type_in(T933* C,T0* a1){
T0* _elt_type=NULL;
_elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
r7extend(((T7*)a1),'T');
/*IF*/if (X291is_reference(_elt_type)) {
r7extend(((T7*)a1),'0');
r7extend(((T7*)a1),'\52');
}
else {
r2append_in(X291id(_elt_type),a1);
}
/*FI*/r7extend(((T7*)a1),'\52');
}
/*No:TYPE_NATIVE_ARRAY.written_mark*/
T0* r933to_runnable(T933* C,T0* a1){
T0* R=NULL;
T0* _rc=NULL;
T0* _rt=NULL;
T0* _elt2=NULL;
T0* _elt1=NULL;
/*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(C))) {
R=(T0*)C;
}
else {
_elt1=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
_elt2=X291to_runnable(_elt1,a1);
/*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
/*IF*/if ((_elt2)!=((void*)(NULL))) {
r683add_position(X291start_position(_elt2));
}
/*FI*/r933error(X291start_position(_elt1),((T0*)ms59_470));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_elt2=X291run_type(_elt2);
/*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(NULL))) {
R=(T0*)C;
/*IF*/if ((_elt2)==((void*)(_elt1))) {
C->_run_type=(T0*)C;
r933load_basic_features(C);
}
else {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
C->_run_type=(T0*)n;
}
r933load_basic_features(((T933*)((((T933*)C))->_run_type/*16*/)));
}
/*FI*/}
else {
R=r933twin(C);
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
_rt=(T0*)n;
}
/*[IRF3.3set_run_type*/((((T933*)(((T933*)R))))->_run_type)=(_rt);
/*]*/
r933load_basic_features(((T933*)_rt));
}
/*FI*/}
/*FI*/}
/*FI*/_rc=r933run_class(((T933*)R));
r355set_at_run_time(((T355*)_rc));
return R;
}
int r933is_run_type(T933* C){
int R=0;
T0* _t=NULL;
/*IF*/if (((((T933*)C))->_run_type/*16*/)!=((void*)(NULL))) {
R=1;
}
else {
_t=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
/*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
C->_run_type=(T0*)C;
r933load_basic_features(C);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_NATIVE_ARRAY.fz_10*/
void r933c_type_for_external_in(T933* C,T0* a1){
/*IF*//*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T933* C1=C;
T0* b1=a1;
r933c_type_for_argument_in(C1,b1);
}/*]*/
/*FI*/}
/*No:TYPE_NATIVE_ARRAY.is_formal_generic*/
/*No:TYPE_NATIVE_ARRAY.generic_list*/
/*No:TYPE_NATIVE_ARRAY.fz_null*/
void r933demangling_in(T933* C,T0* a1){
/*IF*//*AF*//*AE*/
r7extend(((T7*)a1),'E');
/*FI*/r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r933run_time_mark(C));
}
/*No:TYPE_NATIVE_ARRAY.is_real*/
T0* r933twin(T933* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T933*)R)=*C;
return R;
}
void r933gc_info_nb_in(T933* C,T0* a1){
r7append(((T7*)a1),((T0*)ms59_291));
r2append_in(r933id(C),a1);
}
/*No:TYPE_NATIVE_ARRAY.fz_14*/
/*No:TYPE_NATIVE_ARRAY.is_bit*/
/*No:TYPE_NATIVE_ARRAY.fz_new*/
T0* r933smallest_ancestor(T933* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_a(_rto,(((T933*)C))->_run_type/*16*/)) {
R=_rto;
}
 else if (r933is_a(((T933*)((((T933*)C))->_run_type/*16*/)),_rto)) {
R=(((T933*)C))->_run_type/*16*/;
}
else {
R=r933type_any();
}
/*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
return R;
}
/*No:TYPE_NATIVE_ARRAY.set_run_type*/
/*No:TYPE_NATIVE_ARRAY.is_boolean*/
/*No:TYPE_NATIVE_ARRAY.is_double*/
T0* r933run_class(T933* C){
T0* R=NULL;
/*IF*/if (r933is_run_type(C)) {
R=r604run_class((((T933*)C))->_run_type/*16*/);
}
/*FI*/return R;
}
/*No:TYPE_NATIVE_ARRAY.c_initialize*/
T0* r933run_time_mark(T933* C){
T0* R=NULL;
/*IF*/if (r933is_run_type(C)) {
R=(((T933*)((T933*)((((T933*)C))->_run_type/*16*/))))->_written_mark/*12*/;
}
/*FI*/return R;
}
void r933cast_to_ref(T933* C){
r933cast_to_ref(((T933*)((((T933*)C))->_run_type/*16*/)));
}
void r933gc_mark_in(T933* C,T0* a1){
r7append(((T7*)a1),((T0*)ms107_470));
r2append_in(r933id(C),a1);
}
int r933is_a_in(T933* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T933*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r933to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r933look_up_for(T933* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r933base_class(C))),a1,a2);
return R;
}
/*No:TYPE_NATIVE_ARRAY.c_header_pass1*/
/*No:TYPE_NATIVE_ARRAY.c_type_for_result_in*/
/*No:TYPE_NATIVE_ARRAY.fz_int*/
/*No:TYPE_NATIVE_ARRAY.expanded_initializer*/
/*No:TYPE_NATIVE_ARRAY.fz_void*/
/*No:TYPE_NATIVE_ARRAY.fz_dot*/
/*No:TYPE_NATIVE_ARRAY.is_generic*/
/*No:TYPE_NATIVE_ARRAY.fz_bga*/
/*No:TYPE_NATIVE_ARRAY.used_as_reference*/
void r933c_header_pass2(T933* C){
T0* _elt_type=NULL;
_elt_type=X291run_type(r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1));
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
r933c_type_in(C,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'T');
r2append_in(r933id(C),oBC291tmp_string);
r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
void r933gc_define1(T933* C){
int _rcid=0;
T0* _rc=NULL;
_rc=r933run_class(C);
_rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
/*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
r7extend(((T7*)(oBC291tmp_string)),'\40');
r933gc_info_nb_in(C,oBC291tmp_string);
r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
}
/*FI*/}
/*No:TYPE_NATIVE_ARRAY.need_c_struct*/
/*No:TYPE_NATIVE_ARRAY.is_reference*/
void r933gc_info_in(T933* C,T0* a1){
r7append(((T7*)a1),((T0*)ms119_470));
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),r933run_time_mark(C));
r7append(((T7*)a1),((T0*)ms144_470));
r933gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms148_470));
}
void r933error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r933load_basic_features(T933* C){
T0* _rc=NULL;
T0* _rf=NULL;
T0* _elt_type=NULL;
_rc=r933run_class(C);
r355set_at_run_time(((T355*)_rc));
_elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
/*IF*/if (X291is_expanded(_elt_type)) {
r355set_at_run_time(((T355*)(X291run_class(_elt_type))));
}
/*FI*/_rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
_rf=r355get_feature_with(((T355*)_rc),((T0*)ms104_473));
/*IF*/if ((X291expanded_initializer(_elt_type))!=((void*)(NULL))) {
_rf=r355get_feature_with(((T355*)_rc),((T0*)ms57_473));
}
/*FI*/}
T0* r933base_class(T933* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T933*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_NATIVE_ARRAY.call_gc_sweep_in*/
void r933gc_define2(T933* C){
int _rcid=0;
T0* _elt_rc=NULL;
T0* _elt_type=NULL;
_elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
_elt_rc=X291run_class(_elt_type);
_rcid=(((T355*)((T355*)(r933run_class(C)))))->_id/*4*/;
r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
r7extend(((T7*)(oBC291header)),'\40');
r933gc_mark_in(C,oBC291header);
r7append(((T7*)(oBC291header)),((T0*)ms1_933));
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
/*]*/
/*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms65_291));
}/*]*/
/*[IRF3.6gc_set_marked_in*/{T0* b1=oBC291body;
r7append(((T7*)b1),((T0*)ms62_291));
}/*]*/
/*IF*/if ((X291is_reference(_elt_type))||(r355gc_mark_to_follow(((T355*)_elt_rc)))) {
r7extend(((T7*)(oBC291body)),'\173');
r933c_type_in(C,oBC291body);
r7remove_last(((T7*)(oBC291body)),1);
r7extend(((T7*)(oBC291body)),'\40');
r7extend(((T7*)(oBC291body)),'o');
r7append(((T7*)(oBC291body)),((T0*)ms134_470));
r933c_type_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms2_933));
r933c_type_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms3_933));
r548native_array_mark(oBC291body,_elt_rc);
r7extend(((T7*)(oBC291body)),'\175');
r7extend(((T7*)(oBC291body)),'\175');
}
/*FI*/r7extend(((T7*)(oBC291body)),'\175');
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291header)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291header)),'T');
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\40');
r7append(((T7*)(oBC291header)),((T0*)ms115_470));
r2append_in(_rcid,oBC291header);
r7extend(((T7*)(oBC291header)),'\50');
r7append(((T7*)(oBC291header)),((T0*)ms111_470));
r7extend(((T7*)(oBC291header)),'\40');
r7extend(((T7*)(oBC291header)),'n');
r7extend(((T7*)(oBC291header)),'\51');
r7copy(((T7*)(oBC291body)),((T0*)ms4_933));
/*IF*/if (X291is_reference(_elt_type)) {
r7extend(((T7*)(oBC291body)),'0');
r7extend(((T7*)(oBC291body)),'\52');
}
else {
r2append_in(X291id(_elt_type),oBC291body);
}
/*FI*/r7append(((T7*)(oBC291body)),((T0*)ms5_933));
/*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
r933gc_info_nb_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms6_933));
}
/*FI*/r7append(((T7*)(oBC291body)),((T0*)ms7_933));
r2append_in((2048)-(1),oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms8_933));
r7append(((T7*)(oBC291body)),((T0*)ms9_933));
r933gc_mark_in(C,oBC291body);
r7append(((T7*)(oBC291body)),((T0*)ms10_933));
r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
}
/*No:TYPE_NATIVE_ARRAY.need_gc_mark_function*/
/*No:TYPE_NATIVE_ARRAY.is_any*/
/*No:TYPE_NATIVE_ARRAY.us_clear_all*/
/*No:TYPE_NATIVE_ARRAY.to_reference*/
/*No:TYPE_NATIVE_ARRAY.c_header_pass3*/
/*No:TYPE_NATIVE_ARRAY.base_class_name*/
/*No:TYPE_NATIVE_ARRAY.us_native_array*/
/*No:TYPE_NATIVE_ARRAY.is_expanded*/
/*No:TYPE_NATIVE_ARRAY.gc_if_unmarked_in*/
/*No:TYPE_NATIVE_ARRAY.is_basic_eiffel_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_none*/
/*No:TYPE_NATIVE_ARRAY.to_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_integer*/
void r933make_runnable(T933* C,T0* a1,T0* a2){
r933make(C,a1,a2);
C->_run_type=(T0*)C;
}
/*No:TYPE_NATIVE_ARRAY.c_header_pass4*/
int r904id(T904* C){
int R=0;
R=X291id((((T904*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_9.arguments*/
/*No:RUN_FEATURE_9.ucs_true*/
/*No:RUN_FEATURE_9.c_define*/
/*No:RUN_FEATURE_9.actuals_clients*/
/*No:RUN_FEATURE_9.ucs_in_computation*/
void r904make(T904* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T355*)((T355*)(r904run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1005;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r904initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_9.name*/
void r904mapping_name(T904* C){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='r';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r904id(C));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T904*)C))->_name/*16*/));
/*]*/
}
int r904arg_count(T904* C){
int R=0;
/*IF*/if (((((T904*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T904*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
void r904routine_afd_check(T904* C){
/*IF*/if (((((T904*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567afd_check(((T567*)((((T904*)C))->_require_assertion/*28*/)));
}
/*FI*//*IF*/if (((((T904*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T904*)C))->_routine_body/*32*/)));
}
/*FI*//*IF*/if (((((T904*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633afd_check(((T633*)((((T904*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*No:RUN_FEATURE_9.local_vars*/
/*No:RUN_FEATURE_9.base_feature*/
T0* r904start_position(T904* C){
T0* R=NULL;
R=X249start_position((((T904*)C))->_base_feature/*44*/);
return R;
}
/*No:RUN_FEATURE_9.ensure_assertion*/
int r904is_exported_in(T904* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r904clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_9.compute_use_current*/
/*No:RUN_FEATURE_9.result_type*/
/*No:RUN_FEATURE_9.is_static*/
void r904add_client(T904* C,T0* a1){
int _i=0;
/*IF*/if (((((T904*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T904*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T904*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T904*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T904*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r355add_client(((T355*)(r904run_class(C))),a1);
}
/*No:RUN_FEATURE_9.require_assertion*/
/*No:RUN_FEATURE_9.use_current_state*/
/*No:RUN_FEATURE_9.can_be_dropped*/
/*No:RUN_FEATURE_9.current_type*/
T0* r904run_class(T904* C){
T0* R=NULL;
R=X291run_class((((T904*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_9.static_value_mem*/
/*No:RUN_FEATURE_9.ucs_not_computed*/
/*No:RUN_FEATURE_9.routine_body*/
void r904fall_down(T904* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
int _i=0;
T0* _running=NULL;
_current_rc=X291run_class((((T904*)C))->_current_type/*4*/);
_running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
/*IF*/if ((_running)!=((void*)(NULL))) {
_current_bc=X291base_class((((T904*)C))->_current_type/*4*/);
_i=(((T396*)((T396*)_running)))->_lower/*12*/;
while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
_sub_rc=r396item(((T396*)_running),_i);
/*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
_sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
_sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T904*)C))->_name/*16*/);
_rf=r355get_feature(((T355*)_sub_rc),_sub_name);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
/*No:RUN_FEATURE_9.ucs_false*/
/*No:RUN_FEATURE_9.is_pre_computable*/
T0* r904clients(T904* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T904*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T904*)C))->_current_type/*4*/);
_bfbc=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_base_class/*4*/);
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_clients/*20*/);
}
else {
R=r605clients_for(((T605*)_bc),(((T904*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T904*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
int r904use_current(T904* C){
int R=0;
{int z1=(((T904*)C))->_use_current_state/*40*/;

if((1004==z1)){
R=1;
}
 else 
if((1003==z1)){
}
 else 
if((1005==z1)){
C->_use_current_state=1006;
/*[IRF3.1compute_use_current*//*]*/
R=r904use_current(C);
}
 else {R=1;
}}
return R;
}
/*No:RUN_FEATURE_9.mapping_c*/
/*No:RUN_FEATURE_9.address_of*/
void r904put_tag(T904* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\42';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
_fn=/*X249*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
X776cpp_put_infix_or_prefix(_fn);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*X249*/((T0*)/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/)))))->_to_string/*0*/);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\42';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:RUN_FEATURE_9.clients_memory*/
void r904initialize(T904* C){
C->_arguments=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_arguments/*24*/);
/*IF*/if ((((((T904*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T904*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T904*)C))->_arguments/*20*/)),(((T904*)C))->_current_type/*4*/);
}
/*FI*/C->_result_type=/*X249*/((T0*)(((T853*)((T853*)((((T904*)C))->_base_feature/*44*/))))->_result_type/*12*/);
/*IF*/if (((((T904*)C))->_result_type/*24*/)!=((void*)(NULL))) {
C->_result_type=X291to_runnable((((T904*)C))->_result_type/*24*/,(((T904*)C))->_current_type/*4*/);
}
/*FI*/}
void r904afd_check(T904* C){
r904routine_afd_check(C);
r604afd_check_deferred((T0*)C);
}
T0* r936add_comment(T936* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r936to_integer(T936* C){
int R=0;
r936error((((T936*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
int r936is_a(T936* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T209*)r936result_type()))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T936*)C))->_start_position/*12*/);
r936error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:REAL_CONSTANT.is_current*/
void r936mapping_c_arg(T936* C,T0* a1){
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.6to_reference*/{T209* C1=((T209*)(r936result_type()));
r324to_reference(((T324*)(oBC364cpp)),(T0*)C1,r209type_real_ref());
}/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.6compile_to_c*/{T936* C1=C;
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T936*)C1))->_to_string/*16*/);
/*]*/
}/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*[IRF3.6compile_to_c*/{T936* C1=C;
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T936*)C1))->_to_string/*16*/);
/*]*/
}/*]*/
}
/*FI*/}
/*No:REAL_CONSTANT.static_value*/
void r936make(T936* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=a2;
}
/*No:REAL_CONSTANT.mapping_c_target*/
/*No:REAL_CONSTANT.to_string*/
/*No:REAL_CONSTANT.fz_iinaiv*/
/*No:REAL_CONSTANT.unary_minus*/
/*No:REAL_CONSTANT.dca_inline_argument*/
/*No:REAL_CONSTANT.start_position*/
/*No:REAL_CONSTANT.compile_to_c*/
/*No:REAL_CONSTANT.c_simple*/
T0* r936to_runnable(T936* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T936*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r936twin(C);
/*[IRF3.3set_current_type*/((((T936*)(((T936*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
int fBC936result_type=0;
T0*oBC936result_type=NULL;
T0* r936result_type(void){
if (fBC936result_type==0){
T0* R=NULL;
fBC936result_type=1;
{T209*n=malloc(sizeof(*n));
*n=M209;
r209make(n,NULL);
R=(T0*)n;
}
oBC936result_type=R;}
return oBC936result_type;}
/*No:REAL_CONSTANT.is_result*/
T0* r936twin(T936* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T936*)R)=*C;
return R;
}
/*No:REAL_CONSTANT.set_current_type*/
/*No:REAL_CONSTANT.is_static*/
/*No:REAL_CONSTANT.can_be_dropped*/
/*No:REAL_CONSTANT.current_type*/
/*No:REAL_CONSTANT.compile_to_c_old*/
/*No:REAL_CONSTANT.static_value_mem*/
/*No:REAL_CONSTANT.is_manifest_string*/
/*No:REAL_CONSTANT.is_void*/
/*No:REAL_CONSTANT.is_pre_computable*/
/*No:REAL_CONSTANT.use_current*/
void r936error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int r936isa_dca_inline_argument(void){
int R=0;
/*IF*//*AF*//*AE*/
/*FI*/return R;
}
/*No:REAL_CONSTANT.afd_check*/
int r627before(T627* C,T0* a1){
int R=0;
/*IF*/if ((/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/)<(/*(IRF4.6line*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)/(1000)/*)*/)) {
R=1;
}
 else if ((/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/)==(/*(IRF4.6line*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)/(1000)/*)*/)) {
R=(/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/)<(/*(IRF4.6column*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)%(1000)/*)*/);
}
/*FI*/return R;
}
/*No:POSITION.line*/
void r627make(T627* C,int a1,int a2){
C->_mem_line_column=((a1)*(1000))+(a2);
C->_base_class_name=/*(IRF4.6current_class_name*/(((T605*)((T605*)((((T818*)((T818*)(oBC364eiffel_parser))))->_last_base_class/*65*/))))->_base_class_name/*24*//*)*/;
}
T0* r627get_line(T627* C){
T0* R=NULL;
int _i=0;
T0* _p=NULL;
_p=r627path(C);
/*IF*/if ((_p)!=((void*)(NULL))) {
r675connect_to(((T675*)(oBC364tmp_file_read)),_p);
while (!((_i)==(/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/))) {
r675read_line(((T675*)(oBC364tmp_file_read)));
_i=(_i)+(1);
}
R=oBC762last_string;
r675disconnect(((T675*)(oBC364tmp_file_read)));
}
/*FI*/return R;
}
T0* r627path(T627* C){
T0* R=NULL;
T0* _bc=NULL;
T0* _bcn=NULL;
_bcn=(((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
/*IF*/if (r604is_used(_bcn)) {
_bc=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
}
 else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
/*IF*/if (((((T451*)((T451*)(/*(IRF4.6current_class_name*/(((T605*)((T605*)((((T818*)((T818*)(oBC364eiffel_parser))))->_last_base_class/*65*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/)==((void*)(_bcn))) {
_bc=/*(IRF4.3current_class*/(((T818*)((T818*)(oBC364eiffel_parser))))->_last_base_class/*65*//*)*/;
}
/*FI*/}
else {
_bc=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
}
/*FI*//*IF*/if ((_bc)!=((void*)(NULL))) {
R=(((T605*)((T605*)_bc)))->_path/*4*/;
}
/*FI*/}
/*FI*/return R;
}
/*No:POSITION.column*/
void r627with(T627* C,int a1,int a2,T0* a3){
C->_mem_line_column=((a1)*(1000))+(a2);
C->_base_class_name=a3;
}
int r627is_equal(T627* C,T0* a1){
int R=0;
R=(((((/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/)==(/*(IRF4.6line*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)/(1000)/*)*/))&&((/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/)==(/*(IRF4.6column*/((((T627*)((T627*)a1)))->_mem_line_column/*4*/)%(1000)/*)*/)))&&(((((T627*)C))->_base_class_name/*0*/)!=((void*)(NULL))))&&(((((T627*)((T627*)a1)))->_base_class_name/*0*/)!=((void*)(NULL))))&&(((((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/)==((void*)((((T451*)((T451*)((((T627*)((T627*)a1)))->_base_class_name/*0*/))))->_to_string/*0*/)));
return R;
}
void r627show(T627* C){
T0* _the_line=NULL;
T0* _str=NULL;
T0* _n=NULL;
int _nb=0;
int _c=0;
_n=(((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/;
r441put_string(((T441*)(oBC1std_error)),((T0*)ms3_627));
r441put_integer(((T441*)(oBC1std_error)),/*(IRF4.6line*/((((T627*)C))->_mem_line_column/*4*/)/(1000)/*)*/);
r441put_string(((T441*)(oBC1std_error)),((T0*)ms4_627));
r441put_integer(((T441*)(oBC1std_error)),/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/);
r441put_string(((T441*)(oBC1std_error)),((T0*)ms5_627));
r441put_string(((T441*)(oBC1std_error)),_n);
_str=r627path(C);
/*IF*/if ((_str)!=((void*)(NULL))) {
r441put_string(((T441*)(oBC1std_error)),((T0*)ms6_627));
r441put_string(((T441*)(oBC1std_error)),_str);
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\51';
putc(b1,((FILE*)(stderr)));
}/*]*/
}
/*FI*/r441put_string(((T441*)(oBC1std_error)),((T0*)ms7_627));
_the_line=r627get_line(C);
/*IF*/if ((_the_line)!=((void*)(NULL))) {
_c=/*(IRF4.6column*/((((T627*)C))->_mem_line_column/*4*/)%(1000)/*)*/;
r441put_string(((T441*)(oBC1std_error)),_the_line);
/*[IRF3.4put_new_line*//*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
/*]*/
_nb=1;
while (!((_nb)==(_c))) {
/*IF*/if ((/*(IRF4.6item*/((((T7*)((T7*)_the_line)))->_storage/*0*/)[(_nb)-(1)]/*)*/)==('\11')) {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\11';
putc(b1,((FILE*)(stderr)));
}/*]*/
}
else {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\40';
putc(b1,((FILE*)(stderr)));
}/*]*/
}
/*FI*/_nb=(_nb)+(1);
}
r441put_string(((T441*)(oBC1std_error)),((T0*)ms8_627));
}
else {
r441put_string(((T441*)(oBC1std_error)),((T0*)ms9_627));
r441put_string(((T441*)(oBC1std_error)),_n);
r441put_string(((T441*)(oBC1std_error)),((T0*)ms10_627));
}
/*FI*/}
T0* r627base_class(T627* C){
T0* R=NULL;
/*IF*/if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
/*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)((((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/))))->_count/*4*/)==(0)/*)*/) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_627);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if (r604is_used((((T451*)((T451*)((((T627*)C))->_base_class_name/*0*/))))->_to_string/*0*/)) {
R=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
}
else {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_627);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
else {
R=r451base_class(((T451*)((((T627*)C))->_base_class_name/*0*/)));
}
/*FI*/return R;
}
/*No:POSITION.fatal_error*/
/*No:POSITION.mem_line_column*/
/*No:POSITION.base_class_name*/
void r627set_line_column(T627* C,int a1,int a2){
C->_mem_line_column=((a1)*(1000))+(a2);
}
/*No:DOUBLE_REF.item*/
/*No:BOOLEAN_REF.item*/

