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

This is compile_to_c5.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"
void rT7copy(T7 *C,T0* a1){
int _i=0;
/*IF*/if (((C)->_capacity)<(((T7*)a1)->_count)) {
rT7make(C,((T7*)a1)->_count);
}
/*FI*/_i=((T7*)a1)->_count;
C->_count=_i;
while (!((_i)==(0))) {
rT7put(C,rT7item((T7*)a1,_i),_i);
_i=(_i)-(1);
}
}
int rT7has(T7 *C,char a1){
int R=0;
R=(rT7index_of(C,a1))!=(((C)->_count)+(1));
return R;
}
void rT7prepend(T7 *C,T0* a1){
int _old_count=0;
int _i=0;
_old_count=(C)->_count;
_i=((T7*)a1)->_count;
while (!((_i)==(0))) {
rT7extend(C,'\40');
_i=(_i)-(1);
}
_i=(C)->_count;
while (!((_old_count)==(0))) {
rT7put(C,rT7item(C,_old_count),_i);
_i=(_i)-(1);
_old_count=(_old_count)-(1);
}
_i=((T7*)a1)->_count;
while (!((_i)==(0))) {
rT7put(C,rT7item((T7*)a1,_i),_i);
_i=(_i)-(1);
}
}
void rT7to_lower(T7 *C){
int _i=0;
_i=(C)->_count;
while (!((_i)==(0))) {
rT7put(C,rT3to_lower(rT7item(C,_i)),_i);
_i=(_i)-(1);
}
}
void rT7make(T7 *C,int a1){
/*IF*/if ((a1)>(0)) {
/*IF*/if (((C)->_capacity)<(a1)) {
/*IF*/if (((C)->_capacity)==(0)) {
C->_storage=rT7malloc(a1);
}
else {
C->_storage=rT7realloc((C)->_storage,a1);
}
/*FI*/C->_capacity=a1;
}
/*FI*/}
/*FI*/C->_count=0;
}
char * rT7to_external(T7 *C){
char * R=0;
rT7extend(C,'\0');
rT7remove_last(C,1);
R=(C)->_storage;
return R;
}
T0* rT234current_type(T234 *C){
T0* R=NULL;
R=rT227current_type((T227*)(C)->_e_when);
return R;
}
T0* rT234twin(T234 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT234copy((T234*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
T0* rT234to_runnable_character(T234 *C,T0* a1){
T0* R=NULL;
T0* _v=NULL;
/*IF*/if (!((C)->_e_when)) {
C->_e_when=a1;
_v=XrT68to_runnable((C)->_lower,rT234current_type(C));
/*IF*/if ((((int)_v))&&(XrT58is_character(XrT68result_type(_v)))) {
C->_lower=_v;
C->_lower_value=XrT68to_integer((C)->_lower);
}
else {
rT234error(XrT68start_position((C)->_lower),(T0 *)ms1380);
}
/*FI*/_v=XrT68to_runnable((C)->_upper,rT234current_type(C));
/*IF*/if ((((int)_v))&&(XrT58is_character(XrT68result_type(_v)))) {
C->_upper=_v;
C->_upper_value=XrT68to_integer((C)->_upper);
}
else {
rT234error(XrT68start_position((C)->_upper),(T0 *)ms1381);
}
/*FI*/rT227add_when_item_2((T227*)(C)->_e_when,(T0 *)C);
R=(T0 *)C;
}
else {
{T234 *n=((T234*)se_new(234));
rT234make(n,(C)->_lower,(C)->_upper);
R=(T0 *)n;}
R=rT234to_runnable_character((T234*)R,a1);
}
/*FI*/return R;
}
T0* rT234to_runnable_integer(T234 *C,T0* a1){
T0* R=NULL;
T0* _v=NULL;
/*IF*/if (!((C)->_e_when)) {
C->_e_when=a1;
_v=XrT68to_runnable((C)->_lower,rT234current_type(C));
/*IF*/if ((((int)_v))&&(XrT58is_integer(XrT68result_type(_v)))) {
C->_lower=_v;
C->_lower_value=XrT68to_integer((C)->_lower);
}
else {
rT234error(XrT68start_position((C)->_lower),(T0 *)ms1376);
}
/*FI*/_v=XrT68to_runnable((C)->_upper,rT234current_type(C));
/*IF*/if ((((int)_v))&&(XrT58is_integer(XrT68result_type(_v)))) {
C->_upper=_v;
C->_upper_value=XrT68to_integer((C)->_upper);
}
else {
rT234error(XrT68start_position((C)->_upper),(T0 *)ms1377);
}
/*FI*/rT227add_when_item_2((T227*)(C)->_e_when,(T0 *)C);
R=(T0 *)C;
}
else {
{T234 *n=((T234*)se_new(234));
rT234make(n,(C)->_lower,(C)->_upper);
R=(T0 *)n;}
R=rT234to_runnable_integer((T234*)R,a1);
}
/*FI*/return R;
}
void rT234error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT234start_position(T234 *C){
T0* R=NULL;
R=XrT68start_position((C)->_lower);
return R;
}
void rT234copy(T234 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
void rT234make(T234 *C,T0* a1,T0* a2){
C->_lower=a1;
C->_upper=a2;
}
T0* rT232current_type(T232 *C){
T0* R=NULL;
R=rT226current_type((T226*)(C)->_e_inspect);
return R;
}
T0* rT232to_runnable_integer(T232 *C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
int _ne=0;
int _i=0;
/*IF*/if (!((C)->_e_inspect)) {
_ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
C->_e_inspect=a1;
_i=1;
while (!((((_i)>(((T233*)(C)->_list)->_upper))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0))))) {
_e_when=rT227to_runnable_integer((T227*)rT233item((T233*)(C)->_list,_i),(T0 *)C);
/*IF*/if (!(_e_when)) {
rT232error(rT232start_position(C),(T0 *)ms1260);
}
else {
rT233put((T233*)(C)->_list,_e_when,_i);
}
/*FI*/_i=(_i)+(1);
}
R=(T0 *)C;
}
else {
{T232 *n=((T232*)se_new(232));
rT232from_when_list(n,(T0 *)C);
R=(T0 *)n;}
R=rT232to_runnable_integer((T232*)R,a1);
}
/*FI*/return R;
}
T0* rT232to_runnable_character(T232 *C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
int _ne=0;
int _i=0;
/*IF*/if (!((C)->_e_inspect)) {
_ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
C->_e_inspect=a1;
_i=1;
while (!((((_i)>(((T233*)(C)->_list)->_upper))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0))))) {
_e_when=rT227to_runnable_character((T227*)rT233item((T233*)(C)->_list,_i),(T0 *)C);
/*IF*/if (!(_e_when)) {
rT232error(rT232start_position(C),(T0 *)ms1260);
}
else {
rT233put((T233*)(C)->_list,_e_when,_i);
}
/*FI*/_i=(_i)+(1);
}
R=(T0 *)C;
}
else {
{T232 *n=((T232*)se_new(232));
rT232from_when_list(n,(T0 *)C);
R=(T0 *)n;}
R=rT232to_runnable_character((T232*)R,a1);
}
/*FI*/return R;
}
void rT232error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT232start_position(T232 *C){
T0* R=NULL;
R=((T227*)rT233first((T233*)(C)->_list))->_start_position;
return R;
}
int rT232use_current(T232 *C){
int R=0;
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=1;
while (!(((_i)>(((T233*)(C)->_list)->_upper))||(R))) {
R=rT227use_current((T227*)rT233item((T233*)(C)->_list,_i));
_i=(_i)+(1);
}
}
/*FI*/return R;
}
void rT232from_when_list(T232 *C,T0* a1){
T0* _e_when=NULL;
int _i=0;
C->_list=rT233twin((T233*)((T232*)a1)->_list);
_i=1;
while (!((_i)>(((T233*)(C)->_list)->_upper))) {
{T227 *n=((T227*)se_new(227));
rT227from_e_when(n,rT233item((T233*)(C)->_list,_i));
_e_when=(T0 *)n;}
rT233put((T233*)(C)->_list,_e_when,_i);
_i=(_i)+(1);
}
}
void rT232add_last(T232 *C,T0* a1){
rT233add_last((T233*)(C)->_list,a1);
}
void rT232compile_to_c(T232 *C,int a1){
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=1;
while (!((_i)>(((T233*)(C)->_list)->_upper))) {
rT227compile_to_c((T227*)rT233item((T233*)(C)->_list,_i),a1);
_i=(_i)+(1);
}
}
/*FI*/}
int rT232includes_integer(T232 *C,int a1){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>(((T233*)(C)->_list)->_upper)))) {
R=rT227includes_integer((T227*)rT233item((T233*)(C)->_list,_i),a1);
_i=(_i)+(1);
}
return R;
}
T0* rT228current_type(T228 *C){
T0* R=NULL;
R=rT227current_type((T227*)(C)->_e_when);
return R;
}
T0* rT228twin(T228 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT228copy((T228*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
T0* rT228to_runnable_character(T228 *C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (!((C)->_e_when)) {
C->_e_when=a1;
_e=XrT68to_runnable((C)->_expression,rT228current_type(C));
/*IF*/if ((((int)_e))&&(XrT58is_character(XrT68result_type(_e)))) {
C->_expression=_e;
C->_expression_value=XrT68to_integer((C)->_expression);
rT227add_when_item_1((T227*)(C)->_e_when,(T0 *)C);
}
else {
rT228error(XrT68start_position((C)->_expression),(T0 *)ms1379);
}
/*FI*/R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
/*(IRF3*/((n)->_expression)=((C)->_expression);
/*)*/R=(T0 *)n;}
R=rT228to_runnable_character((T228*)R,a1);
}
/*FI*/return R;
}
T0* rT228to_runnable_integer(T228 *C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (!((C)->_e_when)) {
C->_e_when=a1;
_e=XrT68to_runnable((C)->_expression,rT228current_type(C));
/*IF*/if ((((int)_e))&&(XrT58is_integer(XrT68result_type(_e)))) {
C->_expression=_e;
C->_expression_value=XrT68to_integer((C)->_expression);
rT227add_when_item_1((T227*)(C)->_e_when,(T0 *)C);
}
else {
rT228error(XrT68start_position((C)->_expression),(T0 *)ms1375);
}
/*FI*/R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
/*(IRF3*/((n)->_expression)=((C)->_expression);
/*)*/R=(T0 *)n;}
R=rT228to_runnable_integer((T228*)R,a1);
}
/*FI*/return R;
}
void rT228error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT228start_position(T228 *C){
T0* R=NULL;
R=XrT68start_position((C)->_expression);
return R;
}
void rT228copy(T228 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
T0* rT173twin(T173 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT173copy((T173*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT173static_value(T173 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
T0* rT173to_runnable(T173 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT173twin(C);
/*(IRF3*/(((T173*)R)->_current_type)=(a1);
/*)*/}
/*FI*/return R;
}
void rT173error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT173add_comment(T173 *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 ofBC173result_type=0;
T0*oRBC173result_type;
T0* rT173result_type(/*C*/void){
if (ofBC173result_type==0){
T0* R=NULL;
ofBC173result_type=1;
{T112 *n=((T112*)se_new(112));
rT112make(n,NULL);
R=(T0 *)n;}
oRBC173result_type=R;}
return oRBC173result_type;}
T0* rT173to_key(T173 *C){
T0* R=NULL;
R=(C)->_to_string;
return R;
}
int rT173to_integer(T173 *C){
int R=0;
rT173error((C)->_start_position,(T0 *)ms169);
return R;
}
T0* rT173written_in(T173 *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 rT173copy(T173 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
int rT173is_a(T173 *C,T0* a1){
int R=0;
R=XrT58is_a(rT112run_type((T112*)rT173result_type()),XrT58run_type(XrT68result_type(a1)));
/*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position((C)->_start_position);
rT173error(XrT68start_position(a1),(T0 *)ms1289);
}
/*FI*/return R;
}
void rT173make(T173 *C,T0* a1){
C->_start_position=a1;
C->_to_string=(T0 *)ms291;
}
T0* rT181current_type(T181 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_run_compound)) {
R=((T140*)(C)->_run_compound)->_current_type;
}
/*FI*/return R;
}
void rT181to_runnable_0(T181 *C,T0* a1){
T0* _tt=NULL;
T0* _t=NULL;
C->_run_compound=a1;
_t=XrT68to_runnable((C)->_target,rT181current_type(C));
/*IF*/if (!(_t)) {
rT181error(XrT68start_position((C)->_target),(T0 *)ms1246);
}
else {
C->_target=_t;
_tt=XrT58run_type(XrT68result_type((C)->_target));
C->_run_feature=rT261get_rf((T261*)XrT58run_class(_tt),(C)->_target,(C)->_feature_name);
}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(((int)XrT262result_type((C)->_run_feature)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1247);
rT181error(XrT67start_position((C)->_feature_name),(T0 *)ms1248);
}
/*FI*//*IF*/if ((((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(!(XrT68is_current((C)->_target))))&&(!(XrT262is_exported_in((C)->_run_feature,XrT68written_in((C)->_target))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1249);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string((C)->_feature_name));
rT181error(XrT67start_position((C)->_feature_name),(T0 *)ms1250);
}
/*FI*/}
T0* rT181to_runnable(T181 *C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
/*IF*/if (!((C)->_run_compound)) {
rT181to_runnable_0(C,a1);
/*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
_a=rT171to_runnable((T171*)(C)->_arguments,rT181current_type(C));
/*IF*/if (!(_a)) {
rT181error(rT171start_position((T171*)(C)->_arguments),(T0 *)ms1253);
}
else {
C->_arguments=_a;
}
/*FI*/}
/*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)) {
R=(T0 *)C;
}
/*FI*/}
else {
{T181 *n=((T181*)se_new(181));
rT181make(n,(C)->_target,(C)->_feature_name,(C)->_arguments);
R=(T0 *)n;}
R=rT181to_runnable((T181*)R,a1);
}
/*FI*/return R;
}
void rT181error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT181add_comment(T181 *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* rT181start_position(T181 *C){
T0* R=NULL;
R=XrT67start_position((C)->_feature_name);
return R;
}
int rT181use_current(T181 *C){
int R=0;
/*IF*/if ((rT181arg_count(C))>(0)) {
R=rT171use_current((T171*)(C)->_arguments);
}
/*FI*//*IF*/if (R) {
}
 else if (XrT68is_current((C)->_target)) {
R=XrT262use_current((C)->_run_feature);
}
else {
R=XrT68use_current((C)->_target);
}
/*FI*/return R;
}
void rT181compile_to_c(T181 *C){
T0* _dyn_rf=NULL;
T0* _tt=NULL;
T0* _r=NULL;
rT43rs_push_position((T43*)oRBC27cpp,'3',rT181start_position(C));
rT181call_proc_call_c2c(C);
rT43rs_pop_position((T43*)oRBC27cpp);
}
T0* rT181dynamic(/*C*/T0* a1,T0* a2){
T0* R=NULL;
T0* _static=NULL;
T0* _sta_name=NULL;
T0* _dyn_name=NULL;
_static=XrT262current_type(a2);
_sta_name=XrT262name(a2);
_dyn_name=rT50name_of((T50*)rT261base_class((T261*)a1),XrT58base_class(_static),_sta_name);
R=rT261get_feature((T261*)a1,_dyn_name);
return R;
}
void rT181call_proc_call_c2c(T181 *C){
T0* _dyn_rf=NULL;
T0* _tt=NULL;
T0* _r=NULL;
_tt=XrT58run_type(XrT68result_type((C)->_target));
/*IF*/if (((XrT68is_current((C)->_target))||(XrT68is_manifest_string((C)->_target)))||(XrT58is_expanded(_tt))) {
rT43push_direct((T43*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
XrT262mapping_c((C)->_run_feature);
rT43pop((T43*)oRBC27cpp);
}
else {
_r=((T261*)XrT58run_class(_tt))->_running;
/*IF*/if (!(_r)) {
rT43push_void((T43*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
XrT262mapping_c((C)->_run_feature);
rT43pop((T43*)oRBC27cpp);
}
 else if ((rT264count((T264*)_r))==(1)) {
_dyn_rf=rT181dynamic(rT264first((T264*)_r),(C)->_run_feature);
rT43push_check((T43*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
XrT262mapping_c(_dyn_rf);
rT43pop((T43*)oRBC27cpp);
}
else {
rT43use_switch((T43*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
}
/*FI*/}
/*FI*/}
int rT181arg_count(T181 *C){
int R=0;
R=rT171count((T171*)(C)->_arguments);
return R;
}
void rT181make(T181 *C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
T0* rT180current_type(T180 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_run_compound)) {
R=((T140*)(C)->_run_compound)->_current_type;
}
/*FI*/return R;
}
void rT180to_runnable_0(T180 *C,T0* a1){
T0* _tt=NULL;
T0* _t=NULL;
C->_run_compound=a1;
_t=XrT68to_runnable((C)->_target,rT180current_type(C));
/*IF*/if (!(_t)) {
rT180error(XrT68start_position((C)->_target),(T0 *)ms1246);
}
else {
C->_target=_t;
_tt=XrT58run_type(XrT68result_type((C)->_target));
C->_run_feature=rT261get_rf((T261*)XrT58run_class(_tt),(C)->_target,(C)->_feature_name);
}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(((int)XrT262result_type((C)->_run_feature)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1247);
rT180error(XrT67start_position((C)->_feature_name),(T0 *)ms1248);
}
/*FI*//*IF*/if ((((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(!(XrT68is_current((C)->_target))))&&(!(XrT262is_exported_in((C)->_run_feature,XrT68written_in((C)->_target))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1249);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string((C)->_feature_name));
rT180error(XrT67start_position((C)->_feature_name),(T0 *)ms1250);
}
/*FI*/}
T0* rT180to_runnable(T180 *C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
/*IF*/if (!((C)->_run_compound)) {
rT180to_runnable_0(C,a1);
/*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
_a=rT171to_runnable((T171*)(C)->_arguments,rT180current_type(C));
/*IF*/if (!(_a)) {
rT180error(XrT68start_position(rT180arg1(C)),(T0 *)ms1252);
}
else {
C->_arguments=_a;
}
/*FI*/}
/*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)) {
R=(T0 *)C;
}
/*FI*/}
else {
{T180 *n=((T180*)se_new(180));
rT180make(n,(C)->_target,(C)->_feature_name,(C)->_arguments);
R=(T0 *)n;}
R=rT180to_runnable((T180*)R,a1);
}
/*FI*/return R;
}
void rT180error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT180add_comment(T180 *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* rT180arg1(T180 *C){
T0* R=NULL;
R=rT171first((T171*)(C)->_arguments);
return R;
}
T0* rT180start_position(T180 *C){
T0* R=NULL;
R=XrT67start_position((C)->_feature_name);
return R;
}
int rT180use_current(T180 *C){
int R=0;
T0* _s=NULL;
T0* _ms=NULL;
/*IF*/if (rT7is_equal((T7*)(T0 *)ms1537,XrT67to_string((C)->_feature_name))) {
_ms=rT180arg1(C);
if ((int)_ms) switch (((T0 *)_ms)->id) {
case 76: 
break;
default:
_ms = NULL;
};_s=((T76*)_ms)->_to_string;
R=rT7has((T7*)_s,'C');
}
else {
R=rT180standard_use_current(C);
}
/*FI*/return R;
}
void rT180compile_to_c(T180 *C){
T0* _dyn_rf=NULL;
T0* _tt=NULL;
T0* _r=NULL;
rT43rs_push_position((T43*)oRBC27cpp,'3',rT180start_position(C));
rT180call_proc_call_c2c(C);
rT43rs_pop_position((T43*)oRBC27cpp);
}
T0* rT180dynamic(/*C*/T0* a1,T0* a2){
T0* R=NULL;
T0* _static=NULL;
T0* _sta_name=NULL;
T0* _dyn_name=NULL;
_static=XrT262current_type(a2);
_sta_name=XrT262name(a2);
_dyn_name=rT50name_of((T50*)rT261base_class((T261*)a1),XrT58base_class(_static),_sta_name);
R=rT261get_feature((T261*)a1,_dyn_name);
return R;
}
int rT180standard_use_current(T180 *C){
int R=0;
/*IF*/{/*AT*/R=rT171use_current((T171*)(C)->_arguments);
}
/*FI*//*IF*/if (R) {
}
 else if (XrT68is_current((C)->_target)) {
R=XrT262use_current((C)->_run_feature);
}
else {
R=XrT68use_current((C)->_target);
}
/*FI*/return R;
}
void rT180call_proc_call_c2c(T180 *C){
T0* _dyn_rf=NULL;
T0* _tt=NULL;
T0* _r=NULL;
_tt=XrT58run_type(XrT68result_type((C)->_target));
/*IF*/if (((XrT68is_current((C)->_target))||(XrT68is_manifest_string((C)->_target)))||(XrT58is_expanded(_tt))) {
rT43push_direct((T43*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
XrT262mapping_c((C)->_run_feature);
rT43pop((T43*)oRBC27cpp);
}
else {
_r=((T261*)XrT58run_class(_tt))->_running;
/*IF*/if (!(_r)) {
rT43push_void((T43*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
XrT262mapping_c((C)->_run_feature);
rT43pop((T43*)oRBC27cpp);
}
 else if ((rT264count((T264*)_r))==(1)) {
_dyn_rf=rT180dynamic(rT264first((T264*)_r),(C)->_run_feature);
rT43push_check((T43*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
XrT262mapping_c(_dyn_rf);
rT43pop((T43*)oRBC27cpp);
}
else {
rT43use_switch((T43*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
}
/*FI*/}
/*FI*/}
void rT180make(T180 *C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
T0* rT179current_type(T179 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_run_compound)) {
R=((T140*)(C)->_run_compound)->_current_type;
}
/*FI*/return R;
}
void rT179to_runnable_0(T179 *C,T0* a1){
T0* _tt=NULL;
T0* _t=NULL;
C->_run_compound=a1;
_t=XrT68to_runnable((C)->_target,rT179current_type(C));
/*IF*/if (!(_t)) {
rT179error(XrT68start_position((C)->_target),(T0 *)ms1246);
}
else {
C->_target=_t;
_tt=XrT58run_type(XrT68result_type((C)->_target));
C->_run_feature=rT261get_rf((T261*)XrT58run_class(_tt),(C)->_target,(C)->_feature_name);
}
/*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(((int)XrT262result_type((C)->_run_feature)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1247);
rT179error(XrT67start_position((C)->_feature_name),(T0 *)ms1248);
}
/*FI*//*IF*/if ((((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(!(XrT68is_current((C)->_target))))&&(!(XrT262is_exported_in((C)->_run_feature,XrT68written_in((C)->_target))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position((C)->_run_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1249);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string((C)->_feature_name));
rT179error(XrT67start_position((C)->_feature_name),(T0 *)ms1250);
}
/*FI*/}
T0* rT179to_runnable(T179 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_run_compound)) {
rT179to_runnable_0(C,a1);
/*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((XrT262arg_count((C)->_run_feature))>(0))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position((C)->_feature_name));
rT179error(XrT262start_position((C)->_run_feature),(T0 *)ms1251);
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
{T179 *n=((T179*)se_new(179));
rT179make(n,(C)->_target,(C)->_feature_name);
R=(T0 *)n;}
R=rT179to_runnable((T179*)R,a1);
}
/*FI*/return R;
}
void rT179error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT179add_comment(T179 *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* rT179start_position(T179 *C){
T0* R=NULL;
R=XrT67start_position((C)->_feature_name);
return R;
}
int rT179use_current(T179 *C){
int R=0;
/*IF*//*AF*//*AE*/
/*FI*//*IF*/if (R) {
}
 else if (XrT68is_current((C)->_target)) {
R=XrT262use_current((C)->_run_feature);
}
else {
R=XrT68use_current((C)->_target);
}
/*FI*/return R;
}
void rT179compile_to_c(T179 *C){
T0* _dyn_rf=NULL;
T0* _tt=NULL;
T0* _r=NULL;
rT43rs_push_position((T43*)oRBC27cpp,'3',rT179start_position(C));
rT179call_proc_call_c2c(C);
rT43rs_pop_position((T43*)oRBC27cpp);
}
T0* rT179dynamic(/*C*/T0* a1,T0* a2){
T0* R=NULL;
T0* _static=NULL;
T0* _sta_name=NULL;
T0* _dyn_name=NULL;
_static=XrT262current_type(a2);
_sta_name=XrT262name(a2);
_dyn_name=rT50name_of((T50*)rT261base_class((T261*)a1),XrT58base_class(_static),_sta_name);
R=rT261get_feature((T261*)a1,_dyn_name);
return R;
}
void rT179call_proc_call_c2c(T179 *C){
T0* _dyn_rf=NULL;
T0* _tt=NULL;
T0* _r=NULL;
_tt=XrT58run_type(XrT68result_type((C)->_target));
/*IF*/if (((XrT68is_current((C)->_target))||(XrT68is_manifest_string((C)->_target)))||(XrT58is_expanded(_tt))) {
rT43push_direct((T43*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
XrT262mapping_c((C)->_run_feature);
rT43pop((T43*)oRBC27cpp);
}
else {
_r=((T261*)XrT58run_class(_tt))->_running;
/*IF*/if (!(_r)) {
rT43push_void((T43*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
XrT262mapping_c((C)->_run_feature);
rT43pop((T43*)oRBC27cpp);
}
 else if ((rT264count((T264*)_r))==(1)) {
_dyn_rf=rT179dynamic(rT264first((T264*)_r),(C)->_run_feature);
rT43push_check((T43*)oRBC27cpp,_dyn_rf,(C)->_target,/*(IRF4*/NULL/*)*/);
XrT262mapping_c(_dyn_rf);
rT43pop((T43*)oRBC27cpp);
}
else {
rT43use_switch((T43*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,/*(IRF4*/NULL/*)*/);
}
/*FI*/}
/*FI*/}
void rT179make(T179 *C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
void rT136warning(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45warning((T45*)oRBC27eh,a2);
}
T0* rT136to_procedure_or_function(T136 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T252 *n=((T252*)se_new(252));
rT252make(n,rT136n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,(C)->_local_vars,(C)->_routine_body);
R=(T0 *)n;}}
else {
{T253 *n=((T253*)se_new(253));
rT253make(n,rT136n(),(C)->_arguments,(C)->_type,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,(C)->_local_vars,(C)->_routine_body);
R=(T0 *)n;}}
/*FI*/return R;
}
void rT136error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT136to_writable_attribute(T136 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms400);
}
 else if (((int)(C)->_arguments)) {
rT136error(rT51current_position((T51*)oRBC27eiffel_parser),(T0 *)ms401);
}
/*FI*/{T257 *n=((T257*)se_new(257));
rT257make(n,rT136n(),(C)->_type);
R=(T0 *)n;}
return R;
}
T0* rT136to_deferred_routine(T136 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T205 *n=((T205*)se_new(205));
rT205make(n,rT136n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion);
R=(T0 *)n;}}
else {
{T206 *n=((T206*)se_new(206));
rT206make(n,rT136n(),(C)->_arguments,(C)->_type,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion);
R=(T0 *)n;}}
/*FI*/return R;
}
T0* rT136n(/*C*/void){
T0* R=NULL;
{T128 *n=((T128*)se_new(128));
rT128make(n,rT129twin((T129*)oRBC136names));
R=(T0 *)n;}
return R;
}
T0*oRBC136names;
T0* rT136to_cst_att_integer(T136 *C,T0* a1){
T0* R=NULL;
/*IF*/if (((int)(C)->_type)) {
/*IF*/if (XrT58is_integer((C)->_type)) {
{T155 *n=((T155*)se_new(155));
rT155make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}}
 else if (XrT58is_real((C)->_type)) {
{T153 *n=((T153*)se_new(153));
rT153make(n,rT136n(),(C)->_type,rT80to_real_constant((T80*)a1));
R=(T0 *)n;}}
 else if (XrT58is_double((C)->_type)) {
{T154 *n=((T154*)se_new(154));
rT154make(n,rT136n(),(C)->_type,rT80to_real_constant((T80*)a1));
R=(T0 *)n;}}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms273);
}
/*FI*/}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms274);
}
/*FI*/return R;
}
T0* rT136to_cst_att_real(T136 *C,T0* a1){
T0* R=NULL;
/*IF*/if (((int)(C)->_type)) {
/*IF*/if (XrT58is_real((C)->_type)) {
{T153 *n=((T153*)se_new(153));
rT153make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}}
 else if (XrT58is_double((C)->_type)) {
{T154 *n=((T154*)se_new(154));
rT154make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}}
 else if (XrT58is_integer((C)->_type)) {
rT136warning(((T79*)a1)->_start_position,(T0 *)ms268);
{T155 *n=((T155*)se_new(155));
rT155make(n,rT136n(),(C)->_type,rT79to_integer_constant((T79*)a1));
R=(T0 *)n;}}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms270);
}
/*FI*/}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms271);
}
/*FI*/return R;
}
T0* rT136to_cst_att_bit(T136 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT58is_bit((C)->_type))) {
{T152 *n=((T152*)se_new(152));
rT152make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms267);
}
/*FI*/return R;
}
T0* rT136to_cst_att_string(T136 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT58is_string((C)->_type))) {
{T150 *n=((T150*)se_new(150));
rT150make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms266);
}
/*FI*/return R;
}
T0* rT136to_cst_att_character(T136 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT58is_character((C)->_type))) {
{T149 *n=((T149*)se_new(149));
rT149make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms263);
}
/*FI*/return R;
}
T0* rT136to_cst_att_boolean(T136 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT58is_boolean((C)->_type))) {
{T148 *n=((T148*)se_new(148));
rT148make(n,rT136n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT136error(XrT67start_position(rT129first((T129*)oRBC136names)),(T0 *)ms262);
}
/*FI*/return R;
}
T0* rT136to_cst_att_unique(T136 *C){
T0* R=NULL;
T0* _sp=NULL;
/*IF*/if (!((C)->_type)) {
_sp=XrT67start_position(rT129first((T129*)oRBC136names));
rT136error(_sp,(T0 *)ms260);
}
/*FI*//*IF*/if (!(XrT58is_integer((C)->_type))) {
rT136error(XrT58start_position((C)->_type),(T0 *)ms261);
}
/*FI*/{T144 *n=((T144*)se_new(144));
rT144make(n,rT136n(),(C)->_type);
R=(T0 *)n;}
return R;
}
void rT136add_synonym(/*C*/T0* a1){
rT129add_last((T129*)oRBC136names,a1);
}
void rT136set_require(T136 *C,T0* a1,T0* a2,T0* a3){
/*IF*/if ((((int)a2))||(((int)a3))) {
{T137 *n=((T137*)se_new(137));
rT137make(n,a1,a2,a3);
C->_require_assertion=(T0 *)n;}
}
/*FI*/}
void rT136set_require_else(T136 *C,T0* a1,T0* a2,T0* a3){
/*IF*/if ((((int)a2))||(((int)a3))) {
{T137 *n=((T137*)se_new(137));
rT137make(n,a1,a2,a3);
C->_require_assertion=(T0 *)n;}
/*(IRF3*/(((T137*)(C)->_require_assertion)->_is_require_else)=(1);
/*)*/}
/*FI*/}
void rT136initialize(T136 *C){
rT129clear((T129*)oRBC136names);
C->_arguments=NULL;
C->_type=NULL;
C->_header_comment=NULL;
C->_obsolete_mark=NULL;
C->_require_assertion=NULL;
C->_local_vars=NULL;
C->_routine_body=NULL;
}
T0* rT136to_once_routine(T136 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T255 *n=((T255*)se_new(255));
rT255make(n,rT136n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,(C)->_local_vars,(C)->_routine_body);
R=(T0 *)n;}}
else {
{T256 *n=((T256*)se_new(256));
rT256make(n,rT136n(),(C)->_arguments,(C)->_type,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,(C)->_local_vars,(C)->_routine_body);
R=(T0 *)n;}}
/*FI*/return R;
}
T0* rT136to_external_routine(T136 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T212 *n=((T212*)se_new(212));
rT212make(n,rT136n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,a1,a2);
R=(T0 *)n;}}
else {
{T213 *n=((T213*)se_new(213));
rT213make(n,rT136n(),(C)->_arguments,(C)->_type,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,a1,a2);
R=(T0 *)n;}}
/*FI*/return R;
}
T0* rT261runnable(/*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)) {
rT261error(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* rT261get_feature(T261 *C,T0* a1){
T0* R=NULL;
T0* _fn_key=NULL;
T0* _f=NULL;
_fn_key=XrT67to_key(a1);
/*IF*/if (rT265has((T265*)(C)->_feature_dictionary,_fn_key)) {
R=rT265at((T265*)(C)->_feature_dictionary,_fn_key);
}
else {
_f=rT50look_up_for((T50*)rT261base_class(C),(T0 *)C,a1);
/*IF*/if (!(_f)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms513);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string(a1));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms514);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)((T50*)rT261base_class(C))->_base_class_name)->_to_string);
rT261error(XrT67start_position(a1),(T0 *)ms36);
}
else {
R=XrT62to_run_feature(_f,(C)->_current_type,a1);
/*IF*/if (((int)R)) {
rT261store_feature(C,R);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
T0* rT261get_feature_with(T261 *C,T0* a1){
T0* R=NULL;
T0* _fn=NULL;
/*IF*/if (rT265has((T265*)(C)->_feature_dictionary,a1)) {
R=rT265at((T265*)(C)->_feature_dictionary,a1);
}
else {
{T67 *n=((T67*)se_new(67));
rT67make(n,a1,NULL);
_fn=(T0 *)n;}
R=rT261get_feature(C,_fn);
}
/*FI*/return R;
}
T0* rT261writable_attributes(T261 *C){
T0* R=NULL;
int _i=0;
T0* _rf=NULL;
/*IF*/if (!((C)->_writable_attributes_mem)) {
_i=1;
while (!((_i)>(((T265*)(C)->_feature_dictionary)->_count))) {
_rf=rT265item((T265*)(C)->_feature_dictionary,_i);
/*IF*/if (XrT262is_writable(_rf)) {
/*IF*/if (!((C)->_writable_attributes_mem)) {
C->_writable_attributes_mem=ma(266,0,1,_rf);
}
else {
XrT266add_last((C)->_writable_attributes_mem,_rf);
}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/R=(C)->_writable_attributes_mem;
return R;
}
void rT261falling_down(T261 *C){
int _i=0;
T0* _rf=NULL;
_i=1;
while (!((_i)>(((T265*)(C)->_feature_dictionary)->_count))) {
_rf=rT265item((T265*)(C)->_feature_dictionary,_i);
XrT262fall_down(_rf);
_i=(_i)+(1);
}
}
void rT261fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
void rT261error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
void rT261set_at_run_time(T261 *C){
int _i=0;
T0* _rc=NULL;
T0* _rcd=NULL;
/*IF*/if (!((C)->_at_run_time)) {
C->_at_run_time=1;
rT261add_running(C,(T0 *)C);
/*(IRF3*/(((T50*)rT261base_class(C))->_at_run_time)=(1);
/*)*/rT52incr_magic_count((T52*)oRBC27small_eiffel);
/*IF*/if (XrT58is_reference((C)->_current_type)) {
_rcd=oRBC52run_class_dictionary;
_i=1;
while (!((_i)>(((T263*)_rcd)->_count))) {
_rc=rT263item((T263*)_rcd,_i);
/*IF*/if (rT261is_a(C,_rc)) {
rT261add_running((T261*)_rc,(T0 *)C);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
/*FI*/}
void rT261store_feature(T261 *C,T0* a1){
T0* _rf2=NULL;
T0* _rf_key=NULL;
_rf_key=XrT67to_key(XrT262name(a1));
/*IF*/if (rT265has((T265*)(C)->_feature_dictionary,_rf_key)) {
_rf2=rT265at((T265*)(C)->_feature_dictionary,_rf_key);
/*IF*/if (((T0 *)a1)!=((T0 *)_rf2)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position(a1));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position(_rf2));
rT261fatal_error((T0 *)ms515);
}
/*FI*/}
else {
rT265put((T265*)(C)->_feature_dictionary,a1,_rf_key);
rT52incr_magic_count((T52*)oRBC27small_eiffel);
}
/*FI*/}
void rT261collect_invariant(/*C*/T0* a1){
rT260add_into((T260*)a1,oRBC261collector);
}
T0*oRBC261collector;
T0* rT261get_rf(T261 *C,T0* a1,T0* a2){
T0* R=NULL;
T0* _sub_fn=NULL;
T0* _wbc=NULL;
T0* _ctbc=NULL;
T0* _wp=NULL;
_ctbc=XrT58base_class((C)->_current_type);
_wp=XrT68start_position(a1);
/*IF*/if (!(_wp)) {
_wp=XrT67start_position(a2);
}
/*FI*/_wbc=rT46base_class((T46*)_wp);
/*IF*/if (XrT68is_current(a1)) {
_sub_fn=rT50name_of((T50*)_ctbc,_wbc,a2);
}
else {
_sub_fn=a2;
}
/*FI*/R=rT261get_feature(C,_sub_fn);
/*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position(a2));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1135);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string(a2));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1136);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type((C)->_current_type,(T0 *)ms36);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*/XrT262add_clients(R,(T0 *)C);
/*IF*/if ((((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(!(XrT68is_current(a1))))&&(!(XrT262is_exported_in(R,((T50*)_wbc)->_base_class_name)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT262start_position(R));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1144);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(XrT67to_string(a2));
rT261error(_wp,(T0 *)ms1145);
}
/*FI*/return R;
}
T0* rT261at(T261 *C,T0* a1){
T0* R=NULL;
T0* _to_key=NULL;
_to_key=XrT67to_key(a1);
/*IF*/if (rT265has((T265*)(C)->_feature_dictionary,_to_key)) {
R=rT265at((T265*)(C)->_feature_dictionary,_to_key);
}
/*FI*/return R;
}
void rT261compile_to_c(T261 *C){
int _i=0;
T0* _rf=NULL;
/*IF*/if ((C)->_at_run_time) {
rT41put_character((T41*)oRBC1std_output,'\11');
rT41put_string((T41*)oRBC1std_output,XrT58run_time_mark((C)->_current_type));
rT41put_character((T41*)oRBC1std_output,'\12');
_i=1;
while (!((_i)>(((T265*)(C)->_feature_dictionary)->_count))) {
_rf=rT265item((T265*)(C)->_feature_dictionary,_i);
/*IF*/if (!(XrT262is_writable(_rf))) {
XrT262c_define(_rf);
}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (rT44invariant_check((T44*)oRBC27eiffel_run_control)) {
/*IF*/if (((int)(C)->_invariant_assertion)) {
rT260c_define((T260*)(C)->_invariant_assertion);
}
/*FI*/}
/*FI*/}
/*FI*/}
T0* rT261base_class(T261 *C){
T0* R=NULL;
R=XrT58base_class((C)->_current_type);
return R;
}
void rT261add_running(T261 *C,T0* a1){
/*IF*/if (!((C)->_running)) {
C->_running=ma(264,0,1,a1);
}
else {
/*IF*/if (!(rT264fast_has((T264*)(C)->_running,a1))) {
rT264add_last((T264*)(C)->_running,a1);
}
/*FI*/}
/*FI*/}
int rT261is_a(T261 *C,T0* a1){
int R=0;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((T0 *)a1)==((T0 *)C)) {
R=1;
}
else {
_t1=(C)->_current_type;
_t2=((T261*)a1)->_current_type;
/*IF*/if (((XrT58is_integer(_t1))&&(XrT58is_real(_t2)))) {
R=0;
}
else {
R=XrT58is_a(_t1,_t2);
/*IF*/if (!(R)) {
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
/*(IRF3*/(((T7*)oRBC45explanation)->_count)=(0);
/*)*/rT47clear((T47*)rT45positions());
/*)*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
void rT261make(T261 *C,T0* a1){
int _i=0;
T0* _r=NULL;
T0* _rc=NULL;
T0* _rcd=NULL;
T0* _run_string=NULL;
C->_current_type=a1;
/*IF*/if (XrT58fast_mapping_c(a1)) {
C->_id=((T50*)XrT58base_class(a1))->_id;
}
 else if (XrT58is_reference(a1)) {
/*IF*/if (XrT58is_generic(a1)) {
C->_id=rT52next_id((T52*)oRBC27small_eiffel);
}
else {
C->_id=((T50*)XrT58base_class(a1))->_id;
}
/*FI*/}
else {
/*IF*/if (((T50*)XrT58base_class(a1))->_is_expanded) {
C->_id=((T50*)XrT58base_class(a1))->_id;
}
else {
C->_id=rT52next_id((T52*)oRBC27small_eiffel);
}
/*FI*/}
/*FI*/_run_string=XrT58run_time_mark(a1);
rT263put((T263*)oRBC52run_class_dictionary,(T0 *)C,_run_string);
{T265 *n=((T265*)se_new(265));
rT265make(n);
C->_feature_dictionary=(T0 *)n;}
rT52incr_magic_count((T52*)oRBC27small_eiffel);
/*IF*/if (XrT58is_expanded(a1)) {
rT261set_at_run_time(C);
}
else {
_rcd=oRBC52run_class_dictionary;
_i=1;
while (!((_i)>(((T263*)_rcd)->_count))) {
_rc=rT263item((T263*)_rcd,_i);
/*IF*/if (((((T261*)_rc)->_at_run_time)&&(XrT58is_reference(((T261*)_rc)->_current_type)))&&(rT261is_a((T261*)_rc,(T0 *)C))) {
rT261add_running(C,_rc);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*//*IF*/if (rT44invariant_check((T44*)oRBC27eiffel_run_control)) {
rT158clear((T158*)oRBC261collector);
rT50collect_invariant((T50*)rT261base_class(C),(T0 *)C);
_r=rT261runnable(oRBC261collector,(C)->_current_type,NULL);
/*IF*/if (((int)_r)) {
{T260 *n=((T260*)se_new(260));
rT260from_runnable(n,_r);
C->_invariant_assertion=(T0 *)n;}
}
/*FI*/}
/*FI*/}
T0* rT240twin(T240 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT240copy((T240*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
T0* rT240to_runnable(T240 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!(XrT68current_type((C)->_expression))) {
C->_expression=XrT68to_runnable((C)->_expression,a1);
R=(T0 *)C;
}
else {
R=rT240twin(C);
/*(IRF3*/(((T240*)R)->_expression)=(XrT68to_runnable((C)->_expression,a1));
/*)*/}
/*FI*/return R;
}
int rT240use_current(T240 *C){
int R=0;
R=XrT68use_current((C)->_expression);
return R;
}
void rT240copy(T240 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
void rT240make(T240 *C,T0* a1,T0* a2){
C->_comment=a2;
C->_expression=a1;
}
T0* rT239twin(T239 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT239copy((T239*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
T0* rT239to_runnable(T239 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!(XrT68current_type((C)->_expression))) {
C->_expression=XrT68to_runnable((C)->_expression,a1);
R=(T0 *)C;
}
else {
R=rT239twin(C);
/*(IRF3*/(((T239*)R)->_expression)=(XrT68to_runnable((C)->_expression,a1));
/*)*/}
/*FI*/return R;
}
int rT239use_current(T239 *C){
int R=0;
R=XrT68use_current((C)->_expression);
return R;
}
void rT239copy(T239 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
void rT239make(T239 *C,T0* a1,T0* a2,T0* a3){
C->_comment=a3;
C->_tag=a1;
C->_expression=a2;
}
T0* rT237twin(T237 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT237copy((T237*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
T0* rT237runnable(/*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)) {
rT237error(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* rT237to_runnable(T237 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
/*IF*/if (((int)(C)->_list)) {
C->_list=rT237runnable((C)->_list,a1,rT52top_rf((T52*)oRBC27small_eiffel));
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT237twin(C);
/*(IRF3*/(((T237*)R)->_current_type)=(NULL);
/*)*/R=rT237to_runnable((T237*)R,a1);
}
/*FI*/return R;
}
void rT237error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
int rT237use_current(T237 *C){
int R=0;
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=((T158*)(C)->_list)->_upper;
while (!((R)||((_i)==(0)))) {
R=rT64use_current((T64*)rT158item((T158*)(C)->_list,_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void rT237compile_to_c(T237 *C){
int _i=0;
/*(IRF3*/(((T43*)oRBC27cpp)->_check_assertion_mode)=(/*(IRF4*/(T0 *)ms1335/*)*/);
/*)*//*IF*/if (((int)(C)->_list)) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms781);
rT43put_string((T43*)oRBC27cpp,/*(IRF4*/(T0 *)ms1335/*)*/);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms782);
rT43put_string((T43*)oRBC27cpp,/*(IRF4*/(T0 *)ms1335/*)*/);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms783);
_i=1;
while (!((_i)>(((T158*)(C)->_list)->_upper))) {
rT64compile_to_c((T64*)rT158item((T158*)(C)->_list,_i));
_i=(_i)+(1);
}
rT43put_string((T43*)oRBC27cpp,(T0 *)ms789);
rT43put_string((T43*)oRBC27cpp,/*(IRF4*/(T0 *)ms1335/*)*/);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms790);
}
/*FI*/}
void rT237copy(T237 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
void rT237make(T237 *C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
void rT41put_integer(T41 *C,int a1){
/*(IRF3*/(((T7*)oRBC38tmp_string)->_count)=(0);
/*)*/rT2append_in(a1,oRBC38tmp_string);
rT41put_string(C,oRBC38tmp_string);
}
void rT41die_with_code(/*C*/int a1){
exit(a1);
}
void rT41put_string(T41 *C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>(((T7*)a1)->_count))) {
rT41put_character(C,rT7item((T7*)a1,_i));
_i=(_i)+(1);
}
}
int rT41is_connected(T41 *C){
int R=0;
R=((int)(C)->_path);
return R;
}
void rT41disconnect(T41 *C){
int _err=0;
_err=fclose((C)->_output_stream);
C->_path=NULL;
C->_output_stream=stdout;
}
void rT41connect_to(T41 *C,T0* a1){
C->_mode=(T0 *)ms523;
C->_output_stream=rT41fopen(a1,(C)->_mode);
/*IF*/{/*AT*/C->_path=a1;
}
/*FI*/}
void rT41append_file(T41 *C,T0* a1){
char _c=0;
rT42connect_to((T42*)rT41tmp_file_read(),a1);
rT42read_character((T42*)rT41tmp_file_read());
while (!(rT42end_of_input((T42*)rT41tmp_file_read()))) {
_c=rT42last_character((T42*)rT41tmp_file_read());
rT41put_character(C,_c);
rT42read_character((T42*)rT41tmp_file_read());
}
rT42disconnect((T42*)rT41tmp_file_read());
}
int ofBC38tmp_file_read=0;
T0*oRBC38tmp_file_read;
T0* rT41tmp_file_read(/*C*/void){
if (ofBC38tmp_file_read==0){
T0* R=NULL;
ofBC38tmp_file_read=1;
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/R=(T0 *)n;}
oRBC38tmp_file_read=R;}
return oRBC38tmp_file_read;}
void * rT41fopen(/*C*/T0* a1,T0* a2){
void * R=0;
void * _pm=0;
void * _pf=0;
_pf=rT7to_external((T7*)a1);
_pm=rT7to_external((T7*)a2);
R=(void*)fopen(((char*)_pf),((char*)_pm));
return R;
}
void rT41put_character(T41 *C,char a1){
char _err=0;
_err=fputc(a1,(C)->_output_stream);
/*IF*/if ((_err)!=(a1)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms5);
/*(IRF3*/rsp();
rT41die_with_code(1);
/*)*/}
/*FI*/}
void rT41make(T41 *C){
C->_output_stream=stdout;
}
void rT284address_of(T284 *C){
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1540);
rT43put_string((T43*)oRBC27cpp,XrT67to_string((C)->_name));
rT43put_character((T43*)oRBC27cpp,'\51');
}
void rT284compute_use_current(T284 *C){
C->_use_current_state=1018;
}
void rT284error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
void rT284add_clients(T284 *C,T0* a1){
int _i=0;
/*IF*/if (!((C)->_actuals_clients)) {
C->_actuals_clients=ma(264,0,1,a1);
}
else {
_i=((T264*)(C)->_actuals_clients)->_lower;
while (!(((_i)>(((T264*)(C)->_actuals_clients)->_upper))||(((T0 *)rT264item((T264*)(C)->_actuals_clients,_i))==((T0 *)a1)))) {
_i=(_i)+(1);
}
/*IF*/if ((_i)>(((T264*)(C)->_actuals_clients)->_upper)) {
rT264add_last((T264*)(C)->_actuals_clients,a1);
}
/*FI*/}
/*FI*/}
T0* rT284clients(T284 *C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
_bc=XrT58base_class((C)->_current_type);
_bfbc=((T257*)(C)->_base_feature)->_base_class;
/*IF*/if (((T0 *)_bc)==((T0 *)_bfbc)) {
R=((T257*)(C)->_base_feature)->_clients;
}
else {
/*IF*/if (!(rT50is_subclass_of((T50*)_bc,_bfbc))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT67start_position((C)->_name));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT257start_position((T257*)(C)->_base_feature));
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)((T50*)_bc)->_base_class_name)->_to_string);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1137);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T48*)((T50*)_bfbc)->_base_class_name)->_to_string);
rT284error(NULL,(T0 *)ms1138);
}
/*FI*/R=rT50clients_for((T50*)_bc,(C)->_name,(C)->_base_feature);
}
/*FI*/return R;
}
int rT284id(T284 *C){
int R=0;
R=XrT58id((C)->_current_type);
return R;
}
T0* rT284start_position(T284 *C){
T0* R=NULL;
R=rT257start_position((T257*)(C)->_base_feature);
return R;
}
int rT284use_current(T284 *C){
int R=0;
{int iv1=(C)->_use_current_state;
if (1018 == iv1) goto l38;
goto l39;
 l38: ;
R=1;
goto l37;
 l39: ;
if (1017 == iv1) goto l40;
goto l41;
 l40: ;
goto l37;
 l41: ;
if (1019 == iv1) goto l42;
goto l43;
 l42: ;
C->_use_current_state=1020;
rT284compute_use_current(C);
R=rT284use_current(C);
goto l37;
 l43: ;
if (1020 == iv1) goto l44;
goto l45;
 l44: ;
R=1;
goto l37;
 l45: ;
 l37: ;
}
return R;
}
int rT284can_be_dropped(T284 *C){
int R=0;
R=(!((C)->_require_assertion))&&(!((C)->_ensure_assertion));
return R;
}

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