/*
-- 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 "short.h"
T0* r880add_comment(T880* 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 {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:E_LOOP.fz_is_not_boolean*/
void r880make(T880* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
C->_start_position=a1;
C->_initialize=a2;
C->_invariant_clause=a3;
C->_variant_clause=a4;
C->_until_expression=a5;
C->_loop_body=a6;
}
/*No:E_LOOP.nb_errors*/
/*No:E_LOOP.start_position*/
/*No:E_LOOP.until_expression*/
T0* r880to_runnable(T880* C,T0* a1){
T0* R=NULL;
int _loop_check=0;
T0* _ue=NULL;
_loop_check=r590loop_check(((T590*)(oBC364run_control)));
/*IF*/if (((((T880*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
/*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
C->_initialize=r592to_runnable(((T592*)((((T880*)C))->_initialize/*12*/)),r880current_type(C));
/*IF*/if (((((T880*)C))->_initialize/*12*/)==((void*)(NULL))) {
r880error((((T880*)C))->_start_position/*8*/,((T0*)ms4_880));
}
/*FI*/}
/*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL)))) {
C->_invariant_clause=r213to_runnable(((T213*)((((T880*)C))->_invariant_clause/*16*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
/*IF*/if (((((T880*)C))->_invariant_clause/*16*/)==((void*)(NULL))) {
r880error((((T880*)C))->_start_position/*8*/,((T0*)ms5_880));
}
/*FI*/}
/*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL)))) {
C->_variant_clause=X856to_runnable((((T880*)C))->_variant_clause/*20*/,r880current_type(C));
/*IF*/if (((((T880*)C))->_variant_clause/*20*/)==((void*)(NULL))) {
r880error((((T880*)C))->_start_position/*8*/,((T0*)ms6_880));
}
/*FI*/}
/*FI*/_ue=X662to_runnable((((T880*)C))->_until_expression/*24*/,r880current_type(C));
/*IF*/if ((_ue)!=((void*)(NULL))) {
/*IF*/if (!(X291is_boolean(X662result_type(_ue)))) {
r880error(X662start_position(_ue),((T0*)ms7_880));
r683add_type(X662result_type(_ue),((T0*)ms73_470));
r683print_as_error(((T683*)(oBC364eh)));
}
/*FI*/C->_until_expression=_ue;
}
else {
r880error((((T880*)C))->_start_position/*8*/,((T0*)ms8_880));
}
/*FI*//*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
C->_loop_body=r592to_runnable(((T592*)((((T880*)C))->_loop_body/*28*/)),r880current_type(C));
/*IF*/if (((((T880*)C))->_loop_body/*28*/)==((void*)(NULL))) {
r880error((((T880*)C))->_start_position/*8*/,((T0*)ms9_880));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T880*n=malloc(sizeof(*n));
*n=M880;
r880make(n,(((T880*)C))->_start_position/*8*/,(((T880*)C))->_initialize/*12*/,(((T880*)C))->_invariant_clause/*16*/,(((T880*)C))->_variant_clause/*20*/,(((T880*)C))->_until_expression/*24*/,(((T880*)C))->_loop_body/*28*/);
R=(T0*)n;
}
R=r880to_runnable(((T880*)R),a1);
}
/*FI*/return R;
}
/*No:E_LOOP.variant_clause*/
/*No:E_LOOP.invariant_clause*/
/*No:E_LOOP.loop_body*/
T0* r880current_type(T880* C){
T0* R=NULL;
/*IF*/if (((((T880*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T880*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:E_LOOP.run_compound*/
void r880error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_LOOP.end_mark_comment*/
/*No:E_LOOP.initialize*/
void r393short(T393* C,T0* a1,T0* a2,T0* a3,T0* a4){
int _open_quote=0;
char _c=0;
T0* _l=NULL;
int _j=0;
int _i=0;
_i=(((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_lower/*12*/;
while (!((_i)>((((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_upper/*8*/))) {
r580hook_or(((T580*)(oBC364short_print)),a1,a2);
r580hook(((T580*)(oBC364short_print)),((T0*)ms1_393));
_l=r52item(((T52*)((((T393*)C))->_list/*4*/)),_i);
_j=1;
while (!((_j)>((((T7*)((T7*)_l)))->_count/*4*/))) {
_c=/*(IRF4.6item*/((((T7*)((T7*)_l)))->_storage/*0*/)[(_j)-(1)]/*)*/;
{int z1=_c;

if((95==z1)){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_393),((T0*)ms3_393));
}
 else 
if((96==z1)){
_open_quote=1;
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms4_393),((T0*)ms5_393));
}
 else 
if((39==z1)){
/*IF*/if (_open_quote) {
_open_quote=0;
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_393),((T0*)ms7_393));
}
else {
/*[IRF3.6a_character*/{char b1=_c;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
/*FI*/}
 else{/*[IRF3.6a_character*/{char b1=_c;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}}
_j=(_j)+(1);
}
r580hook(((T580*)(oBC364short_print)),((T0*)ms8_393));
r580hook_or(((T580*)(oBC364short_print)),a3,a4);
_i=(_i)+(1);
}
}
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*/
/*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 r723short(T723* C){
X361short((((T723*)C))->_name/*4*/);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_723),((T0*)ms3_723));
X291short(/*X361*/((T0*)(((T886*)((T886*)((((T723*)C))->_name/*4*/))))->_result_type/*20*/));
}
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*/);
}
/*No:DECLARATION_1.count*/
/*No:INDEX_LIST.make*/
/*No:INDEX_LIST.list*/
void r31short(T31* C){
int _i=0;
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_31),((T0*)ms3_31));
_i=1;
while (!((_i)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
X411short(r382item(((T382*)((((T31*)C))->_list/*8*/)),_i));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/)) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms4_31),((T0*)ms5_31));
}
/*FI*/}
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_31),((T0*)ms7_31));
}
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*/
/*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 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);
/*]*/
}
void r31error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:FORMAL_ARG_LIST.count*/
/*No:FORMAL_ARG_LIST.fatal_error*/
/*No:FORMAL_ARG_LIST.flat_list*/
int r46gives_permission_to_any(T46* C){
int R=0;
int _i=0;
_i=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),_i)))))->_to_string/*0*/)==((void*)(((T0*)ms1_473)));
_i=(_i)-(1);
}
return R;
}
void r46merge(T46* C,T0* a1,T0* a2){
T0* _a=NULL;
T0* _cn=NULL;
int _i=0;
C->_list=r901twin(((T901*)((((T46*)((T46*)a1)))->_list/*0*/)));
_a=(((T46*)((T46*)a2)))->_list/*0*/;
_i=(((T901*)((T901*)_a)))->_upper/*8*/;
while (!((_i)==(0))) {
_cn=r901item(((T901*)_a),_i);
/*IF*/if (!(r46gives_permission_to(C,_cn))) {
r901add_last(((T901*)((((T46*)C))->_list/*0*/)),_cn);
}
/*FI*/_i=(_i)-(1);
}
}
void r46make(T46* C,T0* a1){
int _i2=0;
int _i=0;
C->_list=a1;
_i=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_i2=r46index_of(C,r901item(((T901*)((((T46*)C))->_list/*0*/)),_i));
/*IF*/if ((_i2)!=(_i)) {
r683add_position((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),_i2)))))->_start_position/*4*/);
r46warning((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),_i)))))->_start_position/*4*/,((T0*)ms1_46));
}
/*FI*/_i=(_i)-(1);
}
}
int r46gives_permission_to(T46* C,T0* a1){
int R=0;
int _i=0;
/*IF*/if ((r46index_of(C,a1))>(0)) {
R=1;
}
else {
_i=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r451is_subclass_of(((T451*)a1),r901item(((T901*)((((T46*)C))->_list/*0*/)),_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:CLASS_NAME_LIST.list*/
int r46index_of(T46* C,T0* a1){
int R=0;
T0* _to_string=NULL;
_to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
R=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),R)))))->_to_string/*0*/))))) {
R=(R)-(1);
}
return R;
}
/*No:CLASS_NAME_LIST.us_any*/
void r46warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:TYPE_BIT_REF.short*/
/*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)));
}
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.short_hook*/
/*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*/
void r707short(T707* C){
r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
/*[IRF3.6short_hook*/{T707* C1=C;
r580a_class_name(((T580*)(oBC364short_print)),(((T707*)C1))->_base_class_name/*4*/);
}/*]*/
r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
}
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.nb_errors*/
/*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));
}
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;
}
/*No:TYPE_BOOLEAN.is_run_type*/
T0* r707to_runnable(T707* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r707check_type(C);
return R;
}
T0* r707generic_list(T707* C){
T0* R=NULL;
r707fatal_error_generic_list(C);
return R;
}
/*No:TYPE_BOOLEAN.is_formal_generic*/
/*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)));
}
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.short_hook*/
/*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;
}
/*No:IFTHENLIST.list*/
/*No:IFTHENLIST.run_compound*/
/*No:IFTHENLIST.add_last*/

