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

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

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.91)    --      FRANCE
-- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
-- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
-- CRIN (Centre de Recherche en Informatique de Nancy)
-- FRANCE 
*/
#include "compile_to_c.h"
/*TMP_FEATURE*/void rT138warning(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48warning((T48*)oRBC27eh,a2);
}/*TMP_FEATURE*/T0* rT138to_procedure_or_function(T138 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T259 *n=((T259*)se_new(259));
rT259make(n,rT138n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,(C)->_local_vars,(C)->_routine_body);
R=(T0 *)n;}}
else {
{T260 *n=((T260*)se_new(260));
rT260make(n,rT138n(),(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;
}
/*TMP_FEATURE*/void rT138error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*TMP_FEATURE*/T0* rT138to_writable_attribute(T138 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms1_138);
}
 else if (((int)(C)->_arguments)) {
rT138error(rT54current_position((T54*)oRBC27eiffel_parser),(T0 *)ms2_138);
}
/*FI*/{T264 *n=((T264*)se_new(264));
rT264make(n,rT138n(),(C)->_type);
R=(T0 *)n;}
return R;
}
/*TMP_FEATURE*/T0* rT138to_deferred_routine(T138 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T210 *n=((T210*)se_new(210));
rT210make(n,rT138n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion);
R=(T0 *)n;}}
else {
{T211 *n=((T211*)se_new(211));
rT211make(n,rT138n(),(C)->_arguments,(C)->_type,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion);
R=(T0 *)n;}}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138n(/*C*/void){
T0* R=NULL;
{T130 *n=((T130*)se_new(130));
rT130make(n,rT131twin((T131*)oRBC138names));
R=(T0 *)n;}
return R;
}
T0*oRBC138names;
/*TMP_FEATURE*/T0* rT138to_cst_att_integer(T138 *C,T0* a1){
T0* R=NULL;
/*IF*/if (((int)(C)->_type)) {
/*IF*/if (XrT62is_integer((C)->_type)) {
{T159 *n=((T159*)se_new(159));
rT159make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}}
 else if (XrT62is_real((C)->_type)) {
{T157 *n=((T157*)se_new(157));
rT157make(n,rT138n(),(C)->_type,rT84to_real_constant((T84*)a1));
R=(T0 *)n;}}
 else if (XrT62is_double((C)->_type)) {
{T158 *n=((T158*)se_new(158));
rT158make(n,rT138n(),(C)->_type,rT84to_real_constant((T84*)a1));
R=(T0 *)n;}}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms6_138);
}
/*FI*/}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms7_138);
}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138to_cst_att_real(T138 *C,T0* a1){
T0* R=NULL;
/*IF*/if (((int)(C)->_type)) {
/*IF*/if (XrT62is_real((C)->_type)) {
{T157 *n=((T157*)se_new(157));
rT157make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}}
 else if (XrT62is_double((C)->_type)) {
{T158 *n=((T158*)se_new(158));
rT158make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}}
 else if (XrT62is_integer((C)->_type)) {
rT138warning(((T83*)a1)->_start_position,(T0 *)ms8_138);
{T159 *n=((T159*)se_new(159));
rT159make(n,rT138n(),(C)->_type,rT83to_integer_constant((T83*)a1));
R=(T0 *)n;}}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms9_138);
}
/*FI*/}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms10_138);
}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138to_cst_att_bit(T138 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT62is_bit((C)->_type))) {
{T156 *n=((T156*)se_new(156));
rT156make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms4_138);
}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138to_cst_att_string(T138 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT62is_string((C)->_type))) {
{T154 *n=((T154*)se_new(154));
rT154make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms11_138);
}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138to_cst_att_character(T138 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT62is_character((C)->_type))) {
{T153 *n=((T153*)se_new(153));
rT153make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms5_138);
}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138to_cst_att_boolean(T138 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((((int)(C)->_type))&&(XrT62is_boolean((C)->_type))) {
{T152 *n=((T152*)se_new(152));
rT152make(n,rT138n(),(C)->_type,a1);
R=(T0 *)n;}
}
else {
rT138error(/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position,(T0 *)ms3_138);
}
/*FI*/return R;
}
/*TMP_FEATURE*/T0* rT138to_cst_att_unique(T138 *C){
T0* R=NULL;
T0* _sp=NULL;
/*IF*/if (!((C)->_type)) {
_sp=/*XrT*FEATURE_NAME*/((T70*)rT131first((T131*)oRBC138names))->_start_position;
rT138error(_sp,(T0 *)ms12_138);
}
/*FI*//*IF*/if (!(XrT62is_integer((C)->_type))) {
rT138error(XrT62start_position((C)->_type),(T0 *)ms13_138);
}
/*FI*/{T148 *n=((T148*)se_new(148));
rT148make(n,rT138n(),(C)->_type);
R=(T0 *)n;}
return R;
}
/*TMP_FEATURE*/void rT138add_synonym(/*C*/T0* a1){
rT131add_last((T131*)oRBC138names,a1);
}/*TMP_FEATURE*/void rT138set_require(T138 *C,T0* a1,T0* a2,T0* a3){
/*IF*/if ((((int)a2))||(((int)a3))) {
{T139 *n=((T139*)se_new(139));
rT139make(n,a1,a2,a3);
C->_require_assertion=(T0 *)n;}
}
/*FI*/}/*TMP_FEATURE*/void rT138set_require_else(T138 *C,T0* a1,T0* a2,T0* a3){
/*IF*/if ((((int)a2))||(((int)a3))) {
{T139 *n=((T139*)se_new(139));
rT139make(n,a1,a2,a3);
C->_require_assertion=(T0 *)n;}
/*[IRF3:set_require_else*//*AW*/((T139*)(C)->_require_assertion)->_is_require_else=(1);/*]*/
}
/*FI*/}/*TMP_FEATURE*/void rT138initialize(T138 *C){
rT131clear((T131*)oRBC138names);
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;
}/*TMP_FEATURE*/T0* rT138to_once_routine(T138 *C){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T262 *n=((T262*)se_new(262));
rT262make(n,rT138n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,(C)->_local_vars,(C)->_routine_body);
R=(T0 *)n;}}
else {
{T263 *n=((T263*)se_new(263));
rT263make(n,rT138n(),(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;
}
/*TMP_FEATURE*/T0* rT138to_external_routine(T138 *C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (!((C)->_type)) {
{T219 *n=((T219*)se_new(219));
rT219make(n,rT138n(),(C)->_arguments,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,a1,a2);
R=(T0 *)n;}}
else {
{T220 *n=((T220*)se_new(220));
rT220make(n,rT138n(),(C)->_arguments,(C)->_type,(C)->_obsolete_mark,(C)->_header_comment,(C)->_require_assertion,a1,a2);
R=(T0 *)n;}}
/*FI*/return R;
}
/*RUN_CLASS*/T0* rT269runnable(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(rT162empty((T162*)a1))) {
R=rT162twin((T162*)a1);
_i=((T162*)R)->_upper;
while (!((_i)==(0))) {
rT55push((T55*)oRBC27small_eiffel,a3);
_a=rT68to_runnable((T68*)rT162item((T162*)R,_i),a2);
/*IF*/if (!(_a)) {
rT269error(rT68start_position((T68*)rT162item((T162*)R,_i)),(T0 *)ms97_27);
}
else {
rT162put((T162*)R,_a,_i);
}
/*FI*/rT55pop((T55*)oRBC27small_eiffel);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*RUN_CLASS*/T0* rT269get_feature(T269 *C,T0* a1){
T0* R=NULL;
T0* _fn_key=NULL;
T0* _f=NULL;
_fn_key=XrT71to_key(a1);
/*IF*/if (rT272has((T272*)(C)->_feature_dictionary,_fn_key)) {
R=rT272at((T272*)(C)->_feature_dictionary,_fn_key);
}
else {
_f=rT53look_up_for((T53*)rT269base_class(C),(T0 *)C,a1);
/*IF*/if (!(_f)) {
rT269efnf(C,rT269base_class(C),a1);
}
else {
R=XrT66to_run_feature(_f,(C)->_current_type,a1);
/*IF*/if (((int)R)) {
rT269store_feature(C,R);
}
else {
rT269efnf(C,rT269base_class(C),a1);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*RUN_CLASS*/T0* rT269get_feature_with(T269 *C,T0* a1){
T0* R=NULL;
T0* _fn=NULL;
/*IF*/if (rT272has((T272*)(C)->_feature_dictionary,a1)) {
R=rT272at((T272*)(C)->_feature_dictionary,a1);
}
else {
{T71 *n=((T71*)se_new(71));
rT71make(n,a1,NULL);
_fn=(T0 *)n;}
R=rT269get_feature(C,_fn);
}
/*FI*/return R;
}
/*RUN_CLASS*/void rT269sort_wam(/*C*/T0* a1){
int _moved=0;
int _buble=0;
int _max=0;
int _min=0;
_max=/*XrT*ARRAY[RUN_FEATURE]*/((T273*)a1)->_upper;
_min=1;
_moved=1;
while (!(!(_moved))) {
_moved=0;
/*IF*/if (((_max)-(_min))>(0)) {
_buble=(_min)+(1);
while (!((_buble)>(_max))) {
/*IF*/if (rT269gt(/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)a1,(_buble)-(1)),/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)a1,_buble))) {
XrT273swap(a1,(_buble)-(1),_buble);
_moved=1;
}
/*FI*/_buble=(_buble)+(1);
}
_max=(_max)-(1);
}
/*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
_moved=0;
_buble=(_max)-(1);
while (!((_buble)<(_min))) {
/*IF*/if (rT269gt(/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)a1,_buble),/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)a1,(_buble)+(1)))) {
XrT273swap(a1,_buble,(_buble)+(1));
_moved=1;
}
/*FI*/_buble=(_buble)-(1);
}
_min=(_min)+(1);
}
/*FI*/}
}/*RUN_CLASS*/T0* rT269writable_attributes(T269 *C){
T0* R=NULL;
int _i=0;
T0* _rf=NULL;
/*IF*/if (!((C)->_writable_attributes_mem)) {
_i=1;
while (!((_i)>(((T272*)(C)->_feature_dictionary)->_count))) {
_rf=rT272item((T272*)(C)->_feature_dictionary,_i);
/*IF*/if (XrT268is_writable(_rf)) {
/*IF*/if (!((C)->_writable_attributes_mem)) {
C->_writable_attributes_mem=ma(273,0,1,_rf);
}
else {
XrT273add_last((C)->_writable_attributes_mem,_rf);
}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (((int)(C)->_writable_attributes_mem)) {
rT269sort_wam((C)->_writable_attributes_mem);
}
/*FI*/}
/*FI*/R=(C)->_writable_attributes_mem;
return R;
}
/*RUN_CLASS*/void rT269falling_down(T269 *C){
int _i=0;
T0* _rf=NULL;
_i=1;
while (!((_i)>(((T272*)(C)->_feature_dictionary)->_count))) {
_rf=rT272item((T272*)(C)->_feature_dictionary,_i);
XrT268fall_down(_rf);
_i=(_i)+(1);
}
}/*RUN_CLASS*/void rT269fatal_error(/*C*/T0* a1){
rT48fatal_error(a1);
}/*RUN_CLASS*/void rT269error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*RUN_CLASS*/void rT269set_at_run_time(T269 *C){
int _i=0;
T0* _rc=NULL;
T0* _rcd=NULL;
/*IF*/if (!((C)->_at_run_time)) {
C->_at_run_time=1;
rT269add_running(C,(T0 *)C);
/*[IRF3:set_at_run_time*//*AW*/((T53*)rT269base_class(C))->_at_run_time=(1);/*]*/
rT55incr_magic_count((T55*)oRBC27small_eiffel);
/*IF*/if (XrT62is_reference((C)->_current_type)) {
_rcd=oRBC55run_class_dictionary;
_i=1;
while (!((_i)>(((T270*)_rcd)->_count))) {
_rc=rT270item((T270*)_rcd,_i);
/*IF*/if (rT269is_a(C,_rc)) {
rT269add_running((T269*)_rc,(T0 *)C);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
/*FI*/}/*RUN_CLASS*/void rT269store_feature(T269 *C,T0* a1){
T0* _rf2=NULL;
T0* _rf_key=NULL;
_rf_key=XrT71to_key(/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
/*IF*/if (rT272has((T272*)(C)->_feature_dictionary,_rf_key)) {
_rf2=rT272at((T272*)(C)->_feature_dictionary,_rf_key);
/*IF*/if (((T0 *)a1)!=((T0 *)_rf2)) {
rT48add_position(XrT268start_position(a1));
rT48add_position(XrT268start_position(_rf2));
rT269fatal_error((T0 *)ms5_269);
}
/*FI*/}
else {
rT272put((T272*)(C)->_feature_dictionary,a1,_rf_key);
rT55incr_magic_count((T55*)oRBC27small_eiffel);
}
/*FI*/}/*RUN_CLASS*/void rT269collect_invariant(/*C*/T0* a1){
rT267add_into((T267*)a1,oRBC269collector);
}T0*oRBC269collector;
/*RUN_CLASS*/T0* rT269get_rf(T269 *C,T0* a1){
T0* R=NULL;
T0* _wbc=NULL;
T0* _fn=NULL;
T0* _target=NULL;
_target=/*XrT*CALL_PROC_CALL*/((T185*)a1)->_target;
_fn=XrT169feature_name(a1);
_wbc=rT49base_class((T49*)/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position);
/*IF*/if (XrT72is_current(_target)) {
_fn=rT53new_name_of((T53*)XrT62base_class(XrT72current_type(_target)),_wbc,_fn);
}
/*FI*/R=rT269get_feature(C,_fn);
/*IF*/if (!(R)) {
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position);
rT48append((T0 *)ms1_269);
rT48append(/*XrT*FEATURE_NAME*/((T70*)_fn)->_to_string);
rT48append((T0 *)ms2_269);
rT48add_type((C)->_current_type,(T0 *)ms102_27);
/*[IRF3:print_as_fatal_error*/rT48do_print((T0 *)ms4_48);
rT48die_with_code(1);
/*]*/
}
/*FI*/XrT268add_clients(R,(T0 *)C);
/*IF*/if ((((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(!(XrT72is_current(_target))))&&(!(XrT268is_exported_in(R,((T53*)_wbc)->_base_class_name)))) {
rT48add_position(XrT268start_position(R));
rT48append((T0 *)ms3_269);
rT48append(/*XrT*FEATURE_NAME*/((T70*)_fn)->_to_string);
rT269error(/*XrT*FEATURE_NAME*/((T70*)XrT169feature_name(a1))->_start_position,(T0 *)ms4_269);
}
/*FI*/return R;
}
/*RUN_CLASS*/T0* rT269at(T269 *C,T0* a1){
T0* R=NULL;
T0* _to_key=NULL;
_to_key=XrT71to_key(a1);
/*IF*/if (rT272has((T272*)(C)->_feature_dictionary,_to_key)) {
R=rT272at((T272*)(C)->_feature_dictionary,_to_key);
}
/*FI*/return R;
}
/*RUN_CLASS*/void rT269compile_to_c(T269 *C){
int _i=0;
T0* _rf=NULL;
/*IF*/if ((C)->_at_run_time) {
rT42put_character((T42*)oRBC1std_output,'\11');
rT42put_string((T42*)oRBC1std_output,XrT62run_time_mark((C)->_current_type));
rT42put_character((T42*)oRBC1std_output,'\12');
_i=1;
while (!((_i)>(((T272*)(C)->_feature_dictionary)->_count))) {
_rf=rT272item((T272*)(C)->_feature_dictionary,_i);
/*IF*/if (!(XrT268is_writable(_rf))) {
XrT268c_define(_rf);
}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (rT47invariant_check((T47*)oRBC27eiffel_run_control)) {
/*IF*/if (((int)(C)->_invariant_assertion)) {
rT267c_define((T267*)(C)->_invariant_assertion);
}
/*FI*/}
/*FI*/}
/*FI*/}/*RUN_CLASS*/T0* rT269base_class(T269 *C){
T0* R=NULL;
R=XrT62base_class((C)->_current_type);
return R;
}
/*RUN_CLASS*/void rT269add_running(T269 *C,T0* a1){
/*IF*/if (!((C)->_running)) {
C->_running=ma(271,0,1,a1);
}
else {
/*IF*/if (!(rT271fast_has((T271*)(C)->_running,a1))) {
rT271add_last((T271*)(C)->_running,a1);
}
/*FI*/}
/*FI*/}/*RUN_CLASS*/int rT269gt(/*C*/T0* a1,T0* a2){
int R=0;
T0* _bcn2=NULL;
T0* _bcn1=NULL;
T0* _bf2=NULL;
T0* _bf1=NULL;
T0* _bc2=NULL;
T0* _bc1=NULL;
_bf1=XrT268base_feature(a1);
_bf2=XrT268base_feature(a2);
_bc1=/*XrT*E_FEATURE*/((T148*)_bf1)->_base_class;
_bc2=/*XrT*E_FEATURE*/((T148*)_bf2)->_base_class;
_bcn1=((T53*)_bc1)->_base_class_name;
_bcn2=((T53*)_bc2)->_base_class_name;
/*IF*/if (((T0 *)((T51*)_bcn1)->_to_string)==((T0 *)((T51*)_bcn2)->_to_string)) {
R=rT49before((T49*)XrT66start_position(_bf1),XrT66start_position(_bf2));
}
 else if (rT51is_subclass_of((T51*)_bcn2,_bcn1)) {
R=1;
}
 else if (rT51is_subclass_of((T51*)_bcn1,_bcn2)) {
}
 else if (!(((T53*)_bc1)->_parent_list)) {
/*IF*/if (!(((T53*)_bc2)->_parent_list)) {
R=rT7_ix60((T7*)((T51*)_bcn1)->_to_string,((T51*)_bcn2)->_to_string);
}
else {
R=1;
}
/*FI*/}
 else if (!(((T53*)_bc2)->_parent_list)) {
}
else {
R=(rT133count((T133*)((T53*)_bc2)->_parent_list))<(rT133count((T133*)((T53*)_bc1)->_parent_list));
}
/*FI*/return R;
}
/*RUN_CLASS*/int rT269displacement(T269 *C,T0* a1){
int R=0;
int _i=0;
T0* _wa=NULL;
_wa=rT269writable_attributes(C);
_i=/*XrT*ARRAY[RUN_FEATURE]*/((T273*)_wa)->_upper;
while (!(((T0 *)/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)_wa,_i))==((T0 *)a1))) {
R=(R)+(XrT62displacement(/*XrT*RUN_FEATURE*/((T274*)/*XrT*ARRAY[RUN_FEATURE]*/rT273item((T273*)_wa,_i))->_result_type));
_i=(_i)-(1);
}
return R;
}
/*RUN_CLASS*/int rT269is_a(T269 *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=((T269*)a1)->_current_type;
/*IF*/if ((XrT62fast_mapping_c(_t1))&&(XrT62fast_mapping_c(_t2))) {
}
else {
R=XrT62is_a(_t1,_t2);
/*IF*/if (!(R)) {
/*[IRF3:cancel*//*[IRF3:clear*//*AW*/((T7*)oRBC48explanation)->_count=(0);/*]*/
rT50clear((T50*)oRBC48positions);
/*]*/
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*RUN_CLASS*/void rT269make(T269 *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 (XrT62is_reference(a1)) {
/*IF*/if (XrT62is_generic(a1)) {
C->_id=rT55next_id((T55*)oRBC27small_eiffel);
}
else {
C->_id=((T53*)XrT62base_class(a1))->_id;
}
/*FI*/}
 else if (XrT62fast_mapping_c(a1)) {
C->_id=((T53*)XrT62base_class(a1))->_id;
}
 else if (XrT62is_bit(a1)) {
C->_id=rT55next_id((T55*)oRBC27small_eiffel);
}
 else if (((T53*)XrT62base_class(a1))->_is_expanded) {
C->_id=((T53*)XrT62base_class(a1))->_id;
}
else {
C->_id=rT55next_id((T55*)oRBC27small_eiffel);
}
/*FI*/_run_string=XrT62run_time_mark(a1);
rT270put((T270*)oRBC55run_class_dictionary,(T0 *)C,_run_string);
{T272 *n=((T272*)se_new(272));
rT272make(n);
C->_feature_dictionary=(T0 *)n;}
rT55incr_magic_count((T55*)oRBC27small_eiffel);
/*IF*/if (XrT62is_expanded(a1)) {
rT269set_at_run_time(C);
}
else {
_rcd=oRBC55run_class_dictionary;
_i=1;
while (!((_i)>(((T270*)_rcd)->_count))) {
_rc=rT270item((T270*)_rcd,_i);
/*IF*/if (((((T269*)_rc)->_at_run_time)&&(XrT62is_reference(((T269*)_rc)->_current_type)))&&(rT269is_a((T269*)_rc,(T0 *)C))) {
rT269add_running(C,_rc);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*//*IF*/if (rT47invariant_check((T47*)oRBC27eiffel_run_control)) {
rT162clear((T162*)oRBC269collector);
rT53collect_invariant((T53*)rT269base_class(C),(T0 *)C);
_r=rT269runnable(oRBC269collector,(C)->_current_type,NULL);
/*IF*/if (((int)_r)) {
{T267 *n=((T267*)se_new(267));
rT267from_runnable(n,_r);
C->_invariant_assertion=(T0 *)n;}
}
/*FI*/}
/*FI*/}/*RUN_CLASS*/void rT269efnf(T269 *C,T0* a1,T0* a2){
rT48append((T0 *)ms6_269);
rT48append(XrT62run_time_mark((C)->_current_type));
rT48append((T0 *)ms7_269);
rT48append(/*XrT*FEATURE_NAME*/((T70*)a2)->_to_string);
rT48append((T0 *)ms8_269);
rT48append(((T51*)((T53*)a1)->_base_class_name)->_to_string);
rT269error(/*XrT*FEATURE_NAME*/((T70*)a2)->_start_position,(T0 *)ms102_27);
}/*LOOP_VARIANT_1*/T0* rT247twin(T247 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT247copy((T247*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*LOOP_VARIANT_1*/T0* rT247to_runnable(T247 *C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
_e=XrT72to_runnable((C)->_expression,a1);
/*IF*/if (!(_e)) {
rT247error(rT247start_position(C),(T0 *)ms1_243);
}
else {
C->_expression=_e;
/*IF*/if (!(XrT62is_integer(XrT72result_type((C)->_expression)))) {
rT247error(XrT72start_position((C)->_expression),(T0 *)ms2_243);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT247twin(C);
/*[IRF3:set_current_type*//*AW*/((T247*)R)->_current_type=(NULL);/*]*/
R=rT247to_runnable((T247*)R,a1);
}
/*FI*/return R;
}
/*LOOP_VARIANT_1*/void rT247error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*LOOP_VARIANT_1*/T0* rT247start_position(T247 *C){
T0* R=NULL;
R=XrT72start_position((C)->_expression);
return R;
}
/*LOOP_VARIANT_1*/int rT247use_current(T247 *C){
int R=0;
R=XrT72use_current((C)->_expression);
return R;
}
/*LOOP_VARIANT_1*/void rT247copy(T247 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*LOOP_VARIANT_1*/void rT247make(T247 *C,T0* a1,T0* a2){
C->_comment=a2;
C->_expression=a1;
}/*LOOP_VARIANT_2*/T0* rT246twin(T246 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT246copy((T246*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*LOOP_VARIANT_2*/T0* rT246to_runnable(T246 *C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
_e=XrT72to_runnable((C)->_expression,a1);
/*IF*/if (!(_e)) {
rT246error(rT246start_position(C),(T0 *)ms1_243);
}
else {
C->_expression=_e;
/*IF*/if (!(XrT62is_integer(XrT72result_type((C)->_expression)))) {
rT246error(XrT72start_position((C)->_expression),(T0 *)ms2_243);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT246twin(C);
/*[IRF3:set_current_type*//*AW*/((T246*)R)->_current_type=(NULL);/*]*/
R=rT246to_runnable((T246*)R,a1);
}
/*FI*/return R;
}
/*LOOP_VARIANT_2*/void rT246error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*LOOP_VARIANT_2*/T0* rT246start_position(T246 *C){
T0* R=NULL;
R=XrT72start_position((C)->_expression);
return R;
}
/*LOOP_VARIANT_2*/int rT246use_current(T246 *C){
int R=0;
R=XrT72use_current((C)->_expression);
return R;
}
/*LOOP_VARIANT_2*/void rT246copy(T246 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*LOOP_VARIANT_2*/void rT246make(T246 *C,T0* a1,T0* a2,T0* a3){
C->_comment=a3;
C->_tag=a1;
C->_expression=a2;
}/*LOOP_INVARIANT*/T0* rT244twin(T244 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT244copy((T244*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*LOOP_INVARIANT*/T0* rT244runnable(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(rT162empty((T162*)a1))) {
R=rT162twin((T162*)a1);
_i=((T162*)R)->_upper;
while (!((_i)==(0))) {
rT55push((T55*)oRBC27small_eiffel,a3);
_a=rT68to_runnable((T68*)rT162item((T162*)R,_i),a2);
/*IF*/if (!(_a)) {
rT244error(rT68start_position((T68*)rT162item((T162*)R,_i)),(T0 *)ms97_27);
}
else {
rT162put((T162*)R,_a,_i);
}
/*FI*/rT55pop((T55*)oRBC27small_eiffel);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*LOOP_INVARIANT*/T0* rT244to_runnable(T244 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
/*IF*/if (((int)(C)->_list)) {
C->_list=rT244runnable((C)->_list,a1,rT55top_rf((T55*)oRBC27small_eiffel));
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT244twin(C);
/*[IRF3:set_current_type*//*AW*/((T244*)R)->_current_type=(NULL);/*]*/
R=rT244to_runnable((T244*)R,a1);
}
/*FI*/return R;
}
/*LOOP_INVARIANT*/void rT244error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*LOOP_INVARIANT*/int rT244use_current(T244 *C){
int R=0;
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=((T162*)(C)->_list)->_upper;
while (!((R)||((_i)==(0)))) {
R=rT68use_current((T68*)rT162item((T162*)(C)->_list,_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*LOOP_INVARIANT*/void rT244compile_to_c(T244 *C){
int _i=0;
/*[IRF3:set_check_assertion_mode*//*AW*/((T44*)oRBC27cpp)->_check_assertion_mode=(/*(IRF4*/(T0 *)ms2_244/*)*/);/*]*/
/*IF*/if (((int)(C)->_list)) {
rT44put_string((T44*)oRBC27cpp,(T0 *)ms1_140);
rT44put_string((T44*)oRBC27cpp,/*(IRF4*/(T0 *)ms2_244/*)*/);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms2_140);
rT44put_string((T44*)oRBC27cpp,/*(IRF4*/(T0 *)ms2_244/*)*/);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms3_140);
_i=1;
while (!((_i)>(((T162*)(C)->_list)->_upper))) {
rT68compile_to_c((T68*)rT162item((T162*)(C)->_list,_i));
_i=(_i)+(1);
}
rT44put_string((T44*)oRBC27cpp,(T0 *)ms4_140);
rT44put_string((T44*)oRBC27cpp,/*(IRF4*/(T0 *)ms2_244/*)*/);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms5_140);
}
/*FI*/}/*LOOP_INVARIANT*/void rT244copy(T244 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*LOOP_INVARIANT*/void rT244make(T244 *C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}

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