/*
-- 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_1_C.arguments*/
T0* r492add_comment(T492* 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 r492to_integer(T492* C){
int R=0;
r492error(r492start_position(C),((T0*)ms69_470));
return R;
}
int r492is_a(T492* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T492*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(r492start_position(C));
r492error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_1_C.is_current*/
void r492mapping_c_arg(T492* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X291run_type((((T492*)C))->_result_type/*24*/);
/*IF*/if (X291is_reference(_actual_type)) {
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* 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*/{T492* 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*/{T492* 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*/{T492* 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*/{T492* C1=C;
r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
}/*]*/
/*]*/
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_1_C.static_value*/
void r492make(T492* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
void r492mapping_c_target(T492* C,T0* a1){
T0* _actual_type=NULL;
int _flag=0;
_flag=r324call_invariant_start(a1);
_actual_type=X291run_type((((T492*)C))->_result_type/*24*/);
/*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*/{T492* 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*/{T492* 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*/{T492* 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*/{T492* 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*/{T492* 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_1_C.nb_errors*/
/*No:CALL_1_C.feature_name*/
/*No:CALL_1_C.fz_iinaiv*/
/*No:CALL_1_C.arg_count*/
/*No:CALL_1_C.dca_inline_argument*/
/*No:CALL_1_C.run_feature*/
/*No:CALL_1_C.call_proc_call_c2c*/
T0* r492start_position(T492* C){
T0* R=NULL;
R=X776start_position((((T492*)C))->_feature_name/*16*/);
return R;
}
/*No:CALL_1_C.target*/
/*No:CALL_1_C.compile_to_c*/
/*No:CALL_1_C.c_simple*/
T0* r492to_runnable(T492* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T492*)C))->_current_type/*8*/)==((void*)(NULL))) {
r492to_runnable_0(C,a1);
_a=X431to_runnable((((T492*)C))->_arguments/*28*/,a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r492error(X662start_position(r492arg1(C)),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
X431match_with((((T492*)C))->_arguments/*28*/,(((T492*)C))->_run_feature/*20*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T492*)C))->_result_type/*24*/;
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(r492arg1(C)));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r492twin(C);
/*[IRF3.3set_current_type*/((((T492*)(((T492*)R))))->_current_type)=(NULL);
/*]*/
R=r492to_runnable(((T492*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_1_C.result_type*/
/*No:CALL_1_C.is_result*/
T0* r492twin(T492* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T492*)R)=*C;
return R;
}
/*No:CALL_1_C.set_current_type*/
/*No:CALL_1_C.is_static*/
int r492call_is_static(T492* C){
int R=0;
T0* _rf=NULL;
T0* _running=NULL;
T0* _rc=NULL;
/*IF*/if (((((T492*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
_rc=X496run_class((((T492*)C))->_run_feature/*20*/);
/*IF*/if ((_rc)!=((void*)(NULL))) {
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
_rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T492*)C))->_run_feature/*20*/);
/*IF*/if (X496is_static(_rf)) {
C->_static_value_mem=X496static_value_mem(_rf);
R=1;
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:CALL_1_C.fz_07*/
/*No:CALL_1_C.can_be_dropped*/
/*No:CALL_1_C.current_type*/
void r492compile_to_c_old(T492* C){
X662compile_to_c_old((((T492*)C))->_target/*12*/);
/*IF*/{/*AT*/X431compile_to_c_old((((T492*)C))->_arguments/*28*/);
}
/*FI*/}
/*No:CALL_1_C.static_value_mem*/
/*No:CALL_1_C.is_manifest_string*/
/*No:CALL_1_C.is_void*/
void r492to_runnable_0(T492* C,T0* a1){
C->_current_type=a1;
r492cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T492*)C))->_run_feature/*20*/))))->_result_type/*24*/);
/*IF*/if (((((T492*)C))->_result_type/*24*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T492*)C))->_run_feature/*20*/));
r492error(X776start_position((((T492*)C))->_feature_name/*16*/),((T0*)ms1_295));
}
 else if (X291is_like_current((((T492*)C))->_result_type/*24*/)) {
C->_result_type=X662result_type((((T492*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_1_C.is_pre_computable*/
void r492cpc_to_runnable(T492* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T492*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T492*)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((((T492*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T492*)C))->_target/*12*/,(((T492*)C))->_run_feature/*20*/);
}
int r492use_current(T492* C){
int R=0;
/*IF*/{/*AT*/R=X431use_current((((T492*)C))->_arguments/*28*/);
}
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T492*)C))->_target/*12*/)) {
R=X496use_current((((T492*)C))->_run_feature/*20*/);
}
else {
R=X662use_current((((T492*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r492finalize(T492* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(((T492*)C))->_run_feature/*20*/;
_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 r492error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_1_C.isa_dca_inline_argument*/
/*No:CALL_1_C.fatal_error*/
/*No:CALL_1_C.fz_bad_argument*/
T0* r492arg1(T492* C){
T0* R=NULL;
R=X431first((((T492*)C))->_arguments/*28*/);
return R;
}
void r492afd_check(T492* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T492*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T492*)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((((T492*)C))->_target/*12*/,(((T492*)C))->_run_feature/*20*/);
}
/*FI*/X662afd_check((((T492*)C))->_target/*12*/);
/*IF*/{/*AT*/X431afd_check((((T492*)C))->_arguments/*28*/);
}
/*FI*/}
T0* r126add_comment(T126* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r126make(T126* C,T0* a1,T0* a2){
C->_left_side=a1;
C->_right_side=a2;
}
/*No:REVERSE_ASSIGNMENT.nb_errors*/
T0* r126start_position(T126* C){
T0* R=NULL;
R=X662start_position((((T126*)C))->_left_side/*8*/);
return R;
}
void r126compile_to_c(T126* C){
int _i=0;
T0* _run=NULL;
/*IF*/if (X291is_expanded(X291run_type(r126right_type(C)))) {
r683add_position(r126start_position(C));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_126);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/_run=(((T355*)((T355*)(X291run_class(r126left_type(C))))))->_running/*12*/;
/*IF*/if (((_run)==((void*)(NULL)))||(r396empty(((T396*)_run)))) {
X662compile_to_c((((T126*)C))->_left_side/*8*/);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_126));
/*]*/
}
else {
X662compile_to_c((((T126*)C))->_left_side/*8*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\75';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*IF*/if (X662is_current((((T126*)C))->_right_side/*12*/)) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
/*]*/
}
/*FI*/X662compile_to_c((((T126*)C))->_right_side/*12*/);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_126));
/*]*/
X662compile_to_c((((T126*)C))->_left_side/*8*/);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_126));
/*]*/
X662compile_to_c((((T126*)C))->_left_side/*8*/);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_126));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_126));
/*]*/
_i=(((T396*)((T396*)_run)))->_lower/*12*/;
while (!((_i)>((((T396*)((T396*)_run)))->_upper/*8*/))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms7_126));
/*]*/
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T355*)((T355*)(r396item(((T396*)_run),_i)))))->_id/*4*/);
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms8_126));
/*]*/
_i=(_i)+(1);
}
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms9_126));
/*]*/
X662compile_to_c((((T126*)C))->_left_side/*8*/);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_126));
/*]*/
}
/*FI*/}
T0* r126to_runnable(T126* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T126*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_e=X662to_runnable((((T126*)C))->_left_side/*8*/,r126current_type(C));
/*IF*/if ((_e)==((void*)(NULL))) {
r126error(X662start_position((((T126*)C))->_left_side/*8*/),((T0*)ms62_470));
}
else {
C->_left_side=_e;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_e=X662to_runnable((((T126*)C))->_right_side/*12*/,r126current_type(C));
/*IF*/if ((_e)==((void*)(NULL))) {
r126error(X662start_position((((T126*)C))->_right_side/*12*/),((T0*)ms63_470));
}
else {
C->_right_side=_e;
}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&(X291is_a(X291run_type(r126right_type(C)),X291run_type(r126left_type(C))))) {
/*IF*/if ((!(X662is_current((((T126*)C))->_right_side/*12*/)))&&(!(X291is_like_current(r126left_type(C))))) {
r683add_type(r126right_type(C),((T0*)ms12_126));
r683add_type(r126left_type(C),((T0*)ms13_126));
r126warning(r126start_position(C),((T0*)ms14_126));
}
/*FI*/}
/*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (!(X291is_reference(X291run_type(r126left_type(C))))) {
r683add_type(X291run_type(r126left_type(C)),((T0*)ms15_126));
r126error(r126start_position(C),((T0*)ms16_126));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T126*n=malloc(sizeof(*n));
*n=M126;
r126make(n,(((T126*)C))->_left_side/*8*/,(((T126*)C))->_right_side/*12*/);
R=(T0*)n;
}
R=r126to_runnable(((T126*)R),a1);
}
/*FI*/return R;
}
T0* r126right_type(T126* C){
T0* R=NULL;
R=X662result_type((((T126*)C))->_right_side/*12*/);
return R;
}
/*No:REVERSE_ASSIGNMENT.left_side*/
T0* r126current_type(T126* C){
T0* R=NULL;
/*IF*/if (((((T126*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T126*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:REVERSE_ASSIGNMENT.run_compound*/
/*No:REVERSE_ASSIGNMENT.is_pre_computable*/
/*No:REVERSE_ASSIGNMENT.fz_cast_t0_star*/
int r126use_current(T126* C){
int R=0;
/*IF*/if (X662use_current((((T126*)C))->_left_side/*8*/)) {
R=1;
}
else {
R=X662use_current((((T126*)C))->_right_side/*12*/);
}
/*FI*/return R;
}
/*No:REVERSE_ASSIGNMENT.right_side*/
/*No:REVERSE_ASSIGNMENT.fz_blhsoa*/
/*No:REVERSE_ASSIGNMENT.fz_brhsoa*/
void r126error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:REVERSE_ASSIGNMENT.fatal_error*/
/*No:REVERSE_ASSIGNMENT.end_mark_comment*/
void r126afd_check(T126* C){
X662afd_check((((T126*)C))->_right_side/*12*/);
}
T0* r126left_type(T126* C){
T0* R=NULL;
R=X662result_type((((T126*)C))->_left_side/*8*/);
return R;
}
void r126warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
int r542affect(T542* C,T0* a1){
int R=0;
/*IF*/if (/*(IRF4.7for_all*/((((T542*)C))->_list/*4*/)==(NULL)/*)*/) {
R=1;
}
else {
R=r953has(((T953*)((((T542*)C))->_list/*4*/)),a1);
}
/*FI*/return R;
}
void r542make_all(T542* C,T0* a1){
C->_clients=a1;
C->_list=NULL;
}
void r542make(T542* C,T0* a1,T0* a2){
C->_clients=a1;
{T953*n=malloc(sizeof(*n));
*n=M953;
r953make(n,a2);
C->_list=(T0*)n;
}
}
/*No:EXPORT_ITEM.list*/
/*No:EXPORT_ITEM.clients*/
/*No:EXPORT_ITEM.for_all*/
/*No:E_INSPECT.else_position*/
T0* r270add_comment(T270* 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 {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
R=(T0*)C;
}
else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:E_INSPECT.when_list*/
/*No:E_INSPECT.fz_else*/
void r270add_when(T270* C,T0* a1){
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
{T377*n=malloc(sizeof(*n));
*n=M377;
/*[IRF3.3make*/((((T377*)(n)))->_list)=(se_ma147(1,a1));
/*]*/
C->_when_list=(T0*)n;
}
}
else {
/*[IRF3.5add_last*/r147add_last(((T147*)((((T377*)((T377*)((((T270*)C))->_when_list/*16*/))))->_list/*4*/)),a1);
/*]*/
}
/*FI*/}
void r270make(T270* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_expression=a2;
}
/*No:E_INSPECT.nb_errors*/
/*No:E_INSPECT.expression*/
void r270set_else_compound(T270* C,T0* a1,T0* a2){
C->_else_position=a1;
C->_else_compound=a2;
}
/*No:E_INSPECT.set_run_compound*/
/*No:E_INSPECT.start_position*/
void r270compile_to_c(T270* C){
r324inspect_incr(((T324*)(oBC364cpp)));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_270));
/*]*/
r324put_inspect(((T324*)(oBC364cpp)));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\75';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
X662compile_to_c((((T270*)C))->_expression/*12*/);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
/*]*/
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
/*IF*/if (((((T270*)C))->_else_position/*20*/)==((void*)(NULL))) {
/*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
r324put_error1(((T324*)(oBC364cpp)),((T0*)ms6_270),(((T270*)C))->_start_position/*8*/);
}
/*FI*/}
 else if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
r592compile_to_c(((T592*)((((T270*)C))->_else_compound/*24*/)));
}
/*FI*/}
else {
r377compile_to_c(((T377*)((((T270*)C))->_when_list/*16*/)),(((T270*)C))->_else_position/*20*/);
/*IF*/if (((((T270*)C))->_else_position/*20*/)==((void*)(NULL))) {
/*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\40';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_470));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r324put_error1(((T324*)(oBC364cpp)),((T0*)ms6_270),(((T270*)C))->_start_position/*8*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
 else if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\40';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_470));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r592compile_to_c(((T592*)((((T270*)C))->_else_compound/*24*/)));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
