/*
-- 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"
/*No:E_INSPECT.else_position*/
T0* r270add_comment(T270* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
 else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
R=(T0*)C;
}
else {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:E_INSPECT.when_list*/
void r270add_when(T270* C,T0* a1){
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
{T377*n=malloc(sizeof(*n));
*n=M377;
/*[IRF3.3make*/((((T377*)(n)))->_list)=(se_ma147(1,a1));
/*]*/
C->_when_list=(T0*)n;
}
}
else {
/*[IRF3.5add_last*/r147add_last(((T147*)((((T377*)((T377*)((((T270*)C))->_when_list/*16*/))))->_list/*4*/)),a1);
/*]*/
}
/*FI*/}
void r270make(T270* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_expression=a2;
}
/*No:E_INSPECT.nb_errors*/
/*No:E_INSPECT.expression*/
void r270set_else_compound(T270* C,T0* a1,T0* a2){
C->_else_position=a1;
C->_else_compound=a2;
}
/*No:E_INSPECT.set_run_compound*/
/*No:E_INSPECT.start_position*/
/*No:E_INSPECT.includes*/
T0* r270to_runnable(T270* C,T0* a1){
T0* R=NULL;
T0* _wl=NULL;
T0* _te=NULL;
T0* _e=NULL;
/*IF*/if (((((T270*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_e=X662to_runnable((((T270*)C))->_expression/*12*/,r270current_type(C));
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
C->_expression=_e;
_te=X291run_type(X662result_type(_e));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (X291is_character(_te)) {
/*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
C->_when_list=r377to_runnable_character(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
}
/*FI*/}
/*FI*/}
 else if (X291is_integer(_te)) {
/*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
C->_when_list=r377to_runnable_integer(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
/*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
}
/*FI*/}
/*FI*/}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms2_270);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(_te,((T0*)ms3_270));
r683add_position((((T270*)C))->_start_position/*8*/);
r683print_as_error(((T683*)(oBC364eh)));
}
/*FI*/}
/*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
C->_else_compound=r592to_runnable(((T592*)((((T270*)C))->_else_compound/*24*/)),r270current_type(C));
}
/*FI*/R=(T0*)C;
}
else {
R=r270twin(C);
{T377*n=malloc(sizeof(*n));
*n=M377;
r377from_when_list(n,(((T270*)C))->_when_list/*16*/);
_wl=(T0*)n;
}
/*[IRF3.3set_when_list*/((((T270*)(((T270*)R))))->_when_list)=(_wl);
/*]*/
/*[IRF3.3set_run_compound*/((((T270*)(((T270*)R))))->_run_compound)=(NULL);
/*]*/
R=r270to_runnable(((T270*)R),a1);
}
/*FI*/return R;
}
T0* r270twin(T270* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T270*)R)=*C;
return R;
}
/*No:E_INSPECT.em1*/
/*No:E_INSPECT.else_compound*/
/*No:E_INSPECT.set_when_list*/
T0* r270current_type(T270* C){
T0* R=NULL;
/*IF*/if (((((T270*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T270*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:E_INSPECT.run_compound*/
void r270error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_INSPECT.end_mark_comment*/
/*No:ONCE_FUNCTION.arguments*/
T0* r844try_to_undefine(T844* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r844try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T844*)C))->_clients/*24*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:ONCE_FUNCTION.is_deferred*/
/*No:ONCE_FUNCTION.fz_bad_assertion*/
T0* r844runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r844error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:ONCE_FUNCTION.rescue_compound*/
void r844add_into(T844* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
/*No:ONCE_FUNCTION.end_comment*/
T0* r844try_to_undefine_aux(T844* C,T0* a1,T0* a2){
T0* R=NULL;
{T649*n=malloc(sizeof(*n));
*n=M649;
r649from_effective(n,a1,(((T844*)C))->_arguments/*28*/,(((T844*)C))->_result_type/*12*/,(((T844*)C))->_require_assertion/*36*/,(((T844*)C))->_ensure_assertion/*40*/,a2);
R=(T0*)n;
}
return R;
}
void r844make(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r844make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}
/*No:ONCE_FUNCTION.not_computed*/
/*No:ONCE_FUNCTION.nb_errors*/
void r844make_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r844make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:ONCE_FUNCTION.local_vars*/
void r844set_header_comment(T844* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r844start_position(T844* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r844to_run_feature(T844* C,T0* a1,T0* a2){
T0* R=NULL;
r844check_obsolete(C);
{T868*n=malloc(sizeof(*n));
*n=M868;
r868make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:ONCE_FUNCTION.ensure_assertion*/
/*No:ONCE_FUNCTION.code_require*/
T0* r844run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
_r=r844runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r844run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r844runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T541*n=malloc(sizeof(*n));
*n=M541;
/*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:ONCE_FUNCTION.result_type*/
/*No:ONCE_FUNCTION.fz_03*/
/*No:ONCE_FUNCTION.em1*/
/*No:ONCE_FUNCTION.obsolete_mark*/
/*No:ONCE_FUNCTION.set_clients*/
/*No:ONCE_FUNCTION.em2*/
/*No:ONCE_FUNCTION.names*/
/*No:ONCE_FUNCTION.require_assertion*/
/*No:ONCE_FUNCTION.use_current_state*/
/*No:ONCE_FUNCTION.code_ensure*/
void r844set_rescue_compound(T844* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r844error(r844start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
int r844can_hide(T844* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r844start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:ONCE_FUNCTION.header_comment*/
/*No:ONCE_FUNCTION.routine_body*/
int r844is_merge_with(T844* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r844error(r844start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:ONCE_FUNCTION.fz_dot*/
/*No:ONCE_FUNCTION.set_ensure_assertion*/
/*No:ONCE_FUNCTION.first_name*/
/*No:ONCE_FUNCTION.clients*/
void r844collect_for(T844* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T844*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T844*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r844make_effective_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r844make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1011;
}
void r844error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ONCE_FUNCTION.base_class*/
void r844make_e_feature(T844* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r844check_obsolete(T844* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T844*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r844warning(r844start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r844warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:RUN_FEATURE_3.arguments*/
/*No:RUN_FEATURE_3.actuals_clients*/
void r845make(T845* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r845run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r845initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_3.name*/
int r845arg_count(T845* C){
int R=0;
/*IF*/if (((((T845*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T845*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.local_vars*/
/*No:RUN_FEATURE_3.base_feature*/
/*No:RUN_FEATURE_3.start_position*/
/*No:RUN_FEATURE_3.ensure_assertion*/
int r845is_exported_in(T845* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r845clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_3.result_type*/
void r845add_client(T845* C,T0* a1){
int _i=0;
/*IF*/if (((((T845*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T845*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r845run_class(C))),a1);
}
/*No:RUN_FEATURE_3.require_assertion*/
/*No:RUN_FEATURE_3.use_current_state*/
/*No:RUN_FEATURE_3.current_type*/
T0* r845run_class(T845* C){
T0* R=NULL;
R=X291run_class((((T845*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_3.ucs_not_computed*/
/*No:RUN_FEATURE_3.routine_body*/
T0* r845clients(T845* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T845*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T845*)C))->_current_type/*4*/);
_bfbc=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T845*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T845*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_3.clients_memory*/
void r845initialize(T845* C){
C->_arguments=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if (((((T845*)C))->_arguments/*20*/)!=((void*)(NULL))) {
C->_arguments=r31to_runnable(((T31*)((((T845*)C))->_arguments/*20*/)),(((T845*)C))->_current_type/*4*/);
}
/*FI*/C->_local_vars=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if (((((T845*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
C->_local_vars=r620to_runnable(((T620*)((((T845*)C))->_local_vars/*48*/)),(((T845*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T845*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T845*)C))->_routine_body/*32*/)),(((T845*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r297run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r297run_ensure((T0*)C);
}
/*FI*/}
int r737gt(int a1,int a2){
int R=0;
T0* _n2=NULL;
T0* _n1=NULL;
_n1=X776to_key(/*X496*/((T0*)(((T808*)((T808*)(/*X321*/((T0*)r321item(((T321*)(oBC737rf_list)),a1))))))->_name/*16*/));
_n2=X776to_key(/*X496*/((T0*)(((T808*)((T808*)(/*X321*/((T0*)r321item(((T321*)(oBC737rf_list)),a2))))))->_name/*16*/));
R=r7_px_62(((T7*)_n1),_n2);
return R;
}
/*No:SHORT.dos_system*/
/*No:SHORT.short*/
/*No:SHORT.fz_system_se*/
/*No:SHORT.fz_sys*/
void r737compute_run_class(T737* C,T0* a1){
T0* _fga=NULL;
int _i=0;
T0* _gl=NULL;
T0* _ct=NULL;
T0* _t=NULL;
T0* _sp=NULL;
T0* _bcn=NULL;
T0* _fgl=NULL;
_bcn=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
_sp=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_start_position/*4*/;
_fgl=(((T605*)((T605*)a1)))->_formal_generic_list/*28*/;
/*IF*/if ((((T0*)ms1_473))==((void*)(_bcn))) {
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms18_473))==((void*)(_bcn))) {
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,_sp);
_t=(T0*)n;
}
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make(n,_sp,_t);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms2_473))==((void*)(_bcn))) {
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,_sp);
_t=(T0*)n;
}
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make(n,_sp,_t);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms15_473))==((void*)(_bcn))) {
{T788*n=malloc(sizeof(*n));
*n=M788;
r788make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms23_473))==((void*)(_bcn))) {
{T209*n=malloc(sizeof(*n));
*n=M209;
r209make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms11_473))==((void*)(_bcn))) {
{T388*n=malloc(sizeof(*n));
*n=M388;
r388make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms8_473))==((void*)(_bcn))) {
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms6_473))==((void*)(_bcn))) {
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms21_473))==((void*)(_bcn))) {
{T900*n=malloc(sizeof(*n));
*n=M900;
r900make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((((T0*)ms25_473))==((void*)(_bcn))) {
{T491*n=malloc(sizeof(*n));
*n=M491;
r491make(n,_sp);
_ct=(T0*)n;
}
}
 else if ((_fgl)!=((void*)(NULL))) {
_i=1;
{T701*n=malloc(sizeof(*n));
*n=M701;
r701with_capacity(n,/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/,1);
_gl=(T0*)n;
}
while (!((_i)>(/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/))) {
_fga=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/)),_i)/*)*/;
/*IF*/if (((((T33*)((T33*)_fga)))->_constraint/*4*/)==((void*)(NULL))) {
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,_sp);
_t=(T0*)n;
}
}
else {
_t=(((T33*)((T33*)_fga)))->_constraint/*4*/;
}
/*FI*/r701add_last(((T701*)_gl),_t);
_i=(_i)+(1);
}
{T720*n=malloc(sizeof(*n));
*n=M720;
r720make(n,(((T605*)((T605*)a1)))->_base_class_name/*24*/,_gl);
_ct=(T0*)n;
}
}
else {
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)((T605*)a1)))->_base_class_name/*24*/);
/*]*/
_ct=(T0*)n;
}
}
/*FI*/C->_run_class=X291run_class(_ct);
}
/*No:SHORT.us_integer*/
/*No:SHORT.unix_system*/
/*No:SHORT.exit_failure_code*/
/*No:SHORT.vms_system*/
T0* r737small_eiffel_directory(T737* C){
if (fBC364small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
fBC364small_eiffel_directory=1;
R=r737get_environment_variable(C,((T0*)ms121_470));
/*IF*/if ((R)==((void*)(NULL))) {
R=r7twin(((T7*)(((T0*)ms121_470))));
r7to_upper(((T7*)R));
R=r737get_environment_variable(C,R);
/*IF*/if ((R)!=((void*)(NULL))) {
r7to_upper(((T7*)(((T0*)ms121_470))));
}
/*FI*/}
/*FI*//*IF*/if ((R)==((void*)(NULL))) {
R=((T0*)ms1_364);
}
/*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
while (!((_i)<(0))) {
_slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
r7extend(((T7*)R),'\57');
}
 else if (!((r7last(((T7*)R)))==(_slash))) {
r7extend(((T7*)R),_slash);
}
/*FI*/oBC364small_eiffel_directory=R;}
return oBC364small_eiffel_directory;}
/*No:SHORT.root_class*/
/*No:SHORT.us_array*/
void r737automat(T737* C){
T0* _a=NULL;
int _arg=0;
_arg=1;
while (!((_arg)>(/*(IRF4.9argument_count*/(((T927*)((T927*)(r737command_arguments()))))->_upper/*8*//*)*/))) {
_a=r737argument(_arg);
/*IF*/if (r7is_equal(ms8_737,_a)) {
C->_sort=1;
}
 else if (r7is_equal(ms9_737,_a)) {
C->_short=1;
}
 else if (r7is_equal(ms10_737,_a)) {
/*[IRF3.3set_case_insensitive*/((((T818*)(((T818*)(oBC364eiffel_parser)))))->_case_insensitive)=(1);
/*]*/
}
 else if (r7is_equal(ms11_737,_a)) {
/*[IRF3.3set_no_warning*/((((T683*)(((T683*)(oBC364eh)))))->_no_warning)=(1);
/*]*/
}
 else if ((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55')) {
r7remove_first(((T7*)_a),1);
C->_format=_a;
}
else {
/*IF*/if (r7has_suffix(((T7*)_a),((T0*)ms25_364))) {
/*[IRF3.6remove_suffix*/{T7* C1=((T7*)_a);
T0* b1=((T0*)ms25_364);
r7remove_last(C1,(((T7*)((T7*)b1)))->_count/*4*/);
}/*]*/
}
/*FI*//*IF*/if (r7same_as(((T7*)(((T0*)ms5_473))),_a)) {
_a=((T0*)ms4_473);
}
/*FI*/C->_root_class=_a;
}
/*FI*/_arg=(_arg)+(1);
}
}
/*No:SHORT.amiga_system*/
void r737make(T737* C){
T0* _ccl=NULL;
int _i=0;
T0* _bc=NULL;
/*IF*/if ((/*(IRF4.9argument_count*/(((T927*)((T927*)(r737command_arguments()))))->_upper/*8*//*)*/)==(0)) {
r441put_string(((T441*)(oBC1std_error)),((T0*)ms1_737));
r737print_help(C,((T0*)ms2_737));
exit(1);
}
else {
r737automat(C);
/*[IRF3.3set_short_flag*/((((T604*)(((T604*)(oBC364small_eiffel)))))->_short_flag)=(1);
/*]*/
_bc=r604load_class(((T604*)(oBC364small_eiffel)),(((T737*)C))->_root_class/*0*/);
r654add_last(((T654*)(oBC737parents)),_bc);
/*IF*/if (!((((T737*)C))->_short/*16*/)) {
r605up_to_any_in(((T605*)_bc),oBC737parents);
}
/*FI*//*IF*/if (((((T737*)C))->_format/*4*/)==((void*)(NULL))) {
C->_format=((T0*)ms3_737);
}
/*FI*/r737compute_run_class(C,_bc);
r580start(((T580*)(oBC364short_print)),(((T737*)C))->_format/*4*/,_bc,(((T737*)C))->_run_class/*8*/);
_ccl=(((T605*)((T605*)_bc)))->_creation_clause_list/*44*/;
/*IF*/if (((_ccl)==((void*)(NULL)))||(!(r378short(((T378*)_ccl))))) {
r580hook(((T580*)(oBC364short_print)),((T0*)ms4_737));
}
/*FI*/r737compute_rf_list(C);
/*IF*/if ((((T737*)C))->_sort/*12*/) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_737),((T0*)ms6_737));
/*[IRF3.2sort_rf_list*/{int _moved=0;
int _buble=0;
int _max=0;
int _min=0;
_max=/*X321*/((int)(((T321*)((T321*)(oBC737rf_list))))->_upper/*12*/);
_min=0;
_moved=1;
while (!(!(_moved))) {
_moved=0;
/*IF*/if (((_max)-(_min))>(0)) {
_buble=(_min)+(1);
while (!((_buble)>(_max))) {
/*IF*/if (r737gt((_buble)-(1),_buble)) {
X321swap(oBC737rf_list,(_buble)-(1),_buble);
_moved=1;
}
/*FI*/_buble=(_buble)+(1);
}
_max=(_max)-(1);
}
/*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
_moved=0;
_buble=(_max)-(1);
while (!((_buble)<(_min))) {
/*IF*/if (r737gt(_buble,(_buble)+(1))) {
X321swap(oBC737rf_list,_buble,(_buble)+(1));
_moved=1;
}
/*FI*/_buble=(_buble)-(1);
}
_min=(_min)+(1);
}
/*FI*/}
}/*]*/
_i=0;
while (!((_i)>(/*X321*/((int)(((T321*)((T321*)(oBC737rf_list))))->_upper/*12*/)))) {
r580a_run_feature(((T580*)(oBC364short_print)),/*X321*/((T0*)r321item(((T321*)(oBC737rf_list)),_i)));
_i=(_i)+(1);
}
r580hook(((T580*)(oBC364short_print)),((T0*)ms7_737));
}
/*FI*/r580finish(((T580*)(oBC364short_print)));
}
/*FI*/}
/*No:SHORT.format*/
/*No:SHORT.us_pointer*/
/*No:SHORT.help_suffix*/
T0*oBC364help_file_name=NULL;
void r737compute_rf_list(T737* C){
T0* _fcl=NULL;
T0* _rc=NULL;
T0* _bc=NULL;
int _i=0;
_i=(((T654*)((T654*)(oBC737parents))))->_upper/*8*/;
_rc=(((T737*)C))->_run_class/*8*/;
while (!((_i)<(0))) {
_bc=/*(IRF4.6item*/((((T654*)((T654*)(oBC737parents))))->_storage/*0*/)[_i]/*)*/;
_fcl=(((T605*)((T605*)_bc)))->_feature_clause_list/*48*/;
/*IF*/if ((_fcl)!=((void*)(NULL))) {
r913for_short(((T913*)_fcl),(((T605*)((T605*)_bc)))->_base_class_name/*24*/,(((T737*)C))->_sort/*12*/,oBC737rf_list,_rc);
}
/*FI*/_i=(_i)-(1);
}
}
/*No:SHORT.us_string*/
void r737add_directory(T737* C,T0* a1,T0* a2){
/*IF*/if ((((T0*)ms17_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\57');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
 else if ((((T0*)ms19_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms15_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\72');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\72');
}
 else if ((((T0*)ms14_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms16_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms13_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\57');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
 else if ((((T0*)ms18_364))==((void*)(r737system_name(C)))) {
r7set_last(((T7*)a1),'\135');
r7remove_last(((T7*)a1),1);
r7set_last(((T7*)a1),'\56');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\135');
}
/*FI*/}
T670 oBC1file_tools=0;
/*No:SHORT.windows_system*/
T0* r737get_environment_variable(T737* C,T0* a1){
T0* R=NULL;
void* _p=0;
_p=r7to_external(((T7*)a1));
R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
return R;
}
void r737print_help(T737* C,T0* a1){
r7copy(((T7*)(oBC364help_file_name)),r737small_eiffel_directory(C));
r737add_directory(C,oBC364help_file_name,((T0*)ms2_364));
r7append(((T7*)(oBC364help_file_name)),a1);
/*IF*/if (!(r7has_suffix(((T7*)(oBC364help_file_name)),((T0*)ms39_364)))) {
r7append(((T7*)(oBC364help_file_name)),((T0*)ms39_364));
}
/*FI*//*IF*/if (!(r737file_exists(oBC364help_file_name))) {
r306w_put_string(((T0*)ms3_364));
r306w_put_string(oBC364help_file_name);
r306w_put_string(((T0*)ms242_470));
exit(1);
}
/*FI*/r830append_file(((T830*)(oBC1std_output)),oBC364help_file_name);
}
/*No:SHORT.us_character*/
int fBC1command_arguments=0;
T0*oBC1command_arguments=NULL;
T0* r737command_arguments(void){
if (fBC1command_arguments==0){
T0* R=NULL;
T0* _arg=NULL;
int _i=0;
fBC1command_arguments=1;
_i=se_argc;
{T927*n=malloc(sizeof(*n));
*n=M927;
r927make(n,_i);
R=(T0*)n;
}
while (!((_i)==(0))) {
_i=(_i)-(1);
_arg=((T0*)e2s(se_argv[_i]));
/*[IRF3.5put*/((((T927*)((T927*)R)))->_storage/*0*/)[_i]=(_arg);
/*]*/
}
oBC1command_arguments=R;}
return oBC1command_arguments;}
T0* r737system_name(T737* C){
if (fBC364system_name==0){
T0* R=NULL;
int _i=0;
fBC364system_name=1;
r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
r7set_last(((T7*)(oBC364tmp_path)),'\57');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\57');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
r7set_last(((T7*)(oBC364tmp_path)),'\134');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\134');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*/}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
r7set_last(((T7*)(oBC364tmp_path)),'\72');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\72');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*/}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
r7set_last(((T7*)(oBC364tmp_path)),'\135');
r7remove_last(((T7*)(oBC364tmp_path)),1);
r7extend(((T7*)(oBC364tmp_path)),'\56');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\135');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*/}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r737small_eiffel_directory(C));
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r306w_put_string(((T0*)ms20_364));
r306w_put_string(((T0*)ms127_470));
r306w_put_string(((T0*)ms21_364));
r306w_put_string(r737small_eiffel_directory(C));
r306w_put_string(((T0*)ms242_470));
exit(1);
}
/*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
R=oBC762last_string;
_i=r52index_of(((T52*)(oBC364system_list)),R);
r675disconnect(((T675*)(oBC364tmp_file_read)));
/*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
r306w_put_string(((T0*)ms22_364));
r306w_put_string(oBC364tmp_path);
r306w_put_string(((T0*)ms23_364));
_i=1;
while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
r306w_put_character('\n');
_i=(_i)+(1);
}
}
else {
R=r52item(((T52*)(oBC364system_list)),_i);
r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
r306put_string(((T306*)(oBC364echo)),R);
r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
}
/*FI*/oBC364system_name=R;}
return oBC364system_name;}
/*No:SHORT.fz_b0*/
/*No:SHORT.us_bit_n*/
/*No:SHORT.us_real*/
/*No:SHORT.sort_rf_list*/
/*No:SHORT.fz_se*/
/*No:SHORT.os2_system*/
/*No:SHORT.sort*/
T0*oBC737rf_list=NULL;
/*No:SHORT.run_class*/
int r737file_exists(T0* a1){
int R=0;
R=r670is_readable(a1);
return R;
}
/*No:SHORT.us_boolean*/
/*No:SHORT.us_double*/
/*No:SHORT.argument_count*/
/*No:SHORT.macintosh_system*/
/*No:SHORT.us_bit_n_ref*/
/*No:SHORT.eiffel_suffix*/
T0*oBC737parents=NULL;
T0* r737argument(int a1){
T0* R=NULL;
R=/*(IRF4.6item*/((((T927*)((T927*)(r737command_arguments()))))->_storage/*0*/)[a1]/*)*/;
return R;
}
/*No:SHORT.us_native_array*/
/*No:SHORT.us_any*/
T0* r530add_comment(T530* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
 else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
R=(T0*)C;
}
else {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:IFTHENELSE.make*/
/*No:IFTHENELSE.nb_errors*/
/*No:IFTHENELSE.set_else_compound*/
/*No:IFTHENELSE.start_position*/
T0* r530to_runnable(T530* C,T0* a1){
T0* R=NULL;
T0* _ec=NULL;
T0* _itl=NULL;
int _ne=0;
_ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
/*IF*/if (((((T530*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_itl=r712to_runnable(((T712*)((((T530*)C))->_ifthenlist/*12*/)),a1);
/*IF*/if ((_itl)==((void*)(NULL))) {
}
else {
C->_ifthenlist=_itl;
}
/*FI*//*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))==(0))&&(((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL)))) {
_ec=r592to_runnable(((T592*)((((T530*)C))->_else_compound/*16*/)),r530current_type(C));
/*IF*/if ((_ec)==((void*)(NULL))) {
}
else {
C->_else_compound=_ec;
}
/*FI*/}
/*FI*//*IF*/if ((_itl)!=((void*)(NULL))) {
R=(T0*)C;
}
/*FI*/}
else {
R=r530to_runnable(((T530*)(r530twin(C))),a1);
}
/*FI*/return R;
}
T0* r530twin(T530* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T530*)R)=M530;
r530copy(((T530*)R),((T0*)C));
return R;
}
/*No:IFTHENELSE.ifthenlist*/
/*No:IFTHENELSE.else_compound*/
void r530copy(T530* C,T0* a1){
C->_start_position=(((T530*)((T530*)a1)))->_start_position/*8*/;
C->_ifthenlist=(((T530*)((T530*)a1)))->_ifthenlist/*12*/;
C->_else_compound=(((T530*)((T530*)a1)))->_else_compound/*16*/;
}
T0* r530current_type(T530* C){
T0* R=NULL;
/*IF*/if (((((T530*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T530*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:IFTHENELSE.run_compound*/
void r530add_if_then(T530* C,T0* a1,T0* a2){
T0* _ifthen=NULL;
{T809*n=malloc(sizeof(*n));
*n=M809;
r809make(n,a1,a2);
_ifthen=(T0*)n;
}
/*IF*/if (((((T530*)C))->_ifthenlist/*12*/)==((void*)(NULL))) {
{T712*n=malloc(sizeof(*n));
*n=M712;
/*[IRF3.3make*/((((T712*)(n)))->_list)=(se_ma948(1,_ifthen));
/*]*/
C->_ifthenlist=(T0*)n;
}
}
else {
/*[IRF3.5add_last*/r948add_last(((T948*)((((T712*)((T712*)((((T530*)C))->_ifthenlist/*12*/))))->_list/*0*/)),_ifthen);
/*]*/
}
/*FI*/}
/*No:IFTHENELSE.end_mark_comment*/
/*No:EXTERNAL_PROCEDURE.arguments*/
T0* r883try_to_undefine(T883* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r883try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T883*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:EXTERNAL_PROCEDURE.is_deferred*/
/*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
T0* r883runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r883error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:EXTERNAL_PROCEDURE.rescue_compound*/
void r883add_into(T883* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
/*No:EXTERNAL_PROCEDURE.end_comment*/
T0* r883try_to_undefine_aux(T883* C,T0* a1,T0* a2){
T0* R=NULL;
{T853*n=malloc(sizeof(*n));
*n=M853;
r853from_effective(n,a1,(((T883*)C))->_arguments/*24*/,(((T883*)C))->_require_assertion/*32*/,(((T883*)C))->_ensure_assertion/*36*/,a2);
R=(T0*)n;
}
return R;
}
void r883make(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r883make_routine(C,a1,a2,a3,a4,a5);
r883make_external_routine(C,a6,a7);
}
/*No:EXTERNAL_PROCEDURE.nb_errors*/
/*No:EXTERNAL_PROCEDURE.native*/
void r883make_routine(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r883make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void r883set_header_comment(T883* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r883start_position(T883* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r883to_run_feature(T883* C,T0* a1,T0* a2){
T0* R=NULL;
r883check_obsolete(C);
{T906*n=malloc(sizeof(*n));
*n=M906;
r906make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:EXTERNAL_PROCEDURE.alias_string*/
/*No:EXTERNAL_PROCEDURE.ensure_assertion*/
/*No:EXTERNAL_PROCEDURE.code_require*/
T0* r883run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
_r=r883runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r883run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r883runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T541*n=malloc(sizeof(*n));
*n=M541;
/*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:EXTERNAL_PROCEDURE.result_type*/
/*No:EXTERNAL_PROCEDURE.fz_03*/
/*No:EXTERNAL_PROCEDURE.em1*/
/*No:EXTERNAL_PROCEDURE.obsolete_mark*/
/*No:EXTERNAL_PROCEDURE.set_clients*/
/*No:EXTERNAL_PROCEDURE.em2*/
/*No:EXTERNAL_PROCEDURE.names*/
/*No:EXTERNAL_PROCEDURE.require_assertion*/
/*No:EXTERNAL_PROCEDURE.code_ensure*/
void r883set_rescue_compound(T883* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r883error(r883start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
void r883make_external_routine(T883* C,T0* a1,T0* a2){
C->_native=a1;
C->_alias_string=a2;
}
int r883can_hide(T883* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r883start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_PROCEDURE.header_comment*/
int r883is_merge_with(T883* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r883error(r883start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_PROCEDURE.fz_dot*/
/*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
/*No:EXTERNAL_PROCEDURE.first_name*/
/*No:EXTERNAL_PROCEDURE.clients*/
void r883collect_for(T883* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T883*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T883*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r883error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:EXTERNAL_PROCEDURE.base_class*/
void r883make_e_feature(T883* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r883check_obsolete(T883* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T883*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T883*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r883warning(r883start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r883warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:TMP_NAME.li*/
/*No:TMP_NAME.co*/
/*No:TMP_NAME.fz_inherit*/
int r511isa_keyword(void){
int R=0;
char _c=0;
_c=r3to_lower(/*(IRF4.6item*/((((T7*)((T7*)(oBC511tmp_string))))->_storage/*0*/)[(1)-(1)]/*)*/);
{int z1=_c;

if((97==z1)){
R=r511look_in(oBC511keyword_a);
}
 else 
if((99==z1)){
R=r511look_in(oBC511keyword_c);
}
 else 
if((100==z1)){
R=r511look_in(oBC511keyword_d);
}
 else 
if((101==z1)){
R=r511look_in(oBC511keyword_e);
}
 else 
if((102==z1)){
R=r511look_in(oBC511keyword_f);
}
 else 
if((105==z1)){
R=r511look_in(oBC511keyword_i);
}
 else 
if((108==z1)){
R=r511look_in(oBC511keyword_l);
}
 else 
if((111==z1)){
R=r511look_in(oBC511keyword_o);
}
 else 
if((112==z1)){
R=r7same_as(((T7*)(((T0*)ms37_470))),oBC511tmp_string);
}
 else 
if((114==z1)){
R=r511look_in(oBC511keyword_r);
}
 else 
if((115==z1)){
R=r511look_in(oBC511keyword_s);
}
 else 
if((116==z1)){
R=r511look_in(oBC511keyword_t);
}
 else 
if((117==z1)){
R=r511look_in(oBC511keyword_u);
}
 else 
if((118==z1)){
R=r7same_as(((T7*)(((T0*)ms51_470))),oBC511tmp_string);
}
 else 
if((119==z1)){
R=r7same_as(((T7*)(((T0*)ms52_470))),oBC511tmp_string);
}
 else 
if((120==z1)){
R=r7same_as(((T7*)(((T0*)ms50_473))),oBC511tmp_string);
}
}
return R;
}
/*No:TMP_NAME.fz_select*/
/*No:TMP_NAME.fz_creation*/
T0*oBC511keyword_s=NULL;
T0*oBC511keyword_c=NULL;
/*No:TMP_NAME.fz_old*/
T0* r511to_e_result(T511* C){
T0* R=NULL;
{T715*n=malloc(sizeof(*n));
*n=M715;
r715make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
T0* r511to_local_name1(T511* C){
T0* R=NULL;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
R=(T0*)n;
}
return R;
}
T0* r511to_e_current(T511* C){
T0* R=NULL;
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),1);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.extend*/
/*No:TMP_NAME.fz_separate*/
/*No:TMP_NAME.fz_deferred*/
T0*oBC511keyword_t=NULL;
T0*oBC511keyword_d=NULL;
/*No:TMP_NAME.fz_else*/
/*No:TMP_NAME.fz_end*/
T0* r511to_e_void(T511* C){
T0* R=NULL;
{T796*n=malloc(sizeof(*n));
*n=M796;
r796make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
int r511is_current(void){
int R=0;
/*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(7)) {
R=r7same_as(((T7*)(((T0*)ms143_473))),oBC511tmp_string);
}
/*FI*/return R;
}
T0*oBC511keyword_u=NULL;
T0*oBC511keyword_e=NULL;
/*No:TMP_NAME.us_and*/
T0* r511to_local_name2(T511* C,T0* a1,int a2){
T0* R=NULL;
{T23*n=malloc(sizeof(*n));
*n=M23;
r23refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
R=(T0*)n;
}
return R;
}
T0* r511to_argument_name1(T511* C){
T0* R=NULL;
{T873*n=malloc(sizeof(*n));
*n=M873;
r873make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
R=(T0*)n;
}
return R;
}
T0*oBC511keyword_f=NULL;
/*No:TMP_NAME.make*/
/*No:TMP_NAME.us_current*/
/*No:TMP_NAME.fz_rescue*/
T0* r511to_string(T511* C){
T0* R=NULL;
/*IF*/if (((((T511*)C))->_unique_string_memory/*0*/)==((void*)(NULL))) {
R=r902item(oBC511tmp_string);
C->_unique_string_memory=R;
}
else {
R=(((T511*)C))->_unique_string_memory/*0*/;
}
/*FI*/return R;
}
T0* r511to_class_name(T511* C){
T0* R=NULL;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
T0* r511to_tag_name(T511* C){
T0* R=NULL;
{T490*n=malloc(sizeof(*n));
*n=M490;
r490make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.unique_string_memory*/
T0* r511to_argument_name2(T511* C,T0* a1,int a2){
T0* R=NULL;
{T886*n=malloc(sizeof(*n));
*n=M886;
r886refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_external*/
T0* r511start_position(T511* C){
T0* R=NULL;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_prefix*/
/*No:TMP_NAME.fz_export*/
/*No:TMP_NAME.fz_all*/
/*No:TMP_NAME.fz_invariant*/
/*No:TMP_NAME.fz_feature*/
/*No:TMP_NAME.fz_true*/
T0* r511to_infix_name_use(T511* C){
T0* R=NULL;
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_if*/
T0*oBC511keyword_i=NULL;
/*No:TMP_NAME.fz_inspect*/
/*No:TMP_NAME.fz_alias*/
/*No:TMP_NAME.fz_debug*/
int r511is_result(void){
int R=0;
/*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(6)) {
R=r7same_as(((T7*)(((T0*)ms146_473))),oBC511tmp_string);
}
/*FI*/return R;
}
/*No:TMP_NAME.fz_rename*/
/*No:TMP_NAME.fz_from*/
/*No:TMP_NAME.fz_unique*/
/*No:TMP_NAME.fz_once*/
/*No:TMP_NAME.fz_loop*/
/*No:TMP_NAME.fz_do*/
/*No:TMP_NAME.us_result*/
/*No:TMP_NAME.us_implies*/
T0*oBC511tmp_string=NULL;
T0*oBC511keyword_l=NULL;
/*No:TMP_NAME.fz_obsolete*/
/*No:TMP_NAME.fz_as*/
/*No:TMP_NAME.fz_false*/
/*No:TMP_NAME.fz_elseif*/
T0* r511to_infix_name(T0* a1){
T0* R=NULL;
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,oBC511tmp_string,a1);
R=(T0*)n;
}
return R;
}
T0* r511to_prefix_name(T511* C){
T0* R=NULL;
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
T0* r511pos(int a1,int a2){
T0* R=NULL;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,a1,a2);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_variant*/
/*No:TMP_NAME.fz_redefine*/
/*No:TMP_NAME.fz_like*/
int r511is_void(void){
int R=0;
/*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(4)) {
R=r7same_as(((T7*)(((T0*)ms147_473))),oBC511tmp_string);
}
/*FI*/return R;
}
/*No:TMP_NAME.us_xor*/
/*No:TMP_NAME.fz_frozen*/
/*No:TMP_NAME.fz_undefine*/
T0*oBC511keyword_o=NULL;
T0* r511to_simple_feature_name(T511* C){
T0* R=NULL;
{T446*n=malloc(sizeof(*n));
*n=M446;
r446make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_is*/
/*No:TMP_NAME.fz_ensure*/
int r511look_in(T0* a1){
int R=0;
int _i=0;
_i=(((T52*)((T52*)a1)))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r7same_as(((T7*)(r52item(((T52*)a1),_i))),oBC511tmp_string);
_i=(_i)-(1);
}
return R;
}
/*No:TMP_NAME.us_void*/
/*No:TMP_NAME.fz_local*/
/*No:TMP_NAME.fz_indexing*/
/*No:TMP_NAME.fz_require*/
/*No:TMP_NAME.count*/
/*No:TMP_NAME.fz_when*/
/*No:TMP_NAME.fz_then*/
/*No:TMP_NAME.fz_until*/
T0*oBC511keyword_a=NULL;
/*No:TMP_NAME.fz_check*/
void r511initialize(T511* C,int a1,int a2){
C->_li=a1;
C->_co=a2;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC511tmp_string)))))->_count)=(0);
/*]*/
C->_unique_string_memory=NULL;
}
/*No:TMP_NAME.fz_expanded*/
T0*oBC511keyword_r=NULL;
/*No:TMP_NAME.fz_infix*/
/*No:TMP_NAME.fz_class*/
/*No:TMP_NAME.us_or*/
/*No:TMP_NAME.fz_retry*/
/*No:TMP_NAME.fz_strip*/
/*No:CALL_INFIX_AND_THEN.arguments*/
void r655short(T655* C){
/*IF*/if ((X662precedence((((T655*)C))->_target/*8*/))==(13)) {
X662short((((T655*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T655* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T655*)C1))->_feature_name/*24*/);
}/*]*/
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((5)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence((((T655*)C))->_target/*8*/))<(5)) {
X662bracketed_short((((T655*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T655* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T655*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short((((T655*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T655* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T655*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
T0* r655add_comment(T655* 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 r655to_integer(T655* C){
int R=0;
r655error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
void r655bracketed_short(T655* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r655short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r655is_a(T655* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T655*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r655error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_AND_THEN.is_current*/
/*No:CALL_INFIX_AND_THEN.us_and_then*/
void r655make(T655* 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,r655operator(),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;
}
r655make_call_1(C,a1,(((T655*)C))->_feature_name/*24*/,_eal);
}
/*No:CALL_INFIX_AND_THEN.nb_errors*/
/*No:CALL_INFIX_AND_THEN.feature_name*/
/*No:CALL_INFIX_AND_THEN.fz_iinaiv*/
/*No:CALL_INFIX_AND_THEN.run_feature*/
/*No:CALL_INFIX_AND_THEN.start_position*/
/*No:CALL_INFIX_AND_THEN.target*/
/*No:CALL_INFIX_AND_THEN.precedence*/
T0* r655to_runnable(T655* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T655*)C))->_current_type/*4*/)==((void*)(NULL))) {
r655to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T655*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r655error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)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*)((((T655*)C))->_arguments/*20*/)),(((T655*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T655*)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*)((((T655*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r655twin(C);
/*[IRF3.3set_current_type*/((((T655*)(((T655*)R))))->_current_type)=(NULL);
/*]*/
R=r655to_runnable(((T655*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_AND_THEN.short_print_feature_name*/
/*No:CALL_INFIX_AND_THEN.result_type*/
T0* r655twin(T655* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T655*)R)=*C;
return R;
}
/*No:CALL_INFIX_AND_THEN.set_current_type*/
T0* r655operator(void){
T0* R=NULL;
R=((T0*)ms28_473);
return R;
}
/*No:CALL_INFIX_AND_THEN.atomic_precedence*/
/*No:CALL_INFIX_AND_THEN.current_type*/
void r655make_call_1(T655* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_AND_THEN.is_manifest_string*/
/*No:CALL_INFIX_AND_THEN.is_void*/
void r655to_runnable_0(T655* C,T0* a1){
C->_current_type=a1;
r655cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T655*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T655*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T655*)C))->_run_feature/*12*/));
r655error((((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T655*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T655*)C))->_target/*8*/);
}
/*FI*/}
void r655cpc_to_runnable(T655* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T655*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T655*)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((((T655*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T655*)C))->_target/*8*/,(((T655*)C))->_run_feature/*12*/);
}
void r655error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_AND_THEN.fatal_error*/
/*No:CALL_INFIX_AND_THEN.fz_bad_argument*/
void r655short_target(T655* C){
r655bracketed_short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
/*No:CALL_INFIX_AND_THEN.arg1*/
void r913for_short(T913* C,T0* a1,int a2,T0* a3,T0* a4){
T0* _fc=NULL;
int _i=0;
_i=1;
while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
_fc=r764item(((T764*)((((T913*)C))->_list/*0*/)),_i);
r153for_short(((T153*)_fc),a1,a2,a3,a4);
_i=(_i)+(1);
}
}
void r913get_started(T913* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
r153add_into(((T153*)(r764item(((T764*)((((T913*)C))->_list/*0*/)),_i))),a1);
_i=(_i)+(1);
}
}
/*No:FEATURE_CLAUSE_LIST.make*/
/*No:FEATURE_CLAUSE_LIST.list*/
/*No:FEATURE_CLAUSE_LIST.add_last*/
/*No:RUN_FEATURE_4.arguments*/
/*No:RUN_FEATURE_4.actuals_clients*/
void r857make(T857* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r857run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r857initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_4.name*/
int r857arg_count(T857* C){
int R=0;
/*IF*/if (((((T857*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T857*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_4.local_vars*/
/*No:RUN_FEATURE_4.base_feature*/
/*No:RUN_FEATURE_4.start_position*/
/*No:RUN_FEATURE_4.ensure_assertion*/
int r857is_exported_in(T857* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r857clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_4.result_type*/
void r857add_client(T857* C,T0* a1){
int _i=0;
/*IF*/if (((((T857*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T857*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r857run_class(C))),a1);
}
/*No:RUN_FEATURE_4.require_assertion*/
/*No:RUN_FEATURE_4.use_current_state*/
/*No:RUN_FEATURE_4.current_type*/
T0* r857run_class(T857* C){
T0* R=NULL;
R=X291run_class((((T857*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_4.ucs_not_computed*/
/*No:RUN_FEATURE_4.routine_body*/
T0* r857clients(T857* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T857*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T857*)C))->_current_type/*4*/);
_bfbc=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T857*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T857*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_4.clients_memory*/
void r857initialize(T857* C){
C->_arguments=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if ((((((T857*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T857*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T857*)C))->_arguments/*20*/)),(((T857*)C))->_current_type/*4*/);
}
/*FI*/C->_result_type=X291to_runnable((((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_result_type/*12*/,(((T857*)C))->_current_type/*4*/);
C->_local_vars=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if ((((((T857*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T857*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_local_vars=r620to_runnable(((T620*)((((T857*)C))->_local_vars/*48*/)),(((T857*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T857*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T857*)C))->_routine_body/*32*/)),(((T857*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r696run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r696run_ensure((T0*)C);
}
/*FI*/}

