/*
-- 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"
/*No:RUN_FEATURE_6.arguments*/
/*No:RUN_FEATURE_6.ucs_true*/
void r868routine_mapping_jvm(T868* C){
int _stack_level=0;
int _idx=0;
T0* _ct=NULL;
T0* _rt=NULL;
_ct=(((T868*)C))->_current_type/*4*/;
r228push_target_as_target(((T228*)(oBC364jvm)));
_stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
_rt=(((T868*)C))->_result_type/*24*/;
/*IF*/if ((_rt)!=((void*)(NULL))) {
_stack_level=(_stack_level)+(X291jvm_stack_space(_rt));
}
/*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C);
r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level);
}
/*No:RUN_FEATURE_6.actuals_clients*/
T0* r868jvm_descriptor(T868* C){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
/*]*/
/*[IRF3.4update_tmp_jvm_descriptor*/r868routine_update_tmp_jvm_descriptor(C);
/*]*/
R=oBC496tmp_jvm_descriptor;
return R;
}
T0*oBC364method_info=NULL;
void r868method_info_start(T868* C){
int _flags=0;
_flags=X291jvm_method_flags((((T868*)C))->_current_type/*4*/);
r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T868*)C))->_name/*16*/),r868jvm_descriptor(C));
}
/*No:RUN_FEATURE_6.ucs_in_computation*/
void r868routine_update_tmp_jvm_descriptor(T868* C){
T0* _rt=NULL;
T0* _ct=NULL;
r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
_ct=(((T868*)C))->_current_type/*4*/;
X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
/*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
r31jvm_descriptor_in(((T31*)((((T868*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
}
/*FI*/_rt=(((T868*)C))->_result_type/*24*/;
/*IF*/if ((_rt)==((void*)(NULL))) {
r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470));
}
else {
_rt=X291run_type(_rt);
r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51');
X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
}
/*FI*/}
void r868make(T868* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T355*)((T355*)(r868run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1005;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r868initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
void r868std_compute_use_current(T868* C){
/*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
/*IF*/if (r567use_current(((T567*)((((T868*)C))->_require_assertion/*28*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
/*IF*/if (r592use_current(((T592*)((((T868*)C))->_routine_body/*32*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (r633use_current(((T633*)((((T868*)C))->_ensure_assertion/*36*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
C->_use_current_state=1003;
}
/*FI*/}
/*No:RUN_FEATURE_6.name*/
int r868arg_count(T868* C){
int R=0;
/*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
void r868routine_afd_check(T868* C){
/*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567afd_check(((T567*)((((T868*)C))->_require_assertion/*28*/)));
}
/*FI*//*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T868*)C))->_routine_body/*32*/)));
}
/*FI*//*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633afd_check(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*No:RUN_FEATURE_6.local_vars*/
/*No:RUN_FEATURE_6.base_feature*/
/*No:RUN_FEATURE_6.start_position*/
T0*oBC496tmp_jvm_descriptor=NULL;
/*No:RUN_FEATURE_6.us_std_output*/
int r868jvm_max_locals(T868* C){
int R=0;
R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
/*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=(R)+(r31jvm_stack_space(((T31*)((((T868*)C))->_arguments/*20*/))));
}
/*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
R=(R)+(r620jvm_stack_space(((T620*)((((T868*)C))->_local_vars/*48*/))));
}
/*FI*//*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
R=(R)+(X291jvm_stack_space((((T868*)C))->_result_type/*24*/));
}
/*FI*/return R;
}
int r868jvm_result_offset(T868* C){
int R=0;
R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
/*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=(R)+(r31jvm_stack_space(((T31*)((((T868*)C))->_arguments/*20*/))));
}
/*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
R=(R)+(r620jvm_stack_space(((T620*)((((T868*)C))->_local_vars/*48*/))));
}
/*FI*/return R;
}
/*No:RUN_FEATURE_6.ensure_assertion*/
int r868is_exported_in(T868* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r868clients(C))),a1);
return R;
}
void r868jvm_define_opening(T868* C){
T0* _t=NULL;
/*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
_t=X291run_type((((T868*)C))->_result_type/*24*/);
X291jvm_initialize_local(_t,r868jvm_result_offset(C));
}
/*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
r620jvm_initialize(((T620*)((((T868*)C))->_local_vars/*48*/)));
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633compile_to_jvm_old(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*FI*//*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567compile_to_jvm(((T567*)((((T868*)C))->_require_assertion/*28*/)));
}
/*FI*/}
/*No:RUN_FEATURE_6.compute_use_current*/
/*No:RUN_FEATURE_6.result_type*/
/*No:RUN_FEATURE_6.jvm_field_or_method*/
int r868jvm_argument_offset(T868* C,T0* a1){
int R=0;
R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
R=(R)+(r31jvm_offset_of(((T31*)((((T868*)C))->_arguments/*20*/)),a1));
return R;
}
/*No:RUN_FEATURE_6.us_std_error*/
/*No:RUN_FEATURE_6.is_static*/
T0*oBC364once_routine_pool=NULL;
void r868add_client(T868* C,T0* a1){
int _i=0;
/*IF*/if (((((T868*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T868*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r355add_client(((T355*)(r868run_class(C))),a1);
}
T0*oBC364constant_pool=NULL;
/*No:RUN_FEATURE_6.require_assertion*/
/*No:RUN_FEATURE_6.use_current_state*/
int r868can_be_dropped(T868* C){
int R=0;
/*IF*/if (r868is_pre_computable(C)) {
R=1;
}
/*FI*/return R;
}
void r868jvm_define_closing(T868* C){
/*IF*/if (r868use_current(C)) {
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633compile_to_jvm(((T633*)((((T868*)C))->_ensure_assertion/*36*/)),1);
}
/*FI*/}
/*FI*//*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
X291jvm_push_local((((T868*)C))->_result_type/*24*/,r868jvm_result_offset(C));
}
/*FI*/}
/*No:RUN_FEATURE_6.mapping_jvm*/
/*No:RUN_FEATURE_6.current_type*/
T0* r868run_class(T868* C){
T0* R=NULL;
R=X291run_class((((T868*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_6.static_value_mem*/
/*No:RUN_FEATURE_6.fz_19*/
/*No:RUN_FEATURE_6.ucs_not_computed*/
void r868fall_down(T868* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
int _i=0;
T0* _running=NULL;
_current_rc=X291run_class((((T868*)C))->_current_type/*4*/);
_running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
/*IF*/if ((_running)!=((void*)(NULL))) {
_current_bc=X291base_class((((T868*)C))->_current_type/*4*/);
_i=(((T396*)((T396*)_running)))->_lower/*12*/;
while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
_sub_rc=r396item(((T396*)_running),_i);
/*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
_sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
_sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T868*)C))->_name/*16*/);
_rf=r355get_feature(((T355*)_sub_rc),_sub_name);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
/*No:RUN_FEATURE_6.routine_body*/
/*No:RUN_FEATURE_6.us_io*/
/*No:RUN_FEATURE_6.ucs_false*/
int r868is_pre_computable(T868* C){
int R=0;
/*IF*/if (r52fast_has(((T52*)(oBC868frozen_general)),X776to_string((((T868*)C))->_name/*16*/))) {
R=1;
}
 else if ((((((T868*)C))->_arguments/*20*/)==((void*)(NULL)))&&(!(r868use_current(C)))) {
/*IF*/if (((((T868*)C))->_routine_body/*32*/)==((void*)(NULL))) {
R=1;
}
 else if (!(r590invariant_check(((T590*)(oBC364run_control))))) {
R=r592is_pre_computable(((T592*)((((T868*)C))->_routine_body/*32*/)));
}
/*FI*/}
/*FI*/return R;
}
T0* r868clients(T868* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T868*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T868*)C))->_current_type/*4*/);
_bfbc=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T868*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T868*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
int r868use_current(T868* C){
int R=0;
{int z1=(((T868*)C))->_use_current_state/*40*/;

if((1004==z1)){
R=1;
}
 else 
if((1003==z1)){
}
 else 
if((1005==z1)){
C->_use_current_state=1006;
/*[IRF3.4compute_use_current*/r868std_compute_use_current(C);
/*]*/
R=r868use_current(C);
}
 else {R=1;
}}
return R;
}
void r868jvm_define(T868* C){
int _idx_result=0;
int _idx_flag=0;
int _branch=0;
int _result_space=0;
_idx_result=r916idx_fieldref_for_result((T0*)C);
_idx_flag=r916idx_fieldref_for_flag((T0*)C);
_result_space=X291jvm_stack_space((((T868*)C))->_result_type/*24*/);
r868method_info_start(C);
r256opcode_getstatic(((T256*)(oBC364code_attribute)),_idx_flag,1);
_branch=r256opcode_ifne(((T256*)(oBC364code_attribute)));
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
/*]*/
r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx_flag,-(1));
r868jvm_define_opening(C);
/*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
r592compile_to_jvm(((T592*)((((T868*)C))->_routine_body/*32*/)));
}
/*FI*/r868jvm_define_closing(C);
r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx_result,-(_result_space));
r256resolve_u2_branch(_branch);
r256opcode_getstatic(((T256*)(oBC364code_attribute)),_idx_result,_result_space);
X291jvm_return_code(X291run_type((((T868*)C))->_result_type/*24*/));
r506finish(((T506*)(oBC364method_info)));
}
int r868jvm_local_variable_offset(T868* C,T0* a1){
int R=0;
R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
/*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=(R)+(r31jvm_stack_space(((T31*)((((T868*)C))->_arguments/*20*/))));
}
/*FI*/R=(R)+(r620jvm_offset_of(((T620*)((((T868*)C))->_local_vars/*48*/)),a1));
return R;
}
/*No:RUN_FEATURE_6.fatal_error*/
/*No:RUN_FEATURE_6.clients_memory*/
void r868initialize(T868* C){
C->_arguments=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if ((((((T868*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T868*)C))->_arguments/*20*/)),(((T868*)C))->_current_type/*4*/);
}
/*FI*/C->_result_type=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_result_type/*12*/;
/*IF*/if (X291is_anchored((((T868*)C))->_result_type/*24*/)) {
r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_868);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if (X291is_formal_generic((((T868*)C))->_result_type/*24*/)) {
r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_868);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_result_type=X291to_runnable((((T868*)C))->_result_type/*24*/,(((T868*)C))->_current_type/*4*/);
C->_local_vars=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if ((((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T868*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_local_vars=r620to_runnable(((T620*)((((T868*)C))->_local_vars/*48*/)),(((T868*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T868*)C))->_routine_body/*32*/)),(((T868*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r844run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r844run_ensure((T0*)C);
}
/*FI*/r916add_function((T0*)C);
}
T0*oBC868frozen_general=NULL;
/*No:RUN_FEATURE_6.us_std_input*/
/*No:RUN_FEATURE_6.afd_check*/
/*No:RUN_FEATURE_6.update_tmp_jvm_descriptor*/
int r916idx_name_for_flag(T0* a1){
int R=0;
r916prepare_flag(a1);
R=r95idx_uft8(((T95*)(oBC364constant_pool)),oBC916flag_string);
return R;
}
void r916add_function(T0* a1){
r222add_last(((T222*)(oBC916function_list)),a1);
}
int r916idx_descriptor(T0* a1){
int R=0;
r916prepare_descriptor(a1);
R=r95idx_uft8(((T95*)(oBC364constant_pool)),oBC916descriptor_string);
return R;
}
T0*oBC916result_string=NULL;
/*No:ONCE_ROUTINE_POOL.fields_count*/
int fBC364jvm_root_class=0;
T0*oBC364jvm_root_class=NULL;
T0* r916jvm_root_class(void){
if (fBC364jvm_root_class==0){
T0* R=NULL;
fBC364jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
R=(T0*)n;
}
r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
r7extend(((T7*)R),'\57');
r7append(((T7*)R),((T0*)ms112_470));
oBC364jvm_root_class=R;}
return oBC364jvm_root_class;}
int r916idx_fieldref_for_result(T0* a1){
int R=0;
r916prepare_result((((T868*)((T868*)a1)))->_base_feature/*44*/);
r916prepare_descriptor(X291run_type((((T868*)((T868*)a1)))->_result_type/*24*/));
R=r95idx_fieldref3(((T95*)(oBC364constant_pool)),r916jvm_root_class(),oBC916result_string,oBC916descriptor_string);
return R;
}
void r916prepare_result(T0* a1){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC916result_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC916result_string)),'r');
r2append_in((((T605*)((T605*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_base_class/*4*/)))))->_id/*0*/,oBC916result_string);
r7append(((T7*)(oBC916result_string)),X776to_key(/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)a1)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/)));
}
int r916idx_name_for_result(T0* a1){
int R=0;
r916prepare_result(a1);
R=r95idx_uft8(((T95*)(oBC364constant_pool)),oBC916result_string);
return R;
}
void r916prepare_descriptor(T0* a1){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC916descriptor_string)))))->_count)=(0);
/*]*/
/*IF*/if (X291is_reference(a1)) {
r7append(((T7*)(oBC916descriptor_string)),r916jvm_root_descriptor());
}
else {
X291jvm_descriptor_in(a1,oBC916descriptor_string);
}
/*FI*/}
int r916idx_fieldref_for_flag(T0* a1){
int R=0;
r916prepare_flag(X496base_feature(a1));
R=r95idx_fieldref3(((T95*)(oBC364constant_pool)),r916jvm_root_class(),oBC916flag_string,((T0*)ms173_470));
return R;
}
T0*oBC364field_info=NULL;
/*No:ONCE_ROUTINE_POOL.fz_41*/
/*No:ONCE_ROUTINE_POOL.jvm_initialize_fields*/
T0*oBC916descriptor_string=NULL;
int fBC364jvm_root_descriptor=0;
T0*oBC364jvm_root_descriptor=NULL;
T0* r916jvm_root_descriptor(void){
if (fBC364jvm_root_descriptor==0){
T0* R=NULL;
fBC364jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
R=(T0*)n;
}
r7extend(((T7*)R),'L');
r7append(((T7*)R),r916jvm_root_class());
r7extend(((T7*)R),'\73');
oBC364jvm_root_descriptor=R;}
return oBC364jvm_root_descriptor;}
T0*oBC916function_list=NULL;
void r916jvm_define_fields(T916* C){
T0* _name_list=NULL;
T0* _bf=NULL;
T0* _rf6=NULL;
T0* _rf5=NULL;
int _i=0;
int _idx_flag=0;
int _byte_idx=0;
{T226*n=malloc(sizeof(*n));
*n=M226;
r226with_capacity(n,(((T916*)C))->_fields_count/*0*/);
_name_list=(T0*)n;
}
/*IF*/if ((/*(IRF4.6count*/((((T222*)((T222*)(oBC916function_list))))->_upper/*12*/)+(1)/*)*/)>(0)) {
_i=(((T222*)((T222*)(oBC916function_list))))->_upper/*12*/;
_byte_idx=r95idx_uft8(((T95*)(oBC364constant_pool)),((T0*)ms173_470));
while (!((_i)<(0))) {
_rf6=/*(IRF4.6item*/((((T222*)((T222*)(oBC916function_list))))->_storage/*4*/)[_i]/*)*/;
_bf=(((T868*)((T868*)_rf6)))->_base_feature/*44*/;
_idx_flag=r916idx_name_for_flag(_bf);
/*IF*/if (r226fast_has(((T226*)_name_list),_idx_flag)) {
}
else {
r226add_last(((T226*)_name_list),_idx_flag);
r543add(((T543*)(oBC364field_info)),9,_idx_flag,_byte_idx);
r543add(((T543*)(oBC364field_info)),9,r916idx_name_for_result(_bf),r916idx_descriptor(X291run_type((((T868*)((T868*)_rf6)))->_result_type/*24*/)));
}
/*FI*/_i=(_i)-(1);
}
}
/*FI*//*IF*/if ((/*(IRF4.6count*/((((T185*)((T185*)(oBC916procedure_list))))->_upper/*12*/)+(1)/*)*/)>(0)) {
_i=(((T185*)((T185*)(oBC916procedure_list))))->_upper/*12*/;
_byte_idx=r95idx_uft8(((T95*)(oBC364constant_pool)),((T0*)ms173_470));
while (!((_i)<(0))) {
_rf5=/*(IRF4.6item*/((((T185*)((T185*)(oBC916procedure_list))))->_storage/*4*/)[_i]/*)*/;
_bf=(((T869*)((T869*)_rf5)))->_base_feature/*44*/;
_idx_flag=r916idx_name_for_flag(_bf);
/*IF*/if (r226fast_has(((T226*)_name_list),_idx_flag)) {
}
else {
r226add_last(((T226*)_name_list),_idx_flag);
r543add(((T543*)(oBC364field_info)),9,_idx_flag,_byte_idx);
}
/*FI*/_i=(_i)-(1);
}
}
/*FI*/}
/*No:ONCE_ROUTINE_POOL.fz_jvm_root*/
void r916prepare_flag(T0* a1){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC916flag_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC916flag_string)),'f');
r2append_in((((T605*)((T605*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_base_class/*4*/)))))->_id/*0*/,oBC916flag_string);
r7append(((T7*)(oBC916flag_string)),X776to_key(/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)a1)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/)));
}
T0*oBC916flag_list=NULL;
T0*oBC916flag_string=NULL;
void r916add_procedure(T0* a1){
r185add_last(((T185*)(oBC916procedure_list)),a1);
}
T0*oBC916procedure_list=NULL;
/*No:CST_ATT_STRING.arguments*/
T0* r380try_to_undefine(T380* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r380try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T380*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_STRING.is_deferred*/
void r380add_into(T380* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
T0* r380try_to_undefine_aux(T380* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r380start_position(C));
r380error(X776start_position(a1),((T0*)ms1_321));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r380make(T380* C,T0* a1,T0* a2,T0* a3){
T0* _ms=NULL;
int _i=0;
r380make_e_feature(C,a1,a2);
{T381*n=malloc(sizeof(*n));
*n=M381;
r381make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
C->_values=(T0*)n;
}
/*[IRF3.6put*/{T381* C1=((T381*)((((T380*)C))->_values/*24*/));
T0* b1=a3;
int b2=1;
((((T381*)C1))->_storage/*4*/)[(b2)-((((T381*)C1))->_lower/*16*/)]=(b1);
}/*]*/
_i=2;
while (!((_i)>((((T381*)((T381*)((((T380*)C))->_values/*24*/))))->_upper/*12*/))) {
{T805*n=malloc(sizeof(*n));
*n=M805;
r805from_manifest_string(n,a3,_i);
_ms=(T0*)n;
}
/*[IRF3.6put*/{T381* C1=((T381*)((((T380*)C))->_values/*24*/));
T0* b1=_ms;
int b2=_i;
((((T381*)C1))->_storage/*4*/)[(b2)-((((T381*)C1))->_lower/*16*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
/*No:CST_ATT_STRING.nb_errors*/
/*No:CST_ATT_STRING.set_header_comment*/
/*No:CST_ATT_STRING.values*/
T0* r380start_position(T380* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r380to_run_feature(T380* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X291run_class(a1);
R=r355at(((T355*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 808: 
break;
default:
R=NULL;
};/*IF*/if ((R)==((void*)(NULL))) {
{T808*n=malloc(sizeof(*n));
*n=M808;
r808make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CST_ATT_STRING.ensure_assertion*/
/*No:CST_ATT_STRING.code_require*/
/*No:CST_ATT_STRING.result_type*/
/*No:CST_ATT_STRING.em1*/
/*No:CST_ATT_STRING.set_clients*/
/*No:CST_ATT_STRING.em2*/
/*No:CST_ATT_STRING.value*/
/*No:CST_ATT_STRING.require_assertion*/
/*No:CST_ATT_STRING.names*/
int r380can_hide(T380* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T380*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r380error(r380start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r380error(r380start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T380*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_STRING.header_comment*/
int r380is_merge_with(T380* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T380*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r380error(r380start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r380error(r380start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T380*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_STRING.fz_dot*/
/*No:CST_ATT_STRING.first_name*/
/*No:CST_ATT_STRING.clients*/
void r380collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r380error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_STRING.base_class*/
void r380make_e_feature(T380* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:CST_ATT_BIT.arguments*/
T0* r588try_to_undefine(T588* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r588try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T588*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_BIT.is_deferred*/
void r588add_into(T588* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
T0* r588try_to_undefine_aux(T588* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r588start_position(C));
r588error(X776start_position(a1),((T0*)ms1_321));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r588make(T588* C,T0* a1,T0* a2,T0* a3){
r588make_e_feature(C,a1,a2);
C->_value_mem=a3;
}
/*No:CST_ATT_BIT.nb_errors*/
/*No:CST_ATT_BIT.set_header_comment*/
T0* r588start_position(T588* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r588to_run_feature(T588* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X291run_class(a1);
R=r355at(((T355*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 808: 
break;
default:
R=NULL;
};/*IF*/if ((R)==((void*)(NULL))) {
{T808*n=malloc(sizeof(*n));
*n=M808;
r808make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CST_ATT_BIT.ensure_assertion*/
/*No:CST_ATT_BIT.code_require*/
/*No:CST_ATT_BIT.result_type*/
/*No:CST_ATT_BIT.em1*/
/*No:CST_ATT_BIT.set_clients*/
/*No:CST_ATT_BIT.em2*/
/*No:CST_ATT_BIT.value*/
/*No:CST_ATT_BIT.require_assertion*/
/*No:CST_ATT_BIT.names*/
/*No:CST_ATT_BIT.value_mem*/
int r588can_hide(T588* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_BIT.header_comment*/
int r588is_merge_with(T588* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_BIT.fz_dot*/
/*No:CST_ATT_BIT.first_name*/
/*No:CST_ATT_BIT.clients*/
void r588collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r588error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_BIT.base_class*/
void r588make_e_feature(T588* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:JVM.dos_system*/
T0*oBC861stack_cpc=NULL;
/*No:JVM.fz_system_se*/
/*No:JVM.fz_sys*/
/*No:JVM.C_switch*/
void r228write_main_class(T228* C,T0* a1){
T0* _ca=NULL;
T0* _cp=NULL;
int _idx=0;
_cp=oBC364constant_pool;
_ca=oBC364code_attribute;
r7copy(((T7*)(oBC228out_file_path)),(((T228*)C))->_output_name/*16*/);
r7append(((T7*)(oBC228out_file_path)),((T0*)ms40_364));
r228bfw_connect(C,oBC228out_file,oBC228out_file_path);
r228start_basic(C);
C->_access_flags=16;
C->_this_class_idx=r95idx_class2(((T95*)_cp),(((T228*)C))->_output_name/*16*/);
C->_super_class_idx=(((T95*)((T95*)_cp)))->_idx_java_lang_object/*8*/;
C->_current_frame=NULL;
r506start(((T506*)(oBC364method_info)),9,((T0*)ms114_470),((T0*)ms155_470));
/*[IRF3.2set_args_field*/{T0* _ca=NULL;
_ca=oBC364code_attribute;
/*[IRF3.4opcode_aload_0*/r256opcode(((T256*)_ca),42,1);
/*]*/
r256opcode_putstatic(((T256*)_ca),r228args_field_idx(),-(1));
}/*]*/
_idx=r95idx_methodref3(((T95*)_cp),r228jvm_root_class(),((T0*)ms160_470),((T0*)ms161_470));
r256opcode_invokestatic(((T256*)_ca),_idx,0);
r355jvm_push_default(((T355*)(r832run_class(((T832*)a1)))));
_idx=r95idx_methodref(((T95*)_cp),a1);
r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
r256opcode_system_out(((T256*)_ca));
_idx=r95idx_methodref3(((T95*)_cp),((T0*)ms157_470),((T0*)ms174_470),((T0*)ms161_470));
r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
r256opcode_system_err(((T256*)_ca));
r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
r506finish(((T506*)(oBC364method_info)));
r228finish_class(C);
}
void r228finish_class(T228* C){
/*[IRF3.6put_magic*/{T228* C1=C;
r228b_put_byte_string(C1,((T0*)ms4_228));
}/*]*/
/*[IRF3.4put_minor_version*/r228b_put_u2(C,3);
/*]*/
/*[IRF3.6put_major_version*/{T228* C1=C;
r228b_put_byte_string(C1,((T0*)ms5_228));
}/*]*/
r95write_bytes(((T95*)(oBC364constant_pool)));
r228b_put_u2(C,(((T228*)C))->_access_flags/*24*/);
r228b_put_u2(C,(((T228*)C))->_this_class_idx/*28*/);
r228b_put_u2(C,(((T228*)C))->_super_class_idx/*32*/);
r228b_put_u2(C,0);
r543write_bytes(((T543*)(oBC364field_info)));
r506write_bytes(((T506*)(oBC364method_info)));
r228b_put_u2(C,0);
r994disconnect(((T994*)(oBC228out_file)));
r306print_count(((T306*)(oBC364echo)),((T0*)ms3_228),(((T228*)C))->_b_put_u1_count/*20*/);
}
void r228add_field(T0* a1){
X308add_last(oBC228fields,a1);
}
/*No:JVM.C_expanded_initialize*/
/*No:JVM.prepare_fields*/
/*No:JVM.push_se_argc*/
/*No:JVM.us_generator*/
int r228max_locals(T228* C){
int R=0;
/*IF*/if (((((T228*)C))->_current_frame/*36*/)!=((void*)(NULL))) {
R=X496jvm_max_locals((((T228*)C))->_current_frame/*36*/);
}
else {
R=4;
}
/*FI*/return R;
}
/*No:JVM.access_flags*/
/*No:JVM.unix_system*/
int r228local_offset_of(T228* C,T0* a1){
int R=0;
R=X496jvm_local_variable_offset((((T228*)C))->_current_frame/*36*/,a1);
return R;
}
/*No:JVM.exit_failure_code*/
/*No:JVM.current_frame*/
/*No:JVM.vms_system*/
void r228start_directory(T228* C,T0* a1,T0* a2){
/*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
/*]*/
/*IF*/if ((((T0*)ms17_364))==((void*)(r228system_name(C)))) {
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
 else if ((((T0*)ms19_364))==((void*)(r228system_name(C)))) {
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms15_364))==((void*)(r228system_name(C)))) {
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\72');
}
 else if ((((T0*)ms14_364))==((void*)(r228system_name(C)))) {
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms16_364))==((void*)(r228system_name(C)))) {
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
 else if ((((T0*)ms13_364))==((void*)(r228system_name(C)))) {
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
 else if ((((T0*)ms18_364))==((void*)(r228system_name(C)))) {
r7set_last(((T7*)a1),'\133');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\135');
}
/*FI*/}
T576 oBC364switch_collection=0;
void r228start_new_class(T228* C,T0* a1){
T0* _cp=NULL;
int _type_idx=0;
int _name_idx=0;
_cp=oBC364constant_pool;
r228start_basic(C);
r7copy(((T7*)(oBC228tmp_string)),r355unqualified_name(((T355*)a1)));
r7to_lower(((T7*)(oBC228tmp_string)));
r228start_directory(C,oBC228out_file_path,(((T228*)C))->_output_name/*16*/);
r7append(((T7*)(oBC228out_file_path)),oBC228tmp_string);
r7append(((T7*)(oBC228out_file_path)),((T0*)ms40_364));
r228bfw_connect(C,oBC228out_file,oBC228out_file_path);
C->_access_flags=16;
C->_this_class_idx=r355fully_qualified_constant_pool_index(((T355*)a1));
C->_super_class_idx=(((T95*)((T95*)_cp)))->_idx_jvm_root_class/*12*/;
r506start(((T506*)(oBC364method_info)),9,((T0*)ms202_470),((T0*)ms161_470));
_name_idx=r95idx_uft8(((T95*)_cp),((T0*)ms78_473));
_type_idx=r95idx_eiffel_string_descriptor(((T95*)_cp));
r543add(((T543*)(oBC364field_info)),9,_name_idx,_type_idx);
_name_idx=r95idx_fieldref5(((T95*)_cp),(((T228*)C))->_this_class_idx/*28*/,_name_idx,_type_idx);
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
r256opcode_putstatic(((T256*)(oBC364code_attribute)),_name_idx,-(1));
_name_idx=r95idx_uft8(((T95*)_cp),((T0*)ms79_473));
r543add(((T543*)(oBC364field_info)),9,_name_idx,_type_idx);
_name_idx=r95idx_fieldref5(((T95*)_cp),(((T228*)C))->_this_class_idx/*28*/,_name_idx,_type_idx);
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
r256opcode_putstatic(((T256*)(oBC364code_attribute)),_name_idx,-(1));
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
r506finish(((T506*)(oBC364method_info)));
r355jvm_define_class_invariant(((T355*)a1));
}
/*No:JVM.C_inside_new*/
void r228add_method(T0* a1){
X308add_last(oBC228methods,a1);
}
T0* r228small_eiffel_directory(T228* C){
if (fBC364small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
fBC364small_eiffel_directory=1;
R=r228get_environment_variable(C,((T0*)ms121_470));
/*IF*/if ((R)==((void*)(NULL))) {
R=r7twin(((T7*)(((T0*)ms121_470))));
r7to_upper(((T7*)R));
R=r228get_environment_variable(C,R);
/*IF*/if ((R)!=((void*)(NULL))) {
r7to_upper(((T7*)(((T0*)ms121_470))));
}
/*FI*/}
/*FI*//*IF*/if ((R)==((void*)(NULL))) {
R=((T0*)ms1_364);
}
/*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
while (!((_i)<(0))) {
_slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
r7extend(((T7*)R),'\57');
}
 else if (!((r7last(((T7*)R)))==(_slash))) {
r7extend(((T7*)R),_slash);
}
/*FI*/oBC364small_eiffel_directory=R;}
return oBC364small_eiffel_directory;}
T0*oBC861stack_rf=NULL;
int r228idx_void_target(T0* a1){
int R=0;
T0* _sp=NULL;
r7copy(((T7*)(oBC228tmp_string)),((T0*)ms12_228));
_sp=X662start_position(a1);
/*IF*/if ((_sp)!=((void*)(NULL))) {
r627append_in(((T627*)_sp),oBC228tmp_string);
}
/*FI*/R=r95idx_string(((T95*)(oBC364constant_pool)),oBC228tmp_string);
return R;
}
void r228opcode_check_id_for(T0* a1){
T0* _ca=NULL;
T0* _rc=NULL;
int _idx=0;
int _point2=0;
int _point1=0;
X662compile_to_jvm(a1);
/*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
_ca=oBC364code_attribute;
/*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
/*]*/
_point1=r256opcode_ifnull(((T256*)_ca));
/*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
/*]*/
_rc=r396first(((T396*)((((T355*)((T355*)(X291run_class(X662result_type(a1))))))->_running/*12*/)));
_idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
r256opcode_instanceof(((T256*)_ca),_idx);
_point2=r256opcode_ifne(((T256*)_ca));
_idx=r228idx_bad_target(a1);
r256opcode_system_err_println(((T256*)_ca),_idx);
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
/*]*/
/*[IRF3.4opcode_athrow*/r256opcode(((T256*)_ca),191,0);
/*]*/
r256resolve_u2_branch(_point1);
_idx=r228idx_void_target(a1);
r256opcode_system_err_println(((T256*)_ca),_idx);
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
/*]*/
/*[IRF3.4opcode_athrow*/r256opcode(((T256*)_ca),191,0);
/*]*/
r256resolve_u2_branch(_point2);
r355jvm_check_class_invariant(((T355*)_rc));
}
/*FI*/}
/*No:JVM.amiga_system*/
/*No:JVM.make*/
T0*oBC228fields=NULL;
T0* r228jvm_root_class(void){
if (fBC364jvm_root_class==0){
T0* R=NULL;
fBC364jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
R=(T0*)n;
}
r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
r7extend(((T7*)R),'\57');
r7append(((T7*)R),((T0*)ms112_470));
oBC364jvm_root_class=R;}
return oBC364jvm_root_class;}
/*No:JVM.this_class_idx*/
/*No:JVM.set_args_field*/
void r228b_put_u1(T228* C,char a1){
/*[IRF3.6put_byte*/{T994* C1=((T994*)(oBC228out_file));
char b1=a1;
fputc(b1,C1->_output_stream);}/*]*/
C->_b_put_u1_count=((((T228*)C))->_b_put_u1_count/*20*/)+(1);
}
int r228argument_offset_of(T228* C,T0* a1){
int R=0;
R=X496jvm_argument_offset((((T228*)C))->_current_frame/*36*/,a1);
return R;
}
void r228drop_ith_argument(T228* C,int a1){
int _space=0;
_space=r228push_ith_argument(C,a1);
while (!((_space)==(0))) {
/*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1));
/*]*/
_space=(_space)-(1);
}
}
T0*oBC228methods=NULL;
void r228b_put_u2(T228* C,int a1){
r228b_put_u1(C,((char)((a1)/(256))));
r228b_put_u1(C,((char)((a1)%(256))));
}
void r228prepare_methods(T228* C){
int _i=0;
_i=/*X308*/((int)(((T308*)((T308*)(oBC228methods))))->_upper/*12*/);
while (!((_i)<(0))) {
/*[IRF3.3set_current_frame*/((((T228*)(C)))->_current_frame)=(/*X308*/((T0*)r308item(((T308*)(oBC228methods)),_i)));
/*]*/
X496jvm_define((((T228*)C))->_current_frame/*36*/);
_i=(_i)-(1);
}
}
/*No:JVM.set_current_frame*/
/*No:JVM.put_major_version*/
/*No:JVM.static_expression_count*/
/*No:JVM.fz_invariant*/
/*No:JVM.set_output_name*/
/*No:JVM.windows_system*/
T0*oBC228out_file=NULL;
void r228inside_twin(T228* C,T0* a1){
r228stack_push(C,1015);
/*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
T0* b1=a1;
int b2=(((T228*)C))->_top/*4*/;
((((T308*)C1))->_storage/*4*/)[b2]=(b1);
}/*]*/
X496mapping_jvm(a1);
r228pop(C);
}
int r228push_ith_argument(T228* C,int a1){
int R=0;
T0* _fal=NULL;
T0* _dyn_rf=NULL;
T0* _rf=NULL;
T0* _eal=NULL;
T0* _cpc=NULL;
int _code=0;
_code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
{int z1=_code;

if(((1007<=z1)&&(z1<=1008))){
_cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
_eal=X135arguments(_cpc);
/*IF*/if ((_eal)!=((void*)(NULL))) {
_rf=X135run_feature(_cpc);
_fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
R=r431compile_to_jvm_ith(((T431*)_eal),_fal,a1);
}
/*FI*/}
 else 
if((1009==z1)){
_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_static_rf)),(((T228*)C))->_top/*4*/));
_dyn_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
_fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
/*IF*/if ((_fal)!=((void*)(NULL))) {
R=r31jvm_switch_push_ith(((T31*)_fal),/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_arguments/*20*/),a1);
}
/*FI*/}
 else 
if((1011==z1)){
}
 else 
if((1010==z1)){
_cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
_eal=X135arguments(_cpc);
/*IF*/if ((_eal)!=((void*)(NULL))) {
_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
_fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
R=r431compile_to_jvm_ith(((T431*)_eal),_fal,a1);
}
/*FI*/}
 else 
if((1015==z1)){
/*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
/*]*/
R=1;
}
 else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms10_228);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}}
return R;
}
int r228result_offset(T228* C){
int R=0;
R=X496jvm_result_offset((((T228*)C))->_current_frame/*36*/);
return R;
}
T0*oBC861stack_code=NULL;
/*No:JVM.put_minor_version*/
void r228push_expanded_initialize(T228* C,T0* a1){
r228stack_push(C,1011);
/*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
T0* b1=a1;
int b2=(((T228*)C))->_top/*4*/;
((((T308*)C1))->_storage/*4*/)[b2]=(b1);
}/*]*/
}
T0*oBC861stack_static_rf=NULL;
void r228define_class_invariant_method(T228* C,T0* a1){
T0* _cp=NULL;
T0* _ca=NULL;
_ca=oBC364code_attribute;
_cp=oBC364constant_pool;
r506start(((T506*)(oBC364method_info)),17,((T0*)ms26_470),((T0*)ms161_470));
r228stack_push(C,1009);
r699compile_to_jvm(((T699*)a1),1);
r228pop(C);
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
r506finish(((T506*)(oBC364method_info)));
}
T0* r228get_environment_variable(T228* C,T0* a1){
T0* R=NULL;
void* _p=0;
_p=r7to_external(((T7*)a1));
R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
return R;
}
T0* r228target_position(T228* C){
T0* R=NULL;
int _code=0;
_code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
{int z1=_code;

if(((1007<=z1)&&(z1<=1008))){
R=X135start_position(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/);
}
 else 
if((1015==z1)){
}
 else 
if((1009==z1)){
}
 else 
if((1011==z1)){
}
 else 
if((1010==z1)){
R=X135start_position(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/);
}
}
return R;
}
/*No:JVM.switch_count*/
/*No:JVM.super_class_idx*/
void r228stack_push(T228* C,int a1){
int _new_size=0;
C->_top=((((T228*)C))->_top/*4*/)+(1);
/*IF*/if (((((T228*)C))->_top/*4*/)>((((T226*)((T226*)(oBC861stack_code))))->_upper/*8*/)) {
_new_size=((((T226*)((T226*)(oBC861stack_code))))->_upper/*8*/)*(2);
r226resize(((T226*)(oBC861stack_code)),_new_size);
X308resize(oBC861stack_rf,_new_size);
X32resize(oBC861stack_target,_new_size);
r374resize(((T374*)(oBC861stack_args)),_new_size);
X308resize(oBC861stack_static_rf,_new_size);
r569resize(((T569*)(oBC861stack_cpc)),_new_size);
/*IF*/if ((_new_size)>(2048)) {
r228stack_overflow(C);
}
/*FI*/}
/*FI*//*[IRF3.5put*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a1);
/*]*/
}
/*No:JVM.fz_41*/
void r228bfw_connect(T228* C,T0* a1,T0* a2){
r994connect_to(((T994*)a1),a2);
/*IF*/if (/*(IRF4.7is_connected*/((((T994*)((T994*)a1)))->_path/*0*/)!=(NULL)/*)*/) {
r306put_string(((T306*)(oBC364echo)),((T0*)ms9_364));
r306put_string(((T306*)(oBC364echo)),a2);
r306put_string(((T306*)(oBC364echo)),((T0*)ms10_364));
}
else {
r306w_put_string(((T0*)ms11_364));
r306w_put_string(a2);
r306w_put_string(((T0*)ms242_470));
exit(1);
}
/*FI*/}
/*No:JVM.fz_23*/
T0* r228system_name(T228* C){
if (fBC364system_name==0){
T0* R=NULL;
int _i=0;
fBC364system_name=1;
r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
r7set_last(((T7*)(oBC364tmp_path)),'\57');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\57');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
r7set_last(((T7*)(oBC364tmp_path)),'\134');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\134');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*/}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
r7set_last(((T7*)(oBC364tmp_path)),'\72');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\72');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*/}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
/*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
r7set_last(((T7*)(oBC364tmp_path)),'\135');
r7remove_last(((T7*)(oBC364tmp_path)),1);
r7extend(((T7*)(oBC364tmp_path)),'\56');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
r7extend(((T7*)(oBC364tmp_path)),'\135');
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*/}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
}
/*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
r306w_put_string(((T0*)ms20_364));
r306w_put_string(((T0*)ms127_470));
r306w_put_string(((T0*)ms21_364));
r306w_put_string(r228small_eiffel_directory(C));
r306w_put_string(((T0*)ms242_470));
exit(1);
}
/*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
R=oBC762last_string;
_i=r52index_of(((T52*)(oBC364system_list)),R);
r675disconnect(((T675*)(oBC364tmp_file_read)));
/*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
r306w_put_string(((T0*)ms22_364));
r306w_put_string(oBC364tmp_path);
r306w_put_string(((T0*)ms23_364));
_i=1;
while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
r306w_put_character('\n');
_i=(_i)+(1);
}
}
else {
R=r52item(((T52*)(oBC364system_list)),_i);
r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
r306put_string(((T306*)(oBC364echo)),R);
r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
}
/*FI*/oBC364system_name=R;}
return oBC364system_name;}
/*No:JVM.fz_42*/
void r228b_put_byte_string(T228* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
r228b_put_u1(C,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
}
void r228drop_target(T228* C){
T0* _e=NULL;
T0* _cpc=NULL;
int _code=0;
_code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
{int z1=_code;

if(((1007<=z1)&&(z1<=1008))){
_cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
_e=_cpc;
if(NULL!=(_e))switch(((T0*)_e)->id) {
case 436: case 180: case 767: case 72: case 990: case 420: case 446: case 715: case 796: case 358: case 708: case 487: case 492: case 915: case 849: case 367: case 260: case 805: case 940: case 936: case 342: case 23: case 886: case 664: case 534: case 557: case 414: case 460: case 453: case 520: case 253: case 574: case 999: case 517: case 932: case 890: case 112: case 57: case 655: case 313: case 278: case 121: case 760: case 90: case 529: case 39: case 873: 
break;
default:
_e=NULL;
};/*IF*/if (((_e)==((void*)(NULL)))||(!(X662can_be_dropped(_e)))) {
X662compile_to_jvm(X135target(_cpc));
/*IF*/if ((X291jvm_stack_space(/*X496*/((T0*)(((T832*)((T832*)(X135run_feature(_cpc)))))->_current_type/*4*/)))==(1)) {
/*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1));
/*]*/
}
else {
/*[IRF3.4opcode_pop2*/r256opcode(((T256*)(oBC364code_attribute)),88,-(2));
/*]*/
}
/*FI*/}
/*FI*/}
 else 
if((1009==z1)){
}
 else 
if((1011==z1)){
}
 else 
if((1010==z1)){
}
 else 
if((1015==z1)){
}
 else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_228);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}}
}
void r228inside_new(T228* C,T0* a1,T0* a2){
r228stack_push(C,1010);
/*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
T0* b1=a1;
int b2=(((T228*)C))->_top/*4*/;
((((T308*)C1))->_storage/*4*/)[b2]=(b1);
}/*]*/
/*[IRF3.5put*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a2);
/*]*/
X496mapping_jvm(a1);
r228pop(C);
}
/*No:JVM.fz_b0*/
void r228start_basic(T228* C){
/*X308*//*[IRF3.3clear*/((((T308*)(((T308*)(oBC228fields)))))->_upper)=(-(1));
/*]*/
/*X308*//*[IRF3.3clear*/((((T308*)(((T308*)(oBC228methods)))))->_upper)=(-(1));
/*]*/
r95clear(((T95*)(oBC364constant_pool)));
r543clear(((T543*)(oBC364field_info)));
r506clear(((T506*)(oBC364method_info)));
C->_b_put_u1_count=0;
}
/*No:JVM.output_name*/
void r228incr_static_expression_count(T228* C){
C->_static_expression_count=((((T228*)C))->_static_expression_count/*0*/)+(1);
}
T0*oBC228tmp_string=NULL;
/*No:JVM.args_field*/
/*No:JVM.fz_25*/
/*No:JVM.us_generating_type*/
/*No:JVM.fz_se*/
void r228push_target_as_target(T228* C){
int _code=0;
_code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
{int z1=_code;

if((1007==z1)){
X662compile_target_to_jvm(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
}
 else 
if((1008==z1)){
r228opcode_check_id_for(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
}
 else 
if((1009==z1)){
/*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
/*]*/
}
 else 
if((1011==z1)){
/*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
/*]*/
}
 else 
if((1010==z1)){
/*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
/*]*/
}
 else 
if((1015==z1)){
/*[IRF3.4opcode_aload_1*/r256opcode(((T256*)(oBC364code_attribute)),43,1);
/*]*/
}
 else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_228);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}}
}
void r228push_check(T228* C,T0* a1){
r228stack_push(C,1008);
/*[IRF3.5put*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a1);
/*]*/
}
/*No:JVM.os2_system*/
void r228push_target(T228* C){
int _code=0;
_code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
{int z1=_code;

if((1007==z1)){
X662compile_to_jvm(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
}
 else 
if((1008==z1)){
r228opcode_check_id_for(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
}
 else 
if((1009==z1)){
/*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
/*]*/
}
 else 
if((1011==z1)){
/*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
/*]*/
}
 else 
if((1010==z1)){
/*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
/*]*/
}
 else 
if((1015==z1)){
/*[IRF3.4opcode_aload_1*/r256opcode(((T256*)(oBC364code_attribute)),43,1);
/*]*/
}
 else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_228);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}}
}
void r228pop(T228* C){
C->_top=((((T228*)C))->_top/*4*/)-(1);
}
/*No:JVM.class_suffix*/
T0*oBC861stack_args=NULL;
/*No:JVM.C_check_id*/
T0*oBC364manifest_string_pool=NULL;
/*No:JVM.top*/
/*No:JVM.fz_74*/
/*No:JVM.b_put_u1_count*/
/*No:JVM.fz_28*/
T0*oBC228out_file_path=NULL;
int r228args_field_idx(void){
int R=0;
T0* _cp=NULL;
_cp=oBC364constant_pool;
R=r95idx_fieldref3(((T95*)_cp),r228jvm_root_class(),((T0*)ms200_470),((T0*)ms201_470));
return R;
}
void r228write_jvm_root_class(T228* C){
T0* _cp=NULL;
int _idx=0;
_cp=oBC364constant_pool;
r228start_directory(C,oBC228out_file_path,(((T228*)C))->_output_name/*16*/);
r7append(((T7*)(oBC228out_file_path)),((T0*)ms112_470));
r7append(((T7*)(oBC228out_file_path)),((T0*)ms40_364));
r228bfw_connect(C,oBC228out_file,oBC228out_file_path);
r228start_basic(C);
C->_access_flags=1025;
C->_this_class_idx=r95idx_class2(((T95*)_cp),r228jvm_root_class());
C->_super_class_idx=(((T95*)((T95*)_cp)))->_idx_java_lang_object/*8*/;
/*[IRF3.2args_field*/{T0* _cp=NULL;
int _jaos_idx=0;
int _args_idx=0;
_cp=oBC364constant_pool;
_args_idx=r95idx_uft8(((T95*)_cp),((T0*)ms200_470));
_jaos_idx=r95idx_uft8(((T95*)_cp),((T0*)ms201_470));
r543add(((T543*)(oBC364field_info)),9,_args_idx,_jaos_idx);
}/*]*/
/*[IRF3.2jvm_define_fields*/{int _i=0;
int _string_idx=0;
int _name_idx=0;
T0* _ms=NULL;
T0* _cp=NULL;
/*IF*/if (!(r269empty(((T269*)(oBC340ms_list))))) {
_cp=oBC364constant_pool;
_string_idx=r95idx_eiffel_string_descriptor(((T95*)_cp));
_i=(((T269*)((T269*)(oBC340ms_list))))->_upper/*12*/;
while (!((_i)<(0))) {
_ms=/*(IRF4.6item*/((((T269*)((T269*)(oBC340ms_list))))->_storage/*4*/)[_i]/*)*/;
/*IF*/if (r340not_dummy(_ms)) {
_name_idx=r95idx_uft8(((T95*)_cp),(((T805*)((T805*)_ms)))->_mapping_c/*32*/);
r543add(((T543*)(oBC364field_info)),9,_name_idx,_string_idx);
}
/*FI*/_i=(_i)-(1);
}
}
/*FI*/}/*]*/
r916jvm_define_fields(((T916*)(oBC364once_routine_pool)));
/*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
r543add(((T543*)(oBC364field_info)),9,r95idx_uft8(((T95*)_cp),((T0*)ms184_470)),r95idx_uft8(((T95*)_cp),((T0*)ms173_470)));
}
/*FI*/C->_current_frame=NULL;
r506start(((T506*)(oBC364method_info)),9,((T0*)ms160_470),((T0*)ms161_470));
/*[IRF3.2jvm_initialize_fields*/{int _i=0;
T0* _ms=NULL;
T0* _ca=NULL;
T0* _cp=NULL;
/*IF*/if (!(r269empty(((T269*)(oBC340ms_list))))) {
_cp=oBC364constant_pool;
_ca=oBC364code_attribute;
_i=(((T269*)((T269*)(oBC340ms_list))))->_upper/*12*/;
while (!((_i)<(0))) {
_ms=/*(IRF4.6item*/((((T269*)((T269*)(oBC340ms_list))))->_storage/*4*/)[_i]/*)*/;
/*IF*/if (r340not_dummy(_ms)) {
r256opcode_push_manifest_string(((T256*)_ca),(((T805*)((T805*)_ms)))->_to_string/*16*/);
r256opcode_putstatic(((T256*)_ca),r805fieldref_idx(((T805*)_ms)),-(1));
}
/*FI*/_i=(_i)-(1);
}
}
/*FI*/}/*]*/
/*[IRF3.2jvm_initialize_fields*/{int _i=0;
/*IF*/if ((/*(IRF4.6count*/((((T226*)((T226*)(oBC916flag_list))))->_upper/*8*/)+(1)/*)*/)>(0)) {
_i=(((T226*)((T226*)(oBC916flag_list))))->_upper/*8*/;
while (!((_i)<(0))) {
/*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
/*]*/
r256opcode_putstatic(((T256*)(oBC364code_attribute)),/*(IRF4.6item*/((((T226*)((T226*)(oBC916flag_list))))->_storage/*0*/)[_i]/*)*/,-(1));
_i=(_i)-(1);
}
}
/*FI*/}/*]*/
/*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
_idx=r95idx_fieldref3(((T95*)_cp),r228jvm_root_class(),((T0*)ms184_470),((T0*)ms173_470));
/*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
/*]*/
r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx,-(1));
}
/*FI*//*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
r506finish(((T506*)(oBC364method_info)));
/*[IRF3.2jvm_define*/{T0* _up_rf=NULL;
int _switch=0;
int _total=0;
int _count2=0;
int _count1=0;
T0* _dictionary2=NULL;
/*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
_count1=1;
while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
_dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
_count2=1;
while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
_up_rf=r199item(((T199*)_dictionary2),_count2);
/*[IRF3.3set_current_frame*/((((T228*)(((T228*)(oBC364jvm)))))->_current_frame)=(_up_rf);
/*]*/
r798jvm_define(_up_rf);
_total=(_total)+(1);
_count2=(_count2)+(1);
}
_count1=(_count1)+(1);
}
}
/*FI*/r306print_count(((T306*)(oBC364echo)),((T0*)ms2_576),_total);
}/*]*/
r228finish_class(C);
}
/*No:JVM.fz_75*/
void r228push_se_argv(T228* C){
T0* _arg0=NULL;
T0* _ca=NULL;
int _i=0;
int _point2=0;
int _point1=0;
_ca=oBC364code_attribute;
r256opcode_getstatic(((T256*)_ca),r228args_field_idx(),1);
_i=r228push_ith_argument(C,1);
/*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
/*]*/
_point1=r256opcode_ifeq(((T256*)_ca));
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
/*]*/
/*[IRF3.4opcode_isub*/r256opcode(((T256*)_ca),100,-(1));
/*]*/
/*[IRF3.4opcode_aaload*/r256opcode(((T256*)_ca),50,-(1));
/*]*/
_point2=r256opcode_goto(((T256*)_ca));
r256resolve_u2_branch(_point1);
/*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
/*]*/
/*IF*/if (((((T228*)C))->_output_name/*16*/)!=((void*)(NULL))) {
_arg0=(((T228*)C))->_output_name/*16*/;
}
else {
_arg0=(((T590*)((T590*)(oBC364run_control))))->_root_class/*8*/;
}
/*FI*/_i=r95idx_string(((T95*)(oBC364constant_pool)),_arg0);
r256opcode_ldc(((T256*)_ca),_i);
r256resolve_u2_branch(_point2);
r256opcode_java_string2eiffel_string(((T256*)_ca));
}
T0*oBC861stack_target=NULL;
/*No:JVM.fz_29*/
void r228mkdir(T228* C,T0* a1){
/*IF*/if (((((T228*)C))->_output_name/*16*/)==((void*)(NULL))) {
C->_output_name=(((T451*)((T451*)(X291base_class_name(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/))))))->_to_string/*0*/;
C->_output_name=r7twin(((T7*)((((T228*)C))->_output_name/*16*/)));
r7to_lower(((T7*)((((T228*)C))->_output_name/*16*/)));
}
/*FI*//*IF*/if (r7has_suffix(((T7*)((((T228*)C))->_output_name/*16*/)),((T0*)ms40_364))) {
/*[IRF3.6remove_suffix*/{T7* C1=((T7*)((((T228*)C))->_output_name/*16*/));
T0* b1=((T0*)ms40_364);
r7remove_last(C1,(((T7*)((T7*)b1)))->_count/*4*/);
}/*]*/
}
/*FI*/r306put_string(((T306*)(oBC364echo)),((T0*)ms1_228));
r306put_string(((T306*)(oBC364echo)),(((T228*)C))->_output_name/*16*/);
r306put_string(((T306*)(oBC364echo)),((T0*)ms2_228));
r670mkdir((((T228*)C))->_output_name/*16*/);
}
/*No:JVM.fz_76*/
void r228push_direct(T228* C,T0* a1){
r228stack_push(C,1007);
/*[IRF3.5put*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a1);
/*]*/
C->_direct_call_count=((((T228*)C))->_direct_call_count/*8*/)+(1);
}
/*No:JVM.macintosh_system*/
/*No:JVM.fz_jvm_root*/
/*No:JVM.fz_58*/
/*No:JVM.stack_first_size*/
/*No:JVM.C_direct_call*/
/*No:JVM.fz_main*/
/*No:JVM.fatal_error*/
/*No:JVM.direct_call_count*/
int r228push_arguments(T228* C){
int R=0;
T0* _fal=NULL;
T0* _dyn_rf=NULL;
T0* _rf=NULL;
T0* _eal=NULL;
T0* _cpc=NULL;
int _code=0;
_code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
{int z1=_code;

if(((1007<=z1)&&(z1<=1008))){
_cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
_eal=X135arguments(_cpc);
/*IF*/if ((_eal)!=((void*)(NULL))) {
_rf=X135run_feature(_cpc);
_fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
R=r431compile_to_jvm(((T431*)_eal),_fal);
}
/*FI*/}
 else 
if((1009==z1)){
_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_static_rf)),(((T228*)C))->_top/*4*/));
_dyn_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
_fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
/*IF*/if ((_fal)!=((void*)(NULL))) {
R=r31jvm_switch_push(((T31*)_fal),/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_arguments/*20*/));
}
/*FI*/}
 else 
if((1011==z1)){
}
 else 
if((1010==z1)){
_cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
_eal=X135arguments(_cpc);
/*IF*/if ((_eal)!=((void*)(NULL))) {
_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
_fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
R=r431compile_to_jvm(((T431*)_eal),_fal);
}
/*FI*/}
 else 
if((1015==z1)){
R=r228push_ith_argument(C,1);
}
 else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_228);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}}
return R;
}
int r228idx_bad_target(T0* a1){
int R=0;
T0* _sp=NULL;
r7copy(((T7*)(oBC228tmp_string)),((T0*)ms11_228));
_sp=X662start_position(a1);
/*IF*/if ((_sp)!=((void*)(NULL))) {
r627append_in(((T627*)_sp),oBC228tmp_string);
}
/*FI*/R=r95idx_string(((T95*)(oBC364constant_pool)),oBC228tmp_string);
return R;
}
void r228push_switch(T228* C,T0* a1,T0* a2){
r228stack_push(C,1009);
/*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
T0* b1=a1;
int b2=(((T228*)C))->_top/*4*/;
((((T308*)C1))->_storage/*4*/)[b2]=(b1);
}/*]*/
/*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_static_rf));
T0* b1=a2;
int b2=(((T228*)C))->_top/*4*/;
((((T308*)C1))->_storage/*4*/)[b2]=(b1);
}/*]*/
}
/*No:JVM.C_inside_twin*/
void r228b_put_cpc(T228* C,T0* a1){
T0* _rf=NULL;
int _switch=0;
T0* _running=NULL;
T0* _target_type=NULL;
T0* _target=NULL;
_target=X135target(a1);
_target_type=X291run_type(X662result_type(_target));
/*IF*/if (X291is_expanded(_target_type)) {
r228push_direct(C,a1);
X496mapping_jvm(X135run_feature(a1));
r228pop(C);
}
 else if (X662is_current(_target)) {
r228push_direct(C,a1);
X496mapping_jvm(X135run_feature(a1));
r228pop(C);
}
 else if (X662is_manifest_string(_target)) {
r228push_direct(C,a1);
X496mapping_jvm(X135run_feature(a1));
r228pop(C);
}
else {
_running=(((T355*)((T355*)(X291run_class(_target_type)))))->_running/*12*/;
/*IF*/if ((r396count(((T396*)_running)))==(1)) {
r228push_check(C,a1);
_rf=X135run_feature(a1);
_rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),_rf);
X496mapping_jvm(_rf);
r228pop(C);
}
else {
C->_switch_count=((((T228*)C))->_switch_count/*12*/)+(1);
r798jvm_mapping(a1);
}
/*FI*/}
/*FI*/}
void r228stack_overflow(T228* C){
T0* _rtma=NULL;
T0* _rtm=NULL;
T0* _rf=NULL;
int _i=0;
/*[IRF3.6append*/{T0* b1=((T0*)ms1_861);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
_i=((((T228*)C))->_top/*4*/)-(1);
while (!((_i)<(0))) {
_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),_i));
/*IF*/if ((_rf)!=((void*)(NULL))) {
r683add_position(X496start_position(_rf));
_rtm=X291run_time_mark(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
/*IF*/if ((_rtma)==((void*)(NULL))) {
{T927*n=malloc(sizeof(*n));
*n=M927;
r927with_capacity(n,(((T228*)C))->_top/*4*/);
_rtma=(T0*)n;
}
r927add_last(((T927*)_rtma),_rtm);
/*[IRF3.6append*/{T0* b1=_rtm;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
 else if (r927fast_has(((T927*)_rtma),_rtm)) {
}
else {
r927add_last(((T927*)_rtma),_rtm);
/*[IRF3.6append*/{T0* b1=((T0*)ms2_861);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=_rtm;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
r683fatal_error(((T683*)(oBC364eh)),((T0*)ms3_861));
}
/*No:JVM.put_magic*/
T0*oBC431isa_dca_inline_memory=NULL;
int r431isa_dca_inline(T431* C,T0* a1,T0* a2){
int R=0;
int _r=0;
int _i=0;
T0* _e=NULL;
T0* _args=NULL;
T0* _relay_args=NULL;
_relay_args=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
_args=/*X496*/((T0*)(((T832*)((T832*)a2)))->_arguments/*20*/);
R=1;
_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
r353force(((T353*)(oBC431isa_dca_inline_memory)),0,_i);
/*[IRF3.6clear_all*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
int __value=0;
/*[IRF3.6set_all_with*/{T353* C2=C1;
int c1=__value;
r593set_all_with((((T353*)C2))->_storage/*0*/,c1,((((T353*)C2))->_upper/*8*/)-((((T353*)C2))->_lower/*12*/));
}/*]*/
}/*]*/
while (!((!(R))||((_i)==(0)))) {
_e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
_r=X662isa_dca_inline_argument(_e);
{int z1=_r;

if((0==z1)){
R=0;
}
 else 
if((-1==z1)){
/*IF*/if (X291is_expanded(r31type(((T31*)_args),_i))) {
R=X291is_expanded(X662result_type(_e));
}
else {
R=X291is_reference(X662result_type(_e));
}
/*FI*/}
 else{/*[IRF3.6put*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
int b1=1;
int b2=_r;
((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
}/*]*/
/*IF*/if (X291is_reference(r31type(((T31*)_relay_args),_r))) {
/*IF*/if (X291is_reference(r31type(((T31*)_args),_i))) {
R=X291is_reference(X662result_type(_e));
}
else {
R=0;
}
/*FI*/}
 else if (X291is_expanded(r31type(((T31*)_args),_i))) {
R=X291is_expanded(X662result_type(_e));
}
else {
R=0;
}
/*FI*/}}
_i=(_i)-(1);
}
/*IF*/if (R) {
_i=X496arg_count(a1);
while (!((!(R))||((_i)==(0)))) {
R=r353item(((T353*)(oBC431isa_dca_inline_memory)),_i);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
int r431is_like_argument(T431* C,T0* a1,T0* a2,T0* a3){
int R=0;
T0* _ot=NULL;
T0* _tla=NULL;
_tla=a3;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
R=1;
_ot=X662result_type(r431expression(C,/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*20*//*)*/));
/*IF*/if (!(X291is_a(X291run_type(a2),X291run_type(_ot)))) {
r683add_position(X662start_position(a1));
r431error(X291start_position(a3),((T0*)ms12_431));
}
/*FI*/}
/*FI*/return R;
}
int r431compile_to_jvm_ith(T431* C,T0* a1,int a2){
int R=0;
T0* _ft=NULL;
T0* _e=NULL;
_e=r431expression(C,a2);
_ft=X291run_type(r31type(((T31*)a1),a2));
R=X662compile_to_jvm_into(_e,_ft);
return R;
}
void r431match_with(T431* C,T0* a1){
T0* _ft=NULL;
T0* _at=NULL;
T0* _e=NULL;
int _i=0;
T0* _fal=NULL;
_fal=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
/*IF*/if ((_fal)==((void*)(NULL))) {
r683add_position(X496start_position(a1));
r431error(r431start_position(C),((T0*)ms14_431));
}
/*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(r431count(C)))) {
r683add_position((((T31*)((T31*)_fal)))->_start_position/*4*/);
r431error(r431start_position(C),((T0*)ms14_431));
}
/*FI*/_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
_at=X662result_type(_e);
_ft=r31type(((T31*)_fal),_i);
/*IF*/if (X662is_void(_e)) {
/*IF*/if (X291is_expanded(_ft)) {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms2_431));
}
/*FI*/}
 else if (X291is_like_current(_ft)) {
/*IF*/if (X662is_current(_e)) {
}
 else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
/*IF*/if (X291is_expanded(X291run_type(_at))) {
}
 else if (X291is_a(X291run_type(_ft),X291run_type(_at))) {
}
else {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms13_431));
}
/*FI*/}
else {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms13_431));
}
/*FI*/}
 else if (X291is_like_feature(_ft)) {
/*IF*/if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
}
else {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms3_431));
}
/*FI*/}
 else if (r431is_like_argument(C,_e,_at,_ft)) {
}
 else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
}
else {
r683print_as_error(((T683*)(oBC364eh)));
r683add_position(X291start_position(_ft));
r431error(X662start_position(_e),((T0*)ms4_431));
}
/*FI*/_at=X291run_type(_at);
_ft=X291run_type(_ft);
/*IF*/if (X291is_expanded(_ft)) {
/*IF*/if (X291is_expanded(_at)) {
}
else {
X291used_as_reference(_ft);
}
/*FI*/}
 else if (X291is_expanded(_at)) {
X291used_as_reference(_at);
}
/*FI*/_i=(_i)-(1);
}
}
/*No:EFFECTIVE_ARG_LIST.make*/
/*No:EFFECTIVE_ARG_LIST.nb_errors*/
T0* r431expression(T431* C,int a1){
T0* R=NULL;
R=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),a1));
return R;
}
T0* r431start_position(T431* C){
T0* R=NULL;
R=X662start_position(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),1)));
return R;
}
void r431compile_to_jvm_old(T431* C){
int _i=0;
/*IF*/if (((((T431*)C))->_list/*0*/)!=((void*)(NULL))) {
_i=1;
while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/)))) {
X662compile_to_jvm_old(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i)));
_i=(_i)+(1);
}
}
/*FI*/}
T0* r431to_runnable(T431* C,T0* a1){
T0* R=NULL;
T0* _e2=NULL;
T0* _e1=NULL;
int _i=0;
/*IF*/if (((((T431*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
while (!((_i)==(0))) {
_e1=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
_e2=X662to_runnable(_e1,(((T431*)C))->_current_type/*4*/);
/*IF*/if ((_e2)==((void*)(NULL))) {
r431error(X662start_position(_e1),((T0*)ms5_431));
}
 else if ((_e1)!=((void*)(_e2))) {
/*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T431*)C))->_list/*0*/));
T0* b1=_e2;
int b2=_i;
((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)-(1);
}
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
 else if ((X291run_class(a1))==((void*)(r431run_class(C)))) {
R=(T0*)C;
}
else {
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(X96twin((((T431*)C))->_list/*0*/));
/*]*/
R=(T0*)n;
}
R=r431to_runnable(((T431*)R),a1);
}
/*FI*/return R;
}
int r431is_static(T431* C){
int R=0;
int _i=0;
R=1;
_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
while (!((!(R))||((_i)==(0)))) {
R=X662is_static(r431expression(C,_i));
_i=(_i)-(1);
}
return R;
}
/*No:EFFECTIVE_ARG_LIST.em1*/
/*No:EFFECTIVE_ARG_LIST.list*/
/*No:EFFECTIVE_ARG_LIST.em2*/
/*No:EFFECTIVE_ARG_LIST.current_type*/
T0* r431run_class(T431* C){
T0* R=NULL;
R=X291run_class((((T431*)C))->_current_type/*4*/);
return R;
}
int r431compile_to_jvm(T431* C,T0* a1){
int R=0;
int _up=0;
int _i=0;
_i=1;
_up=r431count(C);
while (!((_i)>(_up))) {
R=(R)+(r431compile_to_jvm_ith(C,a1,_i));
_i=(_i)+(1);
}
return R;
}
int r431is_pre_computable(T431* C){
int R=0;
int _i=0;
_i=r431count(C);
R=1;
while (!((!(R))||((_i)==(0)))) {
R=X662is_pre_computable(r431expression(C,_i));
_i=(_i)-(1);
}
return R;
}
int r431use_current(T431* C){
int R=0;
int _i=0;
_i=1;
while (!(((_i)>(r431count(C)))||(R))) {
R=X662use_current(r431expression(C,_i));
_i=(_i)+(1);
}
return R;
}
void r431error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int r431count(T431* C){
int R=0;
R=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
return R;
}
T0* r431first(T431* C){
T0* R=NULL;
R=X96first((((T431*)C))->_list/*0*/);
return R;
}
void r431afd_check(T431* C){
int _i=0;
_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
while (!((_i)==(0))) {
X662afd_check(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i)));
_i=(_i)-(1);
}
}
T0* r873add_comment(T873* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r873to_integer(T873* C){
int R=0;
r873error((((T873*)C))->_start_position/*16*/,((T0*)ms69_470));
return R;
}
int r873is_a(T873* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T873*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T873*)C))->_start_position/*16*/);
r873error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
void r873name_clash(T873* C){
T0* _rc=NULL;
T0* _rf=NULL;
/*IF*/if (r605has_feature(((T605*)(r873base_class_written(C))),(((T873*)C))->_to_string/*12*/)) {
_rc=X291run_class((((T873*)C))->_current_type/*8*/);
_rf=r355get_feature_with(((T355*)_rc),(((T873*)C))->_to_string/*12*/);
/*IF*/if ((_rf)!=((void*)(NULL))) {
r683add_position(X496start_position(_rf));
}
/*FI*/r873error((((T873*)C))->_start_position/*16*/,((T0*)ms1_873));
}
/*FI*/}
/*No:ARGUMENT_NAME1.is_current*/
int r873jvm_branch_if_false(T873* C){
int R=0;
r873compile_to_jvm(C);
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
T0* r873written_in(T873* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T873*)C))->_start_position/*16*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME1.static_value*/

