/*
-- 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"
T0* r940add_comment(T940* 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 r940to_integer(T940* C){
int R=0;
r940error((((T940*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
int r940is_a(T940* C,T0* a1){
int R=0;
R=X609is_a(/*(IRF4.4run_type*/((T0*)((T549*)(((T940*)C))->_result_type/*20*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T940*)C))->_start_position/*12*/);
r940error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:BIT_CONSTANT.is_current*/
/*No:BIT_CONSTANT.mapping_c_arg*/
/*No:BIT_CONSTANT.static_value*/
void r940make(T940* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_value=a2;
}
/*No:BIT_CONSTANT.mapping_c_target*/
/*No:BIT_CONSTANT.fz_iinaiv*/
/*No:BIT_CONSTANT.dca_inline_argument*/
/*No:BIT_CONSTANT.start_position*/
void r940compile_to_c(T940* C){
int _ib=0;
int _nb=0;
T0* _tb=NULL;
_tb=(((T940*)C))->_result_type/*20*/;
_ib= (CHAR_BIT*sizeof(int)) ;
/*IF*/if (X609is_c_unsigned_ptr(_tb)) {
r940compute_c_to_bit(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*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms132_470));
/*]*/
/*[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*/)));
}/*]*/
/*]*/
r324put_string_c(oBC940to_bit);
/*[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 {
r7copy(((T7*)(oBC940to_bit)),(((T940*)C))->_value/*16*/);
/*IF*/if (X609is_c_char(_tb)) {
_nb= CHAR_BIT ;
}
else {
_nb= (CHAR_BIT*sizeof(int)) ;
}
/*FI*/while (!(((((T7*)((T7*)(oBC940to_bit))))->_count/*4*/)==(_nb))) {
r7extend(((T7*)(oBC940to_bit)),'0');
}
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r7binary_to_integer(((T7*)(oBC940to_bit))));
/*]*/
}
/*FI*/}
/*No:BIT_CONSTANT.c_simple*/
T0* r940to_runnable(T940* C,T0* a1){
T0* R=NULL;
T0* _ic=NULL;
/*IF*/if (((((T940*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
/*IF*/if (((((T940*)C))->_result_type/*20*/)==((void*)(NULL))) {
{T342*n=malloc(sizeof(*n));
*n=M342;
r342make(n,(((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/,(((T940*)C))->_start_position/*12*/);
_ic=(T0*)n;
}
{T549*n=malloc(sizeof(*n));
*n=M549;
r549make(n,(((T940*)C))->_start_position/*12*/,_ic);
C->_result_type=(T0*)n;
}
r355set_at_run_time(((T355*)(r549run_class(((T549*)((((T940*)C))->_result_type/*20*/))))));
}
/*FI*/R=(T0*)C;
}
else {
R=r940twin(C);
/*[IRF3.3set_current_type*/((((T940*)(((T940*)R))))->_current_type)=(NULL);
/*]*/
R=r940to_runnable(((T940*)R),a1);
}
/*FI*/return R;
}
/*No:BIT_CONSTANT.result_type*/
/*No:BIT_CONSTANT.is_result*/
T0* r940twin(T940* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T940*)R)=*C;
return R;
}
/*No:BIT_CONSTANT.set_current_type*/
/*No:BIT_CONSTANT.is_static*/
/*No:BIT_CONSTANT.value*/
T0*oBC940to_bit=NULL;
/*No:BIT_CONSTANT.fz_unsigned*/
/*No:BIT_CONSTANT.can_be_dropped*/
/*No:BIT_CONSTANT.current_type*/
/*No:BIT_CONSTANT.compile_to_c_old*/
/*No:BIT_CONSTANT.static_value_mem*/
/*No:BIT_CONSTANT.is_manifest_string*/
/*No:BIT_CONSTANT.is_void*/
void r940compute_c_to_bit(T940* C){
int _i_value=0;
int _i_to_bit=0;
T0* _char_bit=NULL;
_i_to_bit=((((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/)/( (CHAR_BIT*sizeof(int)) );
/*IF*/if ((((((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/)%( (CHAR_BIT*sizeof(int)) ))!=(0)) {
_i_to_bit=(_i_to_bit)+(1);
}
/*FI*/_i_to_bit=(_i_to_bit)*(( (CHAR_BIT*sizeof(int)) )/( CHAR_BIT ));
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC940to_bit)))))->_count)=(0);
/*]*/
_char_bit=((T0*)ms1_940);
_i_value=1;
while (!((_i_to_bit)==(0))) {
/*[IRF3.3clear*/((((T7*)(((T7*)_char_bit))))->_count)=(0);
/*]*/
while (!(((((T7*)((T7*)_char_bit)))->_count/*4*/)==( CHAR_BIT ))) {
/*IF*/if ((_i_value)<=((((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_count/*4*/)) {
r7extend(((T7*)_char_bit),/*(IRF4.6item*/((((T7*)((T7*)((((T940*)C))->_value/*16*/))))->_storage/*0*/)[(_i_value)-(1)]/*)*/);
}
else {
r7extend(((T7*)_char_bit),'0');
}
/*FI*/_i_value=(_i_value)+(1);
}
r7extend(((T7*)(oBC940to_bit)),((char)(r7binary_to_integer(((T7*)_char_bit)))));
_i_to_bit=(_i_to_bit)-(1);
}
}
/*No:BIT_CONSTANT.is_pre_computable*/
/*No:BIT_CONSTANT.use_current*/
void r940error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:BIT_CONSTANT.isa_dca_inline_argument*/
/*No:BIT_CONSTANT.afd_check*/
T0* r367add_comment(T367* 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;
}
/*No:E_FALSE.to_integer*/
int r367is_a(T367* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r367type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T367*)C))->_start_position/*12*/);
r367error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_FALSE.is_current*/
void r367mapping_c_arg(T0* a1){
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.6to_reference*/{T707* C1=((T707*)(/*(IRF4.8result_type*/r367type_boolean()/*)*/));
r324to_reference(((T324*)(oBC364cpp)),(T0*)C1,r707type_boolean_ref());
}/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='0';
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 {
/*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='0';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*]*/
}
/*FI*/}
T0* r367type_boolean(void){
if (fBC364type_boolean==0){
T0* R=NULL;
fBC364type_boolean=1;
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,NULL);
R=(T0*)n;
}
oBC364type_boolean=R;}
return oBC364type_boolean;}
/*No:E_FALSE.static_value*/
/*No:E_FALSE.make*/
/*No:E_FALSE.mapping_c_target*/
/*No:E_FALSE.fz_iinaiv*/
/*No:E_FALSE.dca_inline_argument*/
/*No:E_FALSE.start_position*/
/*No:E_FALSE.compile_to_c*/
/*No:E_FALSE.c_simple*/
T0* r367to_runnable(T367* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T367*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r367twin(C);
/*[IRF3.3set_current_type*/((((T367*)(((T367*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:E_FALSE.result_type*/
/*No:E_FALSE.is_result*/
T0* r367twin(T367* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T367*)R)=*C;
return R;
}
/*No:E_FALSE.set_current_type*/
/*No:E_FALSE.is_static*/
/*No:E_FALSE.can_be_dropped*/
/*No:E_FALSE.current_type*/
/*No:E_FALSE.compile_to_c_old*/
/*No:E_FALSE.static_value_mem*/
/*No:E_FALSE.is_manifest_string*/
/*No:E_FALSE.is_void*/
/*No:E_FALSE.is_pre_computable*/
/*No:E_FALSE.use_current*/
void r367error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int r367isa_dca_inline_argument(void){
int R=0;
/*IF*/{/*AT*/R=-(1);
}
/*FI*/return R;
}
/*No:E_FALSE.afd_check*/
void r671make(T671* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_items=a2;
}
/*No:EXPORT_LIST.start_position*/
T0* r671clients_for(T671* C,T0* a1){
T0* R=NULL;
T0* _ei=NULL;
int _i=0;
_i=1;
while (!(((R)!=((void*)(NULL)))||((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)))) {
_ei=r587item(((T587*)((((T671*)C))->_items/*4*/)),_i);
/*IF*/if (r542affect(((T542*)_ei),a1)) {
R=(((T542*)((T542*)_ei)))->_clients/*0*/;
}
else {
_i=(_i)+(1);
}
/*FI*/}
return R;
}
/*No:EXPORT_LIST.items*/
/*No:CLASS_NAME.us_none*/
int r451is_subclass_of(T451* C,T0* a1){
int R=0;
/*IF*/if ((((T0*)ms1_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
R=1;
}
 else if ((((T0*)ms19_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
}
else {
R=r605is_subclass_of(((T605*)(r451base_class(C))),r451base_class(((T451*)a1)));
}
/*FI*/return R;
}
void r451make(T451* C,T0* a1,T0* a2){
C->_start_position=a2;
C->_to_string=r902item(a1);
}
/*No:CLASS_NAME.to_string*/
void r451make_unknown(T451* C){
{T627*n=malloc(sizeof(*n));
*n=M627;
r627with(n,1,1,(T0*)C);
C->_start_position=(T0*)n;
}
C->_to_string=((T0*)ms3_451);
}
/*No:CLASS_NAME.start_position*/
/*No:CLASS_NAME.unknown_name*/
T0* r451base_class(T451* C){
T0* R=NULL;
R=r604base_class(((T604*)(oBC364small_eiffel)),(T0*)C);
return R;
}
void r451identify(T451* C,T0* a1){
C->_to_string=r902item(a1);
}
/*No:CLASS_NAME.us_any*/
T0* r260add_comment(T260* 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;
}
/*No:CHARACTER_CONSTANT.to_integer*/
int r260is_a(T260* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T252*)r260result_type()))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T260*)C))->_start_position/*12*/);
r260error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CHARACTER_CONSTANT.is_current*/
void r260mapping_c_arg(T260* C,T0* a1){
/*IF*/if (X291is_reference(a1)) {
/*[IRF3.6to_reference*/{T252* C1=((T252*)(r260result_type()));
r324to_reference(((T324*)(oBC364cpp)),(T0*)C1,r252type_character_ref());
}/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\50';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
r260compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\51';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
r260compile_to_c(C);
}
/*FI*/}
/*No:CHARACTER_CONSTANT.static_value*/
void r260make(T260* C,T0* a1,char a2,int a3){
C->_start_position=a1;
C->_value=a2;
/*[IRF3.3set_pretty_print_mode*/((((T260*)(C)))->_pretty_print_mode)=(a3);
/*]*/
}
/*No:CHARACTER_CONSTANT.mapping_c_target*/
/*No:CHARACTER_CONSTANT.fz_iinaiv*/
/*No:CHARACTER_CONSTANT.set_pretty_print_mode*/
/*No:CHARACTER_CONSTANT.dca_inline_argument*/
/*No:CHARACTER_CONSTANT.start_position*/
void r260compile_to_c(T260* C){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\47';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*IF*/if ((r3is_letter((((T260*)C))->_value/*16*/))||(r3is_digit((((T260*)C))->_value/*16*/))) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1=(((T260*)C))->_value/*16*/;
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
 else if (((((T260*)C))->_value/*16*/)==('\n')) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\134';
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='n';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\134';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r2to_octal(((unsigned char)(((T260*)C))->_value/*16*/)));
/*]*/
}
/*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
char b1='\47';
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:CHARACTER_CONSTANT.c_simple*/
T0* r260to_runnable(T260* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T260*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r260twin(C);
/*[IRF3.3set_current_type*/((((T260*)(((T260*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
int fBC260result_type=0;
T0*oBC260result_type=NULL;
T0* r260result_type(void){
if (fBC260result_type==0){
T0* R=NULL;
fBC260result_type=1;
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,NULL);
R=(T0*)n;
}
oBC260result_type=R;}
return oBC260result_type;}
/*No:CHARACTER_CONSTANT.is_result*/
T0* r260twin(T260* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T260*)R)=*C;
return R;
}
/*No:CHARACTER_CONSTANT.set_current_type*/
int r260is_static(T260* C){
int R=0;
R=1;
C->_static_value_mem=/*(IRF4.6to_integer*/((unsigned char)(((T260*)C))->_value/*16*/)/*)*/;
return R;
}
/*No:CHARACTER_CONSTANT.value*/
/*No:CHARACTER_CONSTANT.can_be_dropped*/
/*No:CHARACTER_CONSTANT.current_type*/
/*No:CHARACTER_CONSTANT.compile_to_c_old*/
/*No:CHARACTER_CONSTANT.static_value_mem*/
/*No:CHARACTER_CONSTANT.is_manifest_string*/
/*No:CHARACTER_CONSTANT.is_void*/
/*No:CHARACTER_CONSTANT.pretty_print_mode*/
/*No:CHARACTER_CONSTANT.is_pre_computable*/
/*No:CHARACTER_CONSTANT.use_current*/
void r260error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int r260isa_dca_inline_argument(T260* C){
int R=0;
/*IF*/if (r260is_static(C)) {
R=-(1);
}
/*FI*/return R;
}
/*No:CHARACTER_CONSTANT.afd_check*/
/*No:LOOP_INVARIANT.fz_bad_assertion*/
T0* r213runnable(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))) {
r213error(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;
}
void r213make(T213* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
/*No:LOOP_INVARIANT.nb_errors*/
T0* r213check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms2_213);
return R;
}
/*No:LOOP_INVARIANT.start_position*/
void r213compile_to_c(T213* C){
int _i=0;
/*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_596));
/*]*/
_i=1;
while (!((_i)>((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
/*[IRF3.3set_check_assertion_mode*/((((T324*)(((T324*)(oBC364cpp)))))->_check_assertion_mode)=(r213check_assertion_mode());
/*]*/
r348compile_to_c(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
_i=(_i)+(1);
}
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_596));
/*]*/
}
/*FI*/}
T0* r213to_runnable(T213* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T213*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
/*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
C->_list=r213runnable((((T213*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel))));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r213twin(C);
/*[IRF3.3set_current_type*/((((T213*)(((T213*)R))))->_current_type)=(NULL);
/*]*/
R=r213to_runnable(((T213*)R),a1);
}
/*FI*/return R;
}
T0* r213twin(T213* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T213*)R)=*C;
return R;
}
/*No:LOOP_INVARIANT.set_current_type*/
/*No:LOOP_INVARIANT.list*/
/*No:LOOP_INVARIANT.current_type*/
/*No:LOOP_INVARIANT.header_comment*/
int r213use_current(T213* C){
int R=0;
int _i=0;
/*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=(((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r348use_current(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void r213error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r213afd_check(T213* C){
int _i=0;
/*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=(((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/;
while (!((_i)==(0))) {
r348afd_check(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
_i=(_i)-(1);
}
}
/*FI*/}
int fBC364type_character_ref=0;
T0*oBC364type_character_ref=NULL;
T0* r252type_character_ref(void){
if (fBC364type_character_ref==0){
T0* R=NULL;
T0* _character_ref=NULL;
fBC364type_character_ref=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms9_473),NULL);
_character_ref=(T0*)n;
}
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_character_ref);
/*]*/
R=(T0*)n;
}
oBC364type_character_ref=R;}
return oBC364type_character_ref;}
/*No:TYPE_CHARACTER.id*/
int r252has_creation(T252* C,T0* a1){
int R=0;
r683add_position(X776start_position(a1));
r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
return R;
}
/*No:TYPE_CHARACTER.is_anchored*/
/*No:TYPE_CHARACTER.us_character_ref*/
/*No:TYPE_CHARACTER.is_array*/
/*No:TYPE_CHARACTER.fz_typedef*/
int r252is_a(T252* C,T0* a1){
int R=0;
/*IF*/if (X291is_character(a1)) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r252base_class(C))),X291base_class(a1));
/*IF*/if (R) {
r252used_as_reference();
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_CHARACTER.c_initialize_in*/
/*No:TYPE_CHARACTER.c_type_for_argument_in*/
void r252gc_call_new_in(T0* a1){
r7append(((T7*)a1),((T0*)ms115_470));
r2append_in(3,a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_CHARACTER.run_type*/
/*No:TYPE_CHARACTER.is_pointer*/
/*No:TYPE_CHARACTER.is_dummy_expanded*/
/*No:TYPE_CHARACTER.is_string*/
/*No:TYPE_CHARACTER.space_for_variable*/
/*No:TYPE_CHARACTER.is_like_feature*/
/*No:TYPE_CHARACTER.is_like_current*/
void r252make(T252* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms8_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_CHARACTER.nb_errors*/
/*No:TYPE_CHARACTER.us_item*/
void r252load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
r355set_at_run_time(((T355*)_rc));
_rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
}
int fBC252check_type=0;
void r252check_type(T252* C){
if (fBC252check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC252check_type=1;
_bc=r252base_class(C);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_rc=r252run_class(C);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_252));
}
/*FI*/}
/*FI*/}}
/*No:TYPE_CHARACTER.mapping_cast*/
/*No:TYPE_CHARACTER.start_position*/
/*No:TYPE_CHARACTER.c_type_for_target_in*/
/*No:TYPE_CHARACTER.fz_gc_mark*/
/*No:TYPE_CHARACTER.fz_inako*/
/*No:TYPE_CHARACTER.gc_initialize*/
/*No:TYPE_CHARACTER.fz_00*/
/*No:TYPE_CHARACTER.is_character*/
/*No:TYPE_CHARACTER.is_user_expanded*/
T0* r252written_mark(void){
T0* R=NULL;
R=((T0*)ms8_473);
return R;
}
/*No:TYPE_CHARACTER.is_run_type*/
T0* r252to_runnable(T252* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r252check_type(C);
return R;
}
void r252c_type_for_external_in(T0* a1){
/*IF*//*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T0* b1=a1;
/*[IRF3.6c_type_for_argument_in*/{T0* c1=b1;
r7append(((T7*)c1),((T0*)ms79_470));
}/*]*/
}/*]*/
/*FI*/}
T0* r252generic_list(T252* C){
T0* R=NULL;
r252fatal_error_generic_list(C);
return R;
}
/*No:TYPE_CHARACTER.is_formal_generic*/
void r252demangling_in(T0* a1){
/*IF*//*AF*//*AE*/
r7extend(((T7*)a1),'E');
/*FI*/r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r252run_time_mark());
}
/*No:TYPE_CHARACTER.is_real*/
/*No:TYPE_CHARACTER.us_character*/
/*No:TYPE_CHARACTER.is_bit*/
void r252fatal_error_generic_list(T252* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_CHARACTER.fz_new*/
T0* r252smallest_ancestor(T252* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_character(_rto)) {
R=(T0*)C;
}
else {
R=r657smallest_ancestor(((T657*)(r252type_character_ref())),_rto);
}
/*FI*/return R;
}
/*No:TYPE_CHARACTER.is_boolean*/
/*No:TYPE_CHARACTER.is_double*/
T0* r252run_class(T252* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
T0* r252run_time_mark(void){
T0* R=NULL;
R=((T0*)ms8_473);
return R;
}
/*No:TYPE_CHARACTER.c_initialize*/
/*No:TYPE_CHARACTER.cast_to_ref*/
void r252gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms107_470));
r2append_in(3,a1);
}
int r252is_a_in(T252* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r252written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r252to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r252look_up_for(T252* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r252base_class(C))),a1,a2);
return R;
}
/*No:TYPE_CHARACTER.c_header_pass1*/
/*No:TYPE_CHARACTER.c_type_for_result_in*/
/*No:TYPE_CHARACTER.expanded_initializer*/
/*No:TYPE_CHARACTER.fz_void*/
/*No:TYPE_CHARACTER.fz_dot*/
/*No:TYPE_CHARACTER.is_generic*/
int fBC252used_as_reference=0;
void r252used_as_reference(void){
if (fBC252used_as_reference==0){
fBC252used_as_reference=1;
r252load_ref(((T0*)ms9_473));
}}
/*No:TYPE_CHARACTER.c_header_pass2*/
/*No:TYPE_CHARACTER.gc_define1*/
/*No:TYPE_CHARACTER.need_c_struct*/
/*No:TYPE_CHARACTER.is_reference*/
/*No:TYPE_CHARACTER.gc_info_in*/
void r252error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r252base_class(T252* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T252*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_CHARACTER.call_gc_sweep_in*/
/*No:TYPE_CHARACTER.gc_define2*/
/*No:TYPE_CHARACTER.need_gc_mark_function*/
/*No:TYPE_CHARACTER.fz_char*/
/*No:TYPE_CHARACTER.is_any*/
/*No:TYPE_CHARACTER.to_reference*/
/*No:TYPE_CHARACTER.c_header_pass3*/
/*No:TYPE_CHARACTER.base_class_name*/
/*No:TYPE_CHARACTER.is_expanded*/
/*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
/*No:TYPE_CHARACTER.is_none*/
/*No:TYPE_CHARACTER.to_expanded*/
/*No:TYPE_CHARACTER.is_integer*/
/*No:TYPE_CHARACTER.c_header_pass4*/
void r633add_into(T633* C,T0* a1){
T0* _a=NULL;
int _i=0;
/*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=1;
while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
_a=r608item(((T608*)((((T633*)C))->_list/*8*/)),_i);
/*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
r608add_last(((T608*)a1),_a);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
void r633from_runnable(T633* C,T0* a1){
C->_list=a1;
C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
}
void r633make(T633* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
T0* r633check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms75_633);
return R;
}
/*No:E_ENSURE.set_header_comment*/
/*No:E_ENSURE.start_position*/
void r633compile_to_c(T633* C){
int _i=0;
/*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_596));
/*]*/
_i=1;
while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
/*[IRF3.3set_check_assertion_mode*/((((T324*)(((T324*)(oBC364cpp)))))->_check_assertion_mode)=(r633check_assertion_mode());
/*]*/
r348compile_to_c(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
_i=(_i)+(1);
}
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_596));
/*]*/
}
/*FI*/}
/*No:E_ENSURE.set_ensure_then*/
/*No:E_ENSURE.list*/
/*No:E_ENSURE.current_type*/
/*No:E_ENSURE.is_ensure_then*/
void r633compile_to_c_old(T633* C){
int _i=0;
/*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=(((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_lower/*12*/;
while (!((_i)>((((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/))) {
r348compile_to_c_old(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
_i=(_i)+(1);
}
}
/*FI*/}
/*No:E_ENSURE.header_comment*/
int r633use_current(T633* C){
int R=0;
int _i=0;
/*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=(((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r348use_current(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void r633afd_check(T633* C){
int _i=0;
/*IF*/if (((((T633*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=(((T608*)((T608*)((((T633*)C))->_list/*8*/))))->_upper/*8*/;
while (!((_i)==(0))) {
r348afd_check(((T348*)(r608item(((T608*)((((T633*)C))->_list/*8*/)),_i))));
_i=(_i)-(1);
}
}
/*FI*/}
int r283id(T283* C){
int R=0;
R=(((T355*)((T355*)(r283run_class(C)))))->_id/*4*/;
return R;
}
int r283has_creation(T283* C,T0* a1){
int R=0;
/*IF*/if ((C)==((void*)((((T283*)C))->_run_type/*12*/))) {
R=r605has_creation(((T605*)(r283base_class(C))),a1);
}
else {
R=X291has_creation((((T283*)C))->_run_type/*12*/,a1);
}
/*FI*/return R;
}
/*No:TYPE_FORMAL_GENERIC.is_anchored*/
int r283is_array(T283* C){
int R=0;
R=X291is_array((((T283*)C))->_run_type/*12*/);
return R;
}
int r283is_a(T283* C,T0* a1){
int R=0;
R=X291is_a((((T283*)C))->_run_type/*12*/,a1);
return R;
}
void r283c_initialize_in(T283* C,T0* a1){
X291c_initialize_in((((T283*)C))->_run_type/*12*/,a1);
}
void r283c_type_for_argument_in(T283* C,T0* a1){
X291c_type_for_argument_in((((T283*)C))->_run_type/*12*/,a1);
}
void r283gc_call_new_in(T283* C,T0* a1){
r7append(((T7*)a1),((T0*)ms115_470));
r2append_in(r283id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
int r283is_pointer(T283* C){
int R=0;
R=X291is_pointer((((T283*)C))->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.run_type*/
int r283is_dummy_expanded(T283* C){
int R=0;
R=X291is_dummy_expanded((((T283*)C))->_run_type/*12*/);
return R;
}
int r283is_string(T283* C){
int R=0;
R=X291is_string((((T283*)C))->_run_type/*12*/);
return R;
}
int r283space_for_variable(T283* C){
int R=0;
R=X291space_for_variable((((T283*)C))->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.is_like_feature*/
/*No:TYPE_FORMAL_GENERIC.is_like_current*/
void r283make(T283* C,T0* a1,int a2){
C->_rank=a2;
C->_formal_name=a1;
}
/*No:TYPE_FORMAL_GENERIC.formal_name*/
void r283mapping_cast(T283* C){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC291tmp_string)),'\50');
r283c_type_for_target_in(C,oBC291tmp_string);
r7extend(((T7*)(oBC291tmp_string)),'\51');
/*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
/*]*/
}
/*No:TYPE_FORMAL_GENERIC.start_position*/
void r283c_type_for_target_in(T283* C,T0* a1){
X291c_type_for_target_in((((T283*)C))->_run_type/*12*/,a1);
}
/*No:TYPE_FORMAL_GENERIC.fz_gc_mark*/
void r283gc_initialize(T283* C){
X291gc_initialize((((T283*)C))->_run_type/*12*/);
}
int r283is_character(T283* C){
int R=0;
R=X291is_character((((T283*)C))->_run_type/*12*/);
return R;
}
int r283is_user_expanded(T283* C){
int R=0;
R=X291is_user_expanded((((T283*)C))->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.written_mark*/
/*No:TYPE_FORMAL_GENERIC.is_run_type*/
T0* r283to_runnable(T283* C,T0* a1){
T0* R=NULL;
T0* _gl=NULL;
T0* _t=NULL;
T0* _p=NULL;
T0* _bc_ct=NULL;
T0* _bc_written=NULL;
_bc_written=r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)));
_bc_ct=X291base_class(a1);
/*IF*/if ((_bc_written)==((void*)(_bc_ct))) {
_gl=X291generic_list(a1);
/*IF*/if (((_gl)==((void*)(NULL)))||(((((T283*)C))->_rank/*8*/)>((((T701*)((T701*)_gl)))->_upper/*8*/))) {
r683add_position(X291start_position(a1));
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
R=r283make_runnable(C,r701item(((T701*)_gl),(((T283*)C))->_rank/*8*/));
}
/*FI*/}
else {
_p=/*(IRF4.6first_parent_for*/r673first_parent_for(((T673*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written)/*)*/;
while (!((_p)==((void*)(NULL)))) {
_t=(((T877*)((T877*)_p)))->_type/*4*/;
_t=X291run_type(X291to_runnable(_t,a1));
/*IF*/if ((R)==((void*)(NULL))) {
R=r283to_runnable(C,_t);
_p=NULL;
}
else {
_p=/*(IRF4.6next_parent_for*/r673next_parent_for(((T673*)((((T605*)((T605*)_bc_ct)))->_parent_list/*40*/)),_bc_written,_p)/*)*/;
}
/*FI*/}
/*IF*/if ((R)==((void*)(NULL))) {
r683add_type(a1,((T0*)ms1_283));
r283warning(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_283));
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_FORMAL_GENERIC.rank*/
void r283c_type_for_external_in(T283* C,T0* a1){
/*IF*/if (r283is_reference(C)) {
r7append(((T7*)a1),((T0*)ms133_470));
r7extend(((T7*)a1),'\52');
}
else {
r283c_type_for_result_in(C,a1);
}
/*FI*/}
T0* r283generic_list(T283* C){
T0* R=NULL;
/*IF*/if (r283is_generic(C)) {
R=X291generic_list((((T283*)C))->_run_type/*12*/);
}
else {
r283fatal_error_generic_list(C);
}
/*FI*/return R;
}
/*No:TYPE_FORMAL_GENERIC.is_formal_generic*/
void r283demangling_in(T283* C,T0* a1){
/*IF*/if (r283is_reference(C)) {
r7extend(((T7*)a1),'R');
}
else {
r7extend(((T7*)a1),'E');
}
/*FI*/r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r283run_time_mark(C));
}
int r283is_real(T283* C){
int R=0;
R=X291is_real((((T283*)C))->_run_type/*12*/);
return R;
}
T0* r283twin(T283* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T283*)R)=*C;
return R;
}
/*No:TYPE_FORMAL_GENERIC.fz_bnga*/
int r283is_bit(T283* C){
int R=0;
R=X291is_bit((((T283*)C))->_run_type/*12*/);
return R;
}
T0* r283formal_arg(T283* C){
T0* R=NULL;
R=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)(r283formal_generic_list(C)))))->_list/*4*/)),(((T283*)C))->_rank/*8*/)/*)*/;
return R;
}
void r283fatal_error_generic_list(T283* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_FORMAL_GENERIC.fz_new*/
T0* r283smallest_ancestor(T283* C,T0* a1){
T0* R=NULL;
R=X291smallest_ancestor((((T283*)C))->_run_type/*12*/,a1);
return R;
}
/*No:TYPE_FORMAL_GENERIC.set_run_type*/
int r283is_boolean(T283* C){
int R=0;
R=X291is_boolean((((T283*)C))->_run_type/*12*/);
return R;
}
int r283is_double(T283* C){
int R=0;
R=X291is_double((((T283*)C))->_run_type/*12*/);
return R;
}
T0* r283run_class(T283* C){
T0* R=NULL;
R=r604run_class((((T283*)C))->_run_type/*12*/);
return R;
}
T0* r283run_time_mark(T283* C){
T0* R=NULL;
R=X291run_time_mark((((T283*)C))->_run_type/*12*/);
return R;
}
void r283c_initialize(T283* C){
X291c_initialize((((T283*)C))->_run_type/*12*/);
}
void r283cast_to_ref(T283* C){
X291cast_to_ref((((T283*)C))->_run_type/*12*/);
}
void r283gc_mark_in(T283* C,T0* a1){
r7append(((T7*)a1),((T0*)ms107_470));
r2append_in(r283id(C),a1);
}
int r283is_a_in(T283* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r283to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r283look_up_for(T283* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r283base_class(C))),a1,a2);
return R;
}
void r283c_header_pass1(T283* C){
X291c_header_pass1((((T283*)C))->_run_type/*12*/);
}
void r283c_type_for_result_in(T283* C,T0* a1){
X291c_type_for_result_in((((T283*)C))->_run_type/*12*/,a1);
}
T0* r283expanded_initializer(T283* C){
T0* R=NULL;
R=X291expanded_initializer((((T283*)C))->_run_type/*12*/);
return R;
}
T0* r283constraint(T283* C){
T0* R=NULL;
R=(((T59*)((T59*)(r283formal_arg(C)))))->_constraint/*4*/;
return R;
}
/*No:TYPE_FORMAL_GENERIC.fz_void*/
/*No:TYPE_FORMAL_GENERIC.fz_dot*/
int r283is_generic(T283* C){
int R=0;
R=X291is_generic((((T283*)C))->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.fz_bga*/
/*No:TYPE_FORMAL_GENERIC.used_as_reference*/
void r283c_header_pass2(T283* C){
X291c_header_pass2((((T283*)C))->_run_type/*12*/);
}
void r283gc_define1(T283* C){
X291gc_define1((((T283*)C))->_run_type/*12*/);
}
int r283need_c_struct(T283* C){
int R=0;
R=X291need_c_struct((((T283*)C))->_run_type/*12*/);
return R;
}
T0* r283formal_generic_list(T283* C){
T0* R=NULL;
R=(((T605*)((T605*)(r627base_class(((T627*)(/*(IRF4.6start_position*/(((T451*)((T451*)((((T283*)C))->_formal_name/*4*/))))->_start_position/*4*//*)*/)))))))->_formal_generic_list/*28*/;
return R;
}
int r283is_reference(T283* C){
int R=0;
R=X291is_reference((((T283*)C))->_run_type/*12*/);
return R;
}
void r283gc_info_in(T283* C,T0* a1){
X291gc_info_in((((T283*)C))->_run_type/*12*/,a1);
}
void r283error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r283base_class(T283* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r283base_class_name(C);
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
void r283call_gc_sweep_in(T283* C,T0* a1){
X291call_gc_sweep_in((((T283*)C))->_run_type/*12*/,a1);
}
void r283gc_define2(T283* C){
X291gc_define2((((T283*)C))->_run_type/*12*/);
}
int r283need_gc_mark_function(T283* C){
int R=0;
R=X291need_gc_mark_function((((T283*)C))->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.fatal_error*/
int r283is_any(T283* C){
int R=0;
R=X291is_any((((T283*)C))->_run_type/*12*/);
return R;
}
void r283to_reference(T283* C){
X291to_reference((((T283*)C))->_run_type/*12*/);
}
void r283c_header_pass3(T283* C){
X291c_header_pass3((((T283*)C))->_run_type/*12*/);
}
T0* r283base_class_name(T283* C){
T0* R=NULL;
R=X291base_class_name((((T283*)C))->_run_type/*12*/);
return R;
}

