/*
-- 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 "pretty.h"
int r393dummy(T393* C){
int R=0;
T0* _str=NULL;
/*IF*/if ((r52count(((T52*)((((T393*)C))->_list/*4*/))))==(1)) {
_str=r52first(((T52*)((((T393*)C))->_list/*4*/)));
R=((((T7*)((T7*)_str)))->_count/*4*/)<(10);
}
/*FI*/return R;
}
void r393good_end(T393* C,T0* a1){
/*IF*/if (!(r7has_string(((T7*)(r52item(((T52*)((((T393*)C))->_list/*4*/)),1))),(((T451*)((T451*)a1)))->_to_string/*0*/))) {
r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
r393warning((((T393*)C))->_start_position/*0*/,((T0*)ms10_393));
}
/*FI*/}
void r393make(T393* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_list=a2;
}
/*No:COMMENT.start_position*/
void r393pretty_print(T393* C){
int _column=0;
int _i=0;
/*IF*/if (r6_px_and(((((T238*)((T238*)(oBC364fmt))))->_column/*8*/)>(1),((((T238*)((T238*)(oBC364fmt))))->_last_character/*20*/)!=('\40'))) {
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*FI*/_column=(((T238*)((T238*)(oBC364fmt))))->_column/*8*/;
_i=(((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_lower/*12*/;
while (!((_i)>((((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_upper/*8*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_393));
r238put_string(((T238*)(oBC364fmt)),r52item(((T52*)((((T393*)C))->_list/*4*/)),_i));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_upper/*8*/)) {
r238put_character(((T238*)(oBC364fmt)),'\n');
while (!(((((T238*)((T238*)(oBC364fmt))))->_column/*8*/)==(_column))) {
r238put_character(((T238*)(oBC364fmt)),'\40');
}
}
/*FI*/}
r238put_character(((T238*)(oBC364fmt)),'\n');
r238indent(((T238*)(oBC364fmt)));
}
/*No:COMMENT.list*/
/*No:COMMENT.count*/
/*No:COMMENT.add_last*/
void r393append(T393* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T52*)((T52*)((((T393*)((T393*)a1)))->_list/*4*/))))->_upper/*8*/))) {
/*[IRF3.5add_last*/r52add_last(((T52*)((((T393*)C))->_list/*4*/)),r52item(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)),_i));
/*]*/
_i=(_i)+(1);
}
}
void r393warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
void r723make(T723* C,T0* a1,T0* a2){
C->_name=a1;
/*X361*//*[IRF3.3set_result_type*/((((T886*)(((T886*)((((T723*)C))->_name/*4*/)))))->_result_type)=(a2);
/*]*/
}
/*No:DECLARATION_1.name*/
void r723append_in(T723* C,T0* a1){
X535add_last(a1,(((T723*)C))->_name/*4*/);
}
void r723pretty_print(T723* C){
X361pretty_print((((T723*)C))->_name/*4*/);
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_723));
X291pretty_print(/*X361*/((T0*)(((T886*)((T886*)((((T723*)C))->_name/*4*/))))->_result_type/*20*/));
}
/*No:DECLARATION_1.count*/
/*No:INDEX_LIST.make*/
/*No:INDEX_LIST.fz_00*/
void r688pretty_print(T688* C){
int _i=0;
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_688));
r238level_incr(((T238*)(oBC364fmt)));
r238indent(((T238*)(oBC364fmt)));
_i=1;
while (!((_i)>((((T848*)((T848*)((((T688*)C))->_list/*0*/))))->_upper/*8*/))) {
r782pretty_print(((T782*)(r848item(((T848*)((((T688*)C))->_list/*0*/)),_i))));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T848*)((T848*)((((T688*)C))->_list/*0*/))))->_upper/*8*/)) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms134_470));
}
/*FI*/}
r238put_character(((T238*)(oBC364fmt)),'\73');
r238level_decr(((T238*)(oBC364fmt)));
r238indent(((T238*)(oBC364fmt)));
}
/*No:INDEX_LIST.list*/
void r31make(T31* C,T0* a1,T0* a2){
T0* _an2=NULL;
int _rank=0;
int _i=0;
T0* _tla2=NULL;
T0* _tla=NULL;
T0* _tlf=NULL;
T0* _an=NULL;
r31standard_make(C,a1,a2);
_i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
while (!((_i)==(0))) {
_an=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
_tlf=(((T873*)((T873*)_an)))->_result_type/*20*/;
if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
case 648: 
break;
default:
_tlf=NULL;
};/*IF*/if ((_tlf)!=((void*)(NULL))) {
_rank=r31rank_of(C,X776to_string((((T648*)((T648*)_tlf)))->_like_what/*12*/));
/*IF*/if ((_rank)==(_i)) {
r683add_position((((T648*)((T648*)_tlf)))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if ((_rank)>(0)) {
{T886*n=malloc(sizeof(*n));
*n=M886;
r886refer_to(n,X776start_position((((T648*)((T648*)_tlf)))->_like_what/*12*/),(T0*)C,_rank);
_an2=(T0*)n;
}
{T239*n=malloc(sizeof(*n));
*n=M239;
r239make(n,(((T648*)((T648*)_tlf)))->_start_position/*4*/,_an2);
_tla=(T0*)n;
}
/*[IRF3.3set_result_type*/((((T873*)(((T873*)_an))))->_result_type)=(_tla);
/*]*/
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
_i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
while (!((_i)==(0))) {
_tla=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i)))))->_result_type/*20*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
_rank=r31rank_of(C,(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_to_string/*8*/);
_tla2=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_rank)))))->_result_type/*20*/;
if(NULL!=(_tla2))switch(((T0*)_tla2)->id) {
case 239: 
break;
default:
_tla2=NULL;
};/*IF*/if ((_tla2)!=((void*)(NULL))) {
r683add_position((((T239*)((T239*)_tla)))->_start_position/*4*/);
r683add_position((((T239*)((T239*)_tla2)))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
}
/*FI*/}
/*No:FORMAL_ARG_LIST.name*/
/*No:FORMAL_ARG_LIST.nb_errors*/
T0* r31type(T31* C,int a1){
T0* R=NULL;
R=(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*20*/;
return R;
}
void r31standard_make(T31* C,T0* a1,T0* a2){
int _actual_count=0;
int _il=0;
C->_start_position=a1;
C->_list=a2;
_il=1;
while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
_actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il)));
_il=(_il)+(1);
}
{T65*n=malloc(sizeof(*n));
*n=M65;
r65make(n,1,_actual_count);
C->_flat_list=(T0*)n;
}
_il=1;
while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
X411append_in(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il),(T0*)C);
_il=(_il)+(1);
}
}
/*No:FORMAL_ARG_LIST.start_position*/
T0* r31to_runnable(T31* C,T0* a1){
T0* R=NULL;
T0* _n2=NULL;
T0* _n1=NULL;
int _i=0;
/*IF*/if (((((T31*)C))->_current_type/*16*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
_i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
_n2=r873to_runnable(((T873*)_n1),a1);
/*IF*/if ((_n2)==((void*)(NULL))) {
r31error((((T873*)((T873*)_n1)))->_start_position/*12*/,((T0*)ms3_535));
}
 else if ((_n1)!=((void*)(_n2))) {
/*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
T0* b1=_n2;
int b2=_i;
((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
}/*]*/
}
/*FI*/r873name_clash(((T873*)_n2));
_i=(_i)-(1);
}
}
else {
{T31*n=malloc(sizeof(*n));
*n=M31;
r31runnable_from_current(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:FORMAL_ARG_LIST.em1*/
void r31pretty_print(T31* C){
int _i=0;
r238put_character(((T238*)(oBC364fmt)),'\50');
r238level_incr(((T238*)(oBC364fmt)));
_i=1;
while (!((_i)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
X411pretty_print(r382item(((T382*)((((T31*)C))->_list/*8*/)),_i));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/)) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_31));
}
/*FI*/}
r238level_decr(((T238*)(oBC364fmt)));
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:FORMAL_ARG_LIST.list*/
int r31rank_of(T31* C,T0* a1){
int R=0;
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
while (!(((R)==(0))||((a1)==((void*)((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*8*/))))) {
R=(R)-(1);
}
return R;
}
/*No:FORMAL_ARG_LIST.current_type*/
int r31is_a_in(T31* C,T0* a1,T0* a2){
int R=0;
T0* _t2=NULL;
T0* _t1=NULL;
int _i=0;
/*IF*/if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position((((T31*)((T31*)a1)))->_start_position/*4*/);
r31error((((T31*)C))->_start_position/*4*/,((T0*)ms8_31));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=1;
_i=1;
while (!((!(R))||((_i)>((((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/)))) {
_t1=r31type(C,_i);
_t2=r31type(((T31*)a1),_i);
/*IF*/if (!(X291is_a_in(_t1,_t2,a2))) {
R=0;
r683print_as_error(((T683*)(oBC364eh)));
r683add_position(X291start_position(_t1));
r683add_position(X291start_position(_t2));
/*[IRF3.6append*/{T0* b1=((T0*)ms9_31);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/return R;
}
/*No:FORMAL_ARG_LIST.fz_cad*/
/*No:FORMAL_ARG_LIST.fz_dot*/
void r31runnable_from_current(T31* C,T0* a1,T0* a2){
T0* _n2=NULL;
T0* _n1=NULL;
int _i=0;
C->_start_position=(((T31*)((T31*)a1)))->_start_position/*4*/;
C->_list=(((T31*)((T31*)a1)))->_list/*8*/;
C->_current_type=a2;
C->_flat_list=r65twin(((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/)));
_i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
while (!((_i)==(0))) {
_n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
_n2=r873to_runnable(((T873*)_n1),a2);
/*IF*/if ((_n2)==((void*)(NULL))) {
r31error((((T873*)((T873*)_n1)))->_start_position/*12*/,((T0*)ms3_535));
}
/*FI*//*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
T0* b1=_n2;
int b2=_i;
((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
}/*]*/
_i=(_i)-(1);
}
}
void r31error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r31add_last(T31* C,T0* a1){
T0* _n2=NULL;
int _i=0;
_i=1;
while (!((r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i))==((void*)(NULL)))) {
_n2=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
/*IF*/if (((((T873*)((T873*)_n2)))->_to_string/*8*/)==((void*)((((T873*)((T873*)a1)))->_to_string/*8*/))) {
r683add_position((((T873*)((T873*)a1)))->_start_position/*12*/);
r683add_position((((T873*)((T873*)_n2)))->_start_position/*12*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_535);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
/*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
T0* b1=a1;
int b2=_i;
((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
}/*]*/
/*[IRF3.3set_rank*/((((T873*)(((T873*)a1))))->_rank)=(_i);
/*]*/
}
/*No:FORMAL_ARG_LIST.count*/
/*No:FORMAL_ARG_LIST.fatal_error*/
/*No:FORMAL_ARG_LIST.flat_list*/
int r33gives_permission_to_any(T33* C){
int R=0;
int _i=0;
_i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)))))->_to_string/*0*/)==((void*)(((T0*)ms1_473)));
_i=(_i)-(1);
}
return R;
}
void r33merge(T33* C,T0* a1,T0* a2){
T0* _a=NULL;
T0* _cn=NULL;
int _i=0;
C->_list=r901twin(((T901*)((((T33*)((T33*)a1)))->_list/*0*/)));
_a=(((T33*)((T33*)a2)))->_list/*0*/;
_i=(((T901*)((T901*)_a)))->_upper/*8*/;
while (!((_i)==(0))) {
_cn=r901item(((T901*)_a),_i);
/*IF*/if (!(r33gives_permission_to(C,_cn))) {
r901add_last(((T901*)((((T33*)C))->_list/*0*/)),_cn);
}
/*FI*/_i=(_i)-(1);
}
}
void r33make(T33* C,T0* a1){
int _i2=0;
int _i=0;
C->_list=a1;
_i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_i2=r33index_of(C,r901item(((T901*)((((T33*)C))->_list/*0*/)),_i));
/*IF*/if ((_i2)!=(_i)) {
r683add_position((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i2)))))->_start_position/*4*/);
r33warning((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)))))->_start_position/*4*/,((T0*)ms1_33));
}
/*FI*/_i=(_i)-(1);
}
}
int r33gives_permission_to(T33* C,T0* a1){
int R=0;
int _i=0;
/*IF*/if ((r33index_of(C,a1))>(0)) {
R=1;
}
else {
_i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r451is_subclass_of(((T451*)a1),r901item(((T901*)((((T33*)C))->_list/*0*/)),_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void r33pretty_print(T33* C){
int _i=0;
_i=1;
while (!((_i)>((((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/))) {
/*[IRF3.6pretty_print*/{T451* C1=((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)));
r238put_string(((T238*)(oBC364fmt)),(((T451*)C1))->_to_string/*0*/);
}/*]*/
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/)) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_33));
}
/*FI*/}
}
/*No:CLASS_NAME_LIST.list*/
int r33index_of(T33* C,T0* a1){
int R=0;
T0* _to_string=NULL;
_to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
R=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),R)))))->_to_string/*0*/))))) {
R=(R)-(1);
}
return R;
}
/*No:CLASS_NAME_LIST.us_any*/
void r33warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:TYPE_BIT_REF.has_creation*/
/*No:TYPE_BIT_REF.is_anchored*/
/*No:TYPE_BIT_REF.is_array*/
int r963is_a(T963* C,T0* a1){
int R=0;
/*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r963base_class(C))),X291base_class(a1));
/*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_BIT_REF.is_pointer*/
/*No:TYPE_BIT_REF.run_type*/
/*No:TYPE_BIT_REF.is_string*/
/*No:TYPE_BIT_REF.is_like_feature*/
/*No:TYPE_BIT_REF.is_like_current*/
void r963make(T963* C,T0* a1){
C->_type_bit=a1;
C->_run_time_mark=((T0*)ms1_963);
r2append_in(X609nb((((T963*)C))->_type_bit/*4*/),(((T963*)C))->_run_time_mark/*12*/);
r7append(((T7*)((((T963*)C))->_run_time_mark/*12*/)),((T0*)ms2_963));
C->_run_time_mark=r902item((((T963*)C))->_run_time_mark/*12*/);
C->_written_mark=(((T963*)C))->_run_time_mark/*12*/;
}
T0* r963type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
/*No:TYPE_BIT_REF.start_position*/
/*No:TYPE_BIT_REF.fz_inako*/
/*No:TYPE_BIT_REF.is_character*/
/*No:TYPE_BIT_REF.written_mark*/
/*No:TYPE_BIT_REF.is_run_type*/
/*No:TYPE_BIT_REF.to_runnable*/
T0* r963generic_list(T963* C){
T0* R=NULL;
r963fatal_error_generic_list(C);
return R;
}
/*No:TYPE_BIT_REF.is_formal_generic*/
/*No:TYPE_BIT_REF.is_real*/
/*No:TYPE_BIT_REF.is_bit*/
void r963fatal_error_generic_list(T963* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_BIT_REF.pretty_print*/
T0* r963smallest_ancestor(T963* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
R=(T0*)C;
}
else {
R=r963type_any();
}
/*FI*/return R;
}
/*No:TYPE_BIT_REF.is_boolean*/
/*No:TYPE_BIT_REF.is_double*/
T0* r963run_class(T963* C){
T0* R=NULL;
R=r604run_class(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
return R;
}
/*No:TYPE_BIT_REF.run_time_mark*/
int r963is_a_in(T963* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T963*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
_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* r963look_up_for(T963* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r963base_class(C))),a1,a2);
return R;
}
/*No:TYPE_BIT_REF.expanded_initializer*/
/*No:TYPE_BIT_REF.fz_dot*/
/*No:TYPE_BIT_REF.is_generic*/
/*No:TYPE_BIT_REF.used_as_reference*/
/*No:TYPE_BIT_REF.us_bit_n_ref*/
/*No:TYPE_BIT_REF.type_bit*/
/*No:TYPE_BIT_REF.is_reference*/
T0* r963base_class(T963* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r963base_class_name();
/*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_BIT_REF.is_any*/
int fBC963base_class_name=0;
T0*oBC963base_class_name=NULL;
T0* r963base_class_name(void){
if (fBC963base_class_name==0){
T0* R=NULL;
fBC963base_class_name=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms5_473),NULL);
R=(T0*)n;
}
oBC963base_class_name=R;}
return oBC963base_class_name;}
/*No:TYPE_BIT_REF.is_expanded*/
/*No:TYPE_BIT_REF.is_basic_eiffel_expanded*/
/*No:TYPE_BIT_REF.is_none*/
/*No:TYPE_BIT_REF.is_integer*/
int r707has_creation(T707* C,T0* a1){
int R=0;
r683add_position(X776start_position(a1));
r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
return R;
}
/*No:TYPE_BOOLEAN.is_anchored*/
/*No:TYPE_BOOLEAN.is_array*/
int r707is_a(T707* C,T0* a1){
int R=0;
/*IF*/if (X291is_boolean(a1)) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r707base_class(C))),X291base_class(a1));
/*IF*/if (R) {
r707used_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_BOOLEAN.run_type*/
/*No:TYPE_BOOLEAN.is_pointer*/
/*No:TYPE_BOOLEAN.is_string*/
/*No:TYPE_BOOLEAN.is_like_feature*/
/*No:TYPE_BOOLEAN.is_like_current*/
void r707make(T707* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms6_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_BOOLEAN.us_item*/
void r707load_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)))));
r368set_at_run_time(((T368*)_rc));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
}
/*No:TYPE_BOOLEAN.nb_errors*/
int fBC707check_type=0;
void r707check_type(T707* C){
if (fBC707check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC707check_type=1;
_bc=r707base_class(C);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_rc=r707run_class(C);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_707));
}
/*FI*/}
/*FI*/}}
/*No:TYPE_BOOLEAN.start_position*/
/*No:TYPE_BOOLEAN.fz_inako*/
/*No:TYPE_BOOLEAN.is_character*/
T0* r707written_mark(void){
T0* R=NULL;
R=((T0*)ms6_473);
return R;
}
T0* r707to_runnable(T707* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r707check_type(C);
return R;
}
/*No:TYPE_BOOLEAN.is_run_type*/
/*No:TYPE_BOOLEAN.is_formal_generic*/
T0* r707generic_list(T707* C){
T0* R=NULL;
r707fatal_error_generic_list(C);
return R;
}
/*No:TYPE_BOOLEAN.is_real*/
/*No:TYPE_BOOLEAN.is_bit*/
int fBC364type_boolean_ref=0;
T0*oBC364type_boolean_ref=NULL;
T0* r707type_boolean_ref(void){
if (fBC364type_boolean_ref==0){
T0* R=NULL;
T0* _boolean_ref=NULL;
fBC364type_boolean_ref=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms7_473),NULL);
_boolean_ref=(T0*)n;
}
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_boolean_ref);
/*]*/
R=(T0*)n;
}
oBC364type_boolean_ref=R;}
return oBC364type_boolean_ref;}
void r707fatal_error_generic_list(T707* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_BOOLEAN.pretty_print*/
T0* r707smallest_ancestor(T707* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_boolean(_rto)) {
R=(T0*)C;
}
else {
R=r657smallest_ancestor(((T657*)(r707type_boolean_ref())),_rto);
}
/*FI*/return R;
}
/*No:TYPE_BOOLEAN.is_boolean*/
/*No:TYPE_BOOLEAN.is_double*/
T0* r707run_class(T707* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
T0* r707run_time_mark(void){
T0* R=NULL;
R=((T0*)ms6_473);
return R;
}
int r707is_a_in(T707* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r707written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r707to_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* r707look_up_for(T707* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r707base_class(C))),a1,a2);
return R;
}
/*No:TYPE_BOOLEAN.us_boolean*/
/*No:TYPE_BOOLEAN.expanded_initializer*/
/*No:TYPE_BOOLEAN.fz_dot*/
/*No:TYPE_BOOLEAN.is_generic*/
int fBC707used_as_reference=0;
void r707used_as_reference(void){
if (fBC707used_as_reference==0){
fBC707used_as_reference=1;
r707load_ref(((T0*)ms7_473));
}}
/*No:TYPE_BOOLEAN.is_reference*/
void r707error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r707base_class(T707* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T707*)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_BOOLEAN.is_any*/
/*No:TYPE_BOOLEAN.us_boolean_ref*/
/*No:TYPE_BOOLEAN.base_class_name*/
/*No:TYPE_BOOLEAN.is_expanded*/
/*No:TYPE_BOOLEAN.is_basic_eiffel_expanded*/
/*No:TYPE_BOOLEAN.is_none*/
/*No:TYPE_BOOLEAN.is_integer*/
/*No:COUNTER.value*/
void r417increment(T417* C){
C->_value=((((T417*)C))->_value/*0*/)+(1);
}
/*No:IFTHENLIST.make*/
/*No:IFTHENLIST.nb_errors*/
T0* r712to_runnable(T712* C,T0* a1){
T0* R=NULL;
int _i=0;
/*IF*/if (((((T712*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
{T712*n=malloc(sizeof(*n));
*n=M712;
/*[IRF3.3make*/((((T712*)(n)))->_list)=(r948twin(((T948*)((((T712*)C))->_list/*0*/))));
/*]*/
R=(T0*)n;
}
R=r712to_runnable(((T712*)R),a1);
}
else {
C->_run_compound=a1;
_i=1;
while (!(((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
/*[IRF3.6put*/{T948* C1=((T948*)((((T712*)C))->_list/*0*/));
T0* b1=r809to_runnable(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))),a1);
int b2=_i;
((((T948*)C1))->_storage/*0*/)[(b2)-((((T948*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
R=(T0*)C;
}
/*FI*/return R;
}
void r712pretty_print(T712* C){
int _i=0;
_i=1;
while (!((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))) {
r809pretty_print(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/)) {
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_712));
}
/*FI*/}
}
/*No:IFTHENLIST.list*/
/*No:IFTHENLIST.run_compound*/
/*No:IFTHENLIST.add_last*/
/*No:CALL_INFIX_XOR.arguments*/
T0* r760add_comment(T760* 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 r760to_integer(T760* C){
int R=0;
r760error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r760is_a(T760* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T760*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r760error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_XOR.is_current*/
void r760make(T760* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,r760operator(),a2);
C->_feature_name=(T0*)n;
}
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r760make_call_1(C,a1,(((T760*)C))->_feature_name/*24*/,_eal);
}
void r760print_as_target(T760* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r760pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_XOR.nb_errors*/
/*No:CALL_INFIX_XOR.feature_name*/
/*No:CALL_INFIX_XOR.fz_iinaiv*/
/*No:CALL_INFIX_XOR.run_feature*/
/*No:CALL_INFIX_XOR.start_position*/
/*No:CALL_INFIX_XOR.target*/
/*No:CALL_INFIX_XOR.precedence*/
T0* r760to_runnable(T760* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T760*)C))->_current_type/*4*/)==((void*)(NULL))) {
r760to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T760*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r760error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T760*)C))->_arguments/*20*/)),(((T760*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T760*)C))->_result_type/*16*/;
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(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r760twin(C);
/*[IRF3.3set_current_type*/((((T760*)(((T760*)R))))->_current_type)=(NULL);
/*]*/
R=r760to_runnable(((T760*)R),a1);
}
/*FI*/return R;
}
void r760bracketed_pretty_print(T760* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r760pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_XOR.result_type*/
T0* r760twin(T760* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T760*)R)=*C;
return R;
}
/*No:CALL_INFIX_XOR.set_current_type*/
T0* r760operator(void){
T0* R=NULL;
R=((T0*)ms50_473);
return R;
}
/*No:CALL_INFIX_XOR.atomic_precedence*/
void r760pretty_print(T760* C){
/*IF*/if ((X662precedence((((T760*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T760*)C))->_target/*8*/);
r760print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((4)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T760*)C))->_target/*8*/))>=(4)) {
X662bracketed_pretty_print((((T760*)C))->_target/*8*/);
}
else {
X662pretty_print((((T760*)C))->_target/*8*/);
}
/*FI*/r760print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((4)<=(X662precedence((((T760*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T760*)C))->_target/*8*/);
r760print_op(C);
/*IF*/if ((4)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T760*)C))->_target/*8*/);
r760print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r760print_op(T760* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T760*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_XOR.current_type*/
void r760make_call_1(T760* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_XOR.is_manifest_string*/
/*No:CALL_INFIX_XOR.is_void*/
/*No:CALL_INFIX_XOR.us_xor*/
void r760to_runnable_0(T760* C,T0* a1){
C->_current_type=a1;
r760cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T760*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T760*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T760*)C))->_run_feature/*12*/));
r760error((((T454*)((T454*)((((T760*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T760*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T760*)C))->_target/*8*/);
}
/*FI*/}
void r760cpc_to_runnable(T760* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T760*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T760*)C))->_target/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T760*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T760*)C))->_target/*8*/,(((T760*)C))->_run_feature/*12*/);
}
void r760error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_XOR.fatal_error*/
/*No:CALL_INFIX_XOR.fz_bad_argument*/
/*No:CALL_INFIX_XOR.arg1*/