/*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
/*]*/
r324inspect_decr(((T324*)(oBC364cpp)));
}
/*No:E_INSPECT.fz_00*/
/*No:E_INSPECT.includes*/
T0* r270to_runnable(T270* C,T0* a1){
T0* R=NULL;
T0* _wl=NULL;
T0* _te=NULL;
T0* _e=NULL;
/*IF*/if (((((T270*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_e=X662to_runnable((((T270*)C))->_expression/*12*/,r270current_type(C));
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
C->_expression=_e;
_te=X291run_type(X662result_type(_e));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (X291is_character(_te)) {
/*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
C->_when_list=r377to_runnable_character(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
}
/*FI*/}
/*FI*/}
 else if (X291is_integer(_te)) {
/*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
C->_when_list=r377to_runnable_integer(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms2_270);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(_te,((T0*)ms3_270));
r683add_position((((T270*)C))->_start_position/*8*/);
r683print_as_error(((T683*)(oBC364eh)));
}
/*FI*/}
/*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
C->_else_compound=r592to_runnable(((T592*)((((T270*)C))->_else_compound/*24*/)),r270current_type(C));
}
/*FI*/R=(T0*)C;
}
else {
R=r270twin(C);
{T377*n=malloc(sizeof(*n));
*n=M377;
r377from_when_list(n,(((T270*)C))->_when_list/*16*/);
_wl=(T0*)n;
}
/*[IRF3.3set_when_list*/((((T270*)(((T270*)R))))->_when_list)=(_wl);
/*]*/
/*[IRF3.3set_run_compound*/((((T270*)(((T270*)R))))->_run_compound)=(NULL);
/*]*/
R=r270to_runnable(((T270*)R),a1);
}
/*FI*/return R;
}
/*No:E_INSPECT.fz_12*/
T0* r270twin(T270* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T270*)R)=*C;
return R;
}
/*No:E_INSPECT.em1*/
/*No:E_INSPECT.em2*/
/*No:E_INSPECT.else_compound*/
/*No:E_INSPECT.set_when_list*/
T0* r270current_type(T270* C){
T0* R=NULL;
/*IF*/if (((((T270*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T270*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:E_INSPECT.run_compound*/
/*No:E_INSPECT.is_pre_computable*/
int r270use_current(T270* C){
int R=0;
R=(R)||(X662use_current((((T270*)C))->_expression/*12*/));
/*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
R=(R)||(r377use_current(((T377*)((((T270*)C))->_when_list/*16*/))));
}
/*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
R=(R)||(r592use_current(((T592*)((((T270*)C))->_else_compound/*24*/))));
}
/*FI*/return R;
}
void r270error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_INSPECT.end_mark_comment*/
void r270afd_check(T270* C){
X662afd_check((((T270*)C))->_expression/*12*/);
/*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
r377afd_check(((T377*)((((T270*)C))->_when_list/*16*/)));
}
/*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T270*)C))->_else_compound/*24*/)));
}
/*FI*/}
/*No:ONCE_FUNCTION.arguments*/
T0* r844try_to_undefine(T844* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r844try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T844*)C))->_clients/*24*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:ONCE_FUNCTION.is_deferred*/
/*No:ONCE_FUNCTION.fz_bad_assertion*/
T0* r844runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r844error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:ONCE_FUNCTION.rescue_compound*/
void r844add_into(T844* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
/*No:ONCE_FUNCTION.end_comment*/
T0* r844try_to_undefine_aux(T844* C,T0* a1,T0* a2){
T0* R=NULL;
{T649*n=malloc(sizeof(*n));
*n=M649;
r649from_effective(n,a1,(((T844*)C))->_arguments/*28*/,(((T844*)C))->_result_type/*12*/,(((T844*)C))->_require_assertion/*36*/,(((T844*)C))->_ensure_assertion/*40*/,a2);
R=(T0*)n;
}
return R;
}
void r844make(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r844make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}
/*No:ONCE_FUNCTION.not_computed*/
/*No:ONCE_FUNCTION.nb_errors*/
void r844make_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r844make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:ONCE_FUNCTION.local_vars*/
void r844mapping_c_name_in(T844* C,T0* a1){
r605mapping_c_in(((T605*)((((T844*)C))->_base_class/*4*/)),a1);
r7append(((T7*)a1),X776to_key(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
}
void r844set_header_comment(T844* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r844start_position(T844* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r844to_run_feature(T844* C,T0* a1,T0* a2){
T0* R=NULL;
r844check_obsolete(C);
{T868*n=malloc(sizeof(*n));
*n=M868;
r868make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:ONCE_FUNCTION.ensure_assertion*/
/*No:ONCE_FUNCTION.code_require*/
T0* r844run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
_r=r844runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r844run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r844runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T567*n=malloc(sizeof(*n));
*n=M567;
/*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:ONCE_FUNCTION.result_type*/
/*No:ONCE_FUNCTION.fz_03*/
/*No:ONCE_FUNCTION.em1*/
/*No:ONCE_FUNCTION.obsolete_mark*/
/*No:ONCE_FUNCTION.set_clients*/
/*No:ONCE_FUNCTION.em2*/
/*No:ONCE_FUNCTION.names*/
/*No:ONCE_FUNCTION.require_assertion*/
/*No:ONCE_FUNCTION.use_current_state*/
/*No:ONCE_FUNCTION.code_ensure*/
int r844stupid_switch(T844* C,T0* a1,T0* a2){
int R=0;
R=((((T844*)C))->_routine_body/*52*/)==((void*)(NULL));
return R;
}
void r844set_rescue_compound(T844* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r844error(r844start_position(C),((T0*)ms6_368));
}
/*FI*/C->_rescue_compound=a1;
}
int r844can_hide(T844* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r844start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:ONCE_FUNCTION.header_comment*/
/*No:ONCE_FUNCTION.routine_body*/
int r844is_merge_with(T844* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:ONCE_FUNCTION.fz_dot*/
/*No:ONCE_FUNCTION.set_ensure_assertion*/
/*No:ONCE_FUNCTION.first_name*/
/*No:ONCE_FUNCTION.clients*/
void r844collect_for(T844* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T844*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T844*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r844make_effective_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r844make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1024;
}
void r844error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ONCE_FUNCTION.base_class*/
/*No:ONCE_FUNCTION.base_class_name*/
void r844make_e_feature(T844* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r844check_obsolete(T844* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T844*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r844warning(r844start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r844warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
int r832id(T832* C){
int R=0;
R=X291id((((T832*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_3.arguments*/
int r832direct_call(T832* C){
int R=0;
T0* _rf3=NULL;
T0* _args=NULL;
T0* _pc=NULL;
T0* _rb=NULL;
_rb=(((T832*)C))->_routine_body/*32*/;
/*IF*/if (((((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1)))&&(((((T832*)C))->_arguments/*20*/)==((void*)(NULL))))&&(((((T832*)C))->_local_vars/*48*/)==((void*)(NULL)))) {
_pc=r592first(((T592*)_rb));
if(NULL!=(_pc))switch(((T0*)_pc)->id) {
case 268: case 317: case 568: 
break;
default:
_pc=NULL;
};/*IF*/if ((_pc)!=((void*)(NULL))) {
/*IF*/if (X662is_current(/*X173*/((T0*)(((T268*)((T268*)_pc)))->_target/*8*/))) {
_rf3=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
if(NULL!=(_rf3))switch(((T0*)_rf3)->id) {
case 832: 
break;
default:
_rf3=NULL;
};/*IF*/if ((_rf3)!=((void*)(NULL))) {
_args=X173arguments(_pc);
/*IF*/if ((_args)==((void*)(NULL))) {
R=1;
}
else {
R=X431is_static(_args);
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.C_do_not_use_current*/
int r832do_not_use_current(T832* C){
int R=0;
/*IF*/if (!(r592use_current(((T592*)((((T832*)C))->_routine_body/*32*/))))) {
R=((((T832*)C))->_arguments/*20*/)==((void*)(NULL));
}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.ucs_true*/
/*No:RUN_FEATURE_3.us_copy*/
void r832c_define(T832* C){
/*IF*/if (r832isa_in_line(C)) {
r324incr_inlined_procedure_count(((T324*)(oBC364cpp)));
r832nothing_comment(C);
}
else {
/*IF*/if (r832use_current(C)) {
r324incr_procedure_count(((T324*)(oBC364cpp)));
}
else {
r324incr_real_procedure_count(((T324*)(oBC364cpp)));
}
/*FI*/r832define_prototype(C);
r832define_opening(C);
/*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
r592compile_to_c(((T592*)((((T832*)C))->_routine_body/*32*/)));
}
/*FI*/r832define_closing(C);
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
/*]*/
}
/*FI*/}
int r832one_pc(T832* C){
int R=0;
T0* _r=NULL;
T0* _rf=NULL;
T0* _pc=NULL;
T0* _rb=NULL;
_rb=(((T832*)C))->_routine_body/*32*/;
/*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
_pc=r592first(((T592*)_rb));
if(NULL!=(_pc))switch(((T0*)_pc)->id) {
case 268: case 317: case 568: 
break;
default:
_pc=NULL;
};/*IF*/if ((_pc)!=((void*)(NULL))) {
_rf=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
/*IF*/if (((_rf)!=((void*)(NULL)))&&((_rf)!=((void*)(C)))) {
_r=(((T355*)((T355*)(X496run_class(_rf)))))->_running/*12*/;
/*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
R=1;
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.actuals_clients*/
void r832nothing_comment(T832* C){
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms118_470));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_496));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291run_time_mark((((T832*)C))->_current_type/*4*/));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\56';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T832*)C))->_name/*16*/));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\n';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
void r832define_closing(T832* C){
/*IF*/if (r832use_current(C)) {
r324current_class_invariant(((T324*)(oBC364cpp)),(((T832*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633compile_to_c(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
/*[IRF3.6rs_unlink*/{T324* C1=((T324*)(oBC364cpp));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)C1))->_current_out/*56*/)),((T0*)ms156_324));
/*]*/
}/*]*/
}
/*FI*/}
int r832attribute_writer(T832* C){
int R=0;
T0* _wa=NULL;
T0* _an2=NULL;
T0* _args=NULL;
T0* _a=NULL;
T0* _rb=NULL;
_rb=(((T832*)C))->_routine_body/*32*/;
_args=(((T832*)C))->_arguments/*20*/;
/*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
_a=r592first(((T592*)_rb));
if(NULL!=(_a))switch(((T0*)_a)->id) {
case 629: 
break;
default:
_a=NULL;
};/*IF*/if ((_a)!=((void*)(NULL))) {
_wa=(((T629*)((T629*)_a)))->_left_side/*8*/;
if(NULL!=(_wa))switch(((T0*)_wa)->id) {
case 446: 
break;
default:
_wa=NULL;
};/*IF*/if ((_wa)!=((void*)(NULL))) {
/*IF*/if ((_args)==((void*)(NULL))) {
R=!(X662use_current((((T629*)((T629*)_a)))->_right_side/*12*/));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_args)))->_flat_list/*12*/))))->_upper/*12*//*)*/)==(1)) {
_an2=(((T629*)((T629*)_a)))->_right_side/*12*/;
if(NULL!=(_an2))switch(((T0*)_an2)->id) {
case 886: 
break;
default:
_an2=NULL;
};R=(_an2)!=((void*)(NULL));
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
int r832empty_or_null_body(T832* C){
int R=0;
T0* _rb=NULL;
_rb=(((T832*)C))->_routine_body/*32*/;
R=((_rb)==((void*)(NULL)))||(/*(IRF4.7empty_or_null_body*/((((T592*)((T592*)_rb)))->_list/*8*/)==(NULL)/*)*/);
return R;
}
/*No:RUN_FEATURE_3.ucs_in_computation*/
int r832need_local_vars(T832* C){
int R=0;
/*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
R=r620produce_c(((T620*)((((T832*)C))->_local_vars/*48*/)));
}
/*FI*/return R;
}
void r832make(T832* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T355*)((T355*)(r832run_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);
r832initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
void r832std_compute_use_current(T832* C){
/*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
/*IF*/if (r567use_current(((T567*)((((T832*)C))->_require_assertion/*28*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
/*IF*/if (r592use_current(((T592*)((((T832*)C))->_routine_body/*32*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (r633use_current(((T633*)((((T832*)C))->_ensure_assertion/*36*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
C->_use_current_state=1003;
}
/*FI*/}
/*No:RUN_FEATURE_3.name*/
void r832mapping_name(T832* 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*/)),r832id(C));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T832*)C))->_name/*16*/));
/*]*/
}
int r832arg_count(T832* C){
int R=0;
/*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T832*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
void r832routine_afd_check(T832* C){
/*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567afd_check(((T567*)((((T832*)C))->_require_assertion/*28*/)));
}
/*FI*//*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T832*)C))->_routine_body/*32*/)));
}
/*FI*//*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633afd_check(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*No:RUN_FEATURE_3.fz_open_c_comment*/
/*No:RUN_FEATURE_3.local_vars*/
void r832default_mapping_procedure(T832* C){
r832mapping_name(C);
/*[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*/)));
}/*]*/
/*]*/
r324put_target_as_target(((T324*)(oBC364cpp)));
/*IF*/if ((r832arg_count(C))>(0)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\54';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r324put_arguments(((T324*)(oBC364cpp)));
}
/*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
/*]*/
}
int r832dca(T832* C){
int R=0;
T0* _args=NULL;
T0* _rf=NULL;
T0* _pc=NULL;
_pc=r832body_one_dpca(C);
/*IF*/if (((_pc)!=((void*)(NULL)))&&(((((T832*)C))->_local_vars/*48*/)==((void*)(NULL)))) {
_rf=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
/*IF*/if ((_rf)!=((void*)(C))) {
_args=X173arguments(_pc);
/*IF*/if ((_args)==((void*)(NULL))) {
R=(r832arg_count(C))==(0);
}
else {
R=X431isa_dca_inline(_args,(T0*)C,_rf);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.C_attribute_writer*/
/*No:RUN_FEATURE_3.base_feature*/
void r832define_opening(T832* C){
T0* _t=NULL;
int _i=0;
/*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
_t=X291run_type((((T832*)C))->_result_type/*24*/);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
/*]*/
X291c_type_for_result_in(_t,oBC496c_code);
r7extend(((T7*)(oBC496c_code)),'\40');
r7extend(((T7*)(oBC496c_code)),'R');
r7extend(((T7*)(oBC496c_code)),'\75');
X291c_initialize_in(_t,oBC496c_code);
r7append(((T7*)(oBC496c_code)),((T0*)ms134_470));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
/*]*/
}
/*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
r620compile_to_c(((T620*)((((T832*)C))->_local_vars/*48*/)));
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633compile_to_c_old(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
r620initialize_expanded(((T620*)((((T832*)C))->_local_vars/*48*/)));
}
/*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
r324rs_link(((T324*)(oBC364cpp)),(T0*)C);
/*IF*/if (r832use_current(C)) {
/*[IRF3.6rs_push_current*/{T324* C1=((T324*)(oBC364cpp));
T0* b1=(((T832*)C))->_current_type/*4*/;
r324rs_push(C1,((T0*)ms143_473),((T0*)ms157_324),b1);
}/*]*/
}
/*FI*/_i=1;
while (!((_i)>(r832arg_count(C)))) {
_t=X291run_type(r31type(((T31*)((((T832*)C))->_arguments/*20*/)),_i));
r324rs_push_argument(((T324*)(oBC364cpp)),(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T832*)C))->_arguments/*20*/))))->_flat_list/*12*/)),_i)/*)*/))))->_to_string/*12*/,_i,_t);
_i=(_i)+(1);
}
/*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
/*[IRF3.6rs_push_result*/{T324* C1=((T324*)(oBC364cpp));
T0* b1=X291run_type((((T832*)C))->_result_type/*24*/);
r324rs_push(C1,((T0*)ms146_473),((T0*)ms158_324),b1);
}/*]*/
}
/*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T832*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
r39c_trace(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)((T620*)((((T832*)C))->_local_vars/*48*/))))->_flat_list/*12*/)),_i)/*)*/)));
_i=(_i)+(1);
}
}
/*FI*/}
/*FI*//*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567compile_to_c(((T567*)((((T832*)C))->_require_assertion/*28*/)));
}
/*FI*/}
/*No:RUN_FEATURE_3.start_position*/
/*No:RUN_FEATURE_3.do_not_inline*/
/*No:RUN_FEATURE_3.fz_close_c_comment*/
/*No:RUN_FEATURE_3.fz_00*/
/*No:RUN_FEATURE_3.ensure_assertion*/
int r832is_exported_in(T832* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r832clients(C))),a1);
return R;
}
void r832compute_use_current(T832* C){
/*IF*/if ((X291is_reference((((T832*)C))->_current_type/*4*/))&&(r590no_check(((T590*)(oBC364run_control))))) {
C->_use_current_state=1004;
}
else {
r832std_compute_use_current(C);
}
/*FI*/}
/*No:RUN_FEATURE_3.fz_12*/
/*No:RUN_FEATURE_3.result_type*/
/*No:RUN_FEATURE_3.in_line_status*/
/*No:RUN_FEATURE_3.fz_13*/
/*No:RUN_FEATURE_3.C_one_pc*/
/*No:RUN_FEATURE_3.is_static*/
/*No:RUN_FEATURE_3.fz_14*/
void r832add_client(T832* C,T0* a1){
int _i=0;
/*IF*/if (((((T832*)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*)((((T832*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T832*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r355add_client(((T355*)(r832run_class(C))),a1);
}
T0*oBC832tmp_string=NULL;
/*No:RUN_FEATURE_3.require_assertion*/
/*No:RUN_FEATURE_3.use_current_state*/
int r832isa_in_line(T832* C){
int R=0;
/*IF*/if (r590boost(((T590*)(oBC364run_control)))) {
{int z1=(((T832*)C))->_in_line_status/*52*/;

if((-1==z1)){
}
 else 
if((0==z1)){
R=1;
/*IF*/if ((((T0*)ms64_473))==((void*)(X776to_string((((T832*)C))->_name/*16*/)))) {
C->_in_line_status=-(1);
R=0;
}
 else if (r832empty_or_null_body(C)) {
C->_in_line_status=1;
}
 else if (r832do_not_use_current(C)) {
C->_in_line_status=2;
}
 else if (r832attribute_writer(C)) {
C->_in_line_status=3;
}
 else if (r832direct_call(C)) {
C->_in_line_status=4;
}
 else if (r832dca(C)) {
C->_in_line_status=5;
}
 else if (r832one_pc(C)) {
C->_in_line_status=6;
}
else {
C->_in_line_status=-(1);
R=0;
}
/*FI*/}
 else{R=1;
}}
}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.can_be_dropped*/
/*No:RUN_FEATURE_3.C_dca*/
/*No:RUN_FEATURE_3.current_type*/
T0* r832run_class(T832* C){
T0* R=NULL;
R=X291run_class((((T832*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_3.C_empty_or_null_body*/
/*No:RUN_FEATURE_3.static_value_mem*/
void r832define_prototype(T832* C){
int _mem_id=0;
_mem_id=r832id(C);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
/*]*/
/*IF*/if (((((T832*)C))->_result_type/*24*/)==((void*)(NULL))) {
r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
}
else {
X291c_type_for_result_in(X291run_type((((T832*)C))->_result_type/*24*/),oBC496c_code);
}
/*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
r7extend(((T7*)(oBC496c_code)),'r');
r2append_in(_mem_id,oBC496c_code);
X776mapping_c_in((((T832*)C))->_name/*16*/,oBC496c_code);
r7extend(((T7*)(oBC496c_code)),'\50');
/*IF*/if (r832use_current(C)) {
X291c_type_for_target_in((((T832*)C))->_current_type/*4*/,oBC496c_code);
r7extend(((T7*)(oBC496c_code)),'\40');
r7extend(((T7*)(oBC496c_code)),'C');
/*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
r7extend(((T7*)(oBC496c_code)),'\54');
}
/*FI*/}
/*FI*//*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
/*IF*/if (!(r832use_current(C))) {
r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
}
/*FI*/}
else {
r31compile_to_c_in(((T31*)((((T832*)C))->_arguments/*20*/)),oBC496c_code);
}
/*FI*/r7extend(((T7*)(oBC496c_code)),'\51');
r324put_c_heading(((T324*)(oBC364cpp)),oBC496c_code);
/*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
/*]*/
}
/*No:RUN_FEATURE_3.fz_b5*/
/*No:RUN_FEATURE_3.ucs_not_computed*/
void r832fall_down(T832* 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((((T832*)C))->_current_type/*4*/);
_running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
/*IF*/if ((_running)!=((void*)(NULL))) {
_current_bc=X291base_class((((T832*)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,(((T832*)C))->_name/*16*/);
_rf=r355get_feature(((T355*)_sub_rc),_sub_name);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
void r832in_line(T832* C){
T0* _rf=NULL;
T0* _pc=NULL;
T0* _e=NULL;
T0* _w=NULL;
T0* _a=NULL;
int _flag=0;
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_832));
/*]*/
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T832*)C))->_in_line_status/*52*/);
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T832*)C))->_name/*16*/));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
/*]*/
{int z1=(((T832*)C))->_in_line_status/*52*/;

if((1==z1)){
/*IF*/if (r324cannot_drop_all(((T324*)(oBC364cpp)))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
/*]*/
}
/*FI*//*IF*/if (r832need_local_vars(C)) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r832define_opening(C);
r832define_closing(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r324target_cannot_be_dropped(((T324*)(oBC364cpp)))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
/*]*/
}
/*FI*/_flag=r832need_local_vars(C);
/*IF*/if (_flag) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r832define_opening(C);
}
/*FI*/r592compile_to_c(((T592*)((((T832*)C))->_routine_body/*32*/)));
/*IF*/if (_flag) {
r832define_closing(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
 else 
if((3==z1)){
_flag=r832need_local_vars(C);
/*IF*/if (_flag) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r832define_opening(C);
}
/*FI*/_a=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
if(NULL!=(_a))switch(((T0*)_a)->id) {
case 629: 
break;
default:
_a=NULL;
};_w=(((T629*)((T629*)_a)))->_left_side/*8*/;
if(NULL!=(_w))switch(((T0*)_w)->id) {
case 406: case 454: case 446: 
break;
default:
_w=NULL;
};_w=X776name_in(_w,X291base_class((((T832*)C))->_current_type/*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_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
X291mapping_cast((((T832*)C))->_current_type/*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*/)));
}/*]*/
/*]*/
r324put_target_as_target(((T324*)(oBC364cpp)));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms240_470));
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_w));
/*]*/
/*[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='\75';
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*/)));
}/*]*/
/*]*/
_e=(((T629*)((T629*)_a)))->_right_side/*12*/;
/*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
X662compile_to_c(_e);
}
else {
r324put_arguments(((T324*)(oBC364cpp)));
}
/*FI*//*[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*/)),((T0*)ms134_470));
/*]*/
/*IF*/if (_flag) {
r832define_closing(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
 else 
if((4==z1)){
_flag=r832need_local_vars(C);
/*IF*/if (_flag) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r832define_opening(C);
}
/*FI*/_pc=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
if(NULL!=(_pc))switch(((T0*)_pc)->id) {
case 268: case 317: case 568: 
break;
default:
_pc=NULL;
};_rf=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
r324push_same_target(((T324*)(oBC364cpp)),_rf,X173arguments(_pc));
X496mapping_c(_rf);
r324pop(((T324*)(oBC364cpp)));
/*IF*/if (_flag) {
r832define_closing(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI*/}
 else 
if((5==z1)){
_pc=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
if(NULL!=(_pc))switch(((T0*)_pc)->id) {
case 268: case 317: case 568: 
break;
default:
_pc=NULL;
};X173finalize(_pc);
r324push_inline_dca(((T324*)(oBC364cpp)),(T0*)C,_pc);
X496mapping_c(/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/));
r324pop(((T324*)(oBC364cpp)));
}
 else {/*IF*/if (!(r832use_current(C))) {
/*IF*/if (r324target_cannot_be_dropped(((T324*)(oBC364cpp)))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
/*]*/
}
/*FI*/}
/*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\173';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*IF*/if (r832use_current(C)) {
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC832tmp_string)))))->_count)=(0);
/*]*/
X291c_type_for_target_in((((T832*)C))->_current_type/*4*/,oBC832tmp_string);
r7extend(((T7*)(oBC832tmp_string)),'\40');
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC832tmp_string);
/*]*/
r324inline_level_incr(((T324*)(oBC364cpp)));
r324print_current(((T324*)(oBC364cpp)));
r324inline_level_decr(((T324*)(oBC364cpp)));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\75';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r324put_target_as_target(((T324*)(oBC364cpp)));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
/*]*/
}
/*FI*//*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
r31inline_one_pc(((T31*)((((T832*)C))->_arguments/*20*/)));
}
/*FI*//*IF*/if (r832need_local_vars(C)) {
r620inline_one_pc(((T620*)((((T832*)C))->_local_vars/*48*/)));
r324inline_level_incr(((T324*)(oBC364cpp)));
r620initialize_expanded(((T620*)((((T832*)C))->_local_vars/*48*/)));
r324inline_level_decr(((T324*)(oBC364cpp)));
}
/*FI*//*[IRF3.4push_inline_one_pc*/r324stack_push(((T324*)(oBC364cpp)),1014);
/*]*/
r324inline_level_incr(((T324*)(oBC364cpp)));
r592compile_to_c(((T592*)((((T832*)C))->_routine_body/*32*/)));
r324inline_level_decr(((T324*)(oBC364cpp)));
r324pop(((T324*)(oBC364cpp)));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\175';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}}
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_832));
/*]*/
}
/*No:RUN_FEATURE_3.routine_body*/
/*No:RUN_FEATURE_3.fz_void*/
/*No:RUN_FEATURE_3.C_direct_call*/
/*No:RUN_FEATURE_3.ucs_false*/
int r832is_pre_computable(T832* C){
int R=0;
/*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
/*IF*/if (((((T832*)C))->_routine_body/*32*/)==((void*)(NULL))) {
R=1;
}
else {
/*IF*/if (((((T832*)C))->_local_vars/*48*/)==((void*)(NULL))) {
R=r592is_pre_computable(((T592*)((((T832*)C))->_routine_body/*32*/)));
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
T0* r832clients(T832* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T832*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T832*)C))->_current_type/*4*/);
_bfbc=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T832*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T832*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
int r832use_current(T832* C){
int R=0;
{int z1=(((T832*)C))->_use_current_state/*40*/;

if((1004==z1)){
R=1;
}
 else 
if((1003==z1)){
}
 else 
if((1005==z1)){
C->_use_current_state=1006;
r832compute_use_current(C);
R=r832use_current(C);
}
 else {R=1;
}}
return R;
}
T0* r832body_one_dpca(T832* C){
T0* R=NULL;
T0* _r=NULL;
T0* _rf2=NULL;
T0* _c0c=NULL;
T0* _pc=NULL;
T0* _rb=NULL;
/*IF*/if (((((T832*)C))->_local_vars/*48*/)==((void*)(NULL))) {
_rb=(((T832*)C))->_routine_body/*32*/;
/*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
_pc=r592first(((T592*)_rb));
if(NULL!=(_pc))switch(((T0*)_pc)->id) {
case 268: case 317: case 568: 
break;
default:
_pc=NULL;
};/*IF*/if ((_pc)!=((void*)(NULL))) {
_c0c=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_target/*8*/);
if(NULL!=(_c0c))switch(((T0*)_c0c)->id) {
case 487: 
break;
default:
_c0c=NULL;
};/*IF*/if (((_c0c)!=((void*)(NULL)))&&(X662is_current((((T487*)((T487*)_c0c)))->_target/*12*/))) {
_rf2=(((T487*)((T487*)_c0c)))->_run_feature/*20*/;
if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
case 820: 
break;
default:
_rf2=NULL;
};/*IF*/if ((_rf2)!=((void*)(NULL))) {
_r=(((T355*)((T355*)(r820run_class(((T820*)_rf2))))))->_running/*12*/;
/*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
_r=(((T355*)((T355*)(X496run_class(/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/))))))->_running/*12*/;
/*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
R=_pc;
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
T0* r832is_attribute_writer(T832* C){
T0* R=NULL;
T0* _a=NULL;
/*IF*/if (r832isa_in_line(C)) {
/*IF*/if (((((T832*)C))->_in_line_status/*52*/)==(3)) {
_a=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
if(NULL!=(_a))switch(((T0*)_a)->id) {
case 629: 
break;
default:
_a=NULL;
};R=(((T629*)((T629*)_a)))->_left_side/*8*/;
if(NULL!=(R))switch(((T0*)R)->id) {
case 446: 
break;
default:
R=NULL;
};}
/*FI*/}
/*FI*/return R;
}
void r832mapping_c(T832* C){
/*IF*/if (r832isa_in_line(C)) {
r832in_line(C);
}
 else if (r832use_current(C)) {
r832default_mapping_procedure(C);
}
else {
/*IF*/if (r324target_cannot_be_dropped(((T324*)(oBC364cpp)))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
/*]*/
}
/*FI*/r832mapping_name(C);
/*[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*/)));
}/*]*/
/*]*/
/*IF*/if ((r832arg_count(C))>(0)) {
r324put_arguments(((T324*)(oBC364cpp)));
}
/*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
/*]*/
}
/*FI*/}
int r832is_empty_or_null_body(T832* C){
int R=0;
/*IF*/if (r832isa_in_line(C)) {
R=((((T832*)C))->_in_line_status/*52*/)==(1);
}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.address_of*/
void r832put_tag(T832* 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=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)((T297*)((((T832*)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*)(/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T297*)((T297*)((((T832*)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_3.clients_memory*/
void r832initialize(T832* C){
C->_arguments=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
C->_arguments=r31to_runnable(((T31*)((((T832*)C))->_arguments/*20*/)),(((T832*)C))->_current_type/*4*/);
}
/*FI*/C->_local_vars=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
C->_local_vars=r620to_runnable(((T620*)((((T832*)C))->_local_vars/*48*/)),(((T832*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T832*)C))->_routine_body/*32*/)),(((T832*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r297run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r297run_ensure((T0*)C);
}
/*FI*/}
/*No:RUN_FEATURE_3.afd_check*/
T0* r530add_comment(T530* 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 {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
R=(T0*)C;
}
else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:IFTHENELSE.static_false*/
/*No:IFTHENELSE.make*/
/*No:IFTHENELSE.nb_errors*/
/*No:IFTHENELSE.set_else_compound*/
/*No:IFTHENELSE.static_true*/
/*No:IFTHENELSE.start_position*/
void r530compile_to_c(T530* C){
int _static_value=0;
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_530));
/*]*/
_static_value=r712compile_to_c(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
{int z1=_static_value;

if((1017==z1)){
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_530));
/*]*/
/*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
r592compile_to_c(((T592*)((((T530*)C))->_else_compound/*16*/)));
}
/*FI*/}
 else 
if((1016==z1)){
}
 else {/*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_530));
/*]*/
r592compile_to_c(((T592*)((((T530*)C))->_else_compound/*16*/)));
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_530));
/*]*/
}
/*FI*/}}
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_530));
/*]*/
}
T0* r530to_runnable(T530* C,T0* a1){
T0* R=NULL;
T0* _ec=NULL;
T0* _itl=NULL;
int _ne=0;
_ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
/*IF*/if (((((T530*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_itl=r712to_runnable(((T712*)((((T530*)C))->_ifthenlist/*12*/)),a1);
/*IF*/if ((_itl)==((void*)(NULL))) {
}
else {
C->_ifthenlist=_itl;
}
/*FI*//*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))==(0))&&(((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL)))) {
_ec=r592to_runnable(((T592*)((((T530*)C))->_else_compound/*16*/)),r530current_type(C));
/*IF*/if ((_ec)==((void*)(NULL))) {
}
else {
C->_else_compound=_ec;
}
/*FI*/}
/*FI*//*IF*/if ((_itl)!=((void*)(NULL))) {
R=(T0*)C;
}
/*FI*/}
else {
R=r530to_runnable(((T530*)(r530twin(C))),a1);
}
/*FI*/return R;
}
T0* r530twin(T530* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T530*)R)=M530;
r530copy(((T530*)R),((T0*)C));
return R;
}
/*No:IFTHENELSE.ifthenlist*/
/*No:IFTHENELSE.else_compound*/
void r530copy(T530* C,T0* a1){
C->_start_position=(((T530*)((T530*)a1)))->_start_position/*8*/;
C->_ifthenlist=(((T530*)((T530*)a1)))->_ifthenlist/*12*/;
C->_else_compound=(((T530*)((T530*)a1)))->_else_compound/*16*/;
}
T0* r530current_type(T530* C){
T0* R=NULL;
/*IF*/if (((((T530*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T530*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:IFTHENELSE.run_compound*/
/*No:IFTHENELSE.non_static*/
/*No:IFTHENELSE.is_pre_computable*/
int r530use_current(T530* C){
int R=0;
/*IF*/if (r712use_current(((T712*)((((T530*)C))->_ifthenlist/*12*/)))) {
R=1;
}
 else if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
R=r592use_current(((T592*)((((T530*)C))->_else_compound/*16*/)));
}
/*FI*/return R;
}
void r530add_if_then(T530* C,T0* a1,T0* a2){
T0* _ifthen=NULL;
{T809*n=malloc(sizeof(*n));
*n=M809;
r809make(n,a1,a2);
_ifthen=(T0*)n;
}
/*IF*/if (((((T530*)C))->_ifthenlist/*12*/)==((void*)(NULL))) {
{T712*n=malloc(sizeof(*n));
*n=M712;
/*[IRF3.3make*/((((T712*)(n)))->_list)=(se_ma948(1,_ifthen));
/*]*/
C->_ifthenlist=(T0*)n;
}
}
else {
/*[IRF3.5add_last*/r948add_last(((T948*)((((T712*)((T712*)((((T530*)C))->_ifthenlist/*12*/))))->_list/*0*/)),_ifthen);
/*]*/
}
/*FI*/}
/*No:IFTHENELSE.end_mark_comment*/
void r530afd_check(T530* C){
r712afd_check(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
/*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T530*)C))->_else_compound/*16*/)));
}
/*FI*/}
/*No:EXTERNAL_PROCEDURE.arguments*/
T0* r883try_to_undefine(T883* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r883try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T883*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:EXTERNAL_PROCEDURE.is_deferred*/
/*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
T0* r883runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r883error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:EXTERNAL_PROCEDURE.rescue_compound*/
void r883add_into(T883* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
/*No:EXTERNAL_PROCEDURE.end_comment*/
T0* r883try_to_undefine_aux(T883* C,T0* a1,T0* a2){
T0* R=NULL;
{T853*n=malloc(sizeof(*n));
*n=M853;
r853from_effective(n,a1,(((T883*)C))->_arguments/*24*/,(((T883*)C))->_require_assertion/*32*/,(((T883*)C))->_ensure_assertion/*36*/,a2);
R=(T0*)n;
}
return R;
}
T0* r883external_c_name(T883* C){
T0* R=NULL;
/*IF*/if (((((T883*)C))->_alias_string/*52*/)==((void*)(NULL))) {
R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
}
else {
R=(((T883*)C))->_alias_string/*52*/;
}
/*FI*/return R;
}
void r883make(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r883make_routine(C,a1,a2,a3,a4,a5);
r883make_external_routine(C,a6,a7);
}
/*No:EXTERNAL_PROCEDURE.nb_errors*/
/*No:EXTERNAL_PROCEDURE.native*/
void r883make_routine(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r883make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void r883set_header_comment(T883* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r883start_position(T883* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r883to_run_feature(T883* C,T0* a1,T0* a2){
T0* R=NULL;
r883check_obsolete(C);
{T906*n=malloc(sizeof(*n));
*n=M906;
r906make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:EXTERNAL_PROCEDURE.alias_string*/
/*No:EXTERNAL_PROCEDURE.ensure_assertion*/
/*No:EXTERNAL_PROCEDURE.code_require*/
T0* r883run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
_r=r883runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r883run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r883runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T567*n=malloc(sizeof(*n));
*n=M567;
/*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:EXTERNAL_PROCEDURE.result_type*/
/*No:EXTERNAL_PROCEDURE.fz_03*/
/*No:EXTERNAL_PROCEDURE.em1*/
/*No:EXTERNAL_PROCEDURE.obsolete_mark*/
/*No:EXTERNAL_PROCEDURE.set_clients*/
/*No:EXTERNAL_PROCEDURE.em2*/
/*No:EXTERNAL_PROCEDURE.names*/
/*No:EXTERNAL_PROCEDURE.require_assertion*/
/*No:EXTERNAL_PROCEDURE.code_ensure*/
int r883stupid_switch(T883* C,T0* a1,T0* a2){
int R=0;
R=X845stupid_switch((((T883*)C))->_native/*48*/,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
return R;
}
void r883set_rescue_compound(T883* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r883error(r883start_position(C),((T0*)ms6_368));
}
/*FI*/C->_rescue_compound=a1;
}
void r883make_external_routine(T883* C,T0* a1,T0* a2){
C->_native=a1;
C->_alias_string=a2;
}
int r883can_hide(T883* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r883start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_PROCEDURE.header_comment*/
int r883is_merge_with(T883* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_PROCEDURE.fz_dot*/
/*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
/*No:EXTERNAL_PROCEDURE.first_name*/
/*No:EXTERNAL_PROCEDURE.clients*/
int r883use_current(T883* C){
int R=0;
R=X845use_current((((T883*)C))->_native/*48*/,(T0*)C);
return R;
}
void r883collect_for(T883* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T883*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T883*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r883error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:EXTERNAL_PROCEDURE.base_class*/
/*No:EXTERNAL_PROCEDURE.base_class_name*/

