/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- 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"
/*No:CALL_INFIX_INT_DIV.static_value*/
/*No:CALL_INFIX_INT_DIV.feature_name*/


T6 r138is_static(T138* C){
T6 R=0;
/*[IF*/
if(X52is_integer(r138result_type(C))){
/*[IF*/
if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
R=1;
C->_static_value_mem=(X109static_value((C)->_target/*4*/))/(X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.is_manifest_string*/


T0* r138start_position(T138* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}


T0* r138add_comment(T138* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r138to_integer(T138* C){
T2 R=0;
r138error(r138start_position(C),((T0*)ms13_45846));
return R;
}


T6 r138use_current(T138* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
 else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.jvm_branch_if_true*/


T0* r138to_runnable(T138* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r138runnable_expression((C)->_target/*4*/,a1);
_a=r138runnable_args((C)->_arguments/*8*/,a1);
_tt=X109result_type(_t);
_at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r138run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r138run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T138*n=malloc(sizeof(*n));
*n=M138;
r138with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r138compile_to_jvm_into(T138* C,T0* a1){
T2 R=0;
R=r138standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_INT_DIV.is_pre_computable*/
/*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
/*No:CALL_INFIX_INT_DIV.fz_iinaiv*/


T0* r138result_type(T138* C){
T0* R=NULL;
T0* _tla=NULL;
R=X27result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X52is_like_current(R)){
R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262: 
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.static_value_mem*/
/*No:CALL_INFIX_INT_DIV.run_feature*/


T0* r138runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}


void r138standard_compile_target_to_jvm(T138* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T138* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
X52jvm_check_class_invariant(r138result_type(C));
}
/*No:CALL_INFIX_INT_DIV.compile_to_jvm_assignment*/
/*No:CALL_INFIX_INT_DIV.us_slash_slash*/
/*No:CALL_INFIX_INT_DIV.fz_07*/


void r138compile_to_jvm_old(T138* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_INT_DIV.jvm_assign*/
/*No:CALL_INFIX_INT_DIV.jvm_branch_if_false*/
/*No:CALL_INFIX_INT_DIV.compile_to_jvm*/
/*No:CALL_INFIX_INT_DIV.arg_count*/


void r138with(T138* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r138run_feature_match(C,a5);
}
/*No:CALL_INFIX_INT_DIV.call_proc_call_c2jvm*/
/*No:CALL_INFIX_INT_DIV.is_result*/
/*No:CALL_INFIX_INT_DIV.fatal_error*/


void r138run_feature_match(T138* C,T0* a1){
r138run_feature_has_result(C);
r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_INT_DIV.arguments*/


T0* r138runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.can_be_dropped*/
/*No:CALL_INFIX_INT_DIV.implicit_cast*/
/*No:CALL_INFIX_INT_DIV.compile_target_to_jvm*/
/*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/
/*No:CALL_INFIX_INT_DIV.arg1*/


void r138run_feature_has_result(T138* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}


T2 r138jvm_standard_branch_if_false(T138* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T138* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}


T0* r138run_feature_for(T138* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_INT_DIV.target*/


void r138error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}


void r138make(T138* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r138operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_INT_DIV.is_current*/


T2 r138standard_compile_to_jvm_into(T138* C,T0* a1){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T138* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=X52jvm_convert_to(X52run_type(r138result_type(C)),a1);
return R;
}
/*No:CALL_INFIX_INT_DIV.is_void*/


T0* r138operator(void){
T0* R=NULL;
R=((T0*)ms14_194);
return R;
}


T2 r138jvm_standard_branch_if_true(T138* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T138* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}


void r138afd_check(T138* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
 else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:RUN_FEATURE_8.use_current_state*/
/*No:RUN_FEATURE_8.ucs_false*/


T6 r386is_static(T386* C){
T6 R=0;
T0* _type_bit=NULL;
T0* _n=NULL;
_n=X50to_string((C)->_name/*16*/);
/*[IF*/
if((((T0*)ms14_34672))==((void*)(_n))){
R=1;
/*[IF*/
if(X52is_expanded((C)->_current_type/*4*/)){
C->_static_value_mem=1;
}
/*FI]*/
}
 else if((((T0*)ms14_60434))==((void*)(_n))){
R=1;
/*[IF*/
if(X52is_basic_eiffel_expanded((C)->_current_type/*4*/)){
C->_static_value_mem=1;
}
/*FI]*/
}
 else if(((((T0*)ms14_2840a))==((void*)(_n)))&&(X52is_bit((C)->_current_type/*4*/))){
R=1;
_type_bit=(C)->_current_type/*4*/;
if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
case 280: case 282: 
break;
default:
_type_bit=NULL;
};C->_static_value_mem=X281nb(_type_bit);
}
/*FI]*/
return R;
}


T0* r386start_position(T386* C){
T0* R=NULL;
R=r296start_position((T296*)((C)->_base_feature/*36*/));
return R;
}


void r386routine_mapping_jvm(T386* C){
T2 _stack_level=0;
T2 _idx=0;
T0* _ct=NULL;
T0* _rt=NULL;
_ct=(C)->_current_type/*4*/;
r24push_target_as_target((T24*)(oBC12jvm));
_stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
_rt=(C)->_result_type/*44*/;
/*[IF*/
if((_rt)!=((void*)(NULL))){
_stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
}
/*FI]*/
_idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
}


T2 r386integer_value(T386* C,T0* a1){
T2 R=0;
T0* _n=NULL;
_n=X50to_string((C)->_name/*16*/);
/*[IF*/
if((((T0*)ms14_22776))==((void*)(_n))){
R= T2BITS ;
}
 else if((((T0*)ms14_29456))==((void*)(_n))){
R= T3BITS ;
}
else{
r21add_position(a1);
r21add_position(r386start_position(C));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_45846);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}


T6 r386use_current(T386* C){
T6 R=0;
{int z1=(C)->_use_current_state/*28*/;

if((14==z1)){
R=1;
}
 else 
if((13==z1)){
}
 else 
if((15==z1)){
C->_use_current_state=16;
r386compute_use_current(C);
R=r386use_current(C);
}
 else {R=1;
}}
return R;
}


void r386mapping_jvm(T386* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(C)->_base_feature/*36*/;
_native=(((T296*)_bf))->_native/*40*/;
_bcn=((T70*)(((T63*)((((T296*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
X293jvm_mapping_function(_native,(T0*)C,_bcn,X50to_string(/*(IRF4.6first_name*/r87item(((T87*)((((T296*)_bf))->_names/*8*/)),1)/*)*/));
}


void r386routine_afd_check(T386* C){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367afd_check((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*No:RUN_FEATURE_8.us_integer_bits*/


void r386std_compute_use_current(T386* C){
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
/*[IF*/
if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
/*[IF*/
if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
C->_use_current_state=13;
}
/*FI]*/
}


T0* r386run_class(T386* C){
T0* R=NULL;
R=X52run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_8.result_type*/
/*No:RUN_FEATURE_8.base_feature*/
/*No:RUN_FEATURE_8.static_value_mem*/
/*No:RUN_FEATURE_8.ensure_assertion*/


T6 r386is_exported_in(T386* C,T0* a1){
T6 R=0;
R=r103gives_permission_to((T103*)(r386clients(C)),a1);
return R;
}
/*No:RUN_FEATURE_8.fatal_error*/
/*No:RUN_FEATURE_8.arguments*/
/*No:RUN_FEATURE_8.us_se_argc*/


void r386jvm_opening(T386* C){
r386method_info_start(C);
r386jvm_define_opening(C);
}
/*No:RUN_FEATURE_8.fz_a9*/


void r386jvm_define_opening(T386* C){
T0* _t=NULL;
/*[IF*/
if(((C)->_result_type/*44*/)!=((void*)(NULL))){
_t=X52run_type((C)->_result_type/*44*/);
X52jvm_initialize_local(_t,r386jvm_result_offset(C));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
}


void r386jvm_define_closing(T386* C){
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
/*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_result_type/*44*/)!=((void*)(NULL))){
X52jvm_push_local((C)->_result_type/*44*/,r386jvm_result_offset(C));
}
/*FI]*/
}
/*No:RUN_FEATURE_8.current_type*/
/*No:RUN_FEATURE_8.clients_memory*/


void r386add_client(T386* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T343*n=malloc(sizeof(*n));
*n=M343;
r343with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r23add_client((T23*)(r386run_class(C)),a1);
}
/*No:RUN_FEATURE_8.ucs_in_computation*/
/*No:RUN_FEATURE_8.us_signal_number*/


void r386make(T386* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r386run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
/*]*/
r22incr_magic_count((T22*)(oBC12small_eiffel));
C->_use_current_state=15;
r22push((T22*)(oBC12small_eiffel),(T0*)C);
r386initialize(C);
r22pop((T22*)(oBC12small_eiffel));
}
/*No:RUN_FEATURE_8.ucs_true*/
/*No:RUN_FEATURE_8.routine_body*/


void r386jvm_define(T386* C){
T0* _cp=NULL;
T0* _bcn=NULL;
T0* _n=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(C)->_base_feature/*36*/;
_n=X50to_string(/*(IRF4.6first_name*/r87item(((T87*)((((T296*)_bf))->_names/*8*/)),1)/*)*/);
/*[IF*/
if((((T0*)ms14_2695))==((void*)(_n))){
_cp=oBC12constant_pool;
r40add((T40*)(oBC12field_info),1,r29idx_utf8(((T29*)_cp),_n),r29idx_utf8(((T29*)_cp),((T0*)ms13_28278)));
}
else{
_native=(((T296*)_bf))->_native/*40*/;
_bcn=((T70*)(((T63*)((((T296*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
X293jvm_define_function(_native,(T0*)C,_bcn,_n);
}
/*FI]*/
}
/*No:RUN_FEATURE_8.name*/
/*No:RUN_FEATURE_8.afd_check*/


T0* r386clients(T386* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
_bc=X52base_class((C)->_current_type/*4*/);
_bfbc=((T296*)((C)->_base_feature/*36*/))->_base_class/*4*/;
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=((T296*)((C)->_base_feature/*36*/))->_clients/*16*/;
}
else{
R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
}
/*FI]*/
C->_clients_memory=R;
}
else{
R=(C)->_clients_memory/*8*/;
}
/*FI]*/
return R;
}


T0* r386type_string(void){
if(fBC12type_string==0){
fBC12type_string=1;
{T276*n=malloc(sizeof(*n));
*n=M276;
r276make(n,NULL);
oBC12type_string=(T0*)n;
}
}
return oBC12type_string;}
/*No:RUN_FEATURE_8.rescue_compound*/


void r386fall_down(T386* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((C)->_current_type/*4*/);
_running=(((T23*)_current_rc))->_running/*12*/;
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((C)->_current_type/*4*/);
_i=(((T340*)_running))->_lower/*12*/;
while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
_sub_rc=r340item(((T340*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
_sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
_rf=r23get_feature(((T23*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_FEATURE_8.actuals_clients*/
/*No:RUN_FEATURE_8.us_twin*/
/*No:RUN_FEATURE_8.ucs_not_computed*/
/*No:RUN_FEATURE_8.is_pre_computable*/
/*No:RUN_FEATURE_8.fz_iinaiv*/


T2 r386jvm_local_variable_offset(T386* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*40*/)));
}
/*FI]*/
R=(R)+(r182jvm_offset_of((T182*)(/*(IRF4.1local_vars*/NULL/*)*/),a1));
return R;
}
/*No:RUN_FEATURE_8.us_character_bits*/


T2 r386arg_count(T386* C){
T2 R=0;
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*40*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_8.fz_19*/
/*No:RUN_FEATURE_8.us_is_expanded_type*/


T2 r386jvm_argument_offset(T386* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*40*/),a1));
return R;
}
/*No:RUN_FEATURE_8.can_be_dropped*/


void r386initialize(T386* C){
T0* _type_bit_ref=NULL;
T0* _rf=NULL;
T0* _n=NULL;
_n=X50to_string(/*(IRF4.6first_name*/r87item(((T87*)(((T296*)((C)->_base_feature/*36*/))->_names/*8*/)),1)/*)*/);
C->_arguments=((T296*)((C)->_base_feature/*36*/))->_arguments/*20*/;
/*[IF*/
if((((T0*)ms14_2695))==((void*)(_n))){
_type_bit_ref=(C)->_current_type/*4*/;
if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
case 380: 
break;
default:
_type_bit_ref=NULL;
};C->_result_type=(((T380*)_type_bit_ref))->_type_bit/*4*/;
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
/*[IF*/
if(!(r191is_runnable((T191*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
{T191*n=malloc(sizeof(*n));
*n=M191;
r191with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
else{
C->_result_type=((T296*)((C)->_base_feature/*36*/))->_result_type/*48*/;
/*[IF*/
if(((C)->_arguments/*40*/)==((void*)(NULL))){
C->_result_type=X52to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
}
 else if(X52is_like_argument((C)->_result_type/*44*/)){
/*[IF*/
if(!(r191is_runnable((T191*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
{T191*n=malloc(sizeof(*n));
*n=M191;
r191with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
C->_result_type=X52to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
}
else{
C->_result_type=X52to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
/*[IF*/
if(!(r191is_runnable((T191*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
{T191*n=malloc(sizeof(*n));
*n=M191;
r191with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r76require_check((T76*)(oBC12run_control))){
C->_require_assertion=r296run_require((T0*)C);
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
C->_ensure_assertion=r296run_ensure((T0*)C);
}
/*FI]*/
/*[IF*/
if((((T0*)ms14_1840))==((void*)(_n))){
_rf=r23get_copy((T23*)(r386run_class(C)));
}
 else if((((T0*)ms14_8610))==((void*)(_n))){
((/*UT*/(void)((T276*)(r386type_string()))),r276set_at_run_time());
}
 else if((((T0*)ms14_30885))==((void*)(_n))){
/*[IRF3.3set_generator_used*/((((T76*)((T76*)(oBC12run_control))))->_generator_used)=(1);
/*]*/
/*[IRF3.3set_generating_type_used*/((((T76*)((T76*)(oBC12run_control))))->_generating_type_used)=(1);
/*]*/
}
 else if((((T0*)ms14_14130))==((void*)(_n))){
/*[IRF3.3set_generator_used*/((((T76*)((T76*)(oBC12run_control))))->_generator_used)=(1);
/*]*/
}
 else if((((T0*)ms14_13842))==((void*)(_n))){
/*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
}
 else if((((T0*)ms14_26351))==((void*)(_n))){
/*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
}
/*FI]*/
}
/*No:RUN_FEATURE_8.require_assertion*/
/*No:RUN_FEATURE_8.update_tmp_jvm_descriptor*/
/*No:RUN_FEATURE_8.us_generator*/
/*No:RUN_FEATURE_8.us_generating_type*/


T2 r386jvm_max_locals(T386* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*40*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((C)->_result_type/*44*/)!=((void*)(NULL))){
R=(R)+(X52jvm_stack_space((C)->_result_type/*44*/));
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_8.us_count*/
/*No:RUN_FEATURE_8.us_exception*/


void r386compute_use_current(T386* C){
/*[IF*/
if(r296use_current((T296*)((C)->_base_feature/*36*/))){
C->_use_current_state=14;
}
else{
r386std_compute_use_current(C);
}
/*FI]*/
}


void r386jvm_closing_fast(T386* C){
X52jvm_return_code(X52run_type((C)->_result_type/*44*/));
r39finish((T39*)(oBC12method_info));
}


void r386method_info_start(T386* C){
T2 _flags=0;
_flags=X52jvm_method_flags((C)->_current_type/*4*/);
r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r386jvm_descriptor(C));
}
/*No:RUN_FEATURE_8.local_vars*/


T2 r386jvm_result_offset(T386* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*40*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
return R;
}


void r386routine_update_tmp_jvm_descriptor(T386* C){
T0* _rt=NULL;
T0* _ct=NULL;
r7extend((T7*)(oBC27tmp_jvm_descriptor),'\50');
_ct=(C)->_current_type/*4*/;
X52jvm_target_descriptor_in(_ct,oBC27tmp_jvm_descriptor);
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
r191jvm_descriptor_in((T191*)((C)->_arguments/*40*/),oBC27tmp_jvm_descriptor);
}
/*FI]*/
_rt=(C)->_result_type/*44*/;
/*[IF*/
if((_rt)==((void*)(NULL))){
r7append((T7*)(oBC27tmp_jvm_descriptor),((T0*)ms13_260));
}
else{
_rt=X52run_type(_rt);
r7extend((T7*)(oBC27tmp_jvm_descriptor),'\51');
X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
}
/*FI]*/
}
/*No:RUN_FEATURE_8.us_bitn*/
/*No:RUN_FEATURE_8.us_is_basic_expanded_type*/


void r386jvm_field_or_method(T386* C){
T0* _bcn=NULL;
T0* _n=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(C)->_base_feature/*36*/;
_n=X50to_string(/*(IRF4.6first_name*/r87item(((T87*)((((T296*)_bf))->_names/*8*/)),1)/*)*/);
/*[IF*/
if((((T0*)ms14_2695))==((void*)(_n))){
r24add_field((T0*)C);
}
else{
_native=((T296*)((C)->_base_feature/*36*/))->_native/*40*/;
_bcn=((T70*)(((T63*)((((T296*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
X293jvm_add_method_for_function(_native,(T0*)C,_bcn,_n);
}
/*FI]*/
}


void r386jvm_closing(T386* C){
r386jvm_define_closing(C);
X52jvm_return_code(X52run_type((C)->_result_type/*44*/));
r39finish((T39*)(oBC12method_info));
}


T0* r386jvm_descriptor(T386* C){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
/*]*/
/*[IRF3.4update_tmp_jvm_descriptor*/r386routine_update_tmp_jvm_descriptor(C);
/*]*/
R=oBC27tmp_jvm_descriptor;
return R;
}


T0* r345jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}


void r345prepare_descriptor(T0* a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC345descriptor_string))))->_count)=(0);
/*]*/
/*[IF*/
if(X52is_reference(a1)){
r7append((T7*)(oBC345descriptor_string),r345jvm_root_descriptor());
}
else{
X52jvm_descriptor_in(a1,oBC345descriptor_string);
}
/*FI]*/
}


T2 r345idx_name_for_result(T0* a1){
T2 R=0;
r345prepare_result(a1);
R=r29idx_utf8((T29*)(oBC12constant_pool),oBC345result_string);
return R;
}


void r345add_procedure(T0* a1){
r350add_last((T350*)(oBC345procedure_list),a1);
}
/*No:ONCE_ROUTINE_POOL.fz_jvm_root*/
/*No:ONCE_ROUTINE_POOL.jvm_initialize_fields*/


void r345prepare_result(T0* a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC345result_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC345result_string),'r');
r2append_in(((T63*)(/*X95base_class*/((T0*)(((T203*)a1))->_base_class/*4*/)))->_id/*0*/,oBC345result_string);
r7append((T7*)(oBC345result_string),X50to_key(/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)((((T203*)a1))->_names/*8*/)),1)/*)*/)));
}
T0*oBC345procedure_list=NULL;


void r345jvm_define_fields(T345* C){
T0* _name_list=NULL;
T0* _bf=NULL;
T0* _rf6=NULL;
T0* _rf5=NULL;
T2 _i=0;
T2 _idx_flag=0;
T2 _byte_idx=0;
{T48*n=malloc(sizeof(*n));
*n=M48;
r48with_capacity(n,(C)->_fields_count/*0*/);
_name_list=(T0*)n;
}
/*[IF*/
if((/*(IRF4.6count*/(((T352*)(oBC345function_list))->_upper/*12*/)+(1)/*)*/)>(0)){
_i=((T352*)(oBC345function_list))->_upper/*12*/;
_byte_idx=r29idx_utf8((T29*)(oBC12constant_pool),((T0*)ms13_67));
while (!((_i)<(0))) {
_rf6=/*(IRF4.6item*/(((T352*)(oBC345function_list))->_storage/*4*/)[_i]/*)*/;
_bf=(((T348*)_rf6))->_base_feature/*32*/;
_idx_flag=r345idx_name_for_flag(_bf);
/*[IF*/
if(r48fast_has(((T48*)_name_list),_idx_flag)){
}
else{
r48add_last(((T48*)_name_list),_idx_flag);
r40add((T40*)(oBC12field_info),9,_idx_flag,_byte_idx);
r40add((T40*)(oBC12field_info),9,r345idx_name_for_result(_bf),r345idx_descriptor(X52run_type((((T348*)_rf6))->_result_type/*40*/)));
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if((/*(IRF4.6count*/(((T350*)(oBC345procedure_list))->_upper/*12*/)+(1)/*)*/)>(0)){
_i=((T350*)(oBC345procedure_list))->_upper/*12*/;
_byte_idx=r29idx_utf8((T29*)(oBC12constant_pool),((T0*)ms13_67));
while (!((_i)<(0))) {
_rf5=/*(IRF4.6item*/(((T350*)(oBC345procedure_list))->_storage/*4*/)[_i]/*)*/;
_bf=(((T349*)_rf5))->_base_feature/*32*/;
_idx_flag=r345idx_name_for_flag(_bf);
/*[IF*/
if(r48fast_has(((T48*)_name_list),_idx_flag)){
}
else{
r48add_last(((T48*)_name_list),_idx_flag);
r40add((T40*)(oBC12field_info),9,_idx_flag,_byte_idx);
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
/*No:ONCE_ROUTINE_POOL.fields_count*/


void r345prepare_flag(T0* a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC345flag_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC345flag_string),'f');
r2append_in(((T63*)(/*X95base_class*/((T0*)(((T203*)a1))->_base_class/*4*/)))->_id/*0*/,oBC345flag_string);
r7append((T7*)(oBC345flag_string),X50to_key(/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)((((T203*)a1))->_names/*8*/)),1)/*)*/)));
}
T0*oBC345descriptor_string=NULL;
T0*oBC345flag_string=NULL;
T0*oBC345result_string=NULL;


T2 r345idx_name_for_flag(T0* a1){
T2 R=0;
r345prepare_flag(a1);
R=r29idx_utf8((T29*)(oBC12constant_pool),oBC345flag_string);
return R;
}


T2 r345idx_fieldref_for_flag(T0* a1){
T2 R=0;
r345prepare_flag(X27base_feature(a1));
R=r29idx_fieldref3((T29*)(oBC12constant_pool),r345jvm_root_class(),oBC345flag_string,((T0*)ms13_67));
return R;
}


void r345add_function(T0* a1){
r352add_last((T352*)(oBC345function_list),a1);
}
T0*oBC345flag_list=NULL;
/*No:ONCE_ROUTINE_POOL.fz_41*/


T2 r345idx_descriptor(T0* a1){
T2 R=0;
r345prepare_descriptor(a1);
R=r29idx_utf8((T29*)(oBC12constant_pool),oBC345descriptor_string);
return R;
}


T2 r345idx_fieldref_for_result(T0* a1){
T2 R=0;
r345prepare_result((((T348*)a1))->_base_feature/*32*/);
r345prepare_descriptor(X52run_type((((T348*)a1))->_result_type/*40*/));
R=r29idx_fieldref3((T29*)(oBC12constant_pool),r345jvm_root_class(),oBC345result_string,oBC345descriptor_string);
return R;
}
T0*oBC345function_list=NULL;


T0* r345jvm_root_descriptor(void){
if(fBC12jvm_root_descriptor==0){
fBC12jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_descriptor=(T0*)n;
}
r7extend(((T7*)oBC12jvm_root_descriptor),'L');
r7append(((T7*)oBC12jvm_root_descriptor),r345jvm_root_class());
r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
}
return oBC12jvm_root_descriptor;}


void r259anchor_cycle_start(T259* C){
T2 _i=0;
/*[IF*/
if((((T58*)(oBC260visited))->_upper/*8*/)<(0)){
r58add_last((T58*)(oBC260visited),(C)->_start_position/*4*/);
}
 else if(r58fast_has((T58*)(oBC260visited),(C)->_start_position/*4*/)){
_i=0;
while (!((_i)>(((T58*)(oBC260visited))->_upper/*8*/))) {
r21add_position(/*(IRF4.6item*/(((T58*)(oBC260visited))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
else{
r58add_last((T58*)(oBC260visited),(C)->_start_position/*4*/);
}
/*FI]*/
}


void r259anchor_cycle_end(T259* C){
/*[IF*/
if(((C)->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/(((T58*)(oBC260visited))->_storage/*0*/)[0]/*)*//*)*/))){
/*[IRF3.3clear*/((((T58*)((T58*)(oBC260visited))))->_upper)=(-(1));
/*]*/
}
/*FI]*/
}
/*No:TYPE_LIKE_FEATURE.start_position*/


void r259jvm_initialize_local(T259* C,T2 a1){
X52jvm_initialize_local((C)->_run_type/*16*/,a1);
}


void r259used_as_reference(T259* C){
X52used_as_reference((C)->_run_type/*16*/);
}


T6 r259is_user_expanded(T259* C){
T6 R=0;
R=X52is_user_expanded((C)->_run_type/*16*/);
return R;
}


T2 r259id(T259* C){
T2 R=0;
R=((T23*)(r259run_class(C)))->_id/*4*/;
return R;
}


T6 r259is_pointer(T259* C){
T6 R=0;
R=X52is_pointer((C)->_run_type/*16*/);
return R;
}


void r259jvm_check_class_invariant(T259* C){
X52jvm_check_class_invariant((C)->_run_type/*16*/);
}


T0* r259to_runnable(T259* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
r259anchor_cycle_start(C);
_rc=X52run_class(a1);
_rt=r23get_result_type(((T23*)_rc),(C)->_like_what/*8*/);
/*[IF*/
if(((C)->_run_type/*16*/)==((void*)(NULL))){
C->_run_type=_rt;
R=(T0*)C;
}
 else if(((C)->_run_type/*16*/)==((void*)(_rt))){
R=(T0*)C;
}
else{
{T259*n=malloc(sizeof(*n));
*n=M259;
r259with(n,(T0*)C,_rt);
R=(T0*)n;
}
}
/*FI]*/
r259anchor_cycle_end(C);
return R;
}


T0* r259run_class(T259* C){
T0* R=NULL;
R=r22run_class((C)->_run_type/*16*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.is_like_current*/


T6 r259is_bit(T259* C){
T6 R=0;
R=X52is_bit((C)->_run_type/*16*/);
return R;
}
T0*oBC260visited=NULL;


T0* r259smallest_ancestor(T259* C,T0* a1){
T0* R=NULL;
R=X52smallest_ancestor((C)->_run_type/*16*/,a1);
return R;
}


void r259jvm_write_local(T259* C,T2 a1){
X52jvm_write_local((C)->_run_type/*16*/,a1);
}
/*No:TYPE_LIKE_FEATURE.fatal_error*/


T0* r259run_time_mark(T259* C){
T0* R=NULL;
/*[IF*/
if(((C)->_run_type/*16*/)!=((void*)(NULL))){
R=X52run_time_mark((C)->_run_type/*16*/);
}
/*FI]*/
return R;
}


T6 r259is_expanded(T259* C){
T6 R=0;
R=X52is_expanded((C)->_run_type/*16*/);
return R;
}


T2 r259jvm_if_x_eq(T259* C){
T2 R=0;
R=X52jvm_if_x_eq((C)->_run_type/*16*/);
return R;
}


void r259jvm_xnewarray(T259* C){
X52jvm_xnewarray((C)->_run_type/*16*/);
}


void r259jvm_push_local(T259* C,T2 a1){
X52jvm_push_local((C)->_run_type/*16*/,a1);
}
/*No:TYPE_LIKE_FEATURE.fz_dot*/
/*No:TYPE_LIKE_FEATURE.is_like_feature*/


T6 r259is_a(T259* C,T0* a1){
T6 R=0;
T0* _tlf=NULL;
/*[IF*/
if(X52is_like_feature(a1)){
_tlf=a1;
if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
case 259: 
break;
default:
_tlf=NULL;
};/*[IF*/
if((X50to_string((C)->_like_what/*8*/))==((void*)(X50to_string((((T259*)_tlf))->_like_what/*8*/)))){
R=1;
}
else{
R=X52is_a((C)->_run_type/*16*/,a1);
}
/*FI]*/
}
else{
R=X52is_a((C)->_run_type/*16*/,a1);
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_position((C)->_start_position/*4*/);
}
/*FI]*/
return R;
}
/*No:TYPE_LIKE_FEATURE.written_mark*/


T6 r259is_character(T259* C){
T6 R=0;
R=X52is_character((C)->_run_type/*16*/);
return R;
}


void r259make(T259* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_like_what=a2;
r7copy((T7*)(((T0*)ms260_87371)),((T0*)ms13_1724));
r7extend((T7*)(((T0*)ms260_87371)),'\40');
X50declaration_in((C)->_like_what/*8*/,((T0*)ms260_87371));
C->_written_mark=r86item(((T0*)ms260_87371));
}


T2 r259jvm_convert_to(T259* C,T0* a1){
T2 R=0;
R=X52jvm_convert_to((C)->_run_type/*16*/,X52run_type(a1));
return R;
}


void r259fatal_error_generic_list(T259* C){
r21add_type((T0*)C,((T0*)ms52_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}


T6 r259is_array(T259* C){
T6 R=0;
R=X52is_array((C)->_run_type/*16*/);
return R;
}


T2 r259jvm_push_default(T259* C){
T2 R=0;
R=X52jvm_push_default((C)->_run_type/*16*/);
return R;
}


T6 r259is_dummy_expanded(T259* C){
T6 R=0;
R=X52is_dummy_expanded((C)->_run_type/*16*/);
return R;
}


T0* r259generic_list(T259* C){
T0* R=NULL;
/*[IF*/
if(r259is_generic(C)){
R=X52generic_list((C)->_run_type/*16*/);
}
else{
r259fatal_error_generic_list(C);
}
/*FI]*/
return R;
}


T0* r259base_class(T259* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r259base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}


T2 r259jvm_if_x_ne(T259* C){
T2 R=0;
R=X52jvm_if_x_ne((C)->_run_type/*16*/);
return R;
}


T0* r259base_class_name(T259* C){
T0* R=NULL;
R=X52base_class_name((C)->_run_type/*16*/);
return R;
}


void r259jvm_standard_is_equal(T259* C){
X52jvm_standard_is_equal((C)->_run_type/*16*/);
}
/*No:TYPE_LIKE_FEATURE.is_formal_generic*/


T6 r259is_a_in(T259* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((C)->_written_mark/*12*/)==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=r259to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r259look_up_for(T259* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r259base_class(C)),a1,a2);
return R;
}
/*No:TYPE_LIKE_FEATURE.run_type*/
/*No:TYPE_LIKE_FEATURE.fz_cad*/


T0* r259expanded_initializer(T259* C){
T0* R=NULL;
R=X52expanded_initializer((C)->_run_type/*16*/);
return R;
}


T6 r259has_creation(T259* C,T0* a1){
T6 R=0;
R=X52has_creation((C)->_run_type/*16*/,a1);
return R;
}


T2 r259jvm_method_flags(T259* C){
T2 R=0;
R=X52jvm_method_flags((C)->_run_type/*16*/);
return R;
}


T6 r259is_boolean(T259* C){
T6 R=0;
R=X52is_boolean((C)->_run_type/*16*/);
return R;
}


T6 r259is_generic(T259* C){
T6 R=0;
R=X52is_generic((C)->_run_type/*16*/);
return R;
}


void r259jvm_xaload(T259* C){
X52jvm_xaload((C)->_run_type/*16*/);
}


T6 r259is_real(T259* C){
T6 R=0;
R=X52is_real((C)->_run_type/*16*/);
return R;
}


void r259with(T259* C,T0* a1,T0* a2){
C->_start_position=(((T259*)a1))->_start_position/*4*/;
C->_like_what=(((T259*)a1))->_like_what/*8*/;
C->_written_mark=(((T259*)a1))->_written_mark/*12*/;
C->_run_type=a2;
}


T6 r259is_any(T259* C){
T6 R=0;
R=X52is_any((C)->_run_type/*16*/);
return R;
}


T6 r259is_basic_eiffel_expanded(T259* C){
T6 R=0;
R=X52is_basic_eiffel_expanded((C)->_run_type/*16*/);
return R;
}


void r259jvm_descriptor_in(T259* C,T0* a1){
X52jvm_descriptor_in((C)->_run_type/*16*/,a1);
}
/*No:TYPE_LIKE_FEATURE.fz_like*/


T6 r259is_string(T259* C){
T6 R=0;
R=X52is_string((C)->_run_type/*16*/);
return R;
}


T6 r259is_native_array(T259* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267: 
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}


T6 r259is_integer(T259* C){
T6 R=0;
R=X52is_integer((C)->_run_type/*16*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.is_anchored*/
/*No:TYPE_LIKE_FEATURE.is_run_type*/


T6 r259is_reference(T259* C){
T6 R=0;
R=X52is_reference((C)->_run_type/*16*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.like_what*/
/*No:TYPE_LIKE_FEATURE.tmp_written_mark*/


T6 r259is_none(T259* C){
T6 R=0;
R=X52is_none((C)->_run_type/*16*/);
return R;
}


void r259jvm_return_code(T259* C){
X52jvm_return_code((C)->_run_type/*16*/);
}


void r259jvm_target_descriptor_in(T259* C,T0* a1){
X52jvm_target_descriptor_in((C)->_run_type/*16*/,a1);
}


void r259jvm_xastore(T259* C){
X52jvm_xastore((C)->_run_type/*16*/);
}
/*No:TYPE_LIKE_FEATURE.is_like_argument*/


T2 r259jvm_stack_space(T259* C){
T2 R=0;
/*[IF*/
if(r259is_double(C)){
R=2;
}
else{
R=1;
}
/*FI]*/
return R;
}


T6 r259is_double(T259* C){
T6 R=0;
R=X52is_double((C)->_run_type/*16*/);
return R;
}


T2 r259jvm_expanded_from_reference(T0* a1){
T2 R=0;
return R;
}
/*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_define_function*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_add_method_for_function*/


T2 r305idx_methodref(T0* a1){
T2 R=0;
T0* _cp=NULL;
T0* _alias_string=NULL;
T2 _i=0;
_cp=oBC12constant_pool;
_alias_string=/*X294alias_string*/((T0*)(((T296*)a1))->_alias_string/*44*/);
/*[IF*/
if((_alias_string)==((void*)(NULL))){
r21add_position(X294start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms304_248880);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
_i=1;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_class))))->_count)=(0);
/*]*/
while (!((/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\56'))) {
r7extend((T7*)(oBC304tmp_class),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
_i=(_i)+(1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_name))))->_count)=(0);
/*]*/
while (!((/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\40'))) {
r7extend((T7*)(oBC304tmp_name),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
_i=(_i)+(1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_descriptor))))->_count)=(0);
/*]*/
while (!((_i)>((((T7*)_alias_string))->_count/*4*/))) {
r7extend((T7*)(oBC304tmp_descriptor),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
R=r29idx_methodref3(((T29*)_cp),oBC304tmp_class,oBC304tmp_name,oBC304tmp_descriptor);
return R;
}
/*No:NATIVE_JVM_INVOKEVIRTUAL.use_current*/


void r305jvm_mapping_function(T0* a1,T0* a2,T0* a3){
T0* _ca=NULL;
T2 _idx=0;
T2 _space=0;
_ca=oBC12code_attribute;
r24drop_target((T24*)(oBC12jvm));
_space=r24push_arguments((T24*)(oBC12jvm));
_idx=r305idx_methodref((((T386*)a1))->_base_feature/*36*/);
_space=(X52jvm_stack_space((((T386*)a1))->_result_type/*44*/))-(_space);
r28opcode_invokevirtual(((T28*)_ca),_idx,_space);
}
/*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_add_method_for_procedure*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_mapping_procedure*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.jvm_define_procedure*/
/*No:NATIVE_JVM_INVOKEVIRTUAL.fatal_error*/
/*No:CALL_INFIX_POWER.static_value*/
/*No:CALL_INFIX_POWER.feature_name*/


T6 r198is_static(T198* C){
T6 R=0;
/*[IF*/
if(X52is_integer(r198result_type(C))){
/*[IF*/
if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
R=1;
C->_static_value_mem=r2_px_94(X109static_value((C)->_target/*4*/),X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_POWER.is_manifest_string*/


T0* r198start_position(T198* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}


T0* r198add_comment(T198* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r198to_integer(T198* C){
T2 R=0;
r198error(r198start_position(C),((T0*)ms13_45846));
return R;
}


T6 r198use_current(T198* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
 else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_POWER.jvm_branch_if_true*/

