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

This is compile_to_c1.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"
T0 *se_new(int id){
int sz=s[id];
T0 *n=malloc((size_t)sz);
memset(n,0,sz);
n->id=id;
return n;
}
/*FUNCTION*/T0* rT260runnable(/*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)) {
rT260error(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;
}
/*FUNCTION*/T0* rT260run_require(/*C*/T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
rT276clear((T276*)oRBC66require_collector);
rT53collect_for((T53*)XrT62base_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type),1001,/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
/*IF*/if (!(rT276empty((T276*)oRBC66require_collector))) {
_i=1;
while (!((_i)>(((T276*)oRBC66require_collector)->_upper))) {
_er=rT276item((T276*)oRBC66require_collector,_i);
/*IF*/if (!(rT139empty((T139*)_er))) {
_r=rT260runnable(((T139*)_er)->_list,/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type,a1);
/*IF*/if (((int)_r)) {
{T139 *n=((T139*)se_new(139));
rT139from_runnable(n,_r);
_er=(T0 *)n;}
/*IF*/if (!(_ar)) {
_ar=ma(276,0,1,_er);
}
else {
rT276add_last((T276*)_ar,_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (((int)_ar)) {
{T275 *n=((T275*)se_new(275));
/*[IRF3:make*//*AW*/(n)->_list=(_ar);/*]*/
R=(T0 *)n;}
}
/*FI*/}
/*FI*/return R;
}
T0*oRBC66require_collector;
/*FUNCTION*/T0* rT260first_name(T260 *C){
T0* R=NULL;
R=rT130item((T130*)(C)->_names,1);
return R;
}
/*FUNCTION*/T0* rT260to_run_feature(T260 *C,T0* a1,T0* a2){
T0* R=NULL;
{T289 *n=((T289*)se_new(289));
rT289make(n,a1,a2,(T0 *)C);
R=(T0 *)n;}
return R;
}
/*FUNCTION*/void rT260error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*FUNCTION*/int rT260is_merge_with(T260 *C,T0* a1,T0* a2){
int R=0;
int _ne=0;
_ne=/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)/*XrT*E_FEATURE*/((T148*)a1)->_result_type)) {
/*IF*/if (((!((C)->_result_type))||(!(/*XrT*E_FEATURE*/((T148*)a1)->_result_type)))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms1_66);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT66arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT66arguments(a1))))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms2_66);
}
 else if ((rT97count((T97*)(C)->_arguments))!=(rT97count((T97*)XrT66arguments(a1)))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms3_66);
}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT62is_a_in((C)->_result_type,/*XrT*E_FEATURE*/((T148*)a1)->_result_type,a2))) {
rT48error((T48*)oRBC27eh,(T0 *)ms13_66);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT97is_a_in((T97*)(C)->_arguments,XrT66arguments(a1),a2))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms13_66);
}
/*FI*/}
/*FI*/}
/*FI*/R=((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
return R;
}
T0*oRBC27eh;
/*FUNCTION*/T0* rT260start_position(T260 *C){
T0* R=NULL;
R=/*XrT*FEATURE_NAME*/((T70*)rT260first_name(C))->_start_position;
return R;
}
/*FUNCTION*/void rT260collect_for(T260 *C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((int)(C)->_require_assertion)) {
/*IF*/if (!(rT276fast_has((T276*)oRBC66require_collector,(C)->_require_assertion))) {
rT276add_last((T276*)oRBC66require_collector,(C)->_require_assertion);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((int)(C)->_ensure_assertion)) {
rT161add_into((T161*)(C)->_ensure_assertion,oRBC66assertion_collector);
}
/*FI*/}
/*FI*/}/*FUNCTION*/void rT260add_into(T260 *C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=rT49base_class((T49*)/*XrT*FEATURE_NAME*/((T70*)rT130item((T130*)(C)->_names,1))->_start_position);
_i=1;
while (!((_i)>(rT130count((T130*)(C)->_names)))) {
_fn=rT130item((T130*)(C)->_names,_i);
/*IF*/if (rT65has((T65*)a1,XrT71to_key(_fn))) {
_fn=XrT66first_name(rT65at((T65*)a1,XrT71to_key(_fn)));
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position);
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)rT130item((T130*)(C)->_names,_i))->_start_position);
rT48error((T48*)oRBC27eh,(T0 *)ms12_66);
rT48append(/*XrT*FEATURE_NAME*/((T70*)_fn)->_to_string);
rT48error((T48*)oRBC27eh,(T0 *)ms102_27);
}
else {
rT65put((T65*)a1,(T0 *)C,XrT71to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}/*FUNCTION*/T0* rT260try_to_undefine(T260 *C,T0* a1,T0* a2){
T0* R=NULL;
XrT71undefine_in(a1,a2);
R=rT260try_to_undefine_aux(C,a1,a2);
/*IF*/if (((int)R)) {
/*XrT*DEFERRED_ROUTINE*//*[IRF3:set_clients*//*AW*/((T210*)R)->_clients=((C)->_clients);/*]*/
}
else {
rT53fatal_undefine((T53*)a2,a1);
}
/*FI*/return R;
}
/*FUNCTION*/T0* rT260try_to_undefine_aux(T260 *C,T0* a1,T0* a2){
T0* R=NULL;
{T211 *n=((T211*)se_new(211));
rT211from_effective(n,a1,(C)->_arguments,(C)->_result_type,(C)->_require_assertion,(C)->_ensure_assertion,a2);
R=(T0 *)n;}return R;
}
/*FUNCTION*/void rT260set_header_comment(T260 *C,T0* a1){
/*IF*/if ((((int)a1))&&((rT63count((T63*)a1))>(1))) {
C->_end_comment=a1;
}
/*FI*/}/*FUNCTION*/int rT260stupid_switch(T260 *C,T0* a1,T0* a2){
int R=0;
R=!((C)->_routine_body);
return R;
}
/*FUNCTION*/int rT260can_hide(T260 *C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)/*XrT*E_FEATURE*/((T148*)a1)->_result_type)) {
/*IF*/if (((!((C)->_result_type))||(!(/*XrT*E_FEATURE*/((T148*)a1)->_result_type)))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms4_66);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT66arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT66arguments(a1))))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms5_66);
}
 else if ((rT97count((T97*)(C)->_arguments))!=(rT97count((T97*)XrT66arguments(a1)))) {
rT48add_position(XrT66start_position(a1));
rT260error(rT260start_position(C),(T0 *)ms6_66);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT62is_a_in((C)->_result_type,/*XrT*E_FEATURE*/((T148*)a1)->_result_type,a2))) {
rT48append((T0 *)ms14_66);
rT48append(XrT62run_time_mark(((T269*)a2)->_current_type));
rT48error((T48*)oRBC27eh,(T0 *)ms7_66);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT97is_a_in((T97*)(C)->_arguments,XrT66arguments(a1),a2))) {
rT48add_position(XrT66start_position(a1));
rT48add_position(rT260start_position(C));
rT48append((T0 *)ms14_66);
rT48append(XrT62run_time_mark(((T269*)a2)->_current_type));
rT48error((T48*)oRBC27eh,(T0 *)ms8_66);
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0);
return R;
}
/*FUNCTION*/T0* rT260run_ensure(/*C*/T0* a1){
T0* R=NULL;
T0* _r=NULL;
rT162clear((T162*)oRBC66assertion_collector);
rT53collect_for((T53*)XrT62base_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type),1002,/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
_r=rT260runnable(oRBC66assertion_collector,/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type,a1);
/*IF*/if (((int)_r)) {
{T161 *n=((T161*)se_new(161));
rT161from_runnable(n,_r);
R=(T0 *)n;}
}
/*FI*/return R;
}
T0*oRBC27small_eiffel;
/*FUNCTION*/T0* rT260base_class_name(T260 *C){
T0* R=NULL;
R=((T53*)(C)->_base_class)->_base_class_name;
return R;
}
/*FUNCTION*/void rT260set_rescue_compound(T260 *C,T0* a1){
/*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
rT260error(rT260start_position(C),(T0 *)ms8_160);
}
/*FI*/C->_rescue_compound=a1;
}/*FUNCTION*/void rT260make_e_feature(T260 *C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}/*FUNCTION*/void rT260make_routine(T260 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
rT260make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}/*FUNCTION*/void rT260make_effective_routine(T260 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
rT260make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1015;
}T0*oRBC66assertion_collector;
/*FUNCTION*/void rT260make(T260 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
rT260make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}/*BIT_CONSTANT*/T0* rT81twin(T81 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT81copy((T81*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*BIT_CONSTANT*/int rT81static_value(T81 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
/*BIT_CONSTANT*/void rT81fatal_error(/*C*/T0* a1){
rT48fatal_error(a1);
}/*BIT_CONSTANT*/T0* rT81to_runnable(T81 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT81to_runnable((T81*)rT81twin(C),a1);
}
/*FI*/return R;
}
/*BIT_CONSTANT*/void rT81error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*BIT_CONSTANT*/T0* rT81add_comment(T81 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT63count((T63*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
rT228make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
/*BIT_CONSTANT*/T0* rT81result_type(/*C*/void){
T0* R=NULL;
rT81error(/*(IRF4*/NULL/*)*/,(T0 *)ms1_81);
return R;
}
/*BIT_CONSTANT*/int rT81to_integer(/*C*/void){
int R=0;
rT81error(/*(IRF4*/NULL/*)*/,(T0 *)ms104_27);
return R;
}
/*BIT_CONSTANT*/void rT81copy(T81 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*BIT_CONSTANT*/int rT81is_a(/*C*/T0* a1){
int R=0;
R=XrT62is_a(XrT104run_type(rT81result_type()),XrT62run_type(XrT72result_type(a1)));
/*IF*/if (!(R)) {
rT48add_position(/*(IRF4*/NULL/*)*/);
rT81error(XrT72start_position(a1),(T0 *)ms2_72);
}
/*FI*/return R;
}
T0*oRBC27cpp;
/*E_OLD*/int rT173static_value(T173 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
/*E_OLD*/T0* rT173to_runnable(T173 *C,T0* a1){
T0* R=NULL;
T0* _exp=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
_exp=XrT72to_runnable((C)->_expression,a1);
/*IF*/if (!(_exp)) {
rT173error(rT173start_position(C),(T0 *)ms1_173);
}
else {
C->_expression=_exp;
}
/*FI*/C->_id=rT44next_e_old_id((T44*)oRBC27cpp);
R=(T0 *)C;
}
else {
{T173 *n=((T173*)se_new(173));
/*[IRF3:make*//*AW*/(n)->_expression=((C)->_expression);/*]*/
R=(T0 *)n;}
R=rT173to_runnable((T173*)R,a1);
}
/*FI*/return R;
}
/*E_OLD*/void rT173error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*E_OLD*/T0* rT173add_comment(T173 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT63count((T63*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
rT228make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
/*E_OLD*/T0* rT173result_type(T173 *C){
T0* R=NULL;
R=XrT72result_type((C)->_expression);
return R;
}
/*E_OLD*/T0* rT173start_position(T173 *C){
T0* R=NULL;
R=XrT72start_position((C)->_expression);
return R;
}
/*E_OLD*/int rT173use_current(T173 *C){
int R=0;
R=XrT72use_current((C)->_expression);
return R;
}
/*E_OLD*/void rT173compile_to_c_old(T173 *C){
T0* _t=NULL;
_t=XrT62run_type(rT173result_type(C));
rT44put_character((T44*)oRBC27cpp,'T');
/*IF*/if (XrT62is_expanded(_t)) {
rT44put_integer((T44*)oRBC27cpp,XrT62id(_t));
rT44put_character((T44*)oRBC27cpp,'\40');
}
else {
rT44put_string((T44*)oRBC27cpp,(T0 *)ms4_173);
}
/*FI*/rT44put_character((T44*)oRBC27cpp,'o');
rT44put_integer((T44*)oRBC27cpp,(C)->_id);
rT44put_character((T44*)oRBC27cpp,'\75');
XrT72compile_to_c((C)->_expression);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms5_173);
}/*E_OLD*/void rT173compile_to_c(T173 *C){
rT44put_character((T44*)oRBC27cpp,'o');
rT44put_integer((T44*)oRBC27cpp,(C)->_id);
}/*E_OLD*/int rT173to_integer(T173 *C){
int R=0;
rT173error(rT173start_position(C),(T0 *)ms104_27);
return R;
}
/*E_OLD*/int rT173is_a(T173 *C,T0* a1){
int R=0;
R=XrT62is_a(XrT62run_type(rT173result_type(C)),XrT62run_type(XrT72result_type(a1)));
/*IF*/if (!(R)) {
rT48add_position(rT173start_position(C));
rT173error(XrT72start_position(a1),(T0 *)ms2_72);
}
/*FI*/return R;
}
/*REAL_CONSTANT*/T0* rT83twin(T83 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT83copy((T83*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*REAL_CONSTANT*/int rT83static_value(T83 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
/*REAL_CONSTANT*/T0* rT83to_runnable(T83 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT83twin(C);
/*[IRF3:set_current_type*//*AW*/((T83*)R)->_current_type=(a1);/*]*/
}
/*FI*/return R;
}
/*REAL_CONSTANT*/void rT83error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*REAL_CONSTANT*/T0* rT83add_comment(T83 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT63count((T63*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
rT228make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
int ofBC83result_type=0;
T0*oRBC83result_type;
/*REAL_CONSTANT*/T0* rT83result_type(/*C*/void){
if (ofBC83result_type==0){
T0* R=NULL;
ofBC83result_type=1;
{T116 *n=((T116*)se_new(116));
rT116make(n,NULL);
R=(T0 *)n;}
oRBC83result_type=R;}
return oRBC83result_type;}
/*REAL_CONSTANT*/T0* rT83_px45(T83 *C){
T0* R=NULL;
rT83error((C)->_start_position,(T0 *)ms3_83);
return R;
}
/*REAL_CONSTANT*/void rT83compile_to_c(T83 *C){
rT44put_string((T44*)oRBC27cpp,(T0 *)ms1_83);
rT44put_string((T44*)oRBC27cpp,(C)->_to_string);
rT44put_character((T44*)oRBC27cpp,'\51');
}/*REAL_CONSTANT*/int rT83to_integer(T83 *C){
int R=0;
rT83error((C)->_start_position,(T0 *)ms104_27);
return R;
}
/*REAL_CONSTANT*/T0* rT83to_integer_constant(T83 *C){
T0* R=NULL;
rT83error((C)->_start_position,(T0 *)ms2_83);
return R;
}
/*REAL_CONSTANT*/void rT83copy(T83 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*REAL_CONSTANT*/int rT83is_a(T83 *C,T0* a1){
int R=0;
R=XrT62is_a(rT116run_type((T116*)rT83result_type()),XrT62run_type(XrT72result_type(a1)));
/*IF*/if (!(R)) {
rT48add_position((C)->_start_position);
rT83error(XrT72start_position(a1),(T0 *)ms2_72);
}
/*FI*/return R;
}
/*REAL_CONSTANT*/void rT83make(T83 *C,T0* a1,T0* a2,int a3,float a4,int a5){
C->_start_position=a1;
C->_to_string=a2;
C->_integral_part=a3;
C->_fractional_part=a4;
C->_exponent=a5;
}/*ONCE_FUNCTION*/T0* rT263runnable(/*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)) {
rT263error(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;
}
/*ONCE_FUNCTION*/T0* rT263run_require(/*C*/T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
rT276clear((T276*)oRBC66require_collector);
rT53collect_for((T53*)XrT62base_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type),1001,/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
/*IF*/if (!(rT276empty((T276*)oRBC66require_collector))) {
_i=1;
while (!((_i)>(((T276*)oRBC66require_collector)->_upper))) {
_er=rT276item((T276*)oRBC66require_collector,_i);
/*IF*/if (!(rT139empty((T139*)_er))) {
_r=rT263runnable(((T139*)_er)->_list,/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type,a1);
/*IF*/if (((int)_r)) {
{T139 *n=((T139*)se_new(139));
rT139from_runnable(n,_r);
_er=(T0 *)n;}
/*IF*/if (!(_ar)) {
_ar=ma(276,0,1,_er);
}
else {
rT276add_last((T276*)_ar,_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if (((int)_ar)) {
{T275 *n=((T275*)se_new(275));
/*[IRF3:make*//*AW*/(n)->_list=(_ar);/*]*/
R=(T0 *)n;}
}
/*FI*/}
/*FI*/return R;
}
/*ONCE_FUNCTION*/T0* rT263first_name(T263 *C){
T0* R=NULL;
R=rT130item((T130*)(C)->_names,1);
return R;
}
/*ONCE_FUNCTION*/T0* rT263to_run_feature(T263 *C,T0* a1,T0* a2){
T0* R=NULL;
{T281 *n=((T281*)se_new(281));
rT281make(n,a1,a2,(T0 *)C);
R=(T0 *)n;}
return R;
}
/*ONCE_FUNCTION*/void rT263error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*ONCE_FUNCTION*/int rT263is_merge_with(T263 *C,T0* a1,T0* a2){
int R=0;
int _ne=0;
_ne=/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)/*XrT*E_FEATURE*/((T148*)a1)->_result_type)) {
/*IF*/if (((!((C)->_result_type))||(!(/*XrT*E_FEATURE*/((T148*)a1)->_result_type)))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms1_66);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT66arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT66arguments(a1))))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms2_66);
}
 else if ((rT97count((T97*)(C)->_arguments))!=(rT97count((T97*)XrT66arguments(a1)))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms3_66);
}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT62is_a_in((C)->_result_type,/*XrT*E_FEATURE*/((T148*)a1)->_result_type,a2))) {
rT48error((T48*)oRBC27eh,(T0 *)ms13_66);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT97is_a_in((T97*)(C)->_arguments,XrT66arguments(a1),a2))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms13_66);
}
/*FI*/}
/*FI*/}
/*FI*/R=((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
return R;
}
/*ONCE_FUNCTION*/T0* rT263start_position(T263 *C){
T0* R=NULL;
R=/*XrT*FEATURE_NAME*/((T70*)rT263first_name(C))->_start_position;
return R;
}
/*ONCE_FUNCTION*/void rT263collect_for(T263 *C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((int)(C)->_require_assertion)) {
/*IF*/if (!(rT276fast_has((T276*)oRBC66require_collector,(C)->_require_assertion))) {
rT276add_last((T276*)oRBC66require_collector,(C)->_require_assertion);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((int)(C)->_ensure_assertion)) {
rT161add_into((T161*)(C)->_ensure_assertion,oRBC66assertion_collector);
}
/*FI*/}
/*FI*/}/*ONCE_FUNCTION*/void rT263add_into(T263 *C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=rT49base_class((T49*)/*XrT*FEATURE_NAME*/((T70*)rT130item((T130*)(C)->_names,1))->_start_position);
_i=1;
while (!((_i)>(rT130count((T130*)(C)->_names)))) {
_fn=rT130item((T130*)(C)->_names,_i);
/*IF*/if (rT65has((T65*)a1,XrT71to_key(_fn))) {
_fn=XrT66first_name(rT65at((T65*)a1,XrT71to_key(_fn)));
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position);
rT48add_position(/*XrT*FEATURE_NAME*/((T70*)rT130item((T130*)(C)->_names,_i))->_start_position);
rT48error((T48*)oRBC27eh,(T0 *)ms12_66);
rT48append(/*XrT*FEATURE_NAME*/((T70*)_fn)->_to_string);
rT48error((T48*)oRBC27eh,(T0 *)ms102_27);
}
else {
rT65put((T65*)a1,(T0 *)C,XrT71to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}/*ONCE_FUNCTION*/T0* rT263try_to_undefine(T263 *C,T0* a1,T0* a2){
T0* R=NULL;
XrT71undefine_in(a1,a2);
R=rT263try_to_undefine_aux(C,a1,a2);
/*IF*/if (((int)R)) {
/*XrT*DEFERRED_ROUTINE*//*[IRF3:set_clients*//*AW*/((T210*)R)->_clients=((C)->_clients);/*]*/
}
else {
rT53fatal_undefine((T53*)a2,a1);
}
/*FI*/return R;
}
/*ONCE_FUNCTION*/T0* rT263try_to_undefine_aux(T263 *C,T0* a1,T0* a2){
T0* R=NULL;
rT263error(rT263start_position(C),(T0 *)ms2_261);
rT53fatal_undefine((T53*)a2,a1);
return R;
}
/*ONCE_FUNCTION*/void rT263set_header_comment(T263 *C,T0* a1){
/*IF*/if ((((int)a1))&&((rT63count((T63*)a1))>(1))) {
C->_end_comment=a1;
}
/*FI*/}/*ONCE_FUNCTION*/int rT263stupid_switch(T263 *C,T0* a1,T0* a2){
int R=0;
R=!((C)->_routine_body);
return R;
}
/*ONCE_FUNCTION*/void rT263mapping_c_name(T263 *C){
rT53mapping_c((T53*)(C)->_base_class);
XrT71mapping_c(rT263first_name(C));
}/*ONCE_FUNCTION*/int rT263can_hide(T263 *C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)/*XrT*E_FEATURE*/((T148*)a1)->_result_type)) {
/*IF*/if (((!((C)->_result_type))||(!(/*XrT*E_FEATURE*/((T148*)a1)->_result_type)))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms4_66);
}
/*FI*/}
/*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT66arguments(a1))) {
/*IF*/if (((!((C)->_arguments))||(!(XrT66arguments(a1))))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms5_66);
}
 else if ((rT97count((T97*)(C)->_arguments))!=(rT97count((T97*)XrT66arguments(a1)))) {
rT48add_position(XrT66start_position(a1));
rT263error(rT263start_position(C),(T0 *)ms6_66);
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)(C)->_result_type)) {
/*IF*/if (!(XrT62is_a_in((C)->_result_type,/*XrT*E_FEATURE*/((T148*)a1)->_result_type,a2))) {
rT48append((T0 *)ms14_66);
rT48append(XrT62run_time_mark(((T269*)a2)->_current_type));
rT48error((T48*)oRBC27eh,(T0 *)ms7_66);
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (((int)(C)->_arguments)) {
/*IF*/if (!(rT97is_a_in((T97*)(C)->_arguments,XrT66arguments(a1),a2))) {
rT48add_position(XrT66start_position(a1));
rT48add_position(rT263start_position(C));
rT48append((T0 *)ms14_66);
rT48append(XrT62run_time_mark(((T269*)a2)->_current_type));
rT48error((T48*)oRBC27eh,(T0 *)ms8_66);
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0);
return R;
}
/*ONCE_FUNCTION*/T0* rT263run_ensure(/*C*/T0* a1){
T0* R=NULL;
T0* _r=NULL;
rT162clear((T162*)oRBC66assertion_collector);
rT53collect_for((T53*)XrT62base_class(/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type),1002,/*XrT*RUN_FEATURE*/((T274*)a1)->_name);
_r=rT263runnable(oRBC66assertion_collector,/*XrT*RUN_FEATURE*/((T274*)a1)->_current_type,a1);
/*IF*/if (((int)_r)) {
{T161 *n=((T161*)se_new(161));
rT161from_runnable(n,_r);
R=(T0 *)n;}
}
/*FI*/return R;
}
/*ONCE_FUNCTION*/T0* rT263base_class_name(T263 *C){
T0* R=NULL;
R=((T53*)(C)->_base_class)->_base_class_name;
return R;
}
/*ONCE_FUNCTION*/void rT263set_rescue_compound(T263 *C,T0* a1){
/*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
rT263error(rT263start_position(C),(T0 *)ms8_160);
}
/*FI*/C->_rescue_compound=a1;
}/*ONCE_FUNCTION*/void rT263make_e_feature(T263 *C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}/*ONCE_FUNCTION*/void rT263make_routine(T263 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
rT263make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}/*ONCE_FUNCTION*/void rT263make_effective_routine(T263 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
rT263make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1015;
}/*ONCE_FUNCTION*/void rT263make(T263 *C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
rT263make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}

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