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

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

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.95)    --      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"
T0* rT131look_up_for(T131 *C,T0* a1,T0* a2){
T0* R=NULL;
T0* _p_result=NULL;
T0* _p_f=NULL;
T0* _f=NULL;
int _i=0;
int _ne=0;
_ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
_i=1;
while (!(((_i)>(((T130*)(C)->_list)->_upper))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0)))) {
_p_f=rT130item((T130*)(C)->_list,_i);
_i=(_i)+(1);
_f=rT118look_up_for((T118*)_p_f,a1,a2);
/*IF*/if (!(_f)) {
}
 else if (!(R)) {
R=_f;
_p_result=_p_f;
}
 else if (((T0 *)R)==((T0 *)_f)) {
}
else {
/*IF*/if ((rT118has_select((T118*)_p_result,a2))&&(rT118has_select((T118*)_p_f,a2))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT118start_position((T118*)_p_result));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms483);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string(a2));
rT131error(rT118start_position((T118*)_p_f),(T0 *)ms36);
R=NULL;
}
/*FI*//*IF*/if (rT118has_select((T118*)_p_f,a2)) {
/*IF*/if (XrT62is_merge_with(_f,R,a1)) {
R=_f;
_p_result=_p_f;
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
rT131error(XrT62start_position(_f),(T0 *)ms491);
R=NULL;
}
/*FI*/}
 else if (XrT62is_deferred(_f)) {
/*IF*/if (XrT62is_merge_with(R,_f,a1)) {
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
rT131error(XrT62start_position(_f),(T0 *)ms492);
R=NULL;
}
/*FI*/}
 else if (XrT62is_deferred(R)) {
/*IF*/if (XrT62is_merge_with(_f,R,a1)) {
R=_f;
_p_result=_p_f;
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
rT131error(XrT62start_position(_f),(T0 *)ms493);
R=NULL;
}
/*FI*/}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT118start_position((T118*)_p_f));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT118start_position((T118*)_p_result));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(_f));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms494);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*/}
/*FI*/}
return R;
}
T0* rT131parent_for(T131 *C,T0* a1){
T0* R=NULL;
T0* _pbc=NULL;
T0* _p=NULL;
int _i=0;
_i=1;
while (!((_i)>(((T130*)(C)->_list)->_upper))) {
_p=rT130item((T130*)(C)->_list,_i);
_pbc=XrT58base_class(((T118*)_p)->_type);
/*IF*/if (((T0 *)_pbc)==((T0 *)a1)) {
/*IF*/if (!(R)) {
R=_p;
}
 else if (((T0 *)R)==((T0 *)_p)) {
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position((C)->_start_position);
rT131fatal_error((T0 *)ms1455);
}
/*FI*/}
 else if (rT50is_subclass_of((T50*)_pbc,a1)) {
R=rT50parent((T50*)_pbc,a1);
}
/*FI*/_i=(_i)+(1);
}
return R;
}
T0* rT131class_with(/*C*/T0* a1){
T0* R=NULL;
R=((/*UT*/(void)(T52*)oRBC27small_eiffel),
rT52get_class(a1));
return R;
}
T0* rT131base_class_name(T131 *C){
T0* R=NULL;
R=((T50*)(C)->_base_class)->_base_class_name;
return R;
}
int rT131is_a(T131 *C,T0* a1){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>(((T130*)(C)->_list)->_upper)))) {
R=rT118is_a((T118*)rT130item((T130*)(C)->_list,_i),a1);
/*IF*/if (!(R)) {
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
/*(IRF3*/(((T7*)oRBC45explanation)->_count)=(0);
/*)*/rT47clear((T47*)rT45positions());
/*)*/}
/*FI*/_i=(_i)+(1);
}
return R;
}
int rT131has(T131 *C,T0* a1){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>(((T130*)(C)->_list)->_upper)))) {
R=rT118has((T118*)rT130item((T130*)(C)->_list,_i),a1);
_i=(_i)+(1);
}
return R;
}
void rT131make(T131 *C,T0* a1,T0* a2,T0* a3,T0* a4){
C->_base_class=a1;
C->_heading_comment=a3;
C->_start_position=a2;
C->_list=a4;
}
void rT249warning(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45warning((T45*)oRBC27eh,a2);
}
T0* rT249current_type(T249 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_run_compound)) {
R=((T140*)(C)->_run_compound)->_current_type;
}
/*FI*/return R;
}
void rT249fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
T0* rT249to_runnable(T249 *C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
T0* _right_run_type=NULL;
T0* _left_run_type=NULL;
/*IF*/if (!((C)->_run_compound)) {
C->_run_compound=a1;
_e=XrT68to_runnable((C)->_left_side,rT249current_type(C));
/*IF*/if (!(_e)) {
rT249error(XrT68start_position((C)->_left_side),(T0 *)ms1287);
}
else {
C->_left_side=_e;
}
/*FI*/_e=XrT68to_runnable((C)->_right_side,rT249current_type(C));
/*IF*/if (!(_e)) {
rT249error(XrT68start_position((C)->_right_side),(T0 *)ms1288);
}
else {
C->_right_side=_e;
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (!(XrT68is_a((C)->_right_side,(C)->_left_side))) {
rT249error(XrT68start_position((C)->_left_side),(T0 *)ms1290);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
_left_run_type=XrT58run_type(rT249left_type(C));
_right_run_type=XrT58run_type(rT249right_type(C));
/*IF*/if (XrT58is_reference(_left_run_type)) {
/*IF*/if (XrT58is_reference(_right_run_type)) {
}
else {
XrT58used_as_reference(_right_run_type);
}
/*FI*/}
else {
/*IF*/if (XrT58is_reference(_right_run_type)) {
/*IF*/if (XrT68is_void((C)->_right_side)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position((C)->_right_side));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1291);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type(rT249left_type(C),(T0 *)ms1292);
rT45print_as_error((T45*)oRBC27eh);
}
else {
rT249warning(XrT68start_position((C)->_left_side),(T0 *)ms1293);
}
/*FI*/}
else {
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
{T249 *n=((T249*)se_new(249));
rT249make(n,(C)->_left_side,(C)->_right_side);
R=(T0 *)n;}
R=rT249to_runnable((T249*)R,a1);
}
/*FI*/return R;
}
T0* rT249left_type(T249 *C){
T0* R=NULL;
R=XrT68result_type((C)->_left_side);
return R;
}
void rT249error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT249add_comment(T249 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
R=(T0 *)C;
}
/*AF*/else {
{T217 *n=((T217*)se_new(217));
rT217make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
T0* rT249start_position(T249 *C){
T0* R=NULL;
R=XrT68start_position((C)->_left_side);
return R;
}
int rT249use_current(T249 *C){
int R=0;
R=XrT68use_current((C)->_left_side);
R=(R)||(XrT68use_current((C)->_right_side));
return R;
}
void rT249compile_to_c(T249 *C){
int _trace_instruction=0;
T0* _right_run_type=NULL;
T0* _left_run_type=NULL;
_trace_instruction=!(XrT68c_simple((C)->_right_side));
/*IF*/if (_trace_instruction) {
rT43rs_push_position((T43*)oRBC27cpp,'1',rT249start_position(C));
}
/*FI*/_left_run_type=XrT58run_type(rT249left_type(C));
_right_run_type=XrT58run_type(rT249right_type(C));
/*IF*/if (XrT58is_reference(_left_run_type)) {
/*IF*/if (XrT58is_reference(_right_run_type)) {
XrT68compile_to_c((C)->_left_side);
rT43put_character((T43*)oRBC27cpp,'\75');
/*IF*/if (XrT68is_current((C)->_right_side)) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1356);
}
/*FI*//*IF*/if (XrT68is_manifest_string((C)->_right_side)) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1357);
}
/*FI*/XrT68compile_to_c((C)->_right_side);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1358);
}
else {
XrT68compile_to_c((C)->_left_side);
rT43put_character((T43*)oRBC27cpp,'\75');
XrT58to_reference(_right_run_type);
rT43put_character((T43*)oRBC27cpp,'\50');
XrT68compile_to_c((C)->_right_side);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1359);
}
/*FI*/}
else {
/*IF*/if (XrT58is_reference(_right_run_type)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position((C)->_left_side));
rT249fatal_error((T0 *)ms1360);
}
else {
XrT68compile_to_c((C)->_left_side);
rT43put_character((T43*)oRBC27cpp,'\75');
XrT68compile_to_c((C)->_right_side);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1361);
}
/*FI*/}
/*FI*//*IF*/if (_trace_instruction) {
rT43rs_pop_position((T43*)oRBC27cpp);
}
/*FI*/}
int rT249is_pre_computable(T249 *C){
int R=0;
R=(XrT68is_result((C)->_left_side))&&(XrT68is_pre_computable((C)->_right_side));
return R;
}
T0* rT249right_type(T249 *C){
T0* R=NULL;
R=XrT68result_type((C)->_right_side);
return R;
}
void rT249make(T249 *C,T0* a1,T0* a2){
C->_left_side=a1;
C->_right_side=a2;
}
T0* rT97to_key(T97 *C){
T0* R=NULL;
R=(C)->_to_string;
return R;
}
void rT97make(T97 *C,T0* a1,T0* a2){
C->_to_string=a1;
C->_start_position=a2;
}
T0* rT80twin(T80 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT80copy((T80*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT80is_static(T80 *C){
int R=0;
C->_static_value_mem=(C)->_value;
R=1;
return R;
}
int rT80static_value(T80 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
T0* rT80to_runnable(T80 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT80twin(C);
/*(IRF3*/(((T80*)R)->_current_type)=(a1);
/*)*/}
/*FI*/return R;
}
void rT80error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT80add_comment(T80 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T221 *n=((T221*)se_new(221));
rT221make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
int ofBC80result_type=0;
T0*oRBC80result_type;
T0* rT80result_type(/*C*/void){
if (ofBC80result_type==0){
T0* R=NULL;
ofBC80result_type=1;
{T111 *n=((T111*)se_new(111));
rT111make(n,NULL);
R=(T0 *)n;}
oRBC80result_type=R;}
return oRBC80result_type;}
T0* rT80_px45(T80 *C){
T0* R=NULL;
{T80 *n=((T80*)se_new(80));
rT80make(n,-((C)->_value),NULL);
R=(T0 *)n;}
return R;
}
void rT80compile_to_c(T80 *C){
rT43put_integer((T43*)oRBC27cpp,(C)->_value);
}
int rT80to_integer(T80 *C){
int R=0;
R=(C)->_value;
return R;
}
T0* rT80to_real_constant(T80 *C){
T0* R=NULL;
rT80error((C)->_start_position,(T0 *)ms272);
return R;
}
T0* rT80written_in(T80 *C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position;
/*IF*/if (((int)_sp)) {
R=((T46*)_sp)->_base_class_name;
}
/*FI*/return R;
}
void rT80copy(T80 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
int rT80is_a(T80 *C,T0* a1){
int R=0;
R=XrT58is_a(rT111run_type((T111*)rT80result_type()),XrT58run_type(XrT68result_type(a1)));
/*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position((C)->_start_position);
rT80error(XrT68start_position(a1),(T0 *)ms1289);
}
/*FI*/return R;
}
void rT80make(T80 *C,int a1,T0* a2){
C->_value=a1;
C->_start_position=a2;
}
T0* rT74type_boolean(/*C*/void){
if (ofBC27type_boolean==0){
T0* R=NULL;
ofBC27type_boolean=1;
{T107 *n=((T107*)se_new(107));
rT107make(n,NULL);
R=(T0 *)n;}
oRBC27type_boolean=R;}
return oRBC27type_boolean;}
T0* rT74twin(T74 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT74copy((T74*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT74static_value(T74 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
T0* rT74to_runnable(T74 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT74twin(C);
/*(IRF3*/(((T74*)R)->_current_type)=(a1);
/*)*/}
/*FI*/return R;
}
void rT74error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT74add_comment(T74 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T221 *n=((T221*)se_new(221));
rT221make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
T0* rT74written_in(T74 *C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position;
/*IF*/if (((int)_sp)) {
R=((T46*)_sp)->_base_class_name;
}
/*FI*/return R;
}
void rT74copy(T74 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
int rT74is_a(T74 *C,T0* a1){
int R=0;
R=XrT58is_a(rT107run_type((T107*)/*(IRF4*/rT74type_boolean()/*)*/),XrT58run_type(XrT68result_type(a1)));
/*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position((C)->_start_position);
rT74error(XrT68start_position(a1),(T0 *)ms1289);
}
/*FI*/return R;
}
T0*oRBC2tmp_string;
int rT2min(T2 C,int a1){
int R=0;
/*IF*/if ((C)<(a1)) {
R=C;
}
else {
R=a1;
}
/*FI*/return R;
}
int rT2max(T2 C,int a1){
int R=0;
/*IF*/if ((a1)<(C)) {
R=C;
}
else {
R=a1;
}
/*FI*/return R;
}
T0* rT2to_string(T2 C){
T0* R=NULL;
{T7 *n=((T7*)se_new(7));
rT7make(n,0);
R=(T0 *)n;}
rT2append_in(C,R);
return R;
}
char rT2digit(T2 C){
char R=0;
R=rT7item(ms40,(C)+(1));
return R;
}
int rT2to_octal(T2 C){
int R=0;
/*IF*/if ((C)==(0)) {
}
 else if ((C)<(0)) {
R=-(rT2to_octal(-(C)));
}
else {
/*(IRF3*/(((T7*)oRBC2tmp_string)->_count)=(0);
/*)*/R=C;
while (!((R)==(0))) {
rT7extend((T7*)oRBC2tmp_string,rT2digit((R)%(8)));
R=(R)/(8);
}
rT7reverse((T7*)oRBC2tmp_string);
R=rT7to_integer((T7*)oRBC2tmp_string);
}
/*FI*/return R;
}
void rT2append_in(T2 C,T0* a1){
int _i=0;
int _val=0;
/*IF*/if ((C)==(0)) {
rT7extend((T7*)a1,'0');
}
else {
/*IF*/if ((C)<(0)) {
rT7extend((T7*)a1,'\55');
rT2append_in(-(C),a1);
}
else {
_i=(((T7*)a1)->_count)+(1);
_val=C;
while (!((_val)==(0))) {
rT7extend((T7*)a1,rT2digit((_val)%(10)));
_val=(_val)/(10);
}
_val=((T7*)a1)->_count;
while (!((_i)>=(_val))) {
rT7swap((T7*)a1,_i,_val);
_val=(_val)-(1);
_i=(_i)+(1);
}
}
/*FI*/}
/*FI*/}
float rT2to_real(T2 C){
float R=0;
R=C;
return R;
}
int rT2_ix94(T2 C,int a1){
int R=0;
/*IF*/if ((a1)==(0)) {
R=1;
}
 else if (((a1)%(2))==(0)) {
R=rT2_ix94((C)*(C),(a1)/(2));
}
else {
R=(C)*(rT2_ix94(C,(a1)-(1)));
}
/*FI*/return R;
}
void rT65add_index_value(T65 *C,T0* a1){
/*IF*/if (!((C)->_list)) {
C->_list=ma(81,0,1,a1);
}
else {
XrT81add_last((C)->_list,a1);
}
/*FI*/}
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;
}
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 *)ms30)) {
rT43add_c_object((T43*)oRBC27cpp,_a);
}
 else if (rT7has_suffix((T7*)_a,(T0 *)ms32)) {
rT43add_c_object((T43*)oRBC27cpp,_a);
}
 else if (!((C)->_root_class)) {
C->_root_class=_a;
/*(IRF3*/(((T44*)oRBC27eiffel_run_control)->_root_class)=(_a);
/*)*/C->_state=2;
}
else {
rT43add_c_compiler_option((T43*)oRBC27cpp,_a);
}
/*FI*/}
 else if (rT7is_equal(ms33,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_boost((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms433,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_no_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms434,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_require_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms435,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_ensure_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms436,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_invariant_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms437,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_loop_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms438,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_all_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms439,_a)) {
/*IF*/if (((int)(C)->_level)) {
rT26error_level(C,_a);
}
else {
rT44set_debug_check((T44*)oRBC27eiffel_run_control);
C->_level=_a;
}
/*FI*/}
 else if (rT7is_equal(ms440,_a)) {
/*(IRF3*/(((T43*)oRBC27cpp)->_no_strip)=(1);
/*)*/}
 else if (rT7is_equal(ms441,_a)) {
C->_state=3;
}
 else if (rT7has_prefix((T7*)_a,(T0 *)ms442)) {
rT43add_c_library((T43*)oRBC27cpp,_a);
}
 else if (rT7is_equal(ms443,_a)) {
/*IF*/if (((int)(C)->_output_name)) {
rT45error((T45*)oRBC27eh,(T0 *)ms444);
C->_state=9;
}
else {
C->_state=1;
}
/*FI*/}
else {
rT43add_c_compiler_option((T43*)oRBC27cpp,_a);
}
/*FI*/goto l502;
 l504: ;
if (1 == iv1) goto l505;
goto l506;
 l505: ;
/*(IRF3*/(((T43*)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*/(((T7*)(T0 *)ms445)->_count)=(0);
/*)*/rT7append((T7*)(T0 *)ms445,_a);
C->_state=0;
goto l502;
 l510: ;
 l502: ;
}
_arg=(_arg)+(1);
}
/*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
rT52compile_to_c((T52*)oRBC27small_eiffel,(C)->_root_class,(C)->_start_proc);
}
/*FI*/}
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;}
void rT26die_with_code(/*C*/int a1){
exit(a1);
}
T0*oRBC27hlp_file_name;
void rT26error_level(T26 *C,T0* a1){
C->_state=9;
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms34);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((C)->_level);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms35);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(a1);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms36);
rT45print_as_error((T45*)oRBC27eh);
}
void rT26add_directory(/*C*/T0* a1,T0* a2){
rT7append((T7*)a1,a2);
rT7extend((T7*)a1,rT26directory_separator());
}
void rT26print_hlp(/*C*/T0* a1){
rT7copy((T7*)oRBC27hlp_file_name,rT26small_eiffel_directory());
rT26add_directory(oRBC27hlp_file_name,(T0 *)ms20);
rT7append((T7*)oRBC27hlp_file_name,a1);
/*IF*/if (!(rT7has_suffix((T7*)oRBC27hlp_file_name,(T0 *)ms21))) {
rT7append((T7*)oRBC27hlp_file_name,(T0 *)ms21);
}
/*FI*//*IF*/if (!(rT26file_exists(oRBC27hlp_file_name))) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms23);
rT37put_string((T37*)oRBC1std_error,oRBC27hlp_file_name);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms24);
rT26die_with_code(1);
}
/*FI*/rT41append_file((T41*)oRBC1std_output,oRBC27hlp_file_name);
}
T0*oRBC1command_arguments;
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 *)ms15);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms15);
rT7to_upper((T7*)R);
R=rT26get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms15);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms19;
}
/*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;}
T0* rT26argument(/*C*/int a1){
T0* R=NULL;
R=rT34item((T34*)oRBC1command_arguments,a1);
return R;
}
void rT26make(T26 *C){
/*IF*/if ((/*(IRF4*/((T34*)oRBC1command_arguments)->_upper/*)*/)<(2)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms9);
rT26print_hlp((T0 *)ms28);
rT26die_with_code(1);
}
else {
rT26automat(C);
}
/*FI*/}
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;
}
T0* rT252runnable(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(rT158empty((T158*)a1))) {
R=rT158twin((T158*)a1);
_i=((T158*)R)->_upper;
while (!((_i)==(0))) {
rT52push((T52*)oRBC27small_eiffel,a3);
_a=rT64to_runnable((T64*)rT158item((T158*)R,_i),a2);
/*IF*/if (!(_a)) {
rT252error(rT64start_position((T64*)rT158item((T158*)R,_i)),(T0 *)ms473);
}
else {
rT158put((T158*)R,_a,_i);
}
/*FI*/rT52pop((T52*)oRBC27small_eiffel);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
T0* rT252run_require(/*C*/T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
rT269clear((T269*)oRBC62require_collector);
rT50collect_for((T50*)XrT58base_class(XrT262current_type(a1)),1001,XrT262name(a1));
/*IF*/if (!(rT269empty((T269*)oRBC62require_collector))) {
_i=1;
while (!((_i)>(((T269*)oRBC62require_collector)->_upper))) {
_er=rT269item((T269*)oRBC62require_collector,_i);
/*IF*/if (!(rT137empty((T137*)_er))) {
_r=rT252runnable(((T137*)_er)->_list,XrT262current_type(a1),a1);
/*IF*/if (((int)_r)) {
{T137 *n=((T137*)se_new(137));
rT137from_runnable(n,_r);
_er=(T0 *)n;}
/*IF*/if (!(_ar)) {
_ar=ma(269,0,1,_er);
}
else {
rT269add_last((T269*)_ar,_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (((int)_ar)) {
{T268 *n=((T268*)se_new(268));
/*(IRF3*/((n)->_list)=(_ar);
/*)*/R=(T0 *)n;}
}
/*FI*/}
/*FI*/return R;
}
void rT252fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
T0* rT252first_name(T252 *C){
T0* R=NULL;
R=rT128item((T128*)(C)->_names,1);
return R;
}
T0* rT252to_run_feature(T252 *C,T0* a1,T0* a2){
T0* R=NULL;
{T267 *n=((T267*)se_new(267));
rT267make(n,a1,a2,(T0 *)C);
R=(T0 *)n;}
return R;
}
void rT252error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
void rT252fe_undefine(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms479);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string(a1));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms480);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
rT252fatal_error((T0 *)ms481);
}
int rT252is_merge_with(T252 *C,T0* a1,T0* a2){
int R=0;
int _ne=0;
_ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
/*IF*/if (((!((C)->_result_type))||(!(XrT62result_type(a1))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms484);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT62arguments(a1))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms485);
}
 else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms486);
}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
rT45error((T45*)oRBC27eh,(T0 *)ms487);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms490);
}
/*FI*/}
/*FI*/}
/*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
return R;
}
T0* rT252start_position(T252 *C){
T0* R=NULL;
R=XrT67start_position(rT252first_name(C));
return R;
}
void rT252collect_for(T252 *C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((int)(C)->_require_assertion)) {
/*IF*/if (!(rT269fast_has((T269*)oRBC62require_collector,(C)->_require_assertion))) {
rT269add_last((T269*)oRBC62require_collector,(C)->_require_assertion);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((int)(C)->_ensure_assertion)) {
rT157add_into((T157*)(C)->_ensure_assertion,oRBC62assertion_collector);
}
/*FI*/}
/*FI*/}
void rT252add_into(T252 *C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
_i=1;
while (!((_i)>(rT128count((T128*)(C)->_names)))) {
_fn=rT128item((T128*)(C)->_names,_i);
/*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
_fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position(_fn));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
rT45error((T45*)oRBC27eh,(T0 *)ms414);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string(_fn));
rT45error((T45*)oRBC27eh,(T0 *)ms36);
}
else {
rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
T0* rT252try_to_undefine(T252 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (XrT67is_frozen(a1)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT252start_position(C));
rT252error(XrT67start_position(a1),(T0 *)ms478);
rT252fe_undefine(a1,a2);
}
else {
R=rT252try_to_undefine_aux(C,a1,a2);
/*IF*/if (((int)R)) {
XrT204set_clients(R,(C)->_clients);
}
else {
rT252fe_undefine(a1,a2);
}
/*FI*/}
/*FI*/return R;
}
T0* rT252try_to_undefine_aux(T252 *C,T0* a1,T0* a2){
T0* R=NULL;
{T205 *n=((T205*)se_new(205));
rT205from_effective(n,a1,(C)->_arguments,(C)->_require_assertion,(C)->_ensure_assertion,a2);
R=(T0 *)n;}return R;
}
void rT252set_header_comment(T252 *C,T0* a1){
/*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
C->_end_comment=a1;
}
/*FI*/}
int rT252can_hide(T252 *C,T0* a1,T0* a2){
int R=0;
int _ne=0;
_ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
/*IF*/if (((!((C)->_result_type))||(!(XrT62result_type(a1))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms497);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT62arguments(a1))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms498);
}
 else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
rT252error(rT252start_position(C),(T0 *)ms499);
}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms500);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT58run_time_mark(((T261*)a2)->_current_type));
rT45error((T45*)oRBC27eh,(T0 *)ms501);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT92is_a_in((T92*)(C)->_arguments,XrT62arguments(a1),a2))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(a1));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT252start_position(C));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms502);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT58run_time_mark(((T261*)a2)->_current_type));
rT45error((T45*)oRBC27eh,(T0 *)ms503);
}
/*FI*/}
/*FI*/}
/*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
return R;
}
T0* rT252run_ensure(/*C*/T0* a1){
T0* R=NULL;
T0* _r=NULL;
rT158clear((T158*)oRBC62assertion_collector);
rT50collect_for((T50*)XrT58base_class(XrT262current_type(a1)),1002,XrT262name(a1));
_r=rT252runnable(oRBC62assertion_collector,XrT262current_type(a1),a1);
/*IF*/if (((int)_r)) {
{T157 *n=((T157*)se_new(157));
rT157from_runnable(n,_r);
R=(T0 *)n;}
}
/*FI*/return R;
}
T0* rT252base_class_name(T252 *C){
T0* R=NULL;
R=((T50*)(C)->_base_class)->_base_class_name;
return R;
}
void rT252set_rescue_compound(T252 *C,T0* a1){
/*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
rT252error(rT252start_position(C),(T0 *)ms397);
}
/*FI*/C->_rescue_compound=a1;
}
void rT252make_e_feature(T252 *C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void rT252make_routine(T252 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
rT252make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void rT252make(T252 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
rT252make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1015;
}
void rT52cecil_for(/*C*/T0* a1,T0* a2){
T0* _rf=NULL;
_rf=rT261get_feature_with((T261*)XrT58run_class(a1),a2);
rT43add_cecil((T43*)oRBC27cpp,_rf);
}
void rT52push(T52 *C,T0* a1){
C->_top=((C)->_top)+(1);
XrT266force(oRBC52stack_rf,a1,(C)->_top);
}
T0* rT52find_path_for(/*C*/T0* a1){
T0* R=NULL;
int _i=0;
rT7copy((T7*)(T0 *)ms45,a1);
rT7to_lower((T7*)(T0 *)ms45);
/*IF*/if (!(rT7has_suffix((T7*)(T0 *)ms45,(T0 *)ms46))) {
rT7append((T7*)(T0 *)ms45,(T0 *)ms46);
}
/*FI*//*IF*/if (rT52file_exists((T0 *)ms45)) {
R=rT7twin((T7*)(T0 *)ms45);
}
else {
_i=((T34*)rT52loading_path())->_lower;
while (!((((_i)>(((T34*)rT52loading_path())->_upper))||(((int)R))))) {
rT7copy((T7*)(T0 *)ms53,rT34item((T34*)rT52loading_path(),_i));
rT7append((T7*)(T0 *)ms53,(T0 *)ms45);
/*IF*/if (rT52file_exists((T0 *)ms53)) {
R=rT7twin((T7*)(T0 *)ms53);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*//*IF*/if ((!(R))&&(rT57has((T57*)rT52rename_dictionary(),(T0 *)ms45))) {
rT7copy((T7*)(T0 *)ms53,rT57at((T57*)rT52rename_dictionary(),(T0 *)ms45));
/*IF*/if (rT52file_exists((T0 *)ms53)) {
R=(T0 *)ms53;
}
else {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms60);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms53);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms61);
rT52die_with_code(1);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms62);
rT37put_string((T37*)oRBC1std_error,a1);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms63);
/*(IRF3*/(((T7*)(T0 *)ms53)->_count)=(0);
/*)*/rT52append_loading_path_in((T0 *)ms53);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms53);
}
/*FI*/return R;
}
T0* rT52type_any(/*C*/void){
if (ofBC27type_any==0){
T0* R=NULL;
ofBC27type_any=1;
{T87 *n=((T87*)se_new(87));
rT87make(n,NULL);
R=(T0 *)n;}
oRBC27type_any=R;}
return oRBC27type_any;}
T0* rT52get_class(/*C*/T0* a1){
T0* R=NULL;
/*IF*/if (rT54has((T54*)oRBC52base_class_dictionary,a1)) {
R=rT54at((T54*)oRBC52base_class_dictionary,a1);
}
else {
rT48make((T48*)rT52tmp_class_name(),a1,NULL);
R=rT48base_class((T48*)rT52tmp_class_name());
}
/*FI*/return R;
}
int rT52is_used(/*C*/T0* a1){
int R=0;
R=rT54has((T54*)oRBC52base_class_dictionary,a1);
return R;
}
T0* rT52top_rf(T52 *C){
T0* R=NULL;
R=XrT266item(oRBC52stack_rf,(C)->_top);
return R;
}
T0* rT52get_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;
}
void rT52define_extern_tables(T52 *C){
int _size=0;
_size=((C)->_last_id)+(1);
rT43put_extern4((T43*)oRBC27cpp,(T0 *)ms1081,(T0 *)ms1080,_size);
rT43put_extern4((T43*)oRBC27cpp,(T0 *)ms1083,(T0 *)ms1082,_size);
rT43put_extern4((T43*)oRBC27cpp,(T0 *)ms1085,(T0 *)ms1084,_size);
rT43put_extern4((T43*)oRBC27cpp,(T0 *)ms1087,(T0 *)ms1086,_size);
}
char rT52directory_separator(/*C*/void){
if (ofBC27directory_separator==0){
char R=0;
ofBC27directory_separator=1;
R=rT7last((T7*)rT52small_eiffel_directory());
oRBC27directory_separator=R;}
return oRBC27directory_separator;}
void rT52die_with_code(/*C*/int a1){
exit(a1);
}
void rT52fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
int ofBC52loading_path=0;
T0*oRBC52loading_path;
T0* rT52loading_path(/*C*/void){
if (ofBC52loading_path==0){
T0* R=NULL;
T0* _file=NULL;
T0* _defaults=NULL;
char _slash=0;
int _i=0;
T0* _path=NULL;
ofBC52loading_path=1;
_path=(T0 *)ms47;
{T34 *n=((T34*)se_new(34));
rT34make(n,1,10);
R=(T0 *)n;}
rT34clear((T34*)R);
_slash=rT52directory_separator();
/*IF*/if (rT52file_exists(_path)) {
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/_file=(T0 *)n;}
rT52open_read(_file,_path);
while (!(rT42end_of_input((T42*)_file))) {
rT42read_line((T42*)_file);
_path=rT7twin((T7*)oRBC42last_string);
/*IF*/if (!(rT7empty((T7*)_path))) {
/*IF*/if ((rT7last((T7*)_path))!=(_slash)) {
rT7extend((T7*)_path,_slash);
}
/*FI*/rT34add_last((T34*)R,_path);
}
/*FI*/}
rT42disconnect((T42*)_file);
}
/*FI*/_defaults=ma(34,0,3,ms50,ms51,ms52);
_i=1;
while (!((_i)>(((T34*)_defaults)->_upper))) {
_path=rT34item((T34*)_defaults,_i);
rT7prepend((T7*)_path,rT52small_eiffel_directory());
rT7extend((T7*)_path,_slash);
rT34add_last((T34*)R,_path);
_i=(_i)+(1);
}
oRBC52loading_path=R;}
return oRBC52loading_path;}
void rT52incr_magic_count(T52 *C){
C->_magic_count=((C)->_magic_count)+(1);
}
void rT52add_class(T52 *C,T0* a1){
rT54put((T54*)oRBC52base_class_dictionary,a1,((T48*)((T50*)a1)->_base_class_name)->_to_string);
rT52incr_magic_count(C);
}
void rT52pop(T52 *C){
C->_top=((C)->_top)-(1);
}
void rT52open_read(/*C*/T0* a1,T0* a2){
rT42connect_to((T42*)a1,a2);
/*IF*/if (!(rT42is_connected((T42*)a1))) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms48);
rT37put_string((T37*)oRBC1std_error,a2);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms49);
rT52die_with_code(1);
}
/*FI*/}
T0* rT52get_started(T52 *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=rT52load_class(a1);
/*IF*/if (!(_root)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms450);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(a1);
rT45error((T45*)oRBC27eh,(T0 *)ms36);
}
else {
_root_name=((T50*)_root)->_base_class_name;
{T67 *n=((T67*)se_new(67));
rT67make(n,a2,NULL);
_root_proc_name=(T0 *)n;}
_root_proc=rT50root_procedure((T50*)_root,a2);
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)((T252*)_root_proc)->_arguments)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT252start_position((T252*)_root_proc));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms508);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(a2);
rT45error((T45*)oRBC27eh,(T0 *)ms509);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
_root_type=((T261*)rT50run_class((T50*)_root))->_current_type;
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=rT252to_run_feature((T252*)_root_proc,_root_type,_root_proc_name);
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
rT52cecil_for(rT52type_any(),(T0 *)ms516);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (!(/*(IRF4*/((/*UT*/(void)(T45*)oRBC27eh),
(rT7empty((T7*)oRBC45explanation))&&(rT47empty((T47*)rT45positions()))/*)*/))) {
rT41put_string((T41*)oRBC1std_output,(T0 *)ms517);
rT45print_as_warning((T45*)oRBC27eh);
}
/*FI*/rT41put_string((T41*)oRBC1std_output,(T0 *)ms518);
rT41put_integer((T41*)oRBC1std_output,(C)->_magic_count);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms519);
while (!((((_magic)==((C)->_magic_count))||((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(0))))) {
_magic=(C)->_magic_count;
/*(IRF3*/{
int _i=0;
T0* _rc=NULL;
_i=1;
while (!((_i)>(((T263*)oRBC52run_class_dictionary)->_count))) {
_rc=rT263item((T263*)oRBC52run_class_dictionary,_i);
rT261falling_down((T261*)_rc);
_i=(_i)+(1);
}
}
/*)*/}
}
/*FI*/rT41put_string((T41*)oRBC1std_output,(T0 *)ms520);
rT41put_integer((T41*)oRBC1std_output,(C)->_magic_count);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms521);
return R;
}
int ofBC52tmp_class_name=0;
T0*oRBC52tmp_class_name;
T0* rT52tmp_class_name(/*C*/void){
if (ofBC52tmp_class_name==0){
T0* R=NULL;
ofBC52tmp_class_name=1;
{T48 *n=((T48*)se_new(48));
rT48make(n,(T0 *)ms177,NULL);
R=(T0 *)n;}
oRBC52tmp_class_name=R;}
return oRBC52tmp_class_name;}
int ofBC52rename_dictionary=0;
T0*oRBC52rename_dictionary;
T0* rT52rename_dictionary(/*C*/void){
if (ofBC52rename_dictionary==0){
T0* R=NULL;
T0* _short_name=NULL;
T0* _full_name=NULL;
int _i=0;
ofBC52rename_dictionary=1;
{T57 *n=((T57*)se_new(57));
rT57make(n);
R=(T0 *)n;}
_i=1;
while (!((_i)>(((T34*)rT52loading_path())->_upper))) {
rT7copy((T7*)(T0 *)ms53,rT34item((T34*)rT52loading_path(),_i));
rT7append((T7*)(T0 *)ms53,(T0 *)ms54);
/*IF*/if (rT52file_exists((T0 *)ms53)) {
rT52open_read(rT52tmp_file_read(),(T0 *)ms53);
while (!(rT42end_of_input((T42*)rT52tmp_file_read()))) {
rT42read_word((T42*)rT52tmp_file_read());
_full_name=rT7twin((T7*)oRBC42last_string);
rT42read_word((T42*)rT52tmp_file_read());
_short_name=rT7twin((T7*)oRBC42last_string);
rT7prepend((T7*)_short_name,rT34item((T34*)rT52loading_path(),_i));
/*IF*/if (rT57has((T57*)R,_full_name)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms55);
rT37put_string((T37*)oRBC1std_error,_full_name);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms56);
rT37put_string((T37*)oRBC1std_error,_short_name);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms57);
rT37put_string((T37*)oRBC1std_error,rT57at((T57*)R,_full_name));
rT37put_string((T37*)oRBC1std_error,(T0 *)ms58);
rT52die_with_code(1);
}
/*FI*/rT57put((T57*)R,_short_name,_full_name);
rT42skip_separators((T42*)rT52tmp_file_read());
}
rT42disconnect((T42*)rT52tmp_file_read());
}
/*FI*/_i=(_i)+(1);
}
oRBC52rename_dictionary=R;}
return oRBC52rename_dictionary;}
void rT52append_loading_path_in(/*C*/T0* a1){
T0* _sed=NULL;
int _i=0;
rT7append((T7*)a1,(T0 *)ms64);
_i=((T34*)rT52loading_path())->_lower;
while (!((_i)>(((T34*)rT52loading_path())->_upper))) {
rT7extend((T7*)a1,'\42');
rT7append((T7*)a1,rT34item((T34*)rT52loading_path(),_i));
rT7extend((T7*)a1,'\42');
rT7extend((T7*)a1,'\12');
_i=(_i)+(1);
}
rT7append((T7*)a1,(T0 *)ms65);
rT7append((T7*)a1,(T0 *)ms15);
_sed=rT52get_environment_variable((T0 *)ms15);
rT7append((T7*)a1,(T0 *)ms66);
/*IF*/if (!(_sed)) {
rT7append((T7*)a1,(T0 *)ms67);
}
else {
rT7append((T7*)a1,(T0 *)ms68);
rT7append((T7*)a1,_sed);
rT7append((T7*)a1,(T0 *)ms69);
}
/*FI*/rT7extend((T7*)a1,'\12');
}
T0*oRBC52stack_rf;
T0* rT52tmp_file_read(/*C*/void){
if (ofBC27tmp_file_read==0){
T0* R=NULL;
ofBC27tmp_file_read=1;
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/R=(T0 *)n;}
oRBC27tmp_file_read=R;}
return oRBC27tmp_file_read;}
T0* rT52run_class(/*C*/T0* a1){
T0* R=NULL;
T0* _run_string=NULL;
_run_string=XrT58run_time_mark(a1);
/*IF*/if (rT263has((T263*)oRBC52run_class_dictionary,_run_string)) {
R=rT263at((T263*)oRBC52run_class_dictionary,_run_string);
}
else {
{T261 *n=((T261*)se_new(261));
rT261make(n,a1);
R=(T0 *)n;}
}
/*FI*/return R;
}
T0*oRBC52run_class_dictionary;
void rT52compile_to_c(T52 *C,T0* a1,T0* a2){
int _i=0;
T0* _rf=NULL;
int _run_count=0;
T0* _t=NULL;
T0* _rc=NULL;
C->_is_compiling_flag=1;
rT41put_string((T41*)oRBC1std_output,(T0 *)ms446);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms447);
_rf=rT52get_started(C,a1,a2);
/*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
rT41put_string((T41*)oRBC1std_output,(T0 *)ms522);
rT41put_integer((T41*)oRBC1std_output,((T54*)oRBC52base_class_dictionary)->_count);
rT41put_character((T41*)oRBC1std_output,'\12');
rT43get_started((T43*)oRBC27cpp);
rT43swap_on_h((T43*)oRBC27cpp);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms758);
_i=1;
while (!((_i)>(((T263*)oRBC52run_class_dictionary)->_count))) {
_rc=rT263item((T263*)oRBC52run_class_dictionary,_i);
_t=((T261*)_rc)->_current_type;
/*IF*/if (((T261*)_rc)->_at_run_time) {
_run_count=(_run_count)+(1);
XrT58c_typedef(_t);
}
/*FI*/rT41put_integer((T41*)oRBC1std_output,((T261*)_rc)->_id);
rT41put_character((T41*)oRBC1std_output,'\11');
rT41put_string((T41*)oRBC1std_output,XrT58run_time_mark(((T261*)_rc)->_current_type));
rT41put_character((T41*)oRBC1std_output,'\12');
_i=(_i)+(1);
}
rT41put_string((T41*)oRBC1std_output,(T0 *)ms762);
rT41put_integer((T41*)oRBC1std_output,((T263*)oRBC52run_class_dictionary)->_count);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms763);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms764);
rT41put_integer((T41*)oRBC1std_output,_run_count);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms765);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms766);
_i=1;
while (!((_i)>(((T263*)oRBC52run_class_dictionary)->_count))) {
_rc=rT263item((T263*)oRBC52run_class_dictionary,_i);
_t=((T261*)_rc)->_current_type;
/*IF*/if (XrT58is_expanded(_t)) {
rT41put_integer((T41*)oRBC1std_output,((T261*)_rc)->_id);
rT41put_character((T41*)oRBC1std_output,'\11');
rT41put_string((T41*)oRBC1std_output,XrT58run_time_mark(_t));
rT41put_character((T41*)oRBC1std_output,'\12');
XrT58c_struct(((T261*)_rc)->_current_type);
}
/*FI*/_i=(_i)+(1);
}
rT41put_string((T41*)oRBC1std_output,(T0 *)ms772);
_i=1;
while (!((_i)>(((T263*)oRBC52run_class_dictionary)->_count))) {
_rc=rT263item((T263*)oRBC52run_class_dictionary,_i);
_t=((T261*)_rc)->_current_type;
/*IF*/if ((((T261*)_rc)->_at_run_time)&&(XrT58is_reference(_t))) {
rT41put_integer((T41*)oRBC1std_output,((T261*)_rc)->_id);
rT41put_character((T41*)oRBC1std_output,'\11');
rT41put_string((T41*)oRBC1std_output,XrT58run_time_mark(_t));
rT41put_character((T41*)oRBC1std_output,'\12');
XrT58c_struct(((T261*)_rc)->_current_type);
}
/*FI*/_i=(_i)+(1);
}
rT43swap_on_c((T43*)oRBC27cpp);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms773);
_i=1;
while (!((_i)>(((T263*)oRBC52run_class_dictionary)->_count))) {
rT261compile_to_c((T261*)rT263item((T263*)oRBC52run_class_dictionary,_i));
_i=(_i)+(1);
}
rT43cecil_define((T43*)oRBC27cpp);
rT43define_main((T43*)oRBC27cpp,_rf);
rT43define_used_basics((T43*)oRBC27cpp);
rT43write_make_file((T43*)oRBC27cpp);
}
else {
rT45error((T45*)oRBC27eh,(T0 *)ms1123);
}
/*FI*/C->_is_compiling_flag=0;
}
T0* rT52small_eiffel_directory(/*C*/void){
if (ofBC27small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
ofBC27small_eiffel_directory=1;
R=rT52get_environment_variable((T0 *)ms15);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms15);
rT7to_upper((T7*)R);
R=rT52get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms15);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms19;
}
/*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;}
T0* rT52base_class(/*C*/T0* a1){
T0* R=NULL;
T0* _path=NULL;
/*IF*/if (rT54has((T54*)oRBC52base_class_dictionary,((T48*)a1)->_to_string)) {
R=rT54at((T54*)oRBC52base_class_dictionary,((T48*)a1)->_to_string);
}
 else if (/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/) {
rT52fatal_error((T0 *)ms44);
}
else {
_path=rT52find_path_for(((T48*)a1)->_to_string);
/*IF*/if (((int)_path)) {
R=rT51analyse_class((T51*)oRBC27eiffel_parser,_path);
}
/*FI*//*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(((T48*)a1)->_start_position);
rT52fatal_error((T0 *)ms420);
}
 else if (!(rT54has((T54*)oRBC52base_class_dictionary,((T48*)a1)->_to_string))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms421);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(_path);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms422);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)a1)->_to_string);
rT52fatal_error((T0 *)ms423);
}
/*FI*/}
/*FI*/return R;
}
T0*oRBC52base_class_dictionary;
int rT52next_id(T52 *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;
}
int rT52next_unique(T52 *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;
}
T0* rT52load_class(/*C*/T0* a1){
T0* R=NULL;
T0* _path=NULL;
_path=rT52find_path_for(a1);
/*IF*/if (!(_path)) {
rT52fatal_error((T0 *)ms448);
}
else {
R=rT51analyse_class((T51*)oRBC27eiffel_parser,_path);
/*IF*/if (!(R)) {
rT52fatal_error((T0 *)ms449);
}
/*FI*/}
/*FI*/return R;
}
int rT52file_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;
}
T0* rT50name_of(T50 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (((T0 *)C)==((T0 *)a1)) {
R=a2;
}
 else if (!((C)->_parent_list)) {
R=rT50name_of((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1,a2);
}
else {
R=rT131name_of((T131*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
int rT50has_feature(T50 *C,T0* a1){
int R=0;
XrT67make(rT50mem_fn(),a1,NULL);
R=rT50has(C,rT50mem_fn());
return R;
}
int ofBC50mem_fn=0;
T0*oRBC50mem_fn;
T0* rT50mem_fn(/*C*/void){
if (ofBC50mem_fn==0){
T0* R=NULL;
ofBC50mem_fn=1;
{T67 *n=((T67*)se_new(67));
rT67make(n,(T0 *)ms469,NULL);
R=(T0 *)n;}
oRBC50mem_fn=R;}
return oRBC50mem_fn;}
int rT50already_defined(T50 *C,T0* a1){
int R=0;
/*IF*/if (((int)(C)->_already_defined_list)) {
R=rT34has((T34*)(C)->_already_defined_list,XrT67to_key(a1));
}
/*FI*/return R;
}
int rT50is_general(T50 *C){
int R=0;
R=((T0 *)(T0 *)ms178)==((T0 *)((T48*)(C)->_base_class_name)->_to_string);
return R;
}
int rT50is_generic(T50 *C){
int R=0;
R=((int)(C)->_formal_generic_list);
return R;
}
void rT50fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
T0* rT50clients_for(T50 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (((T0 *)XrT62base_class(a2))==((T0 *)C)) {
R=XrT62clients(a2);
}
 else if (!((C)->_parent_list)) {
R=rT50clients_for((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1,a2);
}
else {
R=rT131clients_for((T131*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
void rT50set_already_defined(T50 *C,T0* a1){
/*IF*/if (!((C)->_already_defined_list)) {
{T34 *n=((T34*)se_new(34));
rT34make(n,1,5);
C->_already_defined_list=(T0 *)n;}
rT34clear((T34*)(C)->_already_defined_list);
}
/*FI*/rT34add_last((T34*)(C)->_already_defined_list,XrT67to_key(a1));
}
int rT50has_redefine(T50 *C,T0* a1){
int R=0;
/*IF*/if ((((int)(C)->_parent_list))||((rT131count((T131*)(C)->_parent_list))==(0))) {
R=rT131has_redefine((T131*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
void rT50collect_invariant(T50 *C,T0* a1){
/*IF*/if (((int)(C)->_parent_list)) {
rT131collect_invariant((T131*)(C)->_parent_list,a1);
}
/*FI*//*IF*/if (((int)(C)->_invariant_assertion)) {
rT261collect_invariant((C)->_invariant_assertion);
}
/*FI*/}
void rT50collect_for(T50 *C,int a1,T0* a2){
T0* _fn_key=NULL;
_fn_key=XrT67to_key(a2);
/*IF*/if (rT61has((T61*)(C)->_feature_dictionary,_fn_key)) {
XrT62collect_for(rT61at((T61*)(C)->_feature_dictionary,_fn_key),a1);
}
/*FI*//*IF*/if ((!((C)->_parent_list))||((rT131count((T131*)(C)->_parent_list))==(0))) {
/*IF*/if (rT50is_general(C)) {
}
else {
rT50collect_for((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1,a2);
}
/*FI*/}
else {
rT131collect_for((T131*)(C)->_parent_list,a1,a2);
}
/*FI*/}
int ofBC50mem_rpn=0;
T0*oRBC50mem_rpn;
T0* rT50mem_rpn(/*C*/void){
if (ofBC50mem_rpn==0){
T0* R=NULL;
ofBC50mem_rpn=1;
{T67 *n=((T67*)se_new(67));
rT67make(n,(T0 *)ms453,NULL);
R=(T0 *)n;}
oRBC50mem_rpn=R;}
return oRBC50mem_rpn;}
void rT50get_started(T50 *C){
T0* _s1=NULL;
C->_id=rT48frozen_id((T48*)(C)->_base_class_name);
/*IF*/if (((C)->_id)==(0)) {
C->_id=rT52next_id((T52*)oRBC27small_eiffel);
}
/*FI*//*IF*/if (((int)(C)->_feature_clause_list)) {
rT258get_started((T258*)(C)->_feature_clause_list,(C)->_feature_dictionary);
}
/*FI*//*IF*/if (((int)(C)->_parent_list)) {
rT131get_started((T131*)(C)->_parent_list);
}
/*FI*/}
void rT50set_is_deferred(T50 *C){
/*IF*/if ((C)->_is_expanded) {
rT50error1(C);
}
/*FI*/C->_is_deferred=1;
}
void rT50set_is_expanded(T50 *C){
/*IF*/if ((C)->_is_deferred) {
rT50error1(C);
}
/*FI*/C->_is_expanded=1;
}
void rT50set_invariant(T50 *C,T0* a1,T0* a2,T0* a3){
/*IF*/if ((((int)a2))||(((int)a3))) {
{T260 *n=((T260*)se_new(260));
rT260make(n,a1,a2,a3);
C->_invariant_assertion=(T0 *)n;}
}
/*FI*/}
T0* rT50look_up_for(T50 *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=XrT67to_key(a2);
/*IF*/if (rT61has((T61*)(C)->_feature_dictionary,_fn_key)) {
R=rT61at((T61*)(C)->_feature_dictionary,_fn_key);
_super=rT50super_look_up_for(C,a1,a2);
/*IF*/if (((int)_super)) {
_cst_att=_super;
if ((int)_cst_att) switch (((T0 *)_cst_att)->id) {
case 152: case 150: case 149: case 148: case 144: case 153: case 154: case 155: 
break;
default:
_cst_att = NULL;
};/*IF*/if (((int)_cst_att)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(_super));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
rT50fatal_error((T0 *)ms495);
}
/*FI*/_fnl=XrT62names(_super);
_i=rT128count((T128*)_fnl);
while (!((_i)<(1))) {
_super_fn=rT128item((T128*)_fnl,_i);
/*IF*/if (XrT67is_frozen(_super_fn)) {
/*IF*/if (rT7is_equal((T7*)XrT67to_key(_super_fn),_fn_key)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position(_super_fn));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
rT50fatal_error((T0 *)ms496);
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
/*IF*/if (!(XrT62can_hide(R,_super,a1))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(_super));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms504);
rT45print_as_warning((T45*)oRBC27eh);
}
/*FI*//*IF*/if (XrT62is_deferred(_super)) {
}
 else if (rT50has_redefine(C,a2)) {
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(R));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(_super));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms505);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)(C)->_base_class_name)->_to_string);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms506);
rT45print_as_error((T45*)oRBC27eh);
}
/*FI*/}
/*FI*/}
else {
R=rT50super_look_up_for(C,a1,a2);
}
/*FI*/return R;
}
T0* rT50parent(T50 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_parent_list)) {
rT50error(NULL,(T0 *)ms1454);
}
else {
R=rT131parent_for((T131*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
T0* rT50class_with(/*C*/T0* a1){
T0* R=NULL;
R=((/*UT*/(void)(T52*)oRBC27small_eiffel),
rT52get_class(a1));
return R;
}
T0* rT50run_class(T50 *C){
T0* R=NULL;
T0* _type=NULL;
T0* _name=NULL;
T0* _rcd=NULL;
_name=((T48*)(C)->_base_class_name)->_to_string;
/*IF*/if (((!((C)->_is_deferred))&&(!(rT50is_generic(C))))) {
_rcd=oRBC52run_class_dictionary;
/*IF*/if (rT263has((T263*)_rcd,_name)) {
R=rT263at((T263*)_rcd,_name);
}
else {
{T116 *n=((T116*)se_new(116));
/*(IRF3*/((n)->_base_class_name)=((C)->_base_class_name);
/*)*/_type=(T0 *)n;}
R=rT116run_class((T116*)_type);
}
/*FI*/}
else {
rT50error(NULL,(T0 *)ms476);
}
/*FI*/return R;
}
void rT50mapping_c(T50 *C){
rT43put_character((T43*)oRBC27cpp,'B');
rT43put_character((T43*)oRBC27cpp,'C');
rT43put_integer((T43*)oRBC27cpp,(C)->_id);
}
void rT50set_parent_list(T50 *C,T0* a1,T0* a2,T0* a3){
{T131 *n=((T131*)se_new(131));
rT131make(n,(T0 *)C,a1,a2,a3);
C->_parent_list=(T0 *)n;}
}
T0* rT50expanded_initializer(T50 *C,T0* a1){
T0* R=NULL;
/*IF*/if (((int)(C)->_creation_clause_list)) {
R=rT133expanded_initializer((T133*)(C)->_creation_clause_list,a1);
}
/*FI*/return R;
}
void rT50make(T50 *C,T0* a1){
C->_path=a1;
{T48 *n=((T48*)se_new(48));
rT48make_unknown(n);
C->_base_class_name=(T0 *)n;}
{T61 *n=((T61*)se_new(61));
rT61make(n);
C->_feature_dictionary=(T0 *)n;}
}
T0* rT50root_procedure(T50 *C,T0* a1){
T0* R=NULL;
T0* _f=NULL;
T0* _rc=NULL;
/*IF*/if (rT50is_generic(C)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)(C)->_base_class_name)->_to_string);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms451);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*//*IF*/if ((C)->_is_deferred) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)(C)->_base_class_name)->_to_string);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms452);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*/XrT67make(rT50mem_rpn(),a1,((T48*)(C)->_base_class_name)->_start_position);
/*IF*/if (!(rT50has_creation(C,rT50mem_rpn()))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)(C)->_base_class_name)->_to_string);
(/*UT*/(void)(T45*)oRBC27eh);
rT45extend('\57');
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(a1);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms468);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*//*IF*/if (!(rT50has_feature(C,a1))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)(C)->_base_class_name)->_to_string);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms470);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(a1);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms471);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*/_rc=rT50run_class(C);
rT261set_at_run_time((T261*)_rc);
_f=rT50look_up_for(C,_rc,rT50mem_rpn());
R=_f;
if ((int)R) switch (((T0 *)R)->id) {
case 252: 
break;
default:
R = NULL;
};/*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT62start_position(_f));
rT50fatal_error((T0 *)ms507);
}
/*FI*/return R;
}
int rT50is_subclass_of(T50 *C,T0* a1){
int R=0;
/*IF*/if ((((int)(C)->_isom))&&(rT56fast_has((T56*)(C)->_isom,a1))) {
R=1;
}
else {
/*IF*/if (((T0 *)(T0 *)ms177)==((T0 *)((T48*)((T50*)a1)->_base_class_name)->_to_string)) {
R=1;
}
 else if (rT50is_general(C)) {
R=0;
}
 else if ((!((C)->_parent_list))||((rT131count((T131*)(C)->_parent_list))==(0))) {
rT56clear((T56*)oRBC50visited);
rT56add_last((T56*)oRBC50visited,(T0 *)C);
R=rT50is_subclass_of_aux((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1);
}
else {
rT56clear((T56*)oRBC50visited);
rT56add_last((T56*)oRBC50visited,(T0 *)C);
R=rT131has_parent((T131*)(C)->_parent_list,a1);
}
/*FI*//*IF*/if (R) {
/*IF*/if (!((C)->_isom)) {
C->_isom=ma(56,0,1,a1);
}
else {
rT56add_last((T56*)(C)->_isom,a1);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
int rT50is_subclass_of_aux(T50 *C,T0* a1){
int R=0;
/*IF*/if (!(rT56fast_has((T56*)oRBC50visited,(T0 *)C))) {
rT56add_last((T56*)oRBC50visited,(T0 *)C);
}
/*FI*//*IF*/if ((!((C)->_parent_list))||((rT131count((T131*)(C)->_parent_list))==(0))) {
R=rT50is_subclass_of_aux((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1);
}
else {
R=rT131has_parent((T131*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
int rT50proper_has(T50 *C,T0* a1){
int R=0;
R=rT61has((T61*)(C)->_feature_dictionary,XrT67to_key(a1));
return R;
}
void rT50error1(T50 *C){
rT50error(((T48*)(C)->_base_class_name)->_start_position,(T0 *)ms172);
}
void rT50error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
void rT50add_creation_clause(T50 *C,T0* a1){
/*IF*/if (!((C)->_creation_clause_list)) {
{T133 *n=((T133*)se_new(133));
/*(IRF3*/((n)->_list)=(ma(134,0,1,a1));
/*)*/C->_creation_clause_list=(T0 *)n;}
}
else {
rT133add_last((T133*)(C)->_creation_clause_list,a1);
}
/*FI*/}
void rT50add_feature_clause(T50 *C,T0* a1){
/*IF*/if (!((C)->_feature_clause_list)) {
{T258 *n=((T258*)se_new(258));
/*(IRF3*/((n)->_list)=(ma(259,0,1,a1));
/*)*/C->_feature_clause_list=(T0 *)n;}
}
else {
rT258add_last((T258*)(C)->_feature_clause_list,a1);
}
/*FI*/}
int rT50super_has(T50 *C,T0* a1){
int R=0;
/*IF*/if ((!((C)->_parent_list))||((rT131count((T131*)(C)->_parent_list))==(0))) {
/*IF*/if (rT50is_general(C)) {
R=0;
}
else {
R=rT50has((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1);
}
/*FI*/}
else {
R=rT131has((T131*)(C)->_parent_list,a1);
}
/*FI*/return R;
}
T0*oRBC50visited;
T0* rT50super_look_up_for(T50 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if ((!((C)->_parent_list))||((rT131count((T131*)(C)->_parent_list))==(0))) {
/*IF*/if (rT50is_general(C)) {
R=NULL;
}
else {
R=rT50look_up_for((T50*)/*(IRF4*/rT50class_with((T0 *)ms177)/*)*/,a1,a2);
}
/*FI*/}
else {
R=rT131look_up_for((T131*)(C)->_parent_list,a1,a2);
}
/*FI*/return R;
}
void rT50add_index_clause(T50 *C,T0* a1){
/*IF*/if (!((C)->_index_list)) {
{T82 *n=((T82*)se_new(82));
/*(IRF3*/((n)->_list)=(ma(83,0,1,a1));
/*)*/C->_index_list=(T0 *)n;}
}
else {
rT83add_last((T83*)((T82*)(C)->_index_list)->_list,a1);
}
/*FI*/}
int rT50has(T50 *C,T0* a1){
int R=0;
/*IF*/if (rT61has((T61*)(C)->_feature_dictionary,XrT67to_key(a1))) {
R=1;
}
else {
R=rT50super_has(C,a1);
}
/*FI*/return R;
}
void rT50check_expanded_with(T50 *C,T0* a1){
/*IF*/if ((C)->_is_deferred) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type(a1,(T0 *)ms1436);
rT50fatal_error((T0 *)ms1437);
}
/*FI*//*IF*/if (((int)(C)->_creation_clause_list)) {
rT133check_expanded_with((T133*)(C)->_creation_clause_list,a1);
}
/*FI*/}
int rT50has_creation_clause(T50 *C){
int R=0;
R=((int)(C)->_creation_clause_list);
return R;
}
int rT50has_creation(T50 *C,T0* a1){
int R=0;
T0* _cc=NULL;
/*IF*/if (!((C)->_creation_clause_list)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(rT48to_err_msg2((T48*)(C)->_base_class_name));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms457);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position(a1));
rT45print_as_error((T45*)oRBC27eh);
}
else {
_cc=rT133get_clause((T133*)(C)->_creation_clause_list,a1);
/*IF*/if (!(_cc)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_err_msg2(a1));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms463);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(rT48to_err_msg2((T48*)(C)->_base_class_name));
rT50error(XrT67start_position(a1),(T0 *)ms36);
}
else {
R=rT123gives_permission_to((T123*)((T132*)_cc)->_clients,XrT67written_in(a1));
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
rT50error(XrT67start_position(a1),(T0 *)ms467);
}
/*FI*/return R;
}
T0* rT203twin(T203 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT203copy((T203*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT203is_static(T203 *C){
int R=0;
/*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
/*IF*/if (XrT68is_static((C)->_target)) {
/*IF*/if ((XrT68static_value((C)->_target))==(0)) {
R=1;
C->_static_value_mem=1;
}
 else if (XrT68is_static(rT203arg1(C))) {
R=1;
C->_static_value_mem=XrT68static_value(rT203arg1(C));
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
int rT203static_value(T203 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
void rT203fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
void rT203to_runnable_0(T203 *C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
C->_current_type=a1;
_t=XrT68to_runnable((C)->_target,a1);
/*IF*/if (!(_t)) {
rT203error(XrT68start_position((C)->_target),(T0 *)ms1134);
}
else {
C->_target=_t;
_rc=XrT58run_class(XrT68result_type((C)->_target));
C->_run_feature=rT261get_rf((T261*)_rc,(C)->_target,(C)->_feature_name);
C->_result_type=XrT262result_type((C)->_run_feature);
/*IF*/if (!((C)->_result_type)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
rT203error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1146);
}
 else if (XrT58is_like_current((C)->_result_type)) {
C->_result_type=XrT68result_type((C)->_target);
}
/*FI*/}
/*FI*/}
T0* rT203to_runnable(T203 *C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
/*IF*/if (!((C)->_current_type)) {
rT203to_runnable_0(C,a1);
_a=rT171to_runnable((T171*)(C)->_arguments,a1);
/*IF*/if (!(_a)) {
rT203error(XrT68start_position(rT203arg1(C)),(T0 *)ms1151);
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
rT171match_with((T171*)(C)->_arguments,(C)->_run_feature);
}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
C->_result_type=XrT58run_type(XrT68result_type(rT203arg1(C)));
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT203twin(C);
/*(IRF3*/(((T203*)R)->_current_type)=(NULL);
/*)*/R=rT203to_runnable((T203*)R,a1);
}
/*FI*/return R;
}
void rT203error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}

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