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