/*
-- 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"
void r390check_creation_clause(T390* C,T0* a1){
T0* _args=NULL;
T0* _top=NULL;
T0* _bottom=NULL;
T0* _fn=NULL;
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
/*IF*/if (X291is_like_current(a1)) {
_top=r627base_class(((T627*)(X776start_position(_fn))));
_bottom=X291base_class(a1);
_fn=r605new_name_of(((T605*)_bottom),_top,_fn);
/*IF*/if ((_fn)==((void*)(NULL))) {
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*FI*/C->_run_feature=r368get_feature(((T368*)(X291run_class(a1))),_fn);
/*IF*/if (((((T390*)C))->_run_feature/*16*/)==((void*)(NULL))) {
r390cp_not_found(C,_fn);
}
/*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if (!(X291has_creation(a1,_fn))) {
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/X496add_client((((T390*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T390*)C))->_run_compound/*4*/))));
/*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T390*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
r683add_position(X776start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (((r390arg_count(C))==(0))&&((/*X496*/((T0*)(((T808*)((T808*)((((T390*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
r683add_position((((T390*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if ((r390arg_count(C))>(0)) {
_args=r431to_runnable(((T431*)(X173arguments((((T390*)C))->_call/*20*/))),r390current_type(C));
/*IF*/if ((_args)==((void*)(NULL))) {
r390error(r431start_position(((T431*)(X173arguments((((T390*)C))->_call/*20*/)))),((T0*)ms56_470));
}
else {
r431match_with(((T431*)_args),(((T390*)C))->_run_feature/*16*/);
}
/*FI*/}
/*FI*/C->_call=X173make_runnable((((T390*)C))->_call/*20*/,(((T390*)C))->_run_compound/*4*/,(((T390*)C))->_writable/*12*/,_args,(((T390*)C))->_run_feature/*16*/);
}
T0* r390add_comment(T390* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r390check_created_type(T390* C,T0* a1){
T0* _rt=NULL;
_rt=X291run_type(a1);
/*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
r683add_type(_rt,((T0*)ms2_747));
r683add_position((((T390*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (X291is_formal_generic(a1)) {
r683add_position((((T390*)C))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms5_747));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/r368set_at_run_time(((T368*)(X291run_class(_rt))));
}
void r390cp_not_found(T390* C,T0* a1){
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*No:CREATION_CALL_3.writable*/
/*No:CREATION_CALL_3.fz_bad_arguments*/
void r390make(T390* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_writable=a2;
C->_call=a3;
}
int r390arg_count(T390* C){
int R=0;
/*IF*/if (((((T390*)C))->_call/*20*/)!=((void*)(NULL))) {
R=X173arg_count((((T390*)C))->_call/*20*/);
}
/*FI*/return R;
}
/*No:CREATION_CALL_3.call*/
/*No:CREATION_CALL_3.run_feature*/
/*No:CREATION_CALL_3.start_position*/
T0* r390to_runnable(T390* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
/*IF*/if (((((T390*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r390check_writable(C,a1);
_t=X662result_type((((T390*)C))->_writable/*12*/);
r390check_created_type(C,_t);
r390check_creation_clause(C,_t);
R=(T0*)C;
}
else {
{T390*n=malloc(sizeof(*n));
*n=M390;
r390make(n,(((T390*)C))->_start_position/*8*/,(((T390*)C))->_writable/*12*/,(((T390*)C))->_call/*20*/);
R=(T0*)n;
}
R=r390to_runnable(((T390*)R),a1);
}
/*FI*/return R;
}
/*No:CREATION_CALL_3.fz_03*/
T0* r390current_type(T390* C){
T0* R=NULL;
/*IF*/if (((((T390*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T390*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:CREATION_CALL_3.fz_09*/
/*No:CREATION_CALL_3.run_compound*/
/*No:CREATION_CALL_3.fz_dot*/
void r390check_writable(T390* C,T0* a1){
T0* _w=NULL;
C->_run_compound=a1;
_w=X662to_runnable((((T390*)C))->_writable/*12*/,r390current_type(C));
/*IF*/if ((_w)==((void*)(NULL))) {
r683add_position(X662start_position((((T390*)C))->_writable/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_writable=_w;
}
/*FI*/}
void r390error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CREATION_CALL_3.fatal_error*/
/*No:CREATION_CALL_3.end_mark_comment*/
void r673short(T673* C,T0* a1){
int _i=0;
r605header_comment_for(((T605*)a1),(T0*)C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms1_673),((T0*)ms2_673));
/*IF*/if (((((T673*)C))->_header_comment/*4*/)==((void*)(NULL))) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_673),((T0*)ms4_673));
}
else {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_673),((T0*)ms6_673));
r393short(((T393*)((((T673*)C))->_header_comment/*4*/)),((T0*)ms7_673),((T0*)ms8_673),((T0*)ms9_673),((T0*)ms10_673));
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms11_673),((T0*)ms12_673));
}
/*FI*//*IF*/if (((((T673*)C))->_list/*8*/)==((void*)(NULL))) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms13_673),((T0*)ms14_673));
}
else {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms15_673),((T0*)ms16_673));
_i=1;
while (!((_i)==((((T608*)((T608*)((((T673*)C))->_list/*8*/))))->_upper/*8*/))) {
r348short(((T348*)(r608item(((T608*)((((T673*)C))->_list/*8*/)),_i))),((T0*)ms17_673),((T0*)ms18_673),((T0*)ms19_673),((T0*)ms20_673),((T0*)ms21_673),((T0*)ms22_673),((T0*)ms23_673),((T0*)ms24_673),((T0*)ms25_673),((T0*)ms26_673),((T0*)ms27_673),((T0*)ms28_673),((T0*)ms29_673),((T0*)ms30_673),((T0*)ms31_673),((T0*)ms32_673),((T0*)ms33_673),((T0*)ms34_673),((T0*)ms35_673),((T0*)ms36_673),((T0*)ms37_673),((T0*)ms38_673),((T0*)ms39_673),((T0*)ms40_673),((T0*)ms41_673),((T0*)ms42_673));
_i=(_i)+(1);
}
r348short(((T348*)(r608item(((T608*)((((T673*)C))->_list/*8*/)),_i))),((T0*)ms43_673),((T0*)ms44_673),((T0*)ms45_673),((T0*)ms46_673),((T0*)ms47_673),((T0*)ms48_673),((T0*)ms49_673),((T0*)ms50_673),((T0*)ms51_673),((T0*)ms52_673),((T0*)ms53_673),((T0*)ms54_673),((T0*)ms55_673),((T0*)ms56_673),((T0*)ms57_673),((T0*)ms58_673),((T0*)ms59_673),((T0*)ms60_673),((T0*)ms61_673),((T0*)ms62_673),((T0*)ms63_673),((T0*)ms64_673),((T0*)ms65_673),((T0*)ms66_673),((T0*)ms67_673),((T0*)ms68_673));
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms69_673),((T0*)ms70_673));
}
/*FI*/r580hook_or(((T580*)(oBC364short_print)),((T0*)ms71_673),((T0*)ms72_673));
}
void r673add_into(T673* C,T0* a1){
T0* _a=NULL;
int _i=0;
/*IF*/if (((((T673*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=1;
while (!((_i)>((((T608*)((T608*)((((T673*)C))->_list/*8*/))))->_upper/*8*/))) {
_a=r608item(((T608*)((((T673*)C))->_list/*8*/)),_i);
/*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
r608add_last(((T608*)a1),_a);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
void r673from_runnable(T673* C,T0* a1){
C->_list=a1;
C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T673*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
}
void r673make(T673* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
/*No:CLASS_INVARIANT.set_header_comment*/
/*No:CLASS_INVARIANT.start_position*/
/*No:CLASS_INVARIANT.list*/
/*No:CLASS_INVARIANT.current_type*/
/*No:CLASS_INVARIANT.header_comment*/
/*No:RUN_FEATURE_7.arguments*/
/*No:RUN_FEATURE_7.us_copy*/
/*No:RUN_FEATURE_7.actuals_clients*/
void r906make(T906* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r906run_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);
r906initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_7.name*/
int r906arg_count(T906* C){
int R=0;
/*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_7.local_vars*/
/*No:RUN_FEATURE_7.base_feature*/
/*No:RUN_FEATURE_7.start_position*/
/*No:RUN_FEATURE_7.ensure_assertion*/
int r906is_exported_in(T906* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r906clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_7.result_type*/
void r906add_client(T906* C,T0* a1){
int _i=0;
/*IF*/if (((((T906*)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*)((((T906*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T906*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r906run_class(C))),a1);
}
/*No:RUN_FEATURE_7.require_assertion*/
/*No:RUN_FEATURE_7.use_current_state*/
/*No:RUN_FEATURE_7.current_type*/
T0* r906run_class(T906* C){
T0* R=NULL;
R=X291run_class((((T906*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_7.ucs_not_computed*/
T0* r906clients(T906* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T906*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T906*)C))->_current_type/*4*/);
_bfbc=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_clients/*20*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T906*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T906*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_7.clients_memory*/
void r906initialize(T906* C){
C->_arguments=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_arguments/*24*/;
/*IF*/if ((((((T906*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T906*)C))->_arguments/*20*/)),(((T906*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T0*)ms64_473))==((void*)(X776to_string((((T906*)C))->_name/*16*/))))&&(X291is_expanded((((T906*)C))->_current_type/*4*/))) {
}
else {
C->_require_assertion=r883run_require((T0*)C);
}
/*FI*/}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r883run_ensure((T0*)C);
}
/*FI*/}
/*No:SMALL_EIFFEL.dos_system*/
/*No:SMALL_EIFFEL.fz_system_se*/
/*No:SMALL_EIFFEL.fz_sys*/
int fBC604loading_path=0;
T0*oBC604loading_path=NULL;
T0* r604loading_path(T604* C){
if (fBC604loading_path==0){
T0* R=NULL;
T0* _file=NULL;
T0* _path=NULL;
fBC604loading_path=1;
{T52*n=malloc(sizeof(*n));
*n=M52;
r52make(n,1,10);
R=(T0*)n;
}
r52clear(((T52*)R));
{T675*n=malloc(sizeof(*n));
*n=M675;
r675connect_to(n,((T0*)ms2_604));
_file=(T0*)n;
}
/*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
while (!(r675end_of_input(((T675*)_file)))) {
r675read_line(((T675*)_file));
r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
}
r675disconnect(((T675*)_file));
}
/*FI*/_path=r7twin(((T7*)(r604small_eiffel_directory(C))));
r604add_directory(C,_path,((T0*)ms126_470));
r7append(((T7*)_path),((T0*)ms3_604));
r7append(((T7*)_path),r604system_name(C));
r675connect_to(((T675*)_file),_path);
/*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
while (!(r675end_of_input(((T675*)_file)))) {
r675read_line(((T675*)_file));
r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
}
r675disconnect(((T675*)_file));
}
else {
r306w_put_string(((T0*)ms4_604));
r306w_put_string(_path);
r306w_put_string(((T0*)ms5_604));
}
/*FI*/oBC604loading_path=R;}
return oBC604loading_path;}
/*No:SMALL_EIFFEL.unix_system*/
/*No:SMALL_EIFFEL.exit_failure_code*/
/*No:SMALL_EIFFEL.vms_system*/
T0*oBC604run_class_dictionary=NULL;
T0* r604small_eiffel_directory(T604* C){
if (fBC364small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
fBC364small_eiffel_directory=1;
R=r604get_environment_variable(C,((T0*)ms121_470));
/*IF*/if ((R)==((void*)(NULL))) {
R=r7twin(((T7*)(((T0*)ms121_470))));
r7to_upper(((T7*)R));
R=r604get_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;}
T0*oBC604stack_rf=NULL;
/*No:SMALL_EIFFEL.amiga_system*/
/*No:SMALL_EIFFEL.make*/
/*No:SMALL_EIFFEL.last_unique*/
T0*oBC604tmp_tail=NULL;
int fBC604tmp_class_name=0;
T0*oBC604tmp_class_name=NULL;
T0* r604tmp_class_name(void){
if (fBC604tmp_class_name==0){
T0* R=NULL;
fBC604tmp_class_name=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms1_473),NULL);
R=(T0*)n;
}
oBC604tmp_class_name=R;}
return oBC604tmp_class_name;}
void r604add_class(T604* C,T0* a1){
r718put(((T718*)(oBC604base_class_dictionary)),a1,(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/);
r604incr_magic_count(C);
}
void r604push(T604* C,T0* a1){
C->_top=((((T604*)C))->_top/*12*/)+(1);
r477force(((T477*)(oBC604stack_rf)),a1,(((T604*)C))->_top/*12*/);
}
int r604next_unique(T604* C){
int R=0;
/*IF*/if (((((T604*)C))->_last_unique/*16*/)<(1000)) {
C->_last_unique=1000;
}
/*FI*/C->_last_unique=((((T604*)C))->_last_unique/*16*/)+(1);
R=(((T604*)C))->_last_unique/*16*/;
return R;
}
T0* r604top_rf(T604* C){
T0* R=NULL;
R=r477item(((T477*)(oBC604stack_rf)),(((T604*)C))->_top/*12*/);
return R;
}
void r604add_directory(T604* C,T0* a1,T0* a2){
/*IF*/if ((((T0*)ms17_364))==((void*)(r604system_name(C)))) {
r7set_last(((T7*)a1),'\57');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
 else if ((((T0*)ms19_364))==((void*)(r604system_name(C)))) {
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms15_364))==((void*)(r604system_name(C)))) {
r7set_last(((T7*)a1),'\72');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\72');
}
 else if ((((T0*)ms14_364))==((void*)(r604system_name(C)))) {
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms16_364))==((void*)(r604system_name(C)))) {
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms13_364))==((void*)(r604system_name(C)))) {
r7set_last(((T7*)a1),'\57');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
 else if ((((T0*)ms18_364))==((void*)(r604system_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*/}
T0*oBC604parser_buffer_path=NULL;
/*No:SMALL_EIFFEL.windows_system*/
T0* r604get_environment_variable(T604* 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;
}
/*No:SMALL_EIFFEL.short_flag*/
/*No:SMALL_EIFFEL.fz_03*/
T0* r604get_class(T0* a1){
T0* R=NULL;
/*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),a1)) {
R=r718at(((T718*)(oBC604base_class_dictionary)),a1);
}
else {
r451make(((T451*)(r604tmp_class_name())),a1,NULL);
R=r451base_class(((T451*)(r604tmp_class_name())));
}
/*FI*/return R;
}
T0* r604system_name(T604* C){
if (fBC364system_name==0){
T0* R=NULL;
int _i=0;
fBC364system_name=1;
r7copy(((T7*)(oBC364tmp_path)),r604small_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)),r604small_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)),r604small_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)),r604small_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)),r604small_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(r604small_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;}
int r604parser_buffer_for(T604* C,T0* a1){
int R=0;
int _i=0;
r7copy(((T7*)(oBC604tmp_tail)),a1);
r7to_lower(((T7*)(oBC604tmp_tail)));
/*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
}
/*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
_i=(_i)+(1);
}
/*IF*/if ((!(R))&&(r794has(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail))) {
r7copy(((T7*)(oBC604parser_buffer_path)),r794at(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail));
r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
/*IF*/if (/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/) {
R=1;
}
else {
r306w_put_string(((T0*)ms10_604));
r306w_put_string(oBC604parser_buffer_path);
r306w_put_string(((T0*)ms137_470));
exit(1);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r7copy(((T7*)(oBC604tmp_tail)),a1);
/*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
}
/*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
_i=(_i)+(1);
}
}
/*FI*//*IF*/if (!(R)) {
r306w_put_string(((T0*)ms11_604));
r306w_put_string(a1);
r306w_put_string(((T0*)ms12_604));
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC604parser_buffer_path)))))->_count)=(0);
/*]*/
r604append_loading_path_in(C,oBC604parser_buffer_path);
r306w_put_string(oBC604parser_buffer_path);
}
/*FI*/return R;
}
/*No:SMALL_EIFFEL.fz_b0*/
/*No:SMALL_EIFFEL.is_ready*/
/*No:SMALL_EIFFEL.base_class_count*/
/*No:SMALL_EIFFEL.fz_se*/
/*No:SMALL_EIFFEL.os2_system*/
void r604pop(T604* C){
C->_top=((((T604*)C))->_top/*12*/)-(1);
}
int fBC604rename_dictionary=0;
T0*oBC604rename_dictionary=NULL;
T0* r604rename_dictionary(T604* C){
if (fBC604rename_dictionary==0){
T0* R=NULL;
T0* _short_name=NULL;
T0* _full_name=NULL;
int _i=0;
fBC604rename_dictionary=1;
{T794*n=malloc(sizeof(*n));
*n=M794;
r794make(n);
R=(T0*)n;
}
_i=1;
while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
r7copy(((T7*)(oBC364tmp_path)),r52item(((T52*)(r604loading_path(C))),_i));
r7append(((T7*)(oBC364tmp_path)),((T0*)ms13_604));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
/*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/) {
while (!(r675end_of_input(((T675*)(oBC364tmp_file_read))))) {
r675read_word(((T675*)(oBC364tmp_file_read)));
_full_name=r7twin(((T7*)(oBC762last_string)));
r675read_word(((T675*)(oBC364tmp_file_read)));
_short_name=r7twin(((T7*)(oBC762last_string)));
r7prepend(((T7*)_short_name),r52item(((T52*)(r604loading_path(C))),_i));
/*IF*/if (r794has(((T794*)R),_full_name)) {
r306w_put_string(((T0*)ms14_604));
r306w_put_string(_full_name);
r306w_put_string(((T0*)ms15_604));
r306w_put_string(_short_name);
r306w_put_string(((T0*)ms16_604));
r306w_put_string(r794at(((T794*)R),_full_name));
r306w_put_string(((T0*)ms17_604));
exit(1);
}
/*FI*/r794put(((T794*)R),_short_name,_full_name);
r675skip_separators(((T675*)(oBC364tmp_file_read)));
}
r675disconnect(((T675*)(oBC364tmp_file_read)));
}
/*FI*/_i=(_i)+(1);
}
oBC604rename_dictionary=R;}
return oBC604rename_dictionary;}
T0* r604run_class(T0* a1){
T0* R=NULL;
T0* _run_string=NULL;
_run_string=X291run_time_mark(a1);
/*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) {
R=r250at(((T250*)(oBC604run_class_dictionary)),_run_string);
}
else {
{T368*n=malloc(sizeof(*n));
*n=M368;
r368make(n,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r604append_loading_path_in(T604* C,T0* a1){
T0* _sed=NULL;
int _i=0;
r7append(((T7*)a1),((T0*)ms62_604));
_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),r52item(((T52*)(r604loading_path(C))),_i));
r7extend(((T7*)a1),'\42');
r7extend(((T7*)a1),'\n');
_i=(_i)+(1);
}
r7append(((T7*)a1),((T0*)ms63_604));
r7append(((T7*)a1),((T0*)ms121_470));
_sed=r604get_environment_variable(C,((T0*)ms121_470));
r7append(((T7*)a1),((T0*)ms64_604));
/*IF*/if ((_sed)==((void*)(NULL))) {
r7append(((T7*)a1),((T0*)ms65_604));
}
else {
r7append(((T7*)a1),((T0*)ms66_604));
r7append(((T7*)a1),_sed);
r7append(((T7*)a1),((T0*)ms67_604));
}
/*FI*/r7extend(((T7*)a1),'\n');
}
/*No:SMALL_EIFFEL.top*/
int r604is_used(T0* a1){
int R=0;
R=r718has(((T718*)(oBC604base_class_dictionary)),a1);
return R;
}
/*No:SMALL_EIFFEL.macintosh_system*/
/*No:SMALL_EIFFEL.set_short_flag*/
void r604incr_magic_count(T604* C){
C->_magic_count=((((T604*)C))->_magic_count/*8*/)+(1);
}
/*No:SMALL_EIFFEL.magic_count*/
/*No:SMALL_EIFFEL.eiffel_suffix*/
T0* r604base_class(T604* C,T0* a1){
T0* R=NULL;
/*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/)) {
R=r718at(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/);
}
 else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_604);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
/*IF*/if (r604parser_buffer_for(C,(((T451*)((T451*)a1)))->_to_string/*0*/)) {
R=r818analyse_class(((T818*)(oBC364eiffel_parser)),a1);
}
/*FI*//*IF*/if ((R)==((void*)(NULL))) {
r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_604);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*FI*/return R;
}
/*No:SMALL_EIFFEL.fatal_error*/
T0* r604load_class(T604* C,T0* a1){
T0* R=NULL;
/*IF*/if (r604parser_buffer_for(C,a1)) {
R=r818analyse_class(((T818*)(oBC364eiffel_parser)),NULL);
/*IF*/if ((R)==((void*)(NULL))) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_604);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
else {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_604);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/return R;
}
/*No:SMALL_EIFFEL.us_any*/
T0*oBC604base_class_dictionary=NULL;
T0* r349to_runnable_integer(T349* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_e)))) {
C->_expression=_e;
C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
}
else {
r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms60_470));
}
/*FI*/R=(T0*)C;
}
else {
{T349*n=malloc(sizeof(*n));
*n=M349;
/*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
/*]*/
R=(T0*)n;
}
R=r349to_runnable_integer(((T349*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_ITEM_1.make*/
/*No:WHEN_ITEM_1.expression*/
T0* r349start_position(T349* C){
T0* R=NULL;
R=X662start_position((((T349*)C))->_expression/*8*/);
return R;
}
/*No:WHEN_ITEM_1.clear_e_when*/
/*No:WHEN_ITEM_1.expression_value*/
/*No:WHEN_ITEM_1.fz_bcv*/
T0* r349twin(T349* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T349*)R)=*C;
return R;
}
/*No:WHEN_ITEM_1.current_type*/
/*No:WHEN_ITEM_1.fz_biv*/
void r349error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r349to_runnable_character(T349* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_character(X662result_type(_e)))) {
C->_expression=_e;
C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
}
else {
r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms58_470));
}
/*FI*/R=(T0*)C;
}
else {
{T349*n=malloc(sizeof(*n));
*n=M349;
/*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
/*]*/
R=(T0*)n;
}
R=r349to_runnable_character(((T349*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_ITEM_1.e_when*/
/*No:TYPE_NATIVE_ARRAY.us_put*/
void r933short(T933* C){
r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
r933short_hook(C);
r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
}
/*No:TYPE_NATIVE_ARRAY.has_creation*/
/*No:TYPE_NATIVE_ARRAY.is_anchored*/
/*No:TYPE_NATIVE_ARRAY.is_array*/
int r933is_a(T933* C,T0* a1){
int R=0;
R=(r933run_time_mark(C))==((void*)(X291run_time_mark(a1)));
/*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
T0*oBC933tmp_str=NULL;
/*No:TYPE_NATIVE_ARRAY.is_pointer*/
/*No:TYPE_NATIVE_ARRAY.run_type*/
/*No:TYPE_NATIVE_ARRAY.is_string*/
/*No:TYPE_NATIVE_ARRAY.is_like_feature*/
/*No:TYPE_NATIVE_ARRAY.is_like_current*/
void r933make(T933* C,T0* a1,T0* a2){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms18_473),a1);
C->_base_class_name=(T0*)n;
}
C->_generic_list=se_ma701(1,a2);
r7copy(((T7*)(oBC933tmp_str)),((T0*)ms18_473));
r7extend(((T7*)(oBC933tmp_str)),'\133');
r7append(((T7*)(oBC933tmp_str)),X291written_mark(a2));
r7extend(((T7*)(oBC933tmp_str)),'\135');
C->_written_mark=r902item(oBC933tmp_str);
}
/*No:TYPE_NATIVE_ARRAY.nb_errors*/
/*No:TYPE_NATIVE_ARRAY.us_item*/
int fBC364type_any=0;
T0*oBC364type_any=NULL;
T0* r933type_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_NATIVE_ARRAY.start_position*/
/*No:TYPE_NATIVE_ARRAY.fz_inako*/
/*No:TYPE_NATIVE_ARRAY.is_character*/
/*No:TYPE_NATIVE_ARRAY.written_mark*/
T0* r933to_runnable(T933* C,T0* a1){
T0* R=NULL;
T0* _rc=NULL;
T0* _rt=NULL;
T0* _elt2=NULL;
T0* _elt1=NULL;
/*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(C))) {
R=(T0*)C;
}
else {
_elt1=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
_elt2=X291to_runnable(_elt1,a1);
/*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
/*IF*/if ((_elt2)!=((void*)(NULL))) {
r683add_position(X291start_position(_elt2));
}
/*FI*/r933error(X291start_position(_elt1),((T0*)ms59_470));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_elt2=X291run_type(_elt2);
/*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(NULL))) {
R=(T0*)C;
/*IF*/if ((_elt2)==((void*)(_elt1))) {
C->_run_type=(T0*)C;
r933load_basic_features(C);
}
else {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
C->_run_type=(T0*)n;
}
r933load_basic_features(((T933*)((((T933*)C))->_run_type/*16*/)));
}
/*FI*/}
else {
R=r933twin(C);
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
_rt=(T0*)n;
}
/*[IRF3.3set_run_type*/((((T933*)(((T933*)R))))->_run_type)=(_rt);
/*]*/
r933load_basic_features(((T933*)_rt));
}
/*FI*/}
/*FI*/}
/*FI*/_rc=r933run_class(((T933*)R));
r368set_at_run_time(((T368*)_rc));
return R;
}
int r933is_run_type(T933* C){
int R=0;
T0* _t=NULL;
/*IF*/if (((((T933*)C))->_run_type/*16*/)!=((void*)(NULL))) {
R=1;
}
else {
_t=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
/*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
C->_run_type=(T0*)C;
r933load_basic_features(C);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_NATIVE_ARRAY.is_formal_generic*/
/*No:TYPE_NATIVE_ARRAY.generic_list*/
/*No:TYPE_NATIVE_ARRAY.is_real*/
T0* r933twin(T933* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T933*)R)=*C;
return R;
}
/*No:TYPE_NATIVE_ARRAY.is_bit*/
T0* r933smallest_ancestor(T933* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_a(_rto,(((T933*)C))->_run_type/*16*/)) {
R=_rto;
}
 else if (r933is_a(((T933*)((((T933*)C))->_run_type/*16*/)),_rto)) {
R=(((T933*)C))->_run_type/*16*/;
}
else {
R=r933type_any();
}
/*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r51clear(((T51*)(oBC683positions)));
/*]*/
return R;
}
/*No:TYPE_NATIVE_ARRAY.set_run_type*/
/*No:TYPE_NATIVE_ARRAY.is_boolean*/
/*No:TYPE_NATIVE_ARRAY.is_double*/
T0* r933run_class(T933* C){
T0* R=NULL;
/*IF*/if (r933is_run_type(C)) {
R=r604run_class((((T933*)C))->_run_type/*16*/);
}
/*FI*/return R;
}
T0* r933run_time_mark(T933* C){
T0* R=NULL;
/*IF*/if (r933is_run_type(C)) {
R=(((T933*)((T933*)((((T933*)C))->_run_type/*16*/))))->_written_mark/*12*/;
}
/*FI*/return R;
}
int r933is_a_in(T933* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T933*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r933to_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* r933look_up_for(T933* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r933base_class(C))),a1,a2);
return R;
}
/*No:TYPE_NATIVE_ARRAY.expanded_initializer*/
/*No:TYPE_NATIVE_ARRAY.fz_dot*/
/*No:TYPE_NATIVE_ARRAY.is_generic*/
/*No:TYPE_NATIVE_ARRAY.fz_bga*/
/*No:TYPE_NATIVE_ARRAY.used_as_reference*/
/*No:TYPE_NATIVE_ARRAY.is_reference*/
void r933error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r933load_basic_features(T933* C){
T0* _rc=NULL;
T0* _rf=NULL;
T0* _elt_type=NULL;
_rc=r933run_class(C);
r368set_at_run_time(((T368*)_rc));
_elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
/*IF*/if (X291is_expanded(_elt_type)) {
r368set_at_run_time(((T368*)(X291run_class(_elt_type))));
}
/*FI*/_rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms104_473));
/*IF*/if ((X291expanded_initializer(_elt_type))!=((void*)(NULL))) {
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms57_473));
}
/*FI*/}
T0* r933base_class(T933* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T933*)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;
}
void r933short_hook(T933* C){
r580a_class_name(((T580*)(oBC364short_print)),(((T933*)C))->_base_class_name/*4*/);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms11_933),((T0*)ms12_933));
X291short_hook(r701first(((T701*)((((T933*)C))->_generic_list/*8*/))));
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms13_933),((T0*)ms14_933));
}
/*No:TYPE_NATIVE_ARRAY.is_any*/
/*No:TYPE_NATIVE_ARRAY.us_clear_all*/
/*No:TYPE_NATIVE_ARRAY.base_class_name*/
/*No:TYPE_NATIVE_ARRAY.us_native_array*/
/*No:TYPE_NATIVE_ARRAY.is_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_basic_eiffel_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_none*/
/*No:TYPE_NATIVE_ARRAY.is_integer*/
void r933make_runnable(T933* C,T0* a1,T0* a2){
r933make(C,a1,a2);
C->_run_type=(T0*)C;
}
void r886short(T886* C){
char _c=0;
int _i=0;
r580hook(((T580*)(oBC364short_print)),((T0*)ms1_361));
_i=1;
while (!((_i)>((((T7*)((T7*)((((T886*)C))->_to_string/*8*/))))->_count/*4*/))) {
_c=/*(IRF4.6item*/((((T7*)((T7*)((((T886*)C))->_to_string/*8*/))))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*IF*/if ((_c)==('\137')) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_361),((T0*)ms3_361));
}
else {
/*[IRF3.6a_character*/{char b1=_c;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
r580hook(((T580*)(oBC364short_print)),((T0*)ms4_361));
}
T0* r886add_comment(T886* 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 r886to_integer(T886* C){
int R=0;
r886error((((T886*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
void r886bracketed_short(T886* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r886short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r886is_a(T886* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T886*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T886*)C))->_start_position/*12*/);
r886error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME2.is_current*/
/*No:ARGUMENT_NAME2.to_string*/
/*No:ARGUMENT_NAME2.fz_iinaiv*/
/*No:ARGUMENT_NAME2.set_result_type*/
/*No:ARGUMENT_NAME2.start_position*/
/*No:ARGUMENT_NAME2.precedence*/
T0* r886to_runnable(T886* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rf=NULL;
_rf=r604top_rf(((T604*)(oBC364small_eiffel)));
_rt=r31type(((T31*)(/*X496*/((T0*)(((T808*)((T808*)_rf)))->_arguments/*20*/))),(((T886*)C))->_rank/*16*/);
/*IF*/if (((((T886*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=_rt;
R=(T0*)C;
}
else {
{T886*n=malloc(sizeof(*n));
*n=M886;
r886make_runnable(n,(T0*)C,a1,_rt);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME2.set_rank*/
/*No:ARGUMENT_NAME2.rank*/
/*No:ARGUMENT_NAME2.result_type*/
/*No:ARGUMENT_NAME2.atomic_precedence*/
/*No:ARGUMENT_NAME2.current_type*/
/*No:ARGUMENT_NAME2.is_manifest_string*/
void r886refer_to(T886* C,T0* a1,T0* a2,int a3){
T0* _declaration_name=NULL;
C->_start_position=a1;
C->_rank=a3;
_declaration_name=/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)a2)))->_flat_list/*12*/)),a3)/*)*/;
C->_to_string=(((T873*)((T873*)_declaration_name)))->_to_string/*8*/;
C->_result_type=(((T873*)((T873*)_declaration_name)))->_result_type/*20*/;
}
/*No:ARGUMENT_NAME2.is_void*/
void r886error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r886short_target(T886* C){
r886short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
void r886make_runnable(T886* C,T0* a1,T0* a2,T0* a3){
*((T886*)(C))=*((T886*)(a1));
C->_current_type=a2;
C->_result_type=a3;
}
void r446short(T446* C){
char _c=0;
int _i=0;
r580hook(((T580*)(oBC364short_print)),((T0*)ms6_446));
_i=1;
while (!((_i)>((((T7*)((T7*)((((T446*)C))->_to_string/*12*/))))->_count/*4*/))) {
_c=/*(IRF4.6item*/((((T7*)((T7*)((((T446*)C))->_to_string/*12*/))))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*IF*/if ((_c)==('\137')) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms7_446),((T0*)ms8_446));
}
else {
/*[IRF3.6a_character*/{char b1=_c;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
r580hook(((T580*)(oBC364short_print)),((T0*)ms9_446));
}
T0* r446add_comment(T446* 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 r446to_integer(T446* C){
int R=0;
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms69_470));
return R;
}
void r446bracketed_short(T446* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r446short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
/*No:SIMPLE_FEATURE_NAME.set_is_frozen*/
int r446is_a(T446* C,T0* a1){
int R=0;
R=X291is_a(X291run_type(/*(IRF4.6result_type*/(((T820*)((T820*)((((T446*)C))->_run_feature_2/*20*/))))->_result_type/*24*//*)*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T446*)C))->_start_position/*16*/);
r446error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:SIMPLE_FEATURE_NAME.is_current*/
void r446make(T446* C,T0* a1,T0* a2){
C->_to_string=r902item(a1);
C->_start_position=a2;
}
/*No:SIMPLE_FEATURE_NAME.nb_errors*/
/*No:SIMPLE_FEATURE_NAME.to_string*/
/*No:SIMPLE_FEATURE_NAME.fz_iinaiv*/
T0* r446run_feature(T446* C,T0* a1){
T0* R=NULL;
R=r368get_feature(((T368*)(X291run_class(a1))),(T0*)C);
return R;
}
/*No:SIMPLE_FEATURE_NAME.start_position*/
/*No:SIMPLE_FEATURE_NAME.precedence*/
T0* r446to_runnable(T446* C,T0* a1){
T0* R=NULL;
T0* _new_name=NULL;
T0* _rf=NULL;
T0* _wbc=NULL;
/*IF*/if (((((T446*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
_wbc=r627base_class(((T627*)((((T446*)C))->_start_position/*16*/)));
_new_name=r605new_name_of(((T605*)(X291base_class(a1))),_wbc,(T0*)C);
_rf=r368get_feature(((T368*)(X291run_class((((T446*)C))->_current_type/*8*/))),_new_name);
/*IF*/if ((_rf)==((void*)(NULL))) {
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms2_446));
}
else {
C->_run_feature_2=_rf;
if(NULL!=(C->_run_feature_2))switch(((T0*)C->_run_feature_2)->id) {
case 820: 
break;
default:
C->_run_feature_2=NULL;
};/*IF*/if (((((T446*)C))->_run_feature_2/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position(_rf));
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms3_446));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
else {
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms4_446));
}
/*FI*/}
 else if ((a1)==((void*)((((T446*)C))->_current_type/*8*/))) {
R=(T0*)C;
}
else {
{T446*n=malloc(sizeof(*n));
*n=M446;
r446make(n,(((T446*)C))->_to_string/*12*/,(((T446*)C))->_start_position/*16*/);
R=(T0*)n;
}
R=r446to_runnable(((T446*)R),a1);
}
/*FI*/return R;
}
/*No:SIMPLE_FEATURE_NAME.run_feature_2*/
/*No:SIMPLE_FEATURE_NAME.result_type*/
/*No:SIMPLE_FEATURE_NAME.atomic_precedence*/
/*No:SIMPLE_FEATURE_NAME.current_type*/
/*No:SIMPLE_FEATURE_NAME.to_key*/
/*No:SIMPLE_FEATURE_NAME.is_manifest_string*/
/*No:SIMPLE_FEATURE_NAME.is_frozen*/
/*No:SIMPLE_FEATURE_NAME.is_void*/
void r446undefine_in(T446* C,T0* a1){
/*IF*/if ((((T446*)C))->_is_frozen/*4*/) {
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms1_776));
r605fatal_undefine(((T605*)a1),(T0*)C);
}
/*FI*/}
void r446error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r446short_target(T446* C){
r446short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
T0* r446origin_base_class(T446* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T446*)C))->_start_position/*16*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=r627base_class(((T627*)_sp));
}
/*FI*/return R;
}
/*No:CST_ATT_UNIQUE.arguments*/
T0* r398try_to_undefine(T398* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r398try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T398*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_UNIQUE.is_deferred*/
void r398add_into(T398* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)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*)((((T398*)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);
}
}
T0* r398try_to_undefine_aux(T398* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r398start_position(C));
r398error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r398make(T398* C,T0* a1,T0* a2){
T0* _ic=NULL;
int _i=0;
r398make_e_feature(C,a1,a2);
{T28*n=malloc(sizeof(*n));
*n=M28;
r28make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
C->_values=(T0*)n;
}
_i=1;
while (!((_i)>((((T28*)((T28*)((((T398*)C))->_values/*24*/))))->_upper/*12*/))) {
{T342*n=malloc(sizeof(*n));
*n=M342;
r342make(n,r604next_unique(((T604*)(oBC364small_eiffel))),NULL);
_ic=(T0*)n;
}
/*[IRF3.6put*/{T28* C1=((T28*)((((T398*)C))->_values/*24*/));
T0* b1=_ic;
int b2=_i;
((((T28*)C1))->_storage/*4*/)[(b2)-((((T28*)C1))->_lower/*16*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
/*No:CST_ATT_UNIQUE.nb_errors*/
/*No:CST_ATT_UNIQUE.set_header_comment*/
/*No:CST_ATT_UNIQUE.values*/
T0* r398start_position(T398* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r398to_run_feature(T398* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X291run_class(a1);
R=r368at(((T368*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 808: 
break;
default:
R=NULL;
};/*IF*/if ((R)==((void*)(NULL))) {
{T808*n=malloc(sizeof(*n));
*n=M808;
r808make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CST_ATT_UNIQUE.ensure_assertion*/
/*No:CST_ATT_UNIQUE.code_require*/
/*No:CST_ATT_UNIQUE.result_type*/
/*No:CST_ATT_UNIQUE.em1*/
/*No:CST_ATT_UNIQUE.set_clients*/
/*No:CST_ATT_UNIQUE.em2*/
/*No:CST_ATT_UNIQUE.value*/
/*No:CST_ATT_UNIQUE.require_assertion*/
/*No:CST_ATT_UNIQUE.names*/
int r398can_hide(T398* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T398*)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*//*AF*//*AE*/
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_UNIQUE.header_comment*/
int r398is_merge_with(T398* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_UNIQUE.fz_dot*/
/*No:CST_ATT_UNIQUE.first_name*/
/*No:CST_ATT_UNIQUE.clients*/
void r398collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r398error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_UNIQUE.base_class*/
void r398make_e_feature(T398* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:INSTRUCTION_WITH_COMMENT.add_comment*/
void r59make(T59* C,T0* a1,T0* a2){
C->_instruction=a1;
C->_comment=a2;
}
/*No:INSTRUCTION_WITH_COMMENT.instruction*/
T0* r59start_position(T59* C){
T0* R=NULL;
R=X465start_position((((T59*)C))->_instruction/*8*/);
return R;
}
/*No:INSTRUCTION_WITH_COMMENT.comment*/
T0* r59to_runnable(T59* C,T0* a1){
T0* R=NULL;
T0* _ri=NULL;
/*IF*/if (((((T59*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_ri=X465to_runnable((((T59*)C))->_instruction/*8*/,a1);
/*IF*/if ((_ri)==((void*)(NULL))) {
r59error(X465start_position((((T59*)C))->_instruction/*8*/),((T0*)ms1_59));
}
else {
C->_instruction=_ri;
R=(T0*)C;
}
/*FI*/}
else {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(((T59*)C))->_instruction/*8*/,(((T59*)C))->_comment/*12*/);
R=(T0*)n;
}
R=r59to_runnable(((T59*)R),a1);
}
/*FI*/return R;
}
/*No:INSTRUCTION_WITH_COMMENT.run_compound*/
void r59error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:INSTRUCTION_WITH_COMMENT.end_mark_comment*/

