home *** CD-ROM | disk | FTP | other *** search
- /* ANSI C code generated by SmallEiffel. */
- /*
- -- SmallEiffel -- Release (- 0.97) -- FRANCE
- -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN
- -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr
- -- CRIN (Centre de Recherche en Informatique de Nancy)
- -- FRANCE
- */
- #include "compile_to_c.h"
- void rT248copy(T248 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- int rT248is_pre_computable(T248 *C){
- int R=0;
- R=(XrT68is_result((C)->_left_side))&&(XrT68is_pre_computable((C)->_right_side));
- return R;
- }
- T0 * rT248right_type(T248 *C){
- T0 * R=NULL;
- R=XrT68result_type((C)->_right_side);
- return R;
- }
- void rT248make(T248 *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 rT97copy(T97 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- void rT97make(T97 *C,T0* a1,T0 * a2){
- C->_to_string=a1;
- C->_start_position=a2;
- }
- 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=rT80clone(C,(T0 *)C);
- /*(IRF3*/(((T80*)R)->_current_type)=(a1);
- /*)*/}
- /*FI*/return R;
- }
- void rT80error(/*C*/T0 * a1,T0* a2){
- /*UT*/(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 {
- {T220 *n=((T220*)new(220));
- rT220make(n,(T0 *)C,a1);
- R=(T0 *)n;}}
- /*FI*/return R;
- }
- int ofBC80result_type=0;
- T0*oRBC80result_type;
- T0 * rT80result_type(/*C*/void){
- T0 * R=NULL;
- if (ofBC80result_type==0){
- ofBC80result_type=1;
- {T111 *n=((T111*)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*)new(80));
- rT80make(n,-((C)->_value),NULL);
- R=(T0 *)n;}
- return R;
- }
- T0* rT80clone(T80 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- void rT80compile_to_c(T80 *C){
- rT40put_integer((T40*)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 *)ms276);
- 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*/(T45*)oRBC27eh;
- rT45add_position((C)->_start_position);
- rT80error(XrT68start_position(a1),(T0 *)ms1261);
- }
- /*FI*/return R;
- }
- void rT80make(T80 *C,int a1,T0 * a2){
- C->_value=a1;
- C->_start_position=a2;
- }
- T0 * rT74type_boolean(/*C*/void){
- T0 * R=NULL;
- if (ofBC27type_boolean==0){
- ofBC27type_boolean=1;
- {T107 *n=((T107*)new(107));
- rT107make(n,NULL);
- R=(T0 *)n;}
- oRBC27type_boolean=R;}
- return oRBC27type_boolean;}
- 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=rT74clone(C,(T0 *)C);
- /*(IRF3*/(((T74*)R)->_current_type)=(a1);
- /*)*/}
- /*FI*/return R;
- }
- void rT74error(/*C*/T0 * a1,T0* a2){
- /*UT*/(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 {
- {T220 *n=((T220*)new(220));
- rT220make(n,(T0 *)C,a1);
- R=(T0 *)n;}}
- /*FI*/return R;
- }
- T0* rT74clone(T74 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*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*/(T45*)oRBC27eh;
- rT45add_position((C)->_start_position);
- rT74error(XrT68start_position(a1),(T0 *)ms1261);
- }
- /*FI*/return R;
- }
- 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*)new(7));
- rT7make(n,0);
- R=(T0 *)n;}
- rT2append_in(C,R);
- return R;
- }
- char rT2digit(T2 C){
- char R='\0';
- R=rT7item(ms45,(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*)(T0 *)ms832)->_count)=(0);
- /*)*/R=C;
- while (!((R)==(0))) {
- rT7extend((T7*)(T0 *)ms832,rT2digit((R)%(8)));
- R=(R)/(8);
- }
- rT7reverse((T7*)(T0 *)ms832);
- R=rT7to_integer((T7*)(T0 *)ms832);
- }
- /*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 rT82copy(T82 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- 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*/}
- void rT65copy(T65 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- T0* rT26get_environment_variable(T26 *C,T0* a1){
- T0* R=NULL;
- rT7extend((T7*)a1,'\0');
- R=((T0 *)getenv(((T7 *)a1)->_storage));
- if (R) R=((T0 *)e2s((char *)R));
- rT7remove_last((T7*)a1,1);
- return R;
- }
- void rT26automat(T26 *C){
- T0* _a=NULL;
- int _arg=0;
- _arg=1;
- while (!(((_arg)>(argument_count))||(((C)->_state)>(7)))) {
- _a=argument[_arg];
- {int iv1=(C)->_state;
- if (0 == iv1) goto l498;
- goto l499;
- l498: ;
- /*IF*/if ((rT7item((T7*)_a,1))!=('\55')) {
- /*IF*/if (rT7has_suffix((T7*)_a,(T0 *)ms29)) {
- rT40add_c_object((T40*)oRBC27cpp,_a);
- }
- else if (rT7has_suffix((T7*)_a,(T0 *)ms34)) {
- rT40add_c_object((T40*)oRBC27cpp,_a);
- }
- else if (!((C)->_root_class)) {
- C->_root_class=_a;
- /*(IRF3*/(((T44*)oRBC27eiffel_run_control)->_root_class)=(_a);
- /*)*/C->_state=2;
- }
- else {
- rT40add_c_compiler_option((T40*)oRBC27cpp,_a);
- }
- /*FI*/}
- else if (rT7is_equal(ms35,_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(ms438,_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(ms439,_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(ms440,_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(ms441,_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(ms442,_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(ms443,_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(ms444,_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(ms445,_a)) {
- /*(IRF3*/(((T40*)oRBC27cpp)->_no_strip)=(1);
- /*)*/}
- else if (rT7is_equal(ms446,_a)) {
- /*(IRF3*/(((T40*)oRBC27cpp)->_cc_used)=(1);
- /*)*/}
- else if (rT7has_prefix((T7*)_a,(T0 *)ms447)) {
- rT40add_c_library((T40*)oRBC27cpp,_a);
- }
- else if (rT7is_equal(ms448,_a)) {
- /*IF*/if (((int)(C)->_output_name)) {
- rT45error((T45*)oRBC27eh,(T0 *)ms449);
- C->_state=9;
- }
- else {
- C->_state=1;
- }
- /*FI*/}
- else {
- rT40add_c_compiler_option((T40*)oRBC27cpp,_a);
- }
- /*FI*/goto l497;
- l499: ;
- if (1 == iv1) goto l500;
- goto l501;
- l500: ;
- /*(IRF3*/(((T40*)oRBC27cpp)->_output_name)=(_a);
- /*)*/C->_state=0;
- goto l497;
- l501: ;
- if (2 == iv1) goto l502;
- goto l503;
- l502: ;
- C->_start_proc=_a;
- C->_state=0;
- goto l497;
- l503: ;
- l497: ;
- }
- _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(T26 *C){
- char R='\0';
- if (ofBC27directory_separator==0){
- ofBC27directory_separator=1;
- R=rT7last((T7*)rT26small_eiffel_directory(C));
- oRBC27directory_separator=R;}
- return oRBC27directory_separator;}
- void rT26die_with_code(T26 *C,int a1){
- exit(a1);
- }
- T0*oRBC27hlp_file_name;
- void rT26error_level(T26 *C,T0* a1){
- C->_state=9;
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms36);
- /*UT*/(T45*)oRBC27eh;
- rT45append((C)->_level);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms37);
- /*UT*/(T45*)oRBC27eh;
- rT45append(a1);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms38);
- rT45print_as_error((T45*)oRBC27eh);
- }
- void rT26add_directory(T26 *C,T0* a1,T0* a2){
- rT7append((T7*)a1,a2);
- rT7extend((T7*)a1,rT26directory_separator(C));
- }
- void rT26print_hlp(T26 *C,T0* a1){
- rT7copy((T7*)oRBC27hlp_file_name,rT26small_eiffel_directory(C));
- rT26add_directory(C,oRBC27hlp_file_name,(T0 *)ms21);
- rT7append((T7*)oRBC27hlp_file_name,a1);
- /*IF*/if (!(rT7has_suffix((T7*)oRBC27hlp_file_name,(T0 *)ms22))) {
- rT7append((T7*)oRBC27hlp_file_name,(T0 *)ms22);
- }
- /*FI*//*IF*/if (!(rT26file_exists(C,oRBC27hlp_file_name))) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms24);
- rT33put_string((T33*)oRBC1std_error,oRBC27hlp_file_name);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms25);
- rT26die_with_code(C,1);
- }
- /*FI*/rT38append_file((T38*)oRBC1std_output,oRBC27hlp_file_name);
- }
- T0* rT26clone(T26 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- T0* rT26small_eiffel_directory(T26 *C){
- T0* R=NULL;
- char _slash='\0';
- int _i=0;
- if (ofBC27small_eiffel_directory==0){
- ofBC27small_eiffel_directory=1;
- R=rT26get_environment_variable(C,(T0 *)ms14);
- /*IF*/if (!(R)) {
- R=rT26clone(C,(T0 *)ms14);
- rT7to_upper((T7*)R);
- R=rT26get_environment_variable(C,R);
- /*IF*/if (((int)R)) {
- rT7to_upper((T7*)(T0 *)ms14);
- }
- /*FI*/}
- /*FI*//*IF*/if (!(R)) {
- R=(T0 *)ms20;
- }
- /*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;}
- void rT26copy(T26 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- void rT26make(T26 *C){
- /*IF*/if ((argument_count)<(2)) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms5);
- rT26print_hlp(C,(T0 *)ms28);
- rT26die_with_code(C,1);
- }
- else {
- rT26automat(C);
- }
- /*FI*/}
- int rT26file_exists(T26 *C,T0* a1){
- int R=0;
- rT7extend((T7*)a1,'\0');
- {FILE *f=fopen(((T7 *)a1)->_storage,"r");
- R=(f != NULL);
- fclose(f);}
- rT7remove_last((T7*)a1,1);
- return R;
- }
- T0* rT251runnable(T251 *C,T0* a1,T0 * a2,T0 * a3){
- T0* R=NULL;
- T0 * _a=NULL;
- int _i=0;
- /*IF*/if (!(rT158empty((T158*)a1))) {
- R=rT251clone(C,a1);
- _i=1;
- while (!((_i)>(((T158*)R)->_upper))) {
- rT52push((T52*)oRBC27small_eiffel,a3);
- _a=rT64to_runnable((T64*)rT158item((T158*)R,_i),a2);
- /*IF*/if (!(_a)) {
- rT251error(rT64start_position((T64*)rT158item((T158*)R,_i)),(T0 *)ms477);
- }
- else {
- rT158put((T158*)R,_a,_i);
- }
- /*FI*/rT52pop((T52*)oRBC27small_eiffel);
- _i=(_i)+(1);
- }
- }
- /*FI*/return R;
- }
- T0 * rT251run_require(T251 *C,T0 * a1){
- T0 * R=NULL;
- T0* _ar=NULL;
- T0 * _er=NULL;
- T0* _r=NULL;
- int _i=0;
- rT268clear((T268*)oRBC62require_collector);
- rT50collect_for((T50*)XrT58base_class(XrT261current_type(a1)),1001,XrT261name(a1));
- /*IF*/if (!(rT268empty((T268*)oRBC62require_collector))) {
- _i=1;
- while (!((_i)>(((T268*)oRBC62require_collector)->_upper))) {
- _er=rT268item((T268*)oRBC62require_collector,_i);
- _r=rT251runnable(C,((T137*)_er)->_list,XrT261current_type(a1),a1);
- /*IF*/if (((int)_r)) {
- {T137 *n=((T137*)new(137));
- rT137from_runnable(n,_r);
- _er=(T0 *)n;}
- /*IF*/if (!(_ar)) {
- _ar=ma(268,0,1,_er);
- }
- else {
- rT268add_last((T268*)_ar,_er);
- }
- /*FI*/}
- /*FI*/_i=(_i)+(1);
- }
- /*IF*/if (((int)_ar)) {
- {T267 *n=((T267*)new(267));
- /*(IRF3*/((n)->_list)=(_ar);
- /*)*/R=(T0 *)n;}
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT251fatal_error(/*C*/T0* a1){
- rT45fatal_error((T45*)oRBC27eh,a1);
- }
- T0 * rT251first_name(T251 *C){
- T0 * R=NULL;
- R=rT128item((T128*)(C)->_names,1);
- return R;
- }
- T0 * rT251to_run_feature(T251 *C,T0 * a1,T0 * a2){
- T0 * R=NULL;
- {T266 *n=((T266*)new(266));
- rT266make(n,a1,a2,(T0 *)C);
- R=(T0 *)n;}
- return R;
- }
- void rT251error(/*C*/T0 * a1,T0* a2){
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(a1);
- rT45error((T45*)oRBC27eh,a2);
- }
- void rT251fe_undefine(/*C*/T0 * a1,T0 * a2){
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms483);
- /*UT*/(T45*)oRBC27eh;
- rT45append(XrT67to_string(a1));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms484);
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
- rT251fatal_error((T0 *)ms485);
- }
- int rT251is_merge_with(T251 *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*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms488);
- }
- /*FI*/}
- /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
- /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms489);
- }
- else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms490);
- }
- /*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 *)ms491);
- }
- /*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*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms494);
- }
- /*FI*/}
- /*FI*/}
- /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
- return R;
- }
- T0 * rT251start_position(T251 *C){
- T0 * R=NULL;
- R=XrT67start_position(rT251first_name(C));
- return R;
- }
- void rT251collect_for(T251 *C,int a1){
- /*IF*/if ((a1)==(1001)) {
- /*IF*/if (((int)(C)->_require_assertion)) {
- /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,(C)->_require_assertion))) {
- rT268add_last((T268*)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 rT251add_into(T251 *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*/(T45*)oRBC27eh;
- rT45add_position(XrT67start_position(_fn));
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
- rT45error((T45*)oRBC27eh,(T0 *)ms419);
- /*UT*/(T45*)oRBC27eh;
- rT45append(XrT67to_string(_fn));
- rT45error((T45*)oRBC27eh,(T0 *)ms38);
- }
- else {
- rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
- }
- /*FI*/_i=(_i)+(1);
- }
- }
- T0* rT251clone(T251 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- T0 * rT251try_to_undefine(T251 *C,T0 * a1,T0 * a2){
- T0 * R=NULL;
- /*IF*/if (XrT67is_frozen(a1)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(rT251start_position(C));
- rT251error(XrT67start_position(a1),(T0 *)ms482);
- rT251fe_undefine(a1,a2);
- }
- else {
- R=rT251try_to_undefine_aux(C,a1,a2);
- /*IF*/if (((int)R)) {
- XrT203set_clients(R,(C)->_clients);
- }
- else {
- rT251fe_undefine(a1,a2);
- }
- /*FI*/}
- /*FI*/return R;
- }
- T0 * rT251try_to_undefine_aux(T251 *C,T0 * a1,T0 * a2){
- T0 * R=NULL;
- {T204 *n=((T204*)new(204));
- rT204from_effective(n,a1,(C)->_arguments,(C)->_require_assertion,(C)->_ensure_assertion,a2);
- R=(T0 *)n;}return R;
- }
- void rT251set_header_comment(T251 *C,T0 * a1){
- /*IF*/if ((((int)a1))&&((rT59count((T59*)a1))>(1))) {
- C->_end_comment=a1;
- }
- /*FI*/}
- int rT251can_hide(T251 *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*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms501);
- }
- /*FI*/}
- /*FI*//*IF*/if (((T0 *)(C)->_arguments)!=((T0 *)XrT62arguments(a1))) {
- /*IF*/if ((!((C)->_arguments))||(!(XrT62arguments(a1)))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms502);
- }
- else if ((rT92count((T92*)(C)->_arguments))!=(rT92count((T92*)XrT62arguments(a1)))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- rT251error(rT251start_position(C),(T0 *)ms503);
- }
- /*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*/(T45*)oRBC27eh;
- rT45append((T0 *)ms504);
- /*UT*/(T45*)oRBC27eh;
- rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
- rT45error((T45*)oRBC27eh,(T0 *)ms505);
- }
- /*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*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(a1));
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(rT251start_position(C));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms506);
- /*UT*/(T45*)oRBC27eh;
- rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
- rT45error((T45*)oRBC27eh,(T0 *)ms507);
- }
- /*FI*/}
- /*FI*/}
- /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
- return R;
- }
- T0 * rT251run_ensure(T251 *C,T0 * a1){
- T0 * R=NULL;
- T0* _r=NULL;
- rT158clear((T158*)oRBC62assertion_collector);
- rT50collect_for((T50*)XrT58base_class(XrT261current_type(a1)),1002,XrT261name(a1));
- _r=rT251runnable(C,oRBC62assertion_collector,XrT261current_type(a1),a1);
- /*IF*/if (((int)_r)) {
- {T157 *n=((T157*)new(157));
- rT157from_runnable(n,_r);
- R=(T0 *)n;}
- }
- /*FI*/return R;
- }
- T0 * rT251base_class_name(T251 *C){
- T0 * R=NULL;
- R=((T50*)(C)->_base_class)->_base_class_name;
- return R;
- }
- void rT251copy(T251 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- void rT251set_rescue_compound(T251 *C,T0 * a1){
- /*IF*/if ((((int)a1))&&(/*(IRF4*/0/*)*/)) {
- rT251error(rT251start_position(C),(T0 *)ms402);
- }
- /*FI*/C->_rescue_compound=a1;
- }
- void rT251make_e_feature(T251 *C,T0 * a1,T0 * a2){
- C->_names=a1;
- C->_result_type=a2;
- }
- void rT251make_routine(T251 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
- rT251make_e_feature(C,a1,NULL);
- C->_header_comment=a4;
- C->_arguments=a2;
- C->_obsolete_mark=a3;
- C->_require_assertion=a5;
- }
- void rT251make(T251 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6,T0 * a7){
- rT251make_routine(C,a1,a2,a3,a4,a5);
- C->_local_vars=a6;
- C->_routine_body=a7;
- C->_use_current_state=1015;
- }
- T0* rT52find_path_for(T52 *C,T0* a1){
- T0* R=NULL;
- int _i=0;
- rT7copy((T7*)(T0 *)ms50,a1);
- rT7to_lower((T7*)(T0 *)ms50);
- /*IF*/if (!(rT7has_suffix((T7*)(T0 *)ms50,(T0 *)ms51))) {
- rT7append((T7*)(T0 *)ms50,(T0 *)ms51);
- }
- /*FI*//*IF*/if (rT52file_exists(C,(T0 *)ms50)) {
- R=rT52clone(C,(T0 *)ms50);
- }
- else {
- _i=((T41*)rT52loading_path(C))->_lower;
- while (!(((_i)>(((T41*)rT52loading_path(C))->_upper))||(((int)R)))) {
- rT7copy((T7*)(T0 *)ms58,rT41item((T41*)rT52loading_path(C),_i));
- rT7append((T7*)(T0 *)ms58,(T0 *)ms50);
- /*IF*/if (rT52file_exists(C,(T0 *)ms58)) {
- R=rT52clone(C,(T0 *)ms58);
- }
- /*FI*/_i=(_i)+(1);
- }
- }
- /*FI*//*IF*/if ((!(R))&&(rT57has((T57*)rT52rename_dictionary(C),(T0 *)ms50))) {
- rT7copy((T7*)(T0 *)ms58,rT57at((T57*)rT52rename_dictionary(C),(T0 *)ms50));
- /*IF*/if (rT52file_exists(C,(T0 *)ms58)) {
- R=(T0 *)ms58;
- }
- else {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms66);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms58);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms67);
- rT52die_with_code(C,1);
- }
- /*FI*/}
- /*FI*//*IF*/if (!(R)) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms68);
- rT33put_string((T33*)oRBC1std_error,a1);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms69);
- /*(IRF3*/(((T7*)(T0 *)ms58)->_count)=(0);
- /*)*/rT52append_loading_path_in(C,(T0 *)ms58);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms58);
- }
- /*FI*/return R;
- }
- void rT52push(T52 *C,T0 * a1){
- C->_top=((C)->_top)+(1);
- XrT265force(oRBC52stack_rf,a1,(C)->_top);
- }
- void rT52cecil_for(/*C*/T0 * a1,T0* a2){
- T0 * _rf=NULL;
- _rf=rT260get_feature_with((T260*)XrT58run_class(a1),a2);
- rT40add_cecil((T40*)oRBC27cpp,_rf);
- }
- 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;
- }
- T0* rT52get_environment_variable(T52 *C,T0* a1){
- T0* R=NULL;
- rT7extend((T7*)a1,'\0');
- R=((T0 *)getenv(((T7 *)a1)->_storage));
- if (R) R=((T0 *)e2s((char *)R));
- rT7remove_last((T7*)a1,1);
- return R;
- }
- void rT52define_extern_tables(T52 *C){
- int _size=0;
- _size=((C)->_last_id)+(1);
- rT40put_extern4((T40*)oRBC27cpp,(T0 *)ms1049,(T0 *)ms1050,_size);
- rT40put_extern4((T40*)oRBC27cpp,(T0 *)ms1051,(T0 *)ms1052,_size);
- rT40put_extern4((T40*)oRBC27cpp,(T0 *)ms1053,(T0 *)ms1054,_size);
- rT40put_extern4((T40*)oRBC27cpp,(T0 *)ms1055,(T0 *)ms1056,_size);
- }
- char rT52directory_separator(T52 *C){
- char R='\0';
- if (ofBC27directory_separator==0){
- ofBC27directory_separator=1;
- R=rT7last((T7*)rT52small_eiffel_directory(C));
- oRBC27directory_separator=R;}
- return oRBC27directory_separator;}
- void rT52fatal_error(/*C*/T0* a1){
- rT45fatal_error((T45*)oRBC27eh,a1);
- }
- void rT52die_with_code(T52 *C,int a1){
- exit(a1);
- }
- int ofBC52loading_path=0;
- T0*oRBC52loading_path;
- T0* rT52loading_path(T52 *C){
- T0* R=NULL;
- T0 * _file=NULL;
- T0* _defaults=NULL;
- char _slash='\0';
- int _i=0;
- T0* _path=NULL;
- if (ofBC52loading_path==0){
- ofBC52loading_path=1;
- _path=(T0 *)ms52;
- {T41 *n=((T41*)new(41));
- rT41make(n,1,10);
- R=(T0 *)n;}
- rT41clear((T41*)R);
- _slash=rT52directory_separator(C);
- /*IF*/if (rT52file_exists(C,_path)) {
- {T39 *n=((T39*)new(39));
- /*(IRF3*/((n)->_mode)=((T0 *)ms26);
- /*)*/_file=(T0 *)n;}
- rT52open_read(C,_file,_path);
- while (!(rT39end_of_input((T39*)_file))) {
- rT39read_line((T39*)_file);
- _path=rT52clone(C,oRBC39last_string);
- /*IF*/if (!(rT7empty((T7*)_path))) {
- /*IF*/if ((rT7last((T7*)_path))!=(_slash)) {
- rT7extend((T7*)_path,_slash);
- }
- /*FI*/rT41add_last((T41*)R,_path);
- }
- /*FI*/}
- rT39disconnect((T39*)_file);
- }
- /*FI*/_defaults=ma(41,0,3,ms55,ms56,ms57);
- _i=1;
- while (!((_i)>(((T41*)_defaults)->_upper))) {
- _path=rT41item((T41*)_defaults,_i);
- rT7prepend((T7*)_path,rT52small_eiffel_directory(C));
- rT7extend((T7*)_path,_slash);
- rT41add_last((T41*)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 rT52pop(T52 *C){
- C->_top=((C)->_top)-(1);
- }
- T0* rT52clone(T52 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- void rT52open_read(T52 *C,T0 * a1,T0* a2){
- rT39connect_to((T39*)a1,a2);
- /*IF*/if (!(rT39is_connected((T39*)a1))) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms53);
- rT33put_string((T33*)oRBC1std_error,a2);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms54);
- rT52die_with_code(C,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(C,a1);
- /*IF*/if (!(_root)) {
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms454);
- /*UT*/(T45*)oRBC27eh;
- rT45append(a1);
- rT45error((T45*)oRBC27eh,(T0 *)ms38);
- }
- else {
- _root_name=((T50*)_root)->_base_class_name;
- {T67 *n=((T67*)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)((T251*)_root_proc)->_arguments)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(rT251start_position((T251*)_root_proc));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms512);
- /*UT*/(T45*)oRBC27eh;
- rT45append(a2);
- rT45error((T45*)oRBC27eh,(T0 *)ms513);
- }
- /*FI*/}
- /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- _root_type=((T260*)rT50run_class((T50*)_root))->_current_type;
- }
- /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- R=rT251to_run_feature((T251*)_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 *)ms520);
- }
- /*FI*/}
- /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- /*IF*/if (!(/*(IRF4*/(/*UT*/(T45*)oRBC27eh,
- (rT7empty((T7*)oRBC45explanation))&&(rT47empty((T47*)rT45positions()))/*)*/))) {
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms521);
- rT45print_as_warning((T45*)oRBC27eh);
- }
- /*FI*/rT38put_string((T38*)oRBC1std_output,(T0 *)ms522);
- rT38put_integer((T38*)oRBC1std_output,(C)->_magic_count);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms523);
- 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)>(((T262*)oRBC52run_class_dictionary)->_count))) {
- _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
- rT260falling_down((T260*)_rc);
- _i=(_i)+(1);
- }
- }
- /*)*/}
- }
- /*FI*/rT38put_string((T38*)oRBC1std_output,(T0 *)ms524);
- rT38put_integer((T38*)oRBC1std_output,(C)->_magic_count);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms525);
- return R;
- }
- int ofBC52rename_dictionary=0;
- T0*oRBC52rename_dictionary;
- T0 * rT52rename_dictionary(T52 *C){
- T0 * R=NULL;
- T0* _short_name=NULL;
- T0* _full_name=NULL;
- int _i=0;
- if (ofBC52rename_dictionary==0){
- ofBC52rename_dictionary=1;
- {T57 *n=((T57*)new(57));
- rT57make(n);
- R=(T0 *)n;}
- _i=1;
- while (!((_i)>(((T41*)rT52loading_path(C))->_upper))) {
- rT7copy((T7*)(T0 *)ms58,rT41item((T41*)rT52loading_path(C),_i));
- rT7append((T7*)(T0 *)ms58,(T0 *)ms59);
- /*IF*/if (rT52file_exists(C,(T0 *)ms58)) {
- rT52open_read(C,rT52tmp_file_read(),(T0 *)ms58);
- while (!(rT39end_of_input((T39*)rT52tmp_file_read()))) {
- rT39read_word((T39*)rT52tmp_file_read());
- _full_name=rT52clone(C,oRBC39last_string);
- rT39read_word((T39*)rT52tmp_file_read());
- _short_name=rT52clone(C,oRBC39last_string);
- rT7prepend((T7*)_short_name,rT41item((T41*)rT52loading_path(C),_i));
- /*IF*/if (rT57has((T57*)R,_full_name)) {
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms60);
- rT33put_string((T33*)oRBC1std_error,_full_name);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms61);
- rT33put_string((T33*)oRBC1std_error,_short_name);
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms62);
- rT33put_string((T33*)oRBC1std_error,rT57at((T57*)R,_full_name));
- rT33put_string((T33*)oRBC1std_error,(T0 *)ms63);
- rT52die_with_code(C,1);
- }
- /*FI*/rT57put((T57*)R,_short_name,_full_name);
- rT39skip_separators((T39*)rT52tmp_file_read());
- }
- rT39disconnect((T39*)rT52tmp_file_read());
- }
- /*FI*/_i=(_i)+(1);
- }
- oRBC52rename_dictionary=R;}
- return oRBC52rename_dictionary;}
- int ofBC52tmp_class_name=0;
- T0*oRBC52tmp_class_name;
- T0 * rT52tmp_class_name(/*C*/void){
- T0 * R=NULL;
- if (ofBC52tmp_class_name==0){
- ofBC52tmp_class_name=1;
- {T48 *n=((T48*)new(48));
- rT48make(n,(T0 *)ms183,NULL);
- R=(T0 *)n;}
- oRBC52tmp_class_name=R;}
- return oRBC52tmp_class_name;}
- void rT52append_loading_path_in(T52 *C,T0* a1){
- T0* _sed=NULL;
- int _i=0;
- rT7append((T7*)a1,(T0 *)ms70);
- _i=((T41*)rT52loading_path(C))->_lower;
- while (!((_i)>(((T41*)rT52loading_path(C))->_upper))) {
- rT7extend((T7*)a1,'\42');
- rT7append((T7*)a1,rT41item((T41*)rT52loading_path(C),_i));
- rT7extend((T7*)a1,'\42');
- rT7extend((T7*)a1,'\12');
- _i=(_i)+(1);
- }
- rT7append((T7*)a1,(T0 *)ms71);
- rT7append((T7*)a1,(T0 *)ms14);
- _sed=rT52get_environment_variable(C,(T0 *)ms14);
- rT7append((T7*)a1,(T0 *)ms72);
- /*IF*/if (!(_sed)) {
- rT7append((T7*)a1,(T0 *)ms73);
- }
- else {
- rT7append((T7*)a1,(T0 *)ms74);
- rT7append((T7*)a1,_sed);
- rT7append((T7*)a1,(T0 *)ms75);
- }
- /*FI*/rT7extend((T7*)a1,'\12');
- }
- T0 * rT52tmp_file_read(/*C*/void){
- T0 * R=NULL;
- if (ofBC27tmp_file_read==0){
- ofBC27tmp_file_read=1;
- {T39 *n=((T39*)new(39));
- /*(IRF3*/((n)->_mode)=((T0 *)ms26);
- /*)*/R=(T0 *)n;}
- oRBC27tmp_file_read=R;}
- return oRBC27tmp_file_read;}
- T0*oRBC52stack_rf;
- T0*oRBC52run_class_dictionary;
- T0 * rT52run_class(/*C*/T0 * a1){
- T0 * R=NULL;
- T0* _run_string=NULL;
- _run_string=XrT58run_time_mark(a1);
- /*IF*/if (rT262has((T262*)oRBC52run_class_dictionary,_run_string)) {
- R=rT262at((T262*)oRBC52run_class_dictionary,_run_string);
- }
- else {
- {T260 *n=((T260*)new(260));
- rT260make(n,a1);
- R=(T0 *)n;}
- }
- /*FI*/return R;
- }
- 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;
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms450);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms451);
- _rf=rT52get_started(C,a1,a2);
- /*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms526);
- rT38put_integer((T38*)oRBC1std_output,((T54*)oRBC52base_class_dictionary)->_count);
- rT38put_character((T38*)oRBC1std_output,'\12');
- rT40get_started((T40*)oRBC27cpp);
- rT40swap_on_h((T40*)oRBC27cpp);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms754);
- _i=1;
- while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
- _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
- _t=((T260*)_rc)->_current_type;
- /*IF*/if (((T260*)_rc)->_at_run_time) {
- _run_count=(_run_count)+(1);
- XrT58c_typedef(_t);
- }
- /*FI*/rT38put_integer((T38*)oRBC1std_output,((T260*)_rc)->_id);
- rT38put_character((T38*)oRBC1std_output,'\11');
- rT38put_string((T38*)oRBC1std_output,XrT58run_time_mark(((T260*)_rc)->_current_type));
- rT38put_character((T38*)oRBC1std_output,'\12');
- _i=(_i)+(1);
- }
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms758);
- rT38put_integer((T38*)oRBC1std_output,((T262*)oRBC52run_class_dictionary)->_count);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms759);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms760);
- rT38put_integer((T38*)oRBC1std_output,_run_count);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms761);
- _i=1;
- while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
- _rc=rT262item((T262*)oRBC52run_class_dictionary,_i);
- _t=((T260*)_rc)->_current_type;
- /*IF*/if (((T260*)_rc)->_at_run_time) {
- rT38put_integer((T38*)oRBC1std_output,((T260*)_rc)->_id);
- rT38put_character((T38*)oRBC1std_output,'\11');
- rT38put_string((T38*)oRBC1std_output,XrT58run_time_mark(_t));
- rT38put_character((T38*)oRBC1std_output,'\12');
- XrT58c_struct(((T260*)_rc)->_current_type);
- }
- /*FI*/_i=(_i)+(1);
- }
- rT40swap_on_c((T40*)oRBC27cpp);
- rT38put_string((T38*)oRBC1std_output,(T0 *)ms767);
- _i=1;
- while (!((_i)>(((T262*)oRBC52run_class_dictionary)->_count))) {
- rT260compile_to_c((T260*)rT262item((T262*)oRBC52run_class_dictionary,_i));
- _i=(_i)+(1);
- }
- rT40cecil_define((T40*)oRBC27cpp);
- rT40define_main((T40*)oRBC27cpp,_rf);
- rT40define_used_basics((T40*)oRBC27cpp);
- rT40write_make_file((T40*)oRBC27cpp);
- }
- else {
- rT45error((T45*)oRBC27eh,(T0 *)ms1108);
- }
- /*FI*/C->_is_compiling_flag=0;
- }
- T0* rT52small_eiffel_directory(T52 *C){
- T0* R=NULL;
- char _slash='\0';
- int _i=0;
- if (ofBC27small_eiffel_directory==0){
- ofBC27small_eiffel_directory=1;
- R=rT52get_environment_variable(C,(T0 *)ms14);
- /*IF*/if (!(R)) {
- R=rT52clone(C,(T0 *)ms14);
- rT7to_upper((T7*)R);
- R=rT52get_environment_variable(C,R);
- /*IF*/if (((int)R)) {
- rT7to_upper((T7*)(T0 *)ms14);
- }
- /*FI*/}
- /*FI*//*IF*/if (!(R)) {
- R=(T0 *)ms20;
- }
- /*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;}
- 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;
- }
- 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;
- }
- T0 * rT52type_any(/*C*/void){
- T0 * R=NULL;
- if (ofBC27type_any==0){
- ofBC27type_any=1;
- {T87 *n=((T87*)new(87));
- rT87make(n,NULL);
- R=(T0 *)n;}
- oRBC27type_any=R;}
- return oRBC27type_any;}
- 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=XrT265item(oRBC52stack_rf,(C)->_top);
- return R;
- }
- 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);
- }
- T0*oRBC52base_class_dictionary;
- T0 * rT52base_class(T52 *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 *)ms49);
- }
- else {
- _path=rT52find_path_for(C,((T48*)a1)->_to_string);
- /*IF*/if (((int)_path)) {
- R=rT51analyse_class((T51*)oRBC27eiffel_parser,_path);
- }
- /*FI*//*IF*/if (!(R)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(((T48*)a1)->_start_position);
- rT52fatal_error((T0 *)ms425);
- }
- else if (!(rT54has((T54*)oRBC52base_class_dictionary,((T48*)a1)->_to_string))) {
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms426);
- /*UT*/(T45*)oRBC27eh;
- rT45append(_path);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms427);
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T48*)a1)->_to_string);
- rT52fatal_error((T0 *)ms428);
- }
- /*FI*/}
- /*FI*/return R;
- }
- void rT52copy(T52 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*FI*/}
- int rT52file_exists(T52 *C,T0* a1){
- int R=0;
- rT7extend((T7*)a1,'\0');
- {FILE *f=fopen(((T7 *)a1)->_storage,"r");
- R=(f != NULL);
- fclose(f);}
- rT7remove_last((T7*)a1,1);
- return R;
- }
- T0 * rT52load_class(T52 *C,T0* a1){
- T0 * R=NULL;
- T0* _path=NULL;
- _path=rT52find_path_for(C,a1);
- /*IF*/if (!(_path)) {
- rT52fatal_error((T0 *)ms452);
- }
- else {
- R=rT51analyse_class((T51*)oRBC27eiffel_parser,_path);
- /*IF*/if (!(R)) {
- rT52fatal_error((T0 *)ms453);
- }
- /*FI*/}
- /*FI*/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 *)ms183)/*)*/,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){
- T0 * R=NULL;
- if (ofBC50mem_fn==0){
- ofBC50mem_fn=1;
- {T67 *n=((T67*)new(67));
- rT67make(n,(T0 *)ms473,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=rT41has((T41*)(C)->_already_defined_list,XrT67to_key(a1));
- }
- /*FI*/return R;
- }
- int rT50is_general(T50 *C){
- int R=0;
- R=((T0 *)(T0 *)ms184)==((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){
- rT45fatal_error((T45*)oRBC27eh,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 *)ms183)/*)*/,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)) {
- {T41 *n=((T41*)new(41));
- rT41make(n,1,5);
- C->_already_defined_list=(T0 *)n;}
- rT41clear((T41*)(C)->_already_defined_list);
- }
- /*FI*/rT41add_last((T41*)(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)) {
- rT260collect_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 *)ms183)/*)*/,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){
- T0 * R=NULL;
- if (ofBC50mem_rpn==0){
- ofBC50mem_rpn=1;
- {T67 *n=((T67*)new(67));
- rT67make(n,(T0 *)ms457,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)) {
- rT257get_started((T257*)(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))) {
- {T259 *n=((T259*)new(259));
- rT259make(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*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(_super));
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(R));
- rT50fatal_error((T0 *)ms499);
- }
- /*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*/(T45*)oRBC27eh;
- rT45add_position(XrT67start_position(_super_fn));
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(R));
- rT50fatal_error((T0 *)ms500);
- }
- /*FI*/}
- /*FI*/_i=(_i)-(1);
- }
- /*IF*/if (!(XrT62can_hide(R,_super,a1))) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(_super));
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(R));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms508);
- rT45print_as_warning((T45*)oRBC27eh);
- }
- /*FI*//*IF*/if (XrT62is_deferred(_super)) {
- }
- else if (rT50has_redefine(C,a2)) {
- }
- else {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(R));
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(_super));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms509);
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T48*)(C)->_base_class_name)->_to_string);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms510);
- 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 *)ms1439);
- }
- else {
- R=rT131parent_for((T131*)(C)->_parent_list,a1);
- }
- /*FI*/return R;
- }
- T0 * rT50class_with(/*C*/T0* a1){
- T0 * R=NULL;
- R=(/*UT*/(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 (rT262has((T262*)_rcd,_name)) {
- R=rT262at((T262*)_rcd,_name);
- }
- else {
- {T116 *n=((T116*)new(116));
- /*(IRF3*/((n)->_base_class_name)=((C)->_base_class_name);
- /*)*/_type=(T0 *)n;}
- R=rT116run_class((T116*)_type);
- }
- /*FI*/}
- else {
- rT50error(NULL,(T0 *)ms480);
- }
- /*FI*/return R;
- }
- void rT50mapping_c(T50 *C){
- rT40put_character((T40*)oRBC27cpp,'B');
- rT40put_character((T40*)oRBC27cpp,'C');
- rT40put_integer((T40*)oRBC27cpp,(C)->_id);
- }
- void rT50set_parent_list(T50 *C,T0 * a1,T0 * a2,T0* a3){
- {T131 *n=((T131*)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*)new(48));
- rT48make_unknown(n);
- C->_base_class_name=(T0 *)n;}
- {T61 *n=((T61*)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*/(T45*)oRBC27eh;
- rT45append(((T48*)(C)->_base_class_name)->_to_string);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms455);
- rT45print_as_fatal_error((T45*)oRBC27eh);
- }
- /*FI*//*IF*/if ((C)->_is_deferred) {
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T48*)(C)->_base_class_name)->_to_string);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms456);
- rT45print_as_fatal_error((T45*)oRBC27eh);
- }
- /*FI*/XrT67make(rT50mem_rpn(),a1,((T48*)(C)->_base_class_name)->_start_position);
- /*IF*/if (!(rT50has_creation(C,rT50mem_rpn()))) {
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T48*)(C)->_base_class_name)->_to_string);
- /*UT*/(T45*)oRBC27eh;
- rT45extend('\57');
- /*UT*/(T45*)oRBC27eh;
- rT45append(a1);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms472);
- rT45print_as_fatal_error((T45*)oRBC27eh);
- }
- /*FI*//*IF*/if (!(rT50has_feature(C,a1))) {
- /*UT*/(T45*)oRBC27eh;
- rT45append(((T48*)(C)->_base_class_name)->_to_string);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms474);
- /*UT*/(T45*)oRBC27eh;
- rT45append(a1);
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms475);
- rT45print_as_fatal_error((T45*)oRBC27eh);
- }
- /*FI*/_rc=rT50run_class(C);
- rT260set_at_run_time((T260*)_rc);
- _f=rT50look_up_for(C,_rc,rT50mem_rpn());
- R=_f;
- if ((int)R) switch (((T0 *)R)->id) {
- case 251:
- break;
- default:
- R = NULL;
- };/*IF*/if (!(R)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT62start_position(_f));
- rT50fatal_error((T0 *)ms511);
- }
- /*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 *)ms183)==((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 *)ms183)/*)*/,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 *)ms183)/*)*/,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 *)ms178);
- }
- void rT50error(/*C*/T0 * a1,T0* a2){
- /*UT*/(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*)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)) {
- {T257 *n=((T257*)new(257));
- /*(IRF3*/((n)->_list)=(ma(258,0,1,a1));
- /*)*/C->_feature_clause_list=(T0 *)n;}
- }
- else {
- rT257add_last((T257*)(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 *)ms183)/*)*/,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 *)ms183)/*)*/,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*)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*/}
- void rT50copy(T50 *C,T0 * a1){
- /*IF*//*AF*//*AE*/
- memcpy(C,a1,s[C->id]);
- /*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*/(T45*)oRBC27eh;
- rT45add_type(a1,(T0 *)ms1421);
- rT50fatal_error((T0 *)ms1422);
- }
- /*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*/(T45*)oRBC27eh;
- rT45append(rT48to_err_msg2((T48*)(C)->_base_class_name));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms461);
- /*UT*/(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*/(T45*)oRBC27eh;
- rT45append(XrT67to_err_msg2(a1));
- /*UT*/(T45*)oRBC27eh;
- rT45append((T0 *)ms467);
- /*UT*/(T45*)oRBC27eh;
- rT45append(rT48to_err_msg2((T48*)(C)->_base_class_name));
- rT50error(XrT67start_position(a1),(T0 *)ms38);
- }
- else {
- R=rT123gives_permission_to((T123*)((T132*)_cc)->_clients,XrT67written_in(a1));
- }
- /*FI*/}
- /*FI*//*IF*/if (!(R)) {
- rT50error(XrT67start_position(a1),(T0 *)ms471);
- }
- /*FI*/return R;
- }
- int rT202is_static(T202 *C){
- int R=0;
- /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
- /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT202arg1(C)))) {
- R=1;
- /*IF*/if ((XrT68static_value((C)->_target))==(1)) {
- C->_static_value_mem=XrT68static_value(rT202arg1(C));
- }
- else {
- C->_static_value_mem=1;
- }
- /*FI*/}
- /*FI*/}
- /*FI*/return R;
- }
- int rT202static_value(T202 *C){
- int R=0;
- R=(C)->_static_value_mem;
- return R;
- }
- void rT202fatal_error(/*C*/T0* a1){
- rT45fatal_error((T45*)oRBC27eh,a1);
- }
- void rT202to_runnable_0(T202 *C,T0 * a1){
- T0 * _rc=NULL;
- T0 * _t=NULL;
- C->_current_type=a1;
- _t=XrT68to_runnable((C)->_target,a1);
- /*IF*/if (!(_t)) {
- rT202error(XrT68start_position((C)->_target),(T0 *)ms1119);
- }
- else {
- C->_target=_t;
- _rc=XrT58run_class(XrT68result_type((C)->_target));
- C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
- C->_result_type=XrT261result_type((C)->_run_feature);
- /*IF*/if (!((C)->_result_type)) {
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(XrT261start_position((C)->_run_feature));
- rT202error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
- }
- /*FI*/}
- /*FI*/}
- T0 * rT202to_runnable(T202 *C,T0 * a1){
- T0 * R=NULL;
- T0 * _a=NULL;
- /*IF*/if (!((C)->_current_type)) {
- rT202to_runnable_0(C,a1);
- _a=rT170to_runnable((T170*)(C)->_arguments,a1);
- /*IF*/if (!(_a)) {
- rT202error(XrT68start_position(rT202arg1(C)),(T0 *)ms1136);
- }
- else {
- C->_arguments=_a;
- }
- /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- rT170match_with((T170*)(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(rT202arg1(C)));
- }
- /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
- R=(T0 *)C;
- }
- /*FI*/}
- else {
- R=rT202clone(C,(T0 *)C);
- /*(IRF3*/(((T202*)R)->_current_type)=(NULL);
- /*)*/R=rT202to_runnable((T202*)R,a1);
- }
- /*FI*/return R;
- }
- void rT202error(/*C*/T0 * a1,T0* a2){
- /*UT*/(T45*)oRBC27eh;
- rT45add_position(a1);
- rT45error((T45*)oRBC27eh,a2);
- }
- T0 * rT202add_comment(T202 *C,T0 * a1){
- T0 * R=NULL;
- /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
- R=(T0 *)C;
- }
- else {
- {T220 *n=((T220*)new(220));
- rT220make(n,(T0 *)C,a1);
- R=(T0 *)n;}}
- /*FI*/return R;
- }
- T0 * rT202arg1(T202 *C){
- T0 * R=NULL;
- R=rT170first((T170*)(C)->_arguments);
- return R;
- }
- T0 * rT202start_position(T202 *C){
- T0 * R=NULL;
- R=((T70*)(C)->_feature_name)->_start_position;
- return R;
- }
- int rT202use_current(T202 *C){
- int R=0;
- /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
- }
- /*FI*//*IF*/if (R) {
- }
- else if (XrT68is_current((C)->_target)) {
- R=XrT261use_current((C)->_run_feature);
- }
- else {
- R=XrT68use_current((C)->_target);
- }
- /*FI*/return R;
- }
- T0* rT202clone(T202 *C,T0* a1){
- T0* R=NULL;
- /*IF*/if (((int)a1)) {
- R=(T0 *)new(a1->id);
- AF_1
- XrT28copy(R,a1);
- AF_0
- }
- /*FI*/return R;
- }
- void rT202compile_to_c_old(T202 *C){
- XrT68compile_to_c_old((C)->_target);
- /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
- }
- /*FI*/}
- void rT202compile_to_c(T202 *C){
- T0* _n=NULL;
- T0 * _dyn_rf=NULL;
- T0 * _tt=NULL;
- T0* _r=NULL;
- _tt=XrT58run_type(XrT68result_type((C)->_target));
- _n=XrT67to_string(XrT261name((C)->_run_feature));
- /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
- rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
- }
- else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
- rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
- XrT261mapping_c((C)->_run_feature);
- rT40pop((T40*)oRBC27cpp);
- }
- else {
- _r=((T260*)XrT58run_class(_tt))->_running;
- /*IF*/if (!(_r)) {
- rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
- XrT261mapping_c((C)->_run_feature);
- rT40pop((T40*)oRBC27cpp);
- }
- else if ((rT263count((T263*)_r))==(1)) {
- _dyn_rf=rT202dynamic(rT263first((T263*)_r),(C)->_run_feature);
- rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
- XrT261mapping_c(_dyn_rf);
- rT40pop((T40*)oRBC27cpp);
- }
- else {
- rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
- }
- /*FI*/}
- /*FI*/}
- int rT202to_integer(T202 *C){
- int R=0;
- rT202error(rT202start_position(C),(T0 *)ms175);
- return R;
- }
-