ftp.nice.ch/pub/next/developer/languages/eiffel/SmallEiffel.0.91.N.bs.tar.gz#/SmallEiffel/bin_c/compile_to_c29.c

This is compile_to_c29.c in view mode; [Download] [Up]

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.91)    --      FRANCE
-- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
-- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
-- CRIN (Centre de Recherche en Informatique de Nancy)
-- FRANCE 
*/
#include "compile_to_c.h"
/*INDEX_CLAUSE*/void rT69add_index_value(T69 *C,T0* a1){
/*IF*/if (!((C)->_list)) {
C->_list=ma(85,0,1,a1);
}
else {
XrT85add_last((C)->_list,a1);
}
/*FI*/}/*COMPILE_TO_C*/T0* rT26get_environment_variable(/*C*/T0* a1){
T0* R=NULL;
void * _p=0;
_p=rT7to_external((T7*)a1);
_p=((void*)getenv((char*)_p));
/*IF*/if (((int)_p)) {
R=(T0*)e2s((char*)_p);
}
/*FI*/return R;
}
/*COMPILE_TO_C*/void rT26automat(T26 *C){
T0* _a=NULL;
int _arg=0;
_arg=1;
while (!(((_arg)>(/*(IRF4*/((T34*)oRBC1command_arguments)->_upper/*)*/))||(((C)->_state)>(7)))) {
_a=rT26argument(_arg);
{int iv1=(C)->_state;
if (0 == iv1) goto l503;
goto l504;
 l503: ;
/*IF*/if ((rT7item((T7*)_a,1))!=('\55')) {
/*IF*/if (rT7has_suffix((T7*)_a,(T0 *)ms27_27)) {
rT44add_c_object((T44*)oRBC27cpp,_a);
}
 else if (rT7has_suffix((T7*)_a,(T0 *)ms25_27)) {
rT44add_c_object((T44*)oRBC27cpp,_a);
}
 else if (!((C)->_root_class)) {
C->_root_class=_a;
/*[IRF3:set_root_class*//*AW*/((T47*)oRBC27eiffel_run_control)->_root_class=(_a);/*]*/
C->_state=2;
}
else {
rT44add_c_compiler_option((T44*)oRBC27cpp,_a);
}
/*FI*/}
 else if (rT7is_equal(ms5_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_boost*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(-6);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms6_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_no_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(-5);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms7_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_require_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(-4);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms8_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_ensure_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(-3);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms9_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_invariant_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(-2);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms10_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_loop_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(-1);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms11_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_all_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(0);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms12_26,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
/*[IRF3:set_debug_check*//*AW*/((T47*)oRBC27eiffel_run_control)->_level=(1);/*]*/
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms13_26,_a)) {
/*[IRF3:set_no_strip*//*AW*/((T44*)oRBC27cpp)->_no_strip=(1);/*]*/
}
 else if (rT7is_equal(ms14_26,_a)) {
C->_state=3;
}
 else if (rT7has_prefix((T7*)_a,(T0 *)ms15_26)) {
rT44add_c_library((T44*)oRBC27cpp,_a);
}
 else if (rT7is_equal(ms16_26,_a)) {
/*IF*/if (((int)(C)->_output_name)) {
rT48error((T48*)oRBC27eh,(T0 *)ms17_26);
C->_state=9;
}
else {
C->_state=1;
}
/*FI*/}
else {
rT44add_c_compiler_option((T44*)oRBC27cpp,_a);
}
/*FI*/goto l502;
 l504: ;
if (1 == iv1) goto l505;
goto l506;
 l505: ;
/*[IRF3:set_output_name*//*AW*/((T44*)oRBC27cpp)->_output_name=(_a);/*]*/
C->_state=0;
goto l502;
 l506: ;
if (2 == iv1) goto l507;
goto l508;
 l507: ;
C->_start_proc=_a;
C->_state=0;
goto l502;
 l508: ;
if (3 == iv1) goto l509;
goto l510;
 l509: ;
/*[IRF3:clear*//*AW*/((T7*)(T0 *)ms502_44)->_count=(0);/*]*/
rT7append((T7*)(T0 *)ms502_44,_a);
C->_state=0;
goto l502;
 l510: ;
 l502: ;
}
_arg=(_arg)+(1);
}
/*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
rT55compile_to_c((T55*)oRBC27small_eiffel,(C)->_root_class,(C)->_start_proc);
}
/*FI*/}/*COMPILE_TO_C*/char rT26directory_separator(/*C*/void){
if (ofBC27directory_separator==0){
char R=0;
ofBC27directory_separator=1;
R=rT7last((T7*)rT26small_eiffel_directory());
oRBC27directory_separator=R;}
return oRBC27directory_separator;}
/*COMPILE_TO_C*/void rT26die_with_code(/*C*/int a1){
exit(a1);
}T0*oRBC27hlp_file_name;
/*COMPILE_TO_C*/void rT26error_level(T26 *C,T0* a1){
C->_state=9;
rT48append((T0 *)ms18_26);
rT48append((C)->_level);
rT48append((T0 *)ms19_26);
rT48append(a1);
rT48append((T0 *)ms102_27);
rT48print_as_error((T48*)oRBC27eh);
}/*COMPILE_TO_C*/void rT26add_directory(/*C*/T0* a1,T0* a2){
rT7append((T7*)a1,a2);
rT7extend((T7*)a1,rT26directory_separator());
}/*COMPILE_TO_C*/void rT26print_hlp(/*C*/T0* a1){
rT7copy((T7*)oRBC27hlp_file_name,rT26small_eiffel_directory());
rT26add_directory(oRBC27hlp_file_name,(T0 *)ms2_27);
rT7append((T7*)oRBC27hlp_file_name,a1);
/*IF*/if (!(rT7has_suffix((T7*)oRBC27hlp_file_name,(T0 *)ms35_27))) {
rT7append((T7*)oRBC27hlp_file_name,(T0 *)ms35_27);
}
/*FI*//*IF*/if (!(rT26file_exists(oRBC27hlp_file_name))) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms3_27);
rT38put_string((T38*)oRBC1std_error,oRBC27hlp_file_name);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms4_27);
rT26die_with_code(1);
}
/*FI*/rT42append_file((T42*)oRBC1std_output,oRBC27hlp_file_name);
}T0*oRBC1command_arguments;
/*COMPILE_TO_C*/T0* rT26small_eiffel_directory(/*C*/void){
if (ofBC27small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
ofBC27small_eiffel_directory=1;
R=rT26get_environment_variable((T0 *)ms124_27);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms124_27);
rT7to_upper((T7*)R);
R=rT26get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms124_27);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms1_27;
}
/*FI*/_i=((T7*)R)->_count;
while (!((_i)<(0))) {
_slash=rT7item((T7*)R,_i);
/*IF*/if ((rT3is_letter(_slash))||(rT3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
rT7extend((T7*)R,'\57');
}
 else if (!((rT7last((T7*)R))==(_slash))) {
rT7extend((T7*)R,_slash);
}
/*FI*/oRBC27small_eiffel_directory=R;}
return oRBC27small_eiffel_directory;}
/*COMPILE_TO_C*/T0* rT26argument(/*C*/int a1){
T0* R=NULL;
R=rT34item((T34*)oRBC1command_arguments,a1);
return R;
}
/*COMPILE_TO_C*/void rT26make(T26 *C){
/*IF*/if ((/*(IRF4*/((T34*)oRBC1command_arguments)->_upper/*)*/)<(2)) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms3_26);
rT26print_hlp((T0 *)ms4_26);
rT26die_with_code(1);
}
else {
rT26automat(C);
}
/*FI*/}/*COMPILE_TO_C*/int rT26file_exists(/*C*/T0* a1){
int R=0;
void * _p=0;
_p=rT7to_external((T7*)a1);
{FILE *f=fopen(((char*)_p),"r");
R=(f != NULL);
if (R) fclose(f);}
return R;
}
/*PROCEDURE*/int rT259attribute_writer(T259 *C){
int R=0;
T0* _fn=NULL;
T0* _argument_name=NULL;
T0* _args=NULL;
T0* _assignment=NULL;
T0* _rb=NULL;
_rb=(C)->_routine_body;
/*IF*/if (!((C)->_local_vars)) {
/*IF*/if ((((int)_rb))&&((rT142count((T142*)_rb))==(1))) {
_args=(C)->_arguments;
_assignment=rT142first((T142*)(C)->_routine_body);
if ((int)_assignment) switch (((T0 *)_assignment)->id) {
case 256: 
break;
default:
_assignment = NULL;
};/*IF*/if (!(_args)) {
/*IF*/if (((int)_assignment)) {
R=!(XrT72use_current(((T256*)_assignment)->_right_side));
}
/*FI*/}
 else if ((rT97count((T97*)_args))==(1)) {
/*IF*/if (((int)_assignment)) {
_argument_name=((T256*)_assignment)->_right_side;
if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
case 92: 
break;
default:
_argument_name = NULL;
};/*IF*/if (((int)_argument_name)) {
R=1;
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/}
 else if (!((C)->_arguments)) {
/*IF*/if ((((int)_rb))&&((rT142count((T142*)_rb))==(1))) {
_assignment=rT142first((T142*)(C)->_routine_body);
if ((int)_assignment) switch (((T0 *)_assignment)->id) {
case 256: 
break;
default:
_assignment = NULL;
};/*IF*/if (((int)_assignment)) {
_fn=((T256*)_assignment)->_left_side;
if ((int)_fn) switch (((T0 *)_fn)->id) {
case 70: case 74: case 71: 
break;
default:
_fn = NULL;
};/*IF*/if (((int)_fn)) {
R=!(XrT72use_current(((T256*)_assignment)->_right_side));
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*PROCEDURE*/T0* rT259runnable(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(rT162empty((T162*)a1))) {
R=rT162twin((T162*)a1);
_i=((T162*)R)->_upper;
while (!((_i)==(0))) {
rT55push((T55*)oRBC27small_eiffel,a3);
_a=rT68to_runnable((T68*)rT162item((T162*)R,_i),a2);
/*IF*/if (!(_a)) {
rT259error(rT68start_position((T68*)rT162item((T162*)R,_i)),(T0 *)ms97_27);
}
else {
rT162put((T162*)R,_a,_i);
}
/*FI*/rT55pop((T55*)oRBC27small_eiffel);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*PROCEDURE*/T0* rT259run_require(/*C*/T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
rT276clear((T276*)oRBC66require_collector);
rT53collect_for((T53*)XrT62base_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type),1001,/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
/*IF*/if (!(rT276empty((T276*)oRBC66require_collector))) {
_i=1;
while (!((_i)>(((T276*)oRBC66require_collector)->_upper))) {
_er=rT276item((T276*)oRBC66require_collector,_i);
/*IF*/if (!(rT139empty((T139*)_er))) {
_r=rT259runnable(((T139*)_er)->_list,/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type,a1);
/*IF*/if (((int)_r)) {
{T139 *n=((T139*)se_new(139));
rT139from_runnable(n,_r);
_er=(T0 *)n;}
/*IF*/if (!(_ar)) {
_ar=ma(276,0,1,_er);
}
else {
rT276add_last((T276*)_ar,_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (((int)_ar)) {
{T275 *n=((T275*)se_new(275));
/*[IRF3:make*//*AW*/(n)->_list=(_ar);/*]*/
R=(T0 *)n;}
}
/*FI*/}
/*FI*/return R;
}
/*PROCEDURE*/T0* rT259first_name(T259 *C){
T0* R=NULL;
R=rT130item((T130*)(C)->_names,1);
return R;
}
/*PROCEDURE*/T0* rT259to_run_feature(T259 *C,T0* a1,T0* a2){
T0* R=NULL;
{T274 *n=((T274*)se_new(274));
rT274make(n,a1,a2,(T0 *)C);
R=(T0 *)n;}
return R;
}
/*PROCEDURE*/void rT259error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*PROCEDURE*/int rT259is_merge_with(T259 *C,T0* a1,T0* a2){
int R=0;
int _ne=0;
_ne=/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)/*XrT*E_FEATURE*/((T148*)a1)->_result_type)) {
/*IF*/if (((!((C)->_result_type))||(!(/*XrT*E_FEATURE*/((T148*)a1)->_result_type)))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms1_66);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT66arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT66arguments(a1))))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms2_66);
}
 else if ((rT97count((T97*)(C)->_arguments))!=(rT97count((T97*)XrT66arguments(a1)))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms3_66);
}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT62is_a_in((C)->_result_type,/*XrT*E_FEATURE*/((T148*)a1)->_result_type,a2))) {
rT48error((T48*)oRBC27eh,(T0 *)ms13_66);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT97is_a_in((T97*)(C)->_arguments,XrT66arguments(a1),a2))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms13_66);
}
/*FI*/}
/*FI*/}
/*FI*/R=((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
return R;
}
/*PROCEDURE*/T0* rT259start_position(T259 *C){
T0* R=NULL;
R=/*XrT*FEATURE_NAME*/((T70*)rT259first_name(C))->_start_position;
return R;
}
/*PROCEDURE*/void rT259collect_for(T259 *C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((int)(C)->_require_assertion)) {
/*IF*/if (!(rT276fast_has((T276*)oRBC66require_collector,(C)->_require_assertion))) {
rT276add_last((T276*)oRBC66require_collector,(C)->_require_assertion);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((int)(C)->_ensure_assertion)) {
rT161add_into((T161*)(C)->_ensure_assertion,oRBC66assertion_collector);
}
/*FI*/}
/*FI*/}/*PROCEDURE*/void rT259add_into(T259 *C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=rT49base_class((T49*)/*XrT*FEATURE_NAME*/((T70*)rT130item((T130*)(C)->_names,1))->_start_position);
_i=1;
while (!((_i)>(rT130count((T130*)(C)->_names)))) {
_fn=rT130item((T130*)(C)->_names,_i);
/*IF*/if (rT65has((T65*)a1,XrT71to_key(_fn))) {
_fn=XrT66first_name(rT65at((T65*)a1,XrT71to_key(_fn)));
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position);
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)rT130item((T130*)(C)->_names,_i))->_start_position);
rT48error((T48*)oRBC27eh,(T0 *)ms12_66);
rT48append(/*XrT*FEATURE_NAME*/((T70*)_fn)->_to_string);
rT48error((T48*)oRBC27eh,(T0 *)ms102_27);
}
else {
rT65put((T65*)a1,(T0 *)C,XrT71to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}/*PROCEDURE*/T0* rT259try_to_undefine(T259 *C,T0* a1,T0* a2){
T0* R=NULL;
XrT71undefine_in(a1,a2);
R=rT259try_to_undefine_aux(C,a1,a2);
/*IF*/if (((int)R)) {
/*XrT*DEFERRED_ROUTINE*//*[IRF3:set_clients*//*AW*/((T210*)R)->_clients=((C)->_clients);/*]*/
}
else {
rT53fatal_undefine((T53*)a2,a1);
}
/*FI*/return R;
}
/*PROCEDURE*/T0* rT259try_to_undefine_aux(T259 *C,T0* a1,T0* a2){
T0* R=NULL;
{T210 *n=((T210*)se_new(210));
rT210from_effective(n,a1,(C)->_arguments,(C)->_require_assertion,(C)->_ensure_assertion,a2);
R=(T0 *)n;}return R;
}
/*PROCEDURE*/void rT259set_header_comment(T259 *C,T0* a1){
/*IF*/if ((((int)a1))&&((rT63count((T63*)a1))>(1))) {
C->_end_comment=a1;
}
/*FI*/}/*PROCEDURE*/int rT259stupid_switch(T259 *C,T0* a1,T0* a2){
int R=0;
T0* _sta_rf2=NULL;
T0* _sta_rc=NULL;
T0* _wa=NULL;
T0* _assignment=NULL;
/*IF*/if (!((C)->_routine_body)) {
R=1;
}
 else if (rT259attribute_writer(C)) {
_assignment=rT142first((T142*)(C)->_routine_body);
if ((int)_assignment) switch (((T0 *)_assignment)->id) {
case 256: 
break;
default:
_assignment = NULL;
};_wa=((T256*)_assignment)->_left_side;
if ((int)_wa) switch (((T0 *)_wa)->id) {
case 70: case 74: case 71: 
break;
default:
_wa = NULL;
};_sta_rc=XrT62run_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type);
_sta_rf2=rT269get_feature((T269*)_sta_rc,_wa);
R=XrT66stupid_switch(XrT268base_feature(_sta_rf2),_sta_rf2,a2);
}
/*FI*/return R;
}
/*PROCEDURE*/int rT259can_hide(T259 *C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)/*XrT*E_FEATURE*/((T148*)a1)->_result_type)) {
/*IF*/if (((!((C)->_result_type))||(!(/*XrT*E_FEATURE*/((T148*)a1)->_result_type)))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms4_66);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT66arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT66arguments(a1))))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms5_66);
}
 else if ((rT97count((T97*)(C)->_arguments))!=(rT97count((T97*)XrT66arguments(a1)))) {
rT48add_position(XrT66start_position(a1));
rT259error(rT259start_position(C),(T0 *)ms6_66);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT62is_a_in((C)->_result_type,/*XrT*E_FEATURE*/((T148*)a1)->_result_type,a2))) {
rT48append((T0 *)ms14_66);
rT48append(XrT62run_time_mark(((T269*)a2)->_current_type));
rT48error((T48*)oRBC27eh,(T0 *)ms7_66);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT97is_a_in((T97*)(C)->_arguments,XrT66arguments(a1),a2))) {
rT48add_position(XrT66start_position(a1));
rT48add_position(rT259start_position(C));
rT48append((T0 *)ms14_66);
rT48append(XrT62run_time_mark(((T269*)a2)->_current_type));
rT48error((T48*)oRBC27eh,(T0 *)ms8_66);
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0);
return R;
}
/*PROCEDURE*/T0* rT259run_ensure(/*C*/T0* a1){
T0* R=NULL;
T0* _r=NULL;
rT162clear((T162*)oRBC66assertion_collector);
rT53collect_for((T53*)XrT62base_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type),1002,/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
_r=rT259runnable(oRBC66assertion_collector,/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type,a1);
/*IF*/if (((int)_r)) {
{T161 *n=((T161*)se_new(161));
rT161from_runnable(n,_r);
R=(T0 *)n;}
}
/*FI*/return R;
}
/*PROCEDURE*/T0* rT259base_class_name(T259 *C){
T0* R=NULL;
R=((T53*)(C)->_base_class)->_base_class_name;
return R;
}
/*PROCEDURE*/void rT259set_rescue_compound(T259 *C,T0* a1){
/*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
rT259error(rT259start_position(C),(T0 *)ms8_160);
}
/*FI*/C->_rescue_compound=a1;
}/*PROCEDURE*/void rT259make_e_feature(T259 *C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}/*PROCEDURE*/void rT259make_routine(T259 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
rT259make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}/*PROCEDURE*/void rT259make(T259 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
rT259make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1015;
}/*SMALL_EIFFEL*/T0* rT55find_path_for(/*C*/T0* a1){
T0* R=NULL;
int _i=0;
rT7copy((T7*)(T0 *)ms21_55,a1);
rT7to_lower((T7*)(T0 *)ms21_55);
/*IF*/if (!(rT7has_suffix((T7*)(T0 *)ms21_55,(T0 *)ms24_27))) {
rT7append((T7*)(T0 *)ms21_55,(T0 *)ms24_27);
}
/*FI*//*IF*/if (rT55file_exists((T0 *)ms21_55)) {
R=rT7twin((T7*)(T0 *)ms21_55);
}
else {
_i=((T45*)rT55loading_path())->_lower;
while (!((((_i)>(((T45*)rT55loading_path())->_upper))||(((int)R))))) {
rT7copy((T7*)(T0 *)ms20_55,rT45item((T45*)rT55loading_path(),_i));
rT7append((T7*)(T0 *)ms20_55,(T0 *)ms21_55);
/*IF*/if (rT55file_exists((T0 *)ms20_55)) {
R=rT7twin((T7*)(T0 *)ms20_55);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*//*IF*/if ((!(R))&&(rT61has((T61*)rT55rename_dictionary(),(T0 *)ms21_55))) {
rT7copy((T7*)(T0 *)ms20_55,rT61at((T61*)rT55rename_dictionary(),(T0 *)ms21_55));
/*IF*/if (rT55file_exists((T0 *)ms20_55)) {
R=(T0 *)ms20_55;
}
else {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms22_55);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms20_55);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms23_55);
rT55die_with_code(1);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms24_55);
rT38put_string((T38*)oRBC1std_error,a1);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms25_55);
/*[IRF3:clear*//*AW*/((T7*)(T0 *)ms20_55)->_count=(0);/*]*/
rT55append_loading_path_in((T0 *)ms20_55);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms20_55);
}
/*FI*/return R;
}
/*SMALL_EIFFEL*/void rT55push(T55 *C,T0* a1){
C->_top=((C)->_top)+(1);
XrT273force(oRBC55stack_rf,a1,(C)->_top);
}/*SMALL_EIFFEL*/void rT55cecil_for(/*C*/T0* a1,T0* a2){
T0* _rf=NULL;
_rf=rT269get_feature_with((T269*)XrT62run_class(a1),a2);
rT44add_cecil((T44*)oRBC27cpp,_rf);
}/*SMALL_EIFFEL*/T0* rT55get_class(/*C*/T0* a1){
T0* R=NULL;
/*IF*/if (rT57has((T57*)oRBC55base_class_dictionary,a1)) {
R=rT57at((T57*)oRBC55base_class_dictionary,a1);
}
else {
rT51make((T51*)rT55tmp_class_name(),a1,NULL);
R=rT51base_class((T51*)rT55tmp_class_name());
}
/*FI*/return R;
}
/*SMALL_EIFFEL*/T0* rT55get_environment_variable(/*C*/T0* a1){
T0* R=NULL;
void * _p=0;
_p=rT7to_external((T7*)a1);
_p=((void*)getenv((char*)_p));
/*IF*/if (((int)_p)) {
R=(T0*)e2s((char*)_p);
}
/*FI*/return R;
}
/*SMALL_EIFFEL*/void rT55define_extern_tables(T55 *C){
int _size=0;
_size=((C)->_last_id)+(1);
rT44put_extern4((T44*)oRBC27cpp,(T0 *)ms56_55,(T0 *)ms57_55,_size);
rT44put_extern4((T44*)oRBC27cpp,(T0 *)ms58_55,(T0 *)ms59_55,_size);
rT44put_extern4((T44*)oRBC27cpp,(T0 *)ms60_55,(T0 *)ms61_55,_size);
rT44put_extern4((T44*)oRBC27cpp,(T0 *)ms62_55,(T0 *)ms63_55,_size);
}/*SMALL_EIFFEL*/char rT55directory_separator(/*C*/void){
if (ofBC27directory_separator==0){
char R=0;
ofBC27directory_separator=1;
R=rT7last((T7*)rT55small_eiffel_directory());
oRBC27directory_separator=R;}
return oRBC27directory_separator;}
/*SMALL_EIFFEL*/void rT55fatal_error(/*C*/T0* a1){
rT48fatal_error(a1);
}/*SMALL_EIFFEL*/void rT55die_with_code(/*C*/int a1){
exit(a1);
}int ofBC55loading_path=0;
T0*oRBC55loading_path;
/*SMALL_EIFFEL*/T0* rT55loading_path(/*C*/void){
if (ofBC55loading_path==0){
T0* R=NULL;
T0* _file=NULL;
T0* _defaults=NULL;
char _slash=0;
int _i=0;
T0* _path=NULL;
ofBC55loading_path=1;
_path=(T0 *)ms2_55;
{T45 *n=((T45*)se_new(45));
rT45make(n,1,10);
R=(T0 *)n;}
rT45clear((T45*)R);
_slash=rT55directory_separator();
/*IF*/if (rT55file_exists(_path)) {
{T43 *n=((T43*)se_new(43));
/*[IRF3:make*//*AW*/(n)->_mode=((T0 *)ms1_43);/*]*/
_file=(T0 *)n;}
rT55open_read(_file,_path);
while (!(rT43end_of_input((T43*)_file))) {
rT43read_line((T43*)_file);
_path=rT7twin((T7*)oRBC43last_string);
/*IF*/if (!(rT7empty((T7*)_path))) {
/*IF*/if ((rT7last((T7*)_path))!=(_slash)) {
rT7extend((T7*)_path,_slash);
}
/*FI*/rT45add_last((T45*)R,_path);
}
/*FI*/}
rT43disconnect((T43*)_file);
}
/*FI*/_defaults=ma(45,0,3,ms3_55,ms4_55,ms5_55);
_i=1;
while (!((_i)>(((T45*)_defaults)->_upper))) {
_path=rT45item((T45*)_defaults,_i);
rT7prepend((T7*)_path,rT55small_eiffel_directory());
rT7extend((T7*)_path,_slash);
rT45add_last((T45*)R,_path);
_i=(_i)+(1);
}
oRBC55loading_path=R;}
return oRBC55loading_path;}
/*SMALL_EIFFEL*/void rT55incr_magic_count(T55 *C){
C->_magic_count=((C)->_magic_count)+(1);
}/*SMALL_EIFFEL*/void rT55pop(T55 *C){
C->_top=((C)->_top)-(1);
}/*SMALL_EIFFEL*/void rT55open_read(/*C*/T0* a1,T0* a2){
rT43connect_to((T43*)a1,a2);
/*IF*/if (!(rT43is_connected((T43*)a1))) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms7_27);
rT38put_string((T38*)oRBC1std_error,a2);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms8_27);
rT55die_with_code(1);
}
/*FI*/}/*SMALL_EIFFEL*/T0* rT55get_started(T55 *C,T0* a1,T0* a2){
T0* R=NULL;
int _magic=0;
T0* _root_type=NULL;
T0* _root_proc=NULL;
T0* _root=NULL;
T0* _root_proc_name=NULL;
T0* _root_name=NULL;
_root=rT55load_class(a1);
/*IF*/if (!(_root)) {
rT48append((T0 *)ms49_55);
rT48append(a1);
rT48error((T48*)oRBC27eh,(T0 *)ms102_27);
}
else {
_root_name=((T53*)_root)->_base_class_name;
{T71 *n=((T71*)se_new(71));
rT71make(n,a2,NULL);
_root_proc_name=(T0 *)n;}
_root_proc=rT53root_procedure((T53*)_root,a2);
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)((T259*)_root_proc)->_arguments)) {
rT48add_position(rT259start_position((T259*)_root_proc));
rT48append((T0 *)ms50_55);
rT48append(a2);
rT48error((T48*)oRBC27eh,(T0 *)ms51_55);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
_root_type=((T269*)rT53run_class((T53*)_root))->_current_type;
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=rT259to_run_feature((T259*)_root_proc,_root_type,_root_proc_name);
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (rT47no_check((T47*)oRBC27eiffel_run_control)) {
rT55cecil_for(rT55type_any(),(T0 *)ms52_55);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (!(/*(IRF4*/(rT7empty((T7*)oRBC48explanation))&&(rT50empty((T50*)oRBC48positions))/*)*/)) {
rT42put_string((T42*)oRBC1std_output,(T0 *)ms53_55);
rT48print_as_warning((T48*)oRBC27eh);
}
/*FI*/rT42put_string((T42*)oRBC1std_output,(T0 *)ms54_55);
rT42put_integer((T42*)oRBC1std_output,(C)->_magic_count);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms85_55);
while (!((((_magic)==((C)->_magic_count))||((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)>(0))))) {
_magic=(C)->_magic_count;
/*[IRF3:falling_down*/{int _i=0;
T0* _rc=NULL;
_i=1;
while (!((_i)>(((T270*)oRBC55run_class_dictionary)->_count))) {
_rc=rT270item((T270*)oRBC55run_class_dictionary,_i);
rT269falling_down((T269*)_rc);
_i=(_i)+(1);
}
}/*]*/
}
}
/*FI*/rT42put_string((T42*)oRBC1std_output,(T0 *)ms55_55);
rT42put_integer((T42*)oRBC1std_output,(C)->_magic_count);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms85_55);
return R;
}
int ofBC55rename_dictionary=0;
T0*oRBC55rename_dictionary;
/*SMALL_EIFFEL*/T0* rT55rename_dictionary(/*C*/void){
if (ofBC55rename_dictionary==0){
T0* R=NULL;
T0* _short_name=NULL;
T0* _full_name=NULL;
int _i=0;
ofBC55rename_dictionary=1;
{T61 *n=((T61*)se_new(61));
rT61make(n);
R=(T0 *)n;}
_i=1;
while (!((_i)>(((T45*)rT55loading_path())->_upper))) {
rT7copy((T7*)(T0 *)ms20_55,rT45item((T45*)rT55loading_path(),_i));
rT7append((T7*)(T0 *)ms20_55,(T0 *)ms26_55);
/*IF*/if (rT55file_exists((T0 *)ms20_55)) {
rT55open_read(oRBC27tmp_file_read,(T0 *)ms20_55);
while (!(rT43end_of_input((T43*)oRBC27tmp_file_read))) {
rT43read_word((T43*)oRBC27tmp_file_read);
_full_name=rT7twin((T7*)oRBC43last_string);
rT43read_word((T43*)oRBC27tmp_file_read);
_short_name=rT7twin((T7*)oRBC43last_string);
rT7prepend((T7*)_short_name,rT45item((T45*)rT55loading_path(),_i));
/*IF*/if (rT61has((T61*)R,_full_name)) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms27_55);
rT38put_string((T38*)oRBC1std_error,_full_name);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms28_55);
rT38put_string((T38*)oRBC1std_error,_short_name);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms29_55);
rT38put_string((T38*)oRBC1std_error,rT61at((T61*)R,_full_name));
rT38put_string((T38*)oRBC1std_error,(T0 *)ms30_55);
rT55die_with_code(1);
}
/*FI*/rT61put((T61*)R,_short_name,_full_name);
rT43skip_separators((T43*)oRBC27tmp_file_read);
}
rT43disconnect((T43*)oRBC27tmp_file_read);
}
/*FI*/_i=(_i)+(1);
}
oRBC55rename_dictionary=R;}
return oRBC55rename_dictionary;}
int ofBC55tmp_class_name=0;
T0*oRBC55tmp_class_name;
/*SMALL_EIFFEL*/T0* rT55tmp_class_name(/*C*/void){
if (ofBC55tmp_class_name==0){
T0* R=NULL;
ofBC55tmp_class_name=1;
{T51 *n=((T51*)se_new(51));
rT51make(n,(T0 *)ms36_27,NULL);
R=(T0 *)n;}
oRBC55tmp_class_name=R;}
return oRBC55tmp_class_name;}
/*SMALL_EIFFEL*/void rT55append_loading_path_in(/*C*/T0* a1){
T0* _sed=NULL;
int _i=0;
rT7append((T7*)a1,(T0 *)ms7_55);
_i=((T45*)rT55loading_path())->_lower;
while (!((_i)>(((T45*)rT55loading_path())->_upper))) {
rT7extend((T7*)a1,'\42');
rT7append((T7*)a1,rT45item((T45*)rT55loading_path(),_i));
rT7extend((T7*)a1,'\42');
rT7extend((T7*)a1,'\12');
_i=(_i)+(1);
}
rT7append((T7*)a1,(T0 *)ms8_55);
rT7append((T7*)a1,(T0 *)ms124_27);
_sed=rT55get_environment_variable((T0 *)ms124_27);
rT7append((T7*)a1,(T0 *)ms9_55);
/*IF*/if (!(_sed)) {
rT7append((T7*)a1,(T0 *)ms10_55);
}
else {
rT7append((T7*)a1,(T0 *)ms11_55);
rT7append((T7*)a1,_sed);
rT7append((T7*)a1,(T0 *)ms12_55);
}
/*FI*/rT7extend((T7*)a1,'\12');
}T0*oRBC55stack_rf;
T0*oRBC55run_class_dictionary;
/*SMALL_EIFFEL*/T0* rT55run_class(/*C*/T0* a1){
T0* R=NULL;
T0* _run_string=NULL;
_run_string=XrT62run_time_mark(a1);
/*IF*/if (rT270has((T270*)oRBC55run_class_dictionary,_run_string)) {
R=rT270at((T270*)oRBC55run_class_dictionary,_run_string);
}
else {
{T269 *n=((T269*)se_new(269));
rT269make(n,a1);
R=(T0 *)n;}
}
/*FI*/return R;
}
/*SMALL_EIFFEL*/void rT55compile_to_c(T55 *C,T0* a1,T0* a2){
int _i=0;
int _split_tuning=0;
T0* _rf=NULL;
int _run_count=0;
T0* _t=NULL;
T0* _rc=NULL;
C->_is_compiling_flag=1;
rT42put_string((T42*)oRBC1std_output,(T0 *)ms1_55);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms35_55);
_rf=rT55get_started(C,a1,a2);
/*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
rT42put_string((T42*)oRBC1std_output,(T0 *)ms37_55);
rT42put_integer((T42*)oRBC1std_output,((T57*)oRBC55base_class_dictionary)->_count);
rT42put_character((T42*)oRBC1std_output,'\12');
rT44get_started((T44*)oRBC27cpp);
rT44swap_on_h((T44*)oRBC27cpp);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms38_55);
_i=1;
while (!((_i)>(((T270*)oRBC55run_class_dictionary)->_count))) {
_rc=rT270item((T270*)oRBC55run_class_dictionary,_i);
_t=((T269*)_rc)->_current_type;
/*IF*/if (((T269*)_rc)->_at_run_time) {
_run_count=(_run_count)+(1);
rT44put_comment((T44*)oRBC27cpp,XrT62run_time_mark(_t));
XrT62c_typedef(_t);
}
/*FI*/rT42put_integer((T42*)oRBC1std_output,((T269*)_rc)->_id);
rT42put_character((T42*)oRBC1std_output,'\11');
rT42put_string((T42*)oRBC1std_output,XrT62run_time_mark(_t));
rT42put_character((T42*)oRBC1std_output,'\12');
_i=(_i)+(1);
}
rT42put_string((T42*)oRBC1std_output,(T0 *)ms39_55);
rT42put_integer((T42*)oRBC1std_output,((T270*)oRBC55run_class_dictionary)->_count);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms40_55);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms41_55);
rT42put_integer((T42*)oRBC1std_output,_run_count);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms42_55);
rT42put_string((T42*)oRBC1std_output,(T0 *)ms43_55);
_i=1;
while (!((_i)>(((T270*)oRBC55run_class_dictionary)->_count))) {
_rc=rT270item((T270*)oRBC55run_class_dictionary,_i);
_t=((T269*)_rc)->_current_type;
/*IF*/if (XrT62is_expanded(_t)) {
rT42put_integer((T42*)oRBC1std_output,((T269*)_rc)->_id);
rT42put_character((T42*)oRBC1std_output,'\11');
rT42put_string((T42*)oRBC1std_output,XrT62run_time_mark(_t));
rT42put_character((T42*)oRBC1std_output,'\12');
rT44put_comment((T44*)oRBC27cpp,XrT62run_time_mark(_t));
XrT62c_struct(_t);
}
/*FI*/_i=(_i)+(1);
}
rT42put_string((T42*)oRBC1std_output,(T0 *)ms44_55);
_i=1;
while (!((_i)>(((T270*)oRBC55run_class_dictionary)->_count))) {
_rc=rT270item((T270*)oRBC55run_class_dictionary,_i);
_t=((T269*)_rc)->_current_type;
/*IF*/if ((((T269*)_rc)->_at_run_time)&&(XrT62is_reference(_t))) {
rT42put_integer((T42*)oRBC1std_output,((T269*)_rc)->_id);
rT42put_character((T42*)oRBC1std_output,'\11');
rT42put_string((T42*)oRBC1std_output,XrT62run_time_mark(_t));
rT42put_character((T42*)oRBC1std_output,'\12');
rT44put_comment((T44*)oRBC27cpp,XrT62run_time_mark(_t));
XrT62c_struct(_t);
}
/*FI*/_i=(_i)+(1);
}
rT42put_string((T42*)oRBC1std_output,(T0 *)ms45_55);
rT44swap_on_c((T44*)oRBC27cpp);
_i=1;
while (!((_i)>(((T270*)oRBC55run_class_dictionary)->_count))) {
/*IF*/if ((_split_tuning)==(0)) {
rT44split_c_now((T44*)oRBC27cpp);
_split_tuning=7;
}
/*FI*/_split_tuning=(_split_tuning)-(1);
rT269compile_to_c((T269*)rT270item((T270*)oRBC55run_class_dictionary,_i));
_i=(_i)+(1);
}
rT44cecil_define((T44*)oRBC27cpp);
rT44define_main((T44*)oRBC27cpp,_rf);
rT44define_used_basics((T44*)oRBC27cpp);
rT44write_make_file((T44*)oRBC27cpp);
}
else {
rT48error((T48*)oRBC27eh,(T0 *)ms47_55);
}
/*FI*/C->_is_compiling_flag=0;
}/*SMALL_EIFFEL*/T0* rT55small_eiffel_directory(/*C*/void){
if (ofBC27small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
ofBC27small_eiffel_directory=1;
R=rT55get_environment_variable((T0 *)ms124_27);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms124_27);
rT7to_upper((T7*)R);
R=rT55get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms124_27);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms1_27;
}
/*FI*/_i=((T7*)R)->_count;
while (!((_i)<(0))) {
_slash=rT7item((T7*)R,_i);
/*IF*/if ((rT3is_letter(_slash))||(rT3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
rT7extend((T7*)R,'\57');
}
 else if (!((rT7last((T7*)R))==(_slash))) {
rT7extend((T7*)R,_slash);
}
/*FI*/oRBC27small_eiffel_directory=R;}
return oRBC27small_eiffel_directory;}
/*SMALL_EIFFEL*/int rT55next_unique(T55 *C){
int R=0;
/*IF*/if (((C)->_last_unique)<(1000)) {
C->_last_unique=1000;
}
/*FI*/C->_last_unique=((C)->_last_unique)+(1);
R=(C)->_last_unique;
return R;
}
/*SMALL_EIFFEL*/int rT55next_id(T55 *C){
int R=0;
/*IF*/if (((C)->_last_id)==(0)) {
C->_last_id=25;
}
/*FI*/C->_last_id=((C)->_last_id)+(1);
R=(C)->_last_id;
return R;
}
/*SMALL_EIFFEL*/T0* rT55type_any(/*C*/void){
if (ofBC27type_any==0){
T0* R=NULL;
ofBC27type_any=1;
{T91 *n=((T91*)se_new(91));
rT91make(n,NULL);
R=(T0 *)n;}
oRBC27type_any=R;}
return oRBC27type_any;}
/*SMALL_EIFFEL*/int rT55is_used(/*C*/T0* a1){
int R=0;
R=rT57has((T57*)oRBC55base_class_dictionary,a1);
return R;
}
/*SMALL_EIFFEL*/T0* rT55top_rf(T55 *C){
T0* R=NULL;
R=/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)oRBC55stack_rf,(C)->_top);
return R;
}
/*SMALL_EIFFEL*/void rT55add_class(T55 *C,T0* a1){
rT57put((T57*)oRBC55base_class_dictionary,a1,((T51*)((T53*)a1)->_base_class_name)->_to_string);
rT55incr_magic_count(C);
}T0*oRBC55base_class_dictionary;
/*SMALL_EIFFEL*/T0* rT55base_class(/*C*/T0* a1){
T0* R=NULL;
T0* _path=NULL;
/*IF*/if (rT57has((T57*)oRBC55base_class_dictionary,((T51*)a1)->_to_string)) {
R=rT57at((T57*)oRBC55base_class_dictionary,((T51*)a1)->_to_string);
}
 else if (/*(IRF4*/((T54*)oRBC27eiffel_parser)->_is_running/*)*/) {
rT55fatal_error((T0 *)ms13_55);
}
else {
_path=rT55find_path_for(((T51*)a1)->_to_string);
/*IF*/if (((int)_path)) {
R=rT54analyse_class((T54*)oRBC27eiffel_parser,_path);
}
/*FI*//*IF*/if (!(R)) {
rT48add_position(((T51*)a1)->_start_position);
rT55fatal_error((T0 *)ms14_55);
}
 else if (!(rT57has((T57*)oRBC55base_class_dictionary,((T51*)a1)->_to_string))) {
rT48append((T0 *)ms15_55);
rT48append(_path);
rT48append((T0 *)ms16_55);
rT48append(((T51*)a1)->_to_string);
rT55fatal_error((T0 *)ms17_55);
}
/*FI*/}
/*FI*/return R;
}
/*SMALL_EIFFEL*/int rT55file_exists(/*C*/T0* a1){
int R=0;
void * _p=0;
_p=rT7to_external((T7*)a1);
{FILE *f=fopen(((char*)_p),"r");
R=(f != NULL);
if (R) fclose(f);}
return R;
}
/*SMALL_EIFFEL*/T0* rT55load_class(/*C*/T0* a1){
T0* R=NULL;
T0* _path=NULL;
_path=rT55find_path_for(a1);
/*IF*/if (!(_path)) {
rT55fatal_error((T0 *)ms18_55);
}
else {
R=rT54analyse_class((T54*)oRBC27eiffel_parser,_path);
/*IF*/if (!(R)) {
rT55fatal_error((T0 *)ms19_55);
}
/*FI*/}
/*FI*/return R;
}
/*BASE_CLASS*/int rT53has_feature(T53 *C,T0* a1){
int R=0;
XrT71make(rT53mem_fn(),a1,NULL);
R=rT53has(C,rT53mem_fn());
return R;
}
int ofBC53mem_fn=0;
T0*oRBC53mem_fn;
/*BASE_CLASS*/T0* rT53mem_fn(/*C*/void){
if (ofBC53mem_fn==0){
T0* R=NULL;
ofBC53mem_fn=1;
{T71 *n=((T71*)se_new(71));
rT71make(n,(T0 *)ms21_53,NULL);
R=(T0 *)n;}
oRBC53mem_fn=R;}
return oRBC53mem_fn;}
/*BASE_CLASS*/int rT53already_defined(T53 *C,T0* a1){
int R=0;
/*IF*/if (((int)(C)->_already_defined_list)) {
R=rT45has((T45*)(C)->_already_defined_list,XrT71to_key(a1));
}
/*FI*/return R;
}
/*BASE_CLASS*/int rT53is_general(T53 *C){
int R=0;
R=((T0 *)(T0 *)ms48_27)==((T0 *)((T51*)(C)->_base_class_name)->_to_string);
return R;
}
/*BASE_CLASS*/int rT53is_generic(T53 *C){
int R=0;
R=((int)(C)->_formal_generic_list);
return R;
}
/*BASE_CLASS*/void rT53fatal_undefine(T53 *C,T0* a1){
rT48append((T0 *)ms29_53);
rT48append(/*XrT*FEATURE_NAME*/((T70*)a1)->_to_string);
rT48append((T0 *)ms30_53);
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT53fatal_error((T0 *)ms31_53);
}/*BASE_CLASS*/void rT53fatal_error(/*C*/T0* a1){
rT48fatal_error(a1);
}/*BASE_CLASS*/T0* rT53clients_for(T53 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (((T0 *)/*XrT*E_FEATURE*/((T148*)a2)->_base_class)==((T0 *)C)) {
R=XrT66clients(a2);
}
 else if (!((C)->_parent_list)) {
R=rT53clients_for((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1,a2);
}
else {
R=rT133clients_for((T133*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
/*BASE_CLASS*/void rT53set_already_defined(T53 *C,T0* a1){
/*IF*/if (!((C)->_already_defined_list)) {
{T45 *n=((T45*)se_new(45));
rT45make(n,1,5);
C->_already_defined_list=(T0 *)n;}
rT45clear((T45*)(C)->_already_defined_list);
}
/*FI*/rT45add_last((T45*)(C)->_already_defined_list,XrT71to_key(a1));
}/*BASE_CLASS*/int rT53has_redefine(T53 *C,T0* a1){
int R=0;
/*IF*/if (((int)(C)->_parent_list)) {
R=rT133has_redefine((T133*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
/*BASE_CLASS*/void rT53collect_invariant(T53 *C,T0* a1){
/*IF*/if (((int)(C)->_parent_list)) {
rT133collect_invariant((T133*)(C)->_parent_list,a1);
}
/*FI*//*IF*/if (((int)(C)->_invariant_assertion)) {
rT269collect_invariant((C)->_invariant_assertion);
}
/*FI*/}/*BASE_CLASS*/void rT53collect_for(T53 *C,int a1,T0* a2){
T0* _fn_key=NULL;
_fn_key=XrT71to_key(a2);
/*IF*/if (rT65has((T65*)(C)->_feature_dictionary,_fn_key)) {
XrT66collect_for(rT65at((T65*)(C)->_feature_dictionary,_fn_key),a1);
}
/*FI*//*IF*/if (!((C)->_parent_list)) {
/*IF*/if (rT53is_general(C)) {
}
else {
rT53collect_for((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1,a2);
}
/*FI*/}
else {
rT133collect_for((T133*)(C)->_parent_list,a1,a2);
}
/*FI*/}int ofBC53mem_rpn=0;
T0*oRBC53mem_rpn;
/*BASE_CLASS*/T0* rT53mem_rpn(/*C*/void){
if (ofBC53mem_rpn==0){
T0* R=NULL;
ofBC53mem_rpn=1;
{T71 *n=((T71*)se_new(71));
rT71make(n,(T0 *)ms22_53,NULL);
R=(T0 *)n;}
oRBC53mem_rpn=R;}
return oRBC53mem_rpn;}
/*BASE_CLASS*/void rT53get_started(T53 *C){
T0* _s1=NULL;
C->_id=rT51frozen_id((T51*)(C)->_base_class_name);
/*IF*/if (((C)->_id)==(0)) {
C->_id=rT55next_id((T55*)oRBC27small_eiffel);
}
/*FI*//*IF*/if (((int)(C)->_feature_clause_list)) {
rT265get_started((T265*)(C)->_feature_clause_list,(C)->_feature_dictionary);
}
/*FI*//*IF*/if (((int)(C)->_parent_list)) {
rT133get_started((T133*)(C)->_parent_list);
}
/*FI*//*IF*/if (((int)(C)->_end_comment)) {
rT63good_end((T63*)(C)->_end_comment,(C)->_base_class_name);
}
/*FI*/}/*BASE_CLASS*/void rT53set_is_deferred(T53 *C){
/*IF*/if ((C)->_is_expanded) {
rT53error1(C);
}
/*FI*/C->_is_deferred=1;
}/*BASE_CLASS*/void rT53set_is_expanded(T53 *C){
/*IF*/if ((C)->_is_deferred) {
rT53error1(C);
}
/*FI*/C->_is_expanded=1;
}/*BASE_CLASS*/void rT53set_invariant(T53 *C,T0* a1,T0* a2,T0* a3){
/*IF*/if ((((int)a2))||(((int)a3))) {
{T267 *n=((T267*)se_new(267));
rT267make(n,a1,a2,a3);
C->_invariant_assertion=(T0 *)n;}
}
/*FI*/}/*BASE_CLASS*/T0* rT53look_up_for(T53 *C,T0* a1,T0* a2){
T0* R=NULL;
int _i=0;
T0* _super_fn=NULL;
T0* _fnl=NULL;
T0* _cst_att=NULL;
T0* _fn_key=NULL;
T0* _super=NULL;
_fn_key=XrT71to_key(a2);
/*IF*/if (rT65has((T65*)(C)->_feature_dictionary,_fn_key)) {
R=rT65at((T65*)(C)->_feature_dictionary,_fn_key);
_super=rT53super_look_up_for(C,a1,a2);
/*IF*/if (((int)_super)) {
_cst_att=_super;
if ((int)_cst_att) switch (((T0 *)_cst_att)->id) {
case 156: case 154: case 153: case 152: case 148: case 157: case 158: case 159: 
break;
default:
_cst_att = NULL;
};/*IF*/if (((int)_cst_att)) {
rT48add_position(XrT66start_position(_super));
rT48add_position(XrT66start_position(R));
rT53fatal_error((T0 *)ms16_53);
}
/*FI*/_fnl=/*XrT*E_FEATURE*/((T148*)_super)->_names;
_i=rT130count((T130*)_fnl);
while (!((_i)<(1))) {
_super_fn=rT130item((T130*)_fnl,_i);
/*IF*/if (/*XrT*FEATURE_NAME*/((T70*)_super_fn)->_is_frozen) {
/*IF*/if (rT7is_equal((T7*)XrT71to_key(_super_fn),_fn_key)) {
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)_super_fn)->_start_position);
rT48add_position(XrT66start_position(R));
rT53fatal_error((T0 *)ms17_53);
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
/*IF*/if (!(XrT66can_hide(R,_super,a1))) {
rT48add_position(XrT66start_position(_super));
rT48add_position(XrT66start_position(R));
rT48append((T0 *)ms18_53);
rT48print_as_warning((T48*)oRBC27eh);
}
/*FI*//*IF*/if (XrT66is_deferred(_super)) {
}
 else if (rT53has_redefine(C,a2)) {
}
else {
rT48add_position(XrT66start_position(R));
rT48add_position(XrT66start_position(_super));
rT48append((T0 *)ms19_53);
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT48append((T0 *)ms20_53);
rT48print_as_error((T48*)oRBC27eh);
}
/*FI*/}
/*FI*/}
else {
R=rT53super_look_up_for(C,a1,a2);
}
/*FI*/return R;
}
/*BASE_CLASS*/T0* rT53class_with(/*C*/T0* a1){
T0* R=NULL;
R=rT55get_class(a1);
return R;
}
/*BASE_CLASS*/void rT53mapping_c(T53 *C){
rT44put_character((T44*)oRBC27cpp,'B');
rT44put_character((T44*)oRBC27cpp,'C');
rT44put_integer((T44*)oRBC27cpp,(C)->_id);
}/*BASE_CLASS*/T0* rT53new_name_of(T53 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (((T0 *)C)==((T0 *)a1)) {
R=a2;
}
 else if (!((C)->_parent_list)) {
R=rT53new_name_of((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1,a2);
}
else {
R=rT133new_name_of((T133*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
/*BASE_CLASS*/T0* rT53run_class(T53 *C){
T0* R=NULL;
T0* _type=NULL;
T0* _name=NULL;
T0* _rcd=NULL;
_name=((T51*)(C)->_base_class_name)->_to_string;
/*IF*/if (((!((C)->_is_deferred))&&(!(rT53is_generic(C))))) {
_rcd=oRBC55run_class_dictionary;
/*IF*/if (rT270has((T270*)_rcd,_name)) {
R=rT270at((T270*)_rcd,_name);
}
else {
{T118 *n=((T118*)se_new(118));
/*[IRF3:make*//*AW*/(n)->_base_class_name=((C)->_base_class_name);/*]*/
_type=(T0 *)n;}
R=rT118run_class((T118*)_type);
}
/*FI*/}
else {
rT53error(NULL,(T0 *)ms11_53);
}
/*FI*/return R;
}
/*BASE_CLASS*/void rT53set_parent_list(T53 *C,T0* a1,T0* a2,T0* a3){
{T133 *n=((T133*)se_new(133));
rT133make(n,(T0 *)C,a1,a2,a3);
C->_parent_list=(T0 *)n;}
}/*BASE_CLASS*/T0* rT53expanded_initializer(T53 *C,T0* a1){
T0* R=NULL;
/*IF*/if (((int)(C)->_creation_clause_list)) {
R=rT135expanded_initializer((T135*)(C)->_creation_clause_list,a1);
}
/*FI*/return R;
}
/*BASE_CLASS*/void rT53make(T53 *C,T0* a1){
C->_path=a1;
{T51 *n=((T51*)se_new(51));
rT51make_unknown(n);
C->_base_class_name=(T0 *)n;}
{T65 *n=((T65*)se_new(65));
rT65make(n);
C->_feature_dictionary=(T0 *)n;}
}/*BASE_CLASS*/T0* rT53root_procedure(T53 *C,T0* a1){
T0* R=NULL;
T0* _f=NULL;
T0* _rc=NULL;
/*IF*/if (rT53is_generic(C)) {
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT48append((T0 *)ms5_53);
/*[IRF3:print_as_fatal_error*/rT48do_print((T0 *)ms4_48);
rT48die_with_code(1);
/*]*/
}
/*FI*//*IF*/if ((C)->_is_deferred) {
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT48append((T0 *)ms6_53);
/*[IRF3:print_as_fatal_error*/rT48do_print((T0 *)ms4_48);
rT48die_with_code(1);
/*]*/
}
/*FI*/XrT71make(rT53mem_rpn(),a1,((T51*)(C)->_base_class_name)->_start_position);
/*IF*/if (!(rT53has_creation(C,rT53mem_rpn()))) {
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT48extend('\57');
rT48append(a1);
rT48append((T0 *)ms7_53);
/*[IRF3:print_as_fatal_error*/rT48do_print((T0 *)ms4_48);
rT48die_with_code(1);
/*]*/
}
/*FI*//*IF*/if (!(rT53has_feature(C,a1))) {
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT48append((T0 *)ms8_53);
rT48append(a1);
rT48append((T0 *)ms9_53);
/*[IRF3:print_as_fatal_error*/rT48do_print((T0 *)ms4_48);
rT48die_with_code(1);
/*]*/
}
/*FI*/_rc=rT53run_class(C);
rT269set_at_run_time((T269*)_rc);
_f=rT53look_up_for(C,_rc,rT53mem_rpn());
R=_f;
if ((int)R) switch (((T0 *)R)->id) {
case 259: 
break;
default:
R = NULL;
};/*IF*/if (!(R)) {
rT48add_position(XrT66start_position(_f));
rT53fatal_error((T0 *)ms10_53);
}
/*FI*/return R;
}
/*BASE_CLASS*/int rT53is_subclass_of(T53 *C,T0* a1){
int R=0;
/*IF*/if ((((int)(C)->_isom))&&(rT60fast_has((T60*)(C)->_isom,a1))) {
R=1;
}
else {
/*IF*/if (((T0 *)(T0 *)ms36_27)==((T0 *)((T51*)((T53*)a1)->_base_class_name)->_to_string)) {
R=1;
}
 else if (rT53is_general(C)) {
R=0;
}
 else if (!((C)->_parent_list)) {
rT60clear((T60*)oRBC53visited);
rT60add_last((T60*)oRBC53visited,(T0 *)C);
R=rT53is_subclass_of_aux((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1);
}
else {
rT60clear((T60*)oRBC53visited);
rT60add_last((T60*)oRBC53visited,(T0 *)C);
R=rT133has_parent((T133*)(C)->_parent_list,a1);
}
/*FI*//*IF*/if (R) {
/*IF*/if (!((C)->_isom)) {
C->_isom=ma(60,0,1,a1);
}
else {
rT60add_last((T60*)(C)->_isom,a1);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*BASE_CLASS*/int rT53is_subclass_of_aux(T53 *C,T0* a1){
int R=0;
/*IF*/if (!(rT60fast_has((T60*)oRBC53visited,(T0 *)C))) {
rT60add_last((T60*)oRBC53visited,(T0 *)C);
}
/*FI*//*IF*/if (!((C)->_parent_list)) {
R=rT53is_subclass_of_aux((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1);
}
else {
R=rT133has_parent((T133*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
/*BASE_CLASS*/int rT53proper_has(T53 *C,T0* a1){
int R=0;
R=rT65has((T65*)(C)->_feature_dictionary,XrT71to_key(a1));
return R;
}
/*BASE_CLASS*/T0* rT53first_parent_for(T53 *C,T0* a1){
T0* R=NULL;
R=rT133first_parent_for((T133*)(C)->_parent_list,a1);
return R;
}
/*BASE_CLASS*/void rT53error1(T53 *C){
rT53error(((T51*)(C)->_base_class_name)->_start_position,(T0 *)ms28_53);
}/*BASE_CLASS*/void rT53error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*BASE_CLASS*/void rT53add_creation_clause(T53 *C,T0* a1){
/*IF*/if (!((C)->_creation_clause_list)) {
{T135 *n=((T135*)se_new(135));
/*[IRF3:make*//*AW*/(n)->_list=(ma(136,0,1,a1));/*]*/
C->_creation_clause_list=(T0 *)n;}
}
else {
rT135add_last((T135*)(C)->_creation_clause_list,a1);
}
/*FI*/}/*BASE_CLASS*/void rT53add_feature_clause(T53 *C,T0* a1){
/*IF*/if (!((C)->_feature_clause_list)) {
{T265 *n=((T265*)se_new(265));
/*[IRF3:make*//*AW*/(n)->_list=(ma(266,0,1,a1));/*]*/
C->_feature_clause_list=(T0 *)n;}
}
else {
rT265add_last((T265*)(C)->_feature_clause_list,a1);
}
/*FI*/}/*BASE_CLASS*/int rT53super_has(T53 *C,T0* a1){
int R=0;
/*IF*/if (!((C)->_parent_list)) {
/*IF*/if (rT53is_general(C)) {
R=0;
}
else {
R=rT53has((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1);
}
/*FI*/}
else {
R=rT133has((T133*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
T0*oRBC53visited;
/*BASE_CLASS*/T0* rT53super_look_up_for(T53 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (!((C)->_parent_list)) {
/*IF*/if (rT53is_general(C)) {
R=NULL;
}
else {
R=rT53look_up_for((T53*)/*(IRF4*/rT53class_with((T0 *)ms36_27)/*)*/,a1,a2);
}
/*FI*/}
else {
R=rT133look_up_for((T133*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
/*BASE_CLASS*/void rT53add_index_clause(T53 *C,T0* a1){
/*IF*/if (!((C)->_index_list)) {
{T86 *n=((T86*)se_new(86));
/*[IRF3:make*//*AW*/(n)->_list=(ma(87,0,1,a1));/*]*/
C->_index_list=(T0 *)n;}
}
else {
rT87add_last((T87*)((T86*)(C)->_index_list)->_list,a1);
}
/*FI*/}/*BASE_CLASS*/int rT53is_a_vncg(T53 *C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((int)(C)->_parent_list)) {
R=rT133is_a_vncg((T133*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
/*BASE_CLASS*/int rT53has(T53 *C,T0* a1){
int R=0;
/*IF*/if (rT65has((T65*)(C)->_feature_dictionary,XrT71to_key(a1))) {
R=1;
}
else {
R=rT53super_has(C,a1);
}
/*FI*/return R;
}
/*BASE_CLASS*/void rT53check_expanded_with(T53 *C,T0* a1){
/*IF*/if ((C)->_is_deferred) {
rT48add_type(a1,(T0 *)ms106_27);
rT53fatal_error((T0 *)ms1_53);
}
/*FI*//*IF*/if (((int)(C)->_creation_clause_list)) {
rT135check_expanded_with((T135*)(C)->_creation_clause_list,a1);
}
/*FI*/}/*BASE_CLASS*/int rT53has_creation_clause(T53 *C){
int R=0;
R=((int)(C)->_creation_clause_list);
return R;
}
/*BASE_CLASS*/int rT53has_creation(T53 *C,T0* a1){
int R=0;
T0* _cc=NULL;
/*IF*/if (!((C)->_creation_clause_list)) {
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT48append((T0 *)ms2_53);
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)a1)->_start_position);
rT48print_as_error((T48*)oRBC27eh);
}
else {
_cc=rT135get_clause((T135*)(C)->_creation_clause_list,a1);
/*IF*/if (!(_cc)) {
rT48append(/*XrT*FEATURE_NAME*/((T70*)a1)->_to_string);
rT48append((T0 *)ms3_53);
rT48append(((T51*)(C)->_base_class_name)->_to_string);
rT53error(/*XrT*FEATURE_NAME*/((T70*)a1)->_start_position,(T0 *)ms102_27);
}
else {
R=rT125gives_permission_to((T125*)((T134*)_cc)->_clients,XrT71written_in(a1));
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
rT53error(/*XrT*FEATURE_NAME*/((T70*)a1)->_start_position,(T0 *)ms4_53);
}
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/T0* rT208twin(T208 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT208copy((T208*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/int rT208is_static(T208 *C){
int R=0;
/*IF*/if (XrT62is_boolean(XrT72result_type((C)->_target))) {
/*IF*/if (XrT72is_static((C)->_target)) {
/*IF*/if ((XrT72static_value((C)->_target))==(0)) {
R=1;
C->_static_value_mem=1;
}
 else if (XrT72is_static(rT208arg1(C))) {
R=1;
C->_static_value_mem=XrT72static_value(rT208arg1(C));
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/int rT208static_value(T208 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
/*CALL_INFIX_IMPLIES*/void rT208fatal_error(/*C*/T0* a1){
rT48fatal_error(a1);
}/*CALL_INFIX_IMPLIES*/void rT208cpc_to_runnable(T208 *C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=XrT72to_runnable((C)->_target,a1);
/*IF*/if (!(_t)) {
rT48add_position(XrT72start_position((C)->_target));
rT208fatal_error((T0 *)ms1_169);
}
/*FI*/C->_target=_t;
_rc=XrT62run_class(XrT72result_type((C)->_target));
C->_run_feature=rT269get_rf((T269*)_rc,(T0 *)C);
}/*CALL_INFIX_IMPLIES*/void rT208to_runnable_0(T208 *C,T0* a1){
C->_current_type=a1;
rT208cpc_to_runnable(C,a1);
C->_result_type=/*XrT*RUN_FEATURE*/((T274*)(C)->_run_feature)->_result_type;
/*IF*/if (!((C)->_result_type)) {
rT48add_position(XrT268start_position((C)->_run_feature));
rT208error(((T74*)(C)->_feature_name)->_start_position,(T0 *)ms1_168);
}
 else if (XrT62is_like_current((C)->_result_type)) {
C->_result_type=XrT72result_type((C)->_target);
}
/*FI*/}/*CALL_INFIX_IMPLIES*/T0* rT208to_runnable(T208 *C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
/*IF*/if (!((C)->_current_type)) {
rT208to_runnable_0(C,a1);
_a=rT175to_runnable((T175*)(C)->_arguments,a1);
/*IF*/if (!(_a)) {
rT208error(XrT72start_position(rT208arg1(C)),(T0 *)ms1_179);
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
rT175match_with((T175*)(C)->_arguments,(C)->_run_feature);
}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT62is_like_argument((C)->_result_type))) {
C->_result_type=XrT62run_type(XrT72result_type(rT208arg1(C)));
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT208twin(C);
/*[IRF3:set_current_type*//*AW*/((T208*)R)->_current_type=(NULL);/*]*/
R=rT208to_runnable((T208*)R,a1);
}
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/void rT208error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*CALL_INFIX_IMPLIES*/T0* rT208add_comment(T208 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT63count((T63*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
rT228make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/T0* rT208arg1(T208 *C){
T0* R=NULL;
R=rT175first((T175*)(C)->_arguments);
return R;
}
/*CALL_INFIX_IMPLIES*/T0* rT208start_position(T208 *C){
T0* R=NULL;
R=((T74*)(C)->_feature_name)->_start_position;
return R;
}
/*CALL_INFIX_IMPLIES*/int rT208use_current(T208 *C){
int R=0;
/*IF*/{/*AT*/R=rT175use_current((T175*)(C)->_arguments);
}
/*FI*//*IF*/if (R) {
}
 else if (XrT72is_current((C)->_target)) {
R=XrT268use_current((C)->_run_feature);
}
else {
R=XrT72use_current((C)->_target);
}
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/void rT208compile_to_c_old(T208 *C){
XrT72compile_to_c_old((C)->_target);
/*IF*/{/*AT*/rT175compile_to_c_old((T175*)(C)->_arguments);
}
/*FI*/}/*CALL_INFIX_IMPLIES*/void rT208compile_to_c(T208 *C){
rT208call_proc_call_c2c(C);
}/*CALL_INFIX_IMPLIES*/int rT208to_integer(T208 *C){
int R=0;
rT208error(rT208start_position(C),(T0 *)ms104_27);
return R;
}
/*CALL_INFIX_IMPLIES*/void rT208call_proc_call_c2c(T208 *C){
T0* _tt=NULL;
_tt=XrT62run_type(XrT72result_type((C)->_target));
/*IF*/if (((XrT72is_current((C)->_target))||(XrT72is_manifest_string((C)->_target)))||(XrT62is_expanded(_tt))) {
rT44push_direct((T44*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
XrT268mapping_c((C)->_run_feature);
rT44pop((T44*)oRBC27cpp);
}
else {
rT44push_cpc((T44*)oRBC27cpp,(C)->_run_feature,((T269*)XrT62run_class(_tt))->_running,(C)->_target,(C)->_arguments);
}
/*FI*/}/*CALL_INFIX_IMPLIES*/void rT208copy(T208 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*CALL_INFIX_IMPLIES*/int rT208is_a(T208 *C,T0* a1){
int R=0;
R=XrT62is_a(XrT62run_type((C)->_result_type),XrT62run_type(XrT72result_type(a1)));
/*IF*/if (!(R)) {
rT48add_position(rT208start_position(C));
rT208error(XrT72start_position(a1),(T0 *)ms2_72);
}
/*FI*/return R;
}
/*CALL_INFIX_IMPLIES*/int rT208is_pre_computable(T208 *C){
int R=0;
R=rT208is_static(C);
return R;
}
/*CALL_INFIX_IMPLIES*/void rT208make_call_1(T208 *C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}/*CALL_INFIX_IMPLIES*/void rT208make(T208 *C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if ((!(a1))||(!(a3))) {
rT48add_position(a2);
rT208fatal_error((T0 *)ms1_189);
}
/*FI*/{T74 *n=((T74*)se_new(74));
rT74make(n,/*(IRF4*/(T0 *)ms117_27/*)*/,a2);
C->_feature_name=(T0 *)n;}
{T175 *n=((T175*)se_new(175));
/*[IRF3:make*//*AW*/(n)->_list=(ma(85,0,1,a3));/*]*/
_eal=(T0 *)n;}
rT208make_call_1(C,a1,(C)->_feature_name,_eal);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.