home *** CD-ROM | disk | FTP | other *** search
Wrap
/* -- ANSI C code generated by : -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) -- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE -- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr -- -- http://www.loria.fr/SmallEiffel -- */ #include "compile_to_jvm.h" int r388is_a_in(T388* C,T0* a1,T0* a2){ int R=0; T0* _ct=NULL; T0* _t2=NULL; T0* _t1=NULL; /*IF*/if ((r388written_mark())==((void*)(X291written_mark(a1)))) { R=1; } else { _ct=(((T355*)((T355*)a2)))->_current_type/*0*/; _t1=r388to_runnable(C,_ct); _t2=X291to_runnable(a1,_ct); /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) { R=1; } else { R=X291is_a(_t1,_t2); } /*FI*/} /*FI*/return R; } T0* r388look_up_for(T388* C,T0* a1,T0* a2){ T0* R=NULL; R=r605look_up_for(((T605*)(r388base_class(C))),a1,a2); return R; } int r388jvm_convert_to(T0* a1){ int R=0; /*IF*/if (X291is_reference(a1)) { /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL; int _idx=0; T0* _rc=NULL; _ca=oBC364code_attribute; _rc=r657run_class(((T657*)(r388type_double_ref()))); _idx=r355fully_qualified_constant_pool_index(((T355*)_rc)); r256opcode_new(((T256*)_ca),_idx); /*[IRF3.4opcode_dup_x2*/r256opcode(((T256*)_ca),91,1); /*]*/ /*[IRF3.4opcode_dup_x2*/r256opcode(((T256*)_ca),91,1); /*]*/ /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms86_473),((T0*)ms203_470)); r256opcode_putfield(((T256*)_ca),_idx,-(3)); }/*]*/ R=1; } else { R=2; } /*FI*/return R; } /*No:TYPE_DOUBLE.expanded_initializer*/ /*No:TYPE_DOUBLE.us_double*/ int r388jvm_if_x_ne(void){ int R=0; T0* _ca=NULL; _ca=oBC364code_attribute; /*[IRF3.4opcode_dcmpg*/r256opcode(((T256*)_ca),152,-(3)); /*]*/ R=r256opcode_ifne(((T256*)_ca)); return R; } /*No:TYPE_DOUBLE.fz_dot*/ /*No:TYPE_DOUBLE.is_generic*/ /*No:TYPE_DOUBLE.fz_77*/ /*No:TYPE_DOUBLE.jvm_write_local*/ void r388jvm_initialize_local(int a1){ /*[IRF3.4opcode_dconst_0*/r256opcode(((T256*)(oBC364code_attribute)),14,2); /*]*/ /*[IRF3.6jvm_write_local*/{int b1=a1; r256opcode_dstore(((T256*)(oBC364code_attribute)),b1); }/*]*/ } int fBC388used_as_reference=0; void r388used_as_reference(void){ if (fBC388used_as_reference==0){ fBC388used_as_reference=1; r388load_ref(((T0*)ms12_473)); }} int fBC364type_double_ref=0; T0*oBC364type_double_ref=NULL; T0* r388type_double_ref(void){ if (fBC364type_double_ref==0){ T0* R=NULL; T0* _double_ref=NULL; fBC364type_double_ref=1; {T451*n=malloc(sizeof(*n)); *n=M451; r451make(n,((T0*)ms12_473),NULL); _double_ref=(T0*)n; } {T657*n=malloc(sizeof(*n)); *n=M657; /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_double_ref); /*]*/ R=(T0*)n; } oBC364type_double_ref=R;} return oBC364type_double_ref;} /*No:TYPE_DOUBLE.is_reference*/ void r388error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } T0* r388base_class(T388* C){ T0* R=NULL; T0* _bcn=NULL; _bcn=(((T388*)C))->_base_class_name/*4*/; /*IF*/if ((_bcn)!=((void*)(NULL))) { R=r451base_class(((T451*)_bcn)); } else { /*[IRF3.6append*/{T0* b1=((T0*)ms3_291); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type((T0*)C,((T0*)ms67_470)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/return R; } /*No:TYPE_DOUBLE.jvm_xastore*/ /*No:TYPE_DOUBLE.is_any*/ /*No:TYPE_DOUBLE.jvm_method_flags*/ /*No:TYPE_DOUBLE.base_class_name*/ /*No:TYPE_DOUBLE.jvm_push_local*/ /*No:TYPE_DOUBLE.is_expanded*/ /*No:TYPE_DOUBLE.is_basic_eiffel_expanded*/ /*No:TYPE_DOUBLE.is_none*/ /*No:TYPE_DOUBLE.is_integer*/ /*No:TYPE_POINTER.id*/ /*No:TYPE_POINTER.jvm_target_descriptor_in*/ /*No:TYPE_POINTER.jvm_if_x_eq*/ int r900has_creation(T900* C,T0* a1){ int R=0; r683add_position(X776start_position(a1)); r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84)); return R; } /*No:TYPE_POINTER.is_anchored*/ /*No:TYPE_POINTER.is_array*/ int r900is_a(T900* C,T0* a1){ int R=0; /*IF*/if (X291is_pointer(a1)) { R=1; } else { R=r605is_subclass_of(((T605*)(r900base_class(C))),X291base_class(a1)); /*IF*/if (R) { r900used_as_reference(); } /*FI*/} /*FI*//*IF*/if (!(R)) { r683add_type((T0*)C,((T0*)ms1_900)); r683add_type(a1,((T0*)ms67_470)); } /*FI*/return R; } /*No:TYPE_POINTER.jvm_to_reference*/ /*No:TYPE_POINTER.run_type*/ /*No:TYPE_POINTER.is_pointer*/ /*No:TYPE_POINTER.is_dummy_expanded*/ int r900jvm_push_default(void){ int R=0; /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1); /*]*/ R=1; return R; } /*No:TYPE_POINTER.is_string*/ /*No:TYPE_POINTER.is_like_feature*/ /*No:TYPE_POINTER.is_like_current*/ void r900make(T900* C,T0* a1){ {T451*n=malloc(sizeof(*n)); *n=M451; r451make(n,((T0*)ms21_473),a1); C->_base_class_name=(T0*)n; } } /*No:TYPE_POINTER.nb_errors*/ /*No:TYPE_POINTER.us_item*/ void r900load_ref(T0* a1){ T0* _rf=NULL; T0* _rc=NULL; T0* _cn=NULL; {T451*n=malloc(sizeof(*n)); *n=M451; r451make(n,a1,NULL); _cn=(T0*)n; } _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn))))); r355set_at_run_time(((T355*)_rc)); _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473)); } /*No:TYPE_POINTER.us_pointer*/ /*No:TYPE_POINTER.jvm_return_code*/ int fBC900check_type=0; void r900check_type(T900* C){ if (fBC900check_type==0){ T0* _rc=NULL; T0* _bc=NULL; fBC900check_type=1; _bc=r900base_class(C); /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { _rc=r900run_class(C); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) { r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms3_900)); } /*FI*/} /*FI*/}} int fBC364type_pointer_ref=0; T0*oBC364type_pointer_ref=NULL; T0* r900type_pointer_ref(void){ if (fBC364type_pointer_ref==0){ T0* R=NULL; T0* _pointer_ref=NULL; fBC364type_pointer_ref=1; {T451*n=malloc(sizeof(*n)); *n=M451; r451make(n,((T0*)ms22_473),NULL); _pointer_ref=(T0*)n; } {T657*n=malloc(sizeof(*n)); *n=M657; /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_pointer_ref); /*]*/ R=(T0*)n; } oBC364type_pointer_ref=R;} return oBC364type_pointer_ref;} /*No:TYPE_POINTER.jvm_xnewarray*/ /*No:TYPE_POINTER.jvm_descriptor_in*/ /*No:TYPE_POINTER.start_position*/ /*No:TYPE_POINTER.is_user_expanded*/ /*No:TYPE_POINTER.is_character*/ T0* r900written_mark(void){ T0* R=NULL; R=((T0*)ms21_473); return R; } /*No:TYPE_POINTER.is_run_type*/ T0* r900to_runnable(T900* C,T0* a1){ T0* R=NULL; R=(T0*)C; r900check_type(C); return R; } /*No:TYPE_POINTER.is_formal_generic*/ T0* r900generic_list(T900* C){ T0* R=NULL; r900fatal_error_generic_list(C); return R; } /*No:TYPE_POINTER.fz_21*/ /*No:TYPE_POINTER.is_real*/ /*No:TYPE_POINTER.us_pointer_ref*/ /*No:TYPE_POINTER.is_bit*/ void r900fatal_error_generic_list(T900* C){ r683add_type((T0*)C,((T0*)ms12_291)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*No:TYPE_POINTER.jvm_check_class_invariant*/ /*No:TYPE_POINTER.jvm_xaload*/ T0* r900smallest_ancestor(T900* C,T0* a1){ T0* R=NULL; T0* _rto=NULL; _rto=X291run_type(a1); /*IF*/if (X291is_pointer(_rto)) { R=(T0*)C; } else { R=r657smallest_ancestor(((T657*)(r900type_pointer_ref())),_rto); } /*FI*/return R; } /*No:TYPE_POINTER.is_boolean*/ /*No:TYPE_POINTER.is_double*/ int r900jvm_stack_space(void){ int R=0; /*IF*//*AF*//*AE*/ R=1; /*FI*/return R; } T0* r900run_class(T900* C){ T0* R=NULL; R=r604run_class((T0*)C); return R; } T0* r900run_time_mark(void){ T0* R=NULL; R=((T0*)ms21_473); return R; } int r900is_a_in(T900* C,T0* a1,T0* a2){ int R=0; T0* _ct=NULL; T0* _t2=NULL; T0* _t1=NULL; /*IF*/if ((r900written_mark())==((void*)(X291written_mark(a1)))) { R=1; } else { _ct=(((T355*)((T355*)a2)))->_current_type/*0*/; _t1=r900to_runnable(C,_ct); _t2=X291to_runnable(a1,_ct); /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) { R=1; } else { R=X291is_a(_t1,_t2); } /*FI*/} /*FI*/return R; } T0* r900look_up_for(T900* C,T0* a1,T0* a2){ T0* R=NULL; R=r605look_up_for(((T605*)(r900base_class(C))),a1,a2); return R; } int r900jvm_convert_to(T0* a1){ int R=0; /*IF*/if (X291is_reference(a1)) { /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL; int _idx=0; T0* _rc=NULL; _ca=oBC364code_attribute; _rc=r657run_class(((T657*)(r900type_pointer_ref()))); _idx=r355fully_qualified_constant_pool_index(((T355*)_rc)); r256opcode_new(((T256*)_ca),_idx); /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1); /*]*/ /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0); /*]*/ _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms86_473),((T0*)ms154_470)); r256opcode_putfield(((T256*)_ca),_idx,-(2)); }/*]*/ } /*FI*/R=1; return R; } /*No:TYPE_POINTER.expanded_initializer*/ /*No:TYPE_POINTER.jvm_if_x_ne*/ /*No:TYPE_POINTER.fz_dot*/ /*No:TYPE_POINTER.is_generic*/ /*No:TYPE_POINTER.jvm_write_local*/ void r900jvm_initialize_local(int a1){ /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1); /*]*/ /*[IRF3.6jvm_write_local*/{int b1=a1; r256opcode_astore(((T256*)(oBC364code_attribute)),b1); }/*]*/ } int fBC900used_as_reference=0; void r900used_as_reference(void){ if (fBC900used_as_reference==0){ fBC900used_as_reference=1; r900load_ref(((T0*)ms22_473)); }} /*No:TYPE_POINTER.is_reference*/ void r900error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } T0* r900base_class(T900* C){ T0* R=NULL; T0* _bcn=NULL; _bcn=(((T900*)C))->_base_class_name/*4*/; /*IF*/if ((_bcn)!=((void*)(NULL))) { R=r451base_class(((T451*)_bcn)); } else { /*[IRF3.6append*/{T0* b1=((T0*)ms3_291); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type((T0*)C,((T0*)ms67_470)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/return R; } /*No:TYPE_POINTER.jvm_xastore*/ /*No:TYPE_POINTER.is_any*/ /*No:TYPE_POINTER.jvm_method_flags*/ /*No:TYPE_POINTER.base_class_name*/ /*No:TYPE_POINTER.jvm_push_local*/ /*No:TYPE_POINTER.is_expanded*/ /*No:TYPE_POINTER.is_basic_eiffel_expanded*/ /*No:TYPE_POINTER.is_none*/ /*No:TYPE_POINTER.is_integer*/ /*No:E_WHEN.when_list*/ void r843add_when_item_1(T843* C,T0* a1){ int _v=0; _v=(((T349*)((T349*)a1)))->_expression_value/*12*/; /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_v)/*)*/) { r843err_occ(C,_v,r349start_position(((T349*)a1))); } else if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) { {T353*n=malloc(sizeof(*n)); *n=M353; r353make(n,_v,_v); C->_values=(T0*)n; } /*[IRF3.6put*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/)); int b1=1; int b2=_v; ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1); }/*]*/ } else { r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_v); } /*FI*/} T0* r843to_runnable_integer(T843* C,T0* a1){ T0* R=NULL; T0* _when_item=NULL; int _i=0; int _ne=0; /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) { _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/; C->_when_list=a1; /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) { r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/); r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843)); } else { _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/); while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) { _when_item=X274to_runnable_integer(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C); /*IF*/if ((_when_item)==((void*)(NULL))) { r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843)); } else { /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/)); T0* b1=_when_item; int b2=_i; ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1); }/*]*/ } /*FI*/_i=(_i)+(1); } } /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) { C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/); /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) { r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843)); } /*FI*/} /*FI*/R=(T0*)C; } else { {T843*n=malloc(sizeof(*n)); *n=M843; r843from_e_when(n,(T0*)C); R=(T0*)n; } R=r843to_runnable_integer(((T843*)R),a1); } /*FI*/return R; } void r843make(T843* C,T0* a1,T0* a2){ C->_start_position=a1; C->_header_comment=a2; } /*No:E_WHEN.nb_errors*/ void r843add_when_item_2(T843* C,T0* a1){ int _i=0; int _u=0; int _l=0; _l=(((T372*)((T372*)a1)))->_lower_value/*20*/; _u=(((T372*)((T372*)a1)))->_upper_value/*16*/; /*IF*/if ((_l)>=(_u)) { r843error(r372start_position(((T372*)a1)),((T0*)ms8_843)); } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { _i=_l; while (!((_i)>(_u))) { /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_i)/*)*/) { r843err_occ(C,_i,r372start_position(((T372*)a1))); _i=(_u)+(1); } else { _i=(_i)+(1); } /*FI*/} } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) { {T353*n=malloc(sizeof(*n)); *n=M353; r353make(n,_l,_u); C->_values=(T0*)n; } /*[IRF3.6set_all_with*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/)); int b1=1; r593set_all_with((((T353*)C1))->_storage/*0*/,b1,((((T353*)C1))->_upper/*8*/)-((((T353*)C1))->_lower/*12*/)); }/*]*/ } else { r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_l); r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_u); r353set_slice_with(((T353*)((((T843*)C))->_values/*20*/)),1,_l,_u); } /*FI*/} /*FI*/} void r843from_e_when(T843* C,T0* a1){ T0* _when_item=NULL; int _i=0; C->_start_position=(((T843*)((T843*)a1)))->_start_position/*0*/; C->_list=X631twin((((T843*)((T843*)a1)))->_list/*4*/); _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/); while (!((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))) { _when_item=X274twin(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i))); /*X274*//*[IRF3.3clear_e_when*/((((T349*)(((T349*)_when_item))))->_e_when)=(NULL); /*]*/ /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/)); T0* b1=_when_item; int b2=_i; ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1); }/*]*/ _i=(_i)+(1); } C->_header_comment=(((T843*)((T843*)a1)))->_header_comment/*8*/; C->_compound=(((T843*)((T843*)a1)))->_compound/*12*/; } /*No:E_WHEN.point2*/ /*No:E_WHEN.values*/ /*No:E_WHEN.start_position*/ void r843err_occ(T843* C,int a1,T0* a2){ r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/); /*[IRF3.6append*/{T0* b1=((T0*)ms9_843); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=r2to_string(a1); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r843error(a2,((T0*)ms10_843)); } /*No:E_WHEN.em1*/ /*No:E_WHEN.list*/ /*No:E_WHEN.em2*/ /*No:E_WHEN.set_compound*/ void r843add_value(T843* C,T0* a1){ T0* _element=NULL; {T349*n=malloc(sizeof(*n)); *n=M349; /*[IRF3.3make*/((((T349*)(n)))->_expression)=(a1); /*]*/ _element=(T0*)n; } /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) { C->_list=se_ma247(1,_element); } else { X631add_last((((T843*)C))->_list/*4*/,_element); } /*FI*/} /*No:E_WHEN.current_type*/ /*No:E_WHEN.compound*/ /*No:E_WHEN.header_comment*/ void r843compile_to_jvm(T843* C,T0* a1,int a2){ T0* _ca=NULL; int _must_test=0; int _bs=0; int _bi=0; int _point4=0; int _point3=0; _ca=oBC364code_attribute; /*IF*/if ((a2)>(0)) { _must_test=1; } else if (r590no_check(((T590*)(oBC364run_control)))) { _must_test=1; } else { _must_test=(a1)!=((void*)(NULL)); } /*FI*//*[IRF3.3clear*/((((T226*)(((T226*)(oBC843points1)))))->_upper)=(-(1)); /*]*/ /*IF*/if (_must_test) { _bi=(((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_lower/*12*/; while (!((_bi)>((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/))) { _bs=(_bi)+(1); while (!(((_bs)>((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/))||(!(r353item(((T353*)((((T843*)C))->_values/*20*/)),_bs))))) { _bs=(_bs)+(1); } _bs=(_bs)-(1); /*IF*/if ((_bi)==(_bs)) { /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1); /*]*/ r256opcode_push_integer(((T256*)_ca),_bi); r226add_last(((T226*)(oBC843points1)),r256opcode_if_icmpeq(((T256*)_ca))); } else { /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1); /*]*/ r256opcode_push_integer(((T256*)_ca),_bi); _point3=r256opcode_if_icmplt(((T256*)_ca)); /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1); /*]*/ r256opcode_push_integer(((T256*)_ca),_bs); r226add_last(((T226*)(oBC843points1)),r256opcode_if_icmple(((T256*)_ca))); r256resolve_u2_branch(_point3); } /*FI*/_bi=(_bs)+(1); while (!(((_bi)>((((T353*)((T353*)((((T843*)C))->_values/*20*/))))->_upper/*8*/))||(r353item(((T353*)((((T843*)C))->_values/*20*/)),_bi)))) { _bi=(_bi)+(1); } } _point4=r256opcode_goto(((T256*)_ca)); } /*FI*/r256resolve_with(oBC843points1); /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) { r592compile_to_jvm(((T592*)((((T843*)C))->_compound/*12*/))); } /*FI*/C->_point2=r256opcode_goto(((T256*)_ca)); /*IF*/if (_must_test) { r256resolve_u2_branch(_point4); } /*FI*/} int r843use_current(T843* C){ int R=0; /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) { R=r592use_current(((T592*)((((T843*)C))->_compound/*12*/))); } /*FI*/return R; } void r843error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } int r843includes_integer(T843* C,int a1){ int R=0; R=((((((T843*)C))->_values/*20*/)!=((void*)(NULL)))&&(r353valid_index(((T353*)((((T843*)C))->_values/*20*/)),a1)))&&(r353item(((T353*)((((T843*)C))->_values/*20*/)),a1)); return R; } T0* r843to_runnable_character(T843* C,T0* a1){ T0* R=NULL; T0* _when_item=NULL; int _i=0; int _ne=0; /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) { _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/; C->_when_list=a1; /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) { r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/); r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843)); } else { _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/); while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) { _when_item=X274to_runnable_character(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C); /*IF*/if ((_when_item)==((void*)(NULL))) { r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843)); } else { /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/)); T0* b1=_when_item; int b2=_i; ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1); }/*]*/ } /*FI*/_i=(_i)+(1); } } /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) { C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/); /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) { r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843)); } /*FI*/} /*FI*/R=(T0*)C; } else { {T843*n=malloc(sizeof(*n)); *n=M843; r843from_e_when(n,(T0*)C); R=(T0*)n; } R=r843to_runnable_character(((T843*)R),a1); } /*FI*/return R; } void r843add_slice(T843* C,T0* a1,T0* a2){ T0* _element=NULL; {T372*n=malloc(sizeof(*n)); *n=M372; r372make(n,a1,a2); _element=(T0*)n; } /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) { C->_list=se_ma263(1,_element); } else { X631add_last((((T843*)C))->_list/*4*/,_element); } /*FI*/} /*No:E_WHEN.compile_to_jvm_resolve_branch*/ void r843afd_check(T843* C){ /*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) { r592afd_check(((T592*)((((T843*)C))->_compound/*12*/))); } /*FI*/} T0*oBC843points1=NULL; /*No:E_WHEN.e_inspect*/