/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "compile_to_c.h"
void r873make(T873* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=r902item(a2);
}
void r873mapping_c_target(T873* C,T0* a1){
T0* _rt=NULL;
int _flag=0;
_flag=r324call_invariant_start(a1);
_rt=X291run_type((((T873*)C))->_result_type/*24*/);
/*IF*/if (X291is_reference(_rt)) {
/*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*/)));
}/*]*/
/*]*/
r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
/*[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 {
r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
}
/*FI*/}
else {
/*IF*/if (X291is_reference(a1)) {
r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
}
else {
r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
}
/*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:ARGUMENT_NAME1.to_string*/
/*No:ARGUMENT_NAME1.fz_iinaiv*/
/*No:ARGUMENT_NAME1.dca_inline_argument*/
/*No:ARGUMENT_NAME1.set_result_type*/
/*No:ARGUMENT_NAME1.start_position*/
void r873compile_to_c(T873* C){
/*IF*/if (X291is_user_expanded((((T873*)C))->_result_type/*24*/)) {
/*[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*/)));
}/*]*/
/*]*/
}
/*FI*/r324print_argument(((T324*)(oBC364cpp)),(((T873*)C))->_rank/*20*/);
}
/*No:ARGUMENT_NAME1.c_simple*/
/*No:ARGUMENT_NAME1.set_rank*/
T0* r873to_runnable(T873* C,T0* a1){
T0* R=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
_t1=(((T873*)C))->_result_type/*24*/;
_t2=X291to_runnable(_t1,a1);
/*IF*/if ((_t2)==((void*)(NULL))) {
r683add_position(X291start_position(_t1));
r873error((((T873*)C))->_start_position/*16*/,((T0*)ms5_361));
}
/*FI*//*IF*/if (((((T873*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=_t2;
R=(T0*)C;
}
else {
{T873*n=malloc(sizeof(*n));
*n=M873;
r873make_runnable(n,(T0*)C,a1,_t2);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME1.rank*/
/*No:ARGUMENT_NAME1.result_type*/
/*No:ARGUMENT_NAME1.is_result*/
/*No:ARGUMENT_NAME1.is_static*/
T0* r873base_class_written(T873* C){
T0* R=NULL;
R=r451base_class(((T451*)(r873written_in(C))));
return R;
}
/*No:ARGUMENT_NAME1.can_be_dropped*/
/*No:ARGUMENT_NAME1.current_type*/
/*No:ARGUMENT_NAME1.compile_to_c_old*/
/*No:ARGUMENT_NAME1.static_value_mem*/
/*No:ARGUMENT_NAME1.is_manifest_string*/
/*No:ARGUMENT_NAME1.is_void*/
/*No:ARGUMENT_NAME1.is_pre_computable*/
/*No:ARGUMENT_NAME1.use_current*/
void r873error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ARGUMENT_NAME1.isa_dca_inline_argument*/
/*No:ARGUMENT_NAME1.em_ba*/
/*No:ARGUMENT_NAME1.afd_check*/
void r873make_runnable(T873* C,T0* a1,T0* a2,T0* a3){
*((T873*)(C))=*((T873*)(a1));
C->_current_type=a2;
C->_result_type=a3;
}
T0* r292add_comment(T292* 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;
}
void r292make(T292* C,T0* a1,T0* a2,T0* a3){
{T623*n=malloc(sizeof(*n));
*n=M623;
r623make(n,a1,a2,a3);
C->_check_invariant=(T0*)n;
}
}
/*No:E_CHECK.start_position*/
void r292compile_to_c(T292* C){
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
r623compile_to_c(((T623*)((((T292*)C))->_check_invariant/*8*/)));
}
/*FI*/}
T0* r292to_runnable(T292* C,T0* a1){
T0* R=NULL;
T0* _al=NULL;
/*IF*/if (((((T292*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
_al=r623to_runnable(((T623*)((((T292*)C))->_check_invariant/*8*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
/*IF*/if ((_al)==((void*)(NULL))) {
r292error(/*(IRF4.6start_position*/(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_start_position/*0*//*)*/,((T0*)ms1_292));
}
else {
C->_check_invariant=_al;
R=(T0*)C;
}
/*FI*/}
else {
R=(T0*)C;
}
/*FI*/}
else {
{T292*n=malloc(sizeof(*n));
*n=M292;
r292make(n,/*(IRF4.6start_position*/(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_start_position/*0*//*)*/,NULL,(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_list/*8*/);
R=(T0*)n;
}
R=r292to_runnable(((T292*)R),a1);
}
/*FI*/return R;
}
/*No:E_CHECK.check_invariant*/
/*No:E_CHECK.run_compound*/
int r292is_pre_computable(T292* C){
int R=0;
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
R=r623is_pre_computable(((T623*)((((T292*)C))->_check_invariant/*8*/)));
}
else {
R=1;
}
/*FI*/return R;
}
int r292use_current(T292* C){
int R=0;
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
R=r623use_current(((T623*)((((T292*)C))->_check_invariant/*8*/)));
}
/*FI*/return R;
}
void r292error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_CHECK.end_mark_comment*/
void r292afd_check(T292* C){
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
r623afd_check(((T623*)((((T292*)C))->_check_invariant/*8*/)));
}
/*FI*/}
/*No:INFIX_NAME.set_is_frozen*/
void r454make(T454* C,T0* a1,T0* a2){
C->_to_string=r902item(a1);
C->_start_position=a2;
C->_to_key=r902for_infix((((T454*)C))->_to_string/*4*/);
}
/*No:INFIX_NAME.to_string*/
/*No:INFIX_NAME.start_position*/
/*No:INFIX_NAME.to_key*/
T0* r454name_in(T454* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
_bc=r454origin_base_class(C);
/*IF*/if ((_bc)==((void*)(a1))) {
R=(T0*)C;
}
else {
R=r605new_name_of(((T605*)a1),_bc,(T0*)C);
}
/*FI*/return R;
}
/*No:INFIX_NAME.is_frozen*/
void r454undefine_in(T454* C,T0* a1){
/*IF*/if ((((T454*)C))->_is_frozen/*12*/) {
r454error((((T454*)C))->_start_position/*8*/,((T0*)ms1_776));
r605fatal_undefine(((T605*)a1),(T0*)C);
}
/*FI*/}
/*No:INFIX_NAME.cpp_put_infix_or_prefix*/
void r454error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:INFIX_NAME.mapping_c_in*/
T0* r454origin_base_class(T454* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T454*)C))->_start_position/*8*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=r627base_class(((T627*)_sp));
}
/*FI*/return R;
}
/*No:INFIX_NAME.fz_infix*/

