/*
-- 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:EXTERNAL_FUNCTION.arguments*/
T0* r679try_to_undefine(T679* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r679try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T679*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:EXTERNAL_FUNCTION.is_deferred*/
/*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
T0* r679runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r679error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:EXTERNAL_FUNCTION.rescue_compound*/
void r679add_into(T679* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)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*)((((T679*)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);
}
}
/*No:EXTERNAL_FUNCTION.end_comment*/
T0* r679try_to_undefine_aux(T679* C,T0* a1,T0* a2){
T0* R=NULL;
{T649*n=malloc(sizeof(*n));
*n=M649;
r649from_effective(n,a1,(((T679*)C))->_arguments/*24*/,(((T679*)C))->_result_type/*12*/,(((T679*)C))->_require_assertion/*32*/,(((T679*)C))->_ensure_assertion/*36*/,a2);
R=(T0*)n;
}
return R;
}
void r679make(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r679make_routine(C,a1,a2,a4,a5,a6);
C->_result_type=a3;
r679make_external_routine(C,a7,a8);
}
/*No:EXTERNAL_FUNCTION.nb_errors*/
/*No:EXTERNAL_FUNCTION.native*/
void r679make_routine(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r679make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void r679set_header_comment(T679* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r679start_position(T679* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r679to_run_feature(T679* C,T0* a1,T0* a2){
T0* R=NULL;
r679check_obsolete(C);
{T892*n=malloc(sizeof(*n));
*n=M892;
r892make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:EXTERNAL_FUNCTION.alias_string*/
/*No:EXTERNAL_FUNCTION.ensure_assertion*/
/*No:EXTERNAL_FUNCTION.code_require*/
T0* r679run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
_r=r679runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r679run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r679runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T567*n=malloc(sizeof(*n));
*n=M567;
/*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:EXTERNAL_FUNCTION.result_type*/
/*No:EXTERNAL_FUNCTION.fz_03*/
/*No:EXTERNAL_FUNCTION.em1*/
/*No:EXTERNAL_FUNCTION.obsolete_mark*/
/*No:EXTERNAL_FUNCTION.set_clients*/
/*No:EXTERNAL_FUNCTION.em2*/
/*No:EXTERNAL_FUNCTION.names*/
/*No:EXTERNAL_FUNCTION.require_assertion*/
/*No:EXTERNAL_FUNCTION.code_ensure*/
void r679set_rescue_compound(T679* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r679error(r679start_position(C),((T0*)ms6_368));
}
/*FI*/C->_rescue_compound=a1;
}
void r679make_external_routine(T679* C,T0* a1,T0* a2){
C->_native=a1;
C->_alias_string=a2;
}
int r679can_hide(T679* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T679*)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*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r679start_position(C));
/*[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*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_FUNCTION.header_comment*/
int r679is_merge_with(T679* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_FUNCTION.fz_dot*/
/*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
/*No:EXTERNAL_FUNCTION.first_name*/
/*No:EXTERNAL_FUNCTION.clients*/
int r679use_current(T679* C){
int R=0;
R=X845use_current((((T679*)C))->_native/*48*/,(T0*)C);
return R;
}
void r679collect_for(T679* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T679*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T679*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r679error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:EXTERNAL_FUNCTION.base_class*/
void r679make_e_feature(T679* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r679check_obsolete(T679* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T679*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r679warning(r679start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r679warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
void r145make(T145* C,T0* a1,T0* a2){
C->_comment=a2;
C->_expression=a1;
}
/*No:LOOP_VARIANT_1.nb_errors*/
/*No:LOOP_VARIANT_1.expression*/
T0* r145start_position(T145* C){
T0* R=NULL;
R=X662start_position((((T145*)C))->_expression/*8*/);
return R;
}
/*No:LOOP_VARIANT_1.comment*/
T0* r145to_runnable(T145* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T145*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
_e=X662to_runnable((((T145*)C))->_expression/*8*/,a1);
/*IF*/if ((_e)==((void*)(NULL))) {
r145error(r145start_position(C),((T0*)ms1_856));
}
else {
C->_expression=_e;
/*IF*/if (!(X291is_integer(X662result_type((((T145*)C))->_expression/*8*/)))) {
r145error(X662start_position((((T145*)C))->_expression/*8*/),((T0*)ms2_856));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r145twin(C);
/*[IRF3.3set_current_type*/((((T145*)(((T145*)R))))->_current_type)=(NULL);
/*]*/
R=r145to_runnable(((T145*)R),a1);
}
/*FI*/return R;
}
T0* r145twin(T145* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T145*)R)=*C;
return R;
}
/*No:LOOP_VARIANT_1.set_current_type*/
/*No:LOOP_VARIANT_1.current_type*/
int r145use_current(T145* C){
int R=0;
R=X662use_current((((T145*)C))->_expression/*8*/);
return R;
}
void r145error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r145afd_check(T145* C){
X662afd_check((((T145*)C))->_expression/*8*/);
}
/*No:RUN_FEATURE_8.arguments*/
/*No:RUN_FEATURE_8.us_character_bits*/
/*No:RUN_FEATURE_8.ucs_true*/
/*No:RUN_FEATURE_8.us_generator*/
void r892routine_mapping_jvm(T892* C){
int _stack_level=0;
int _idx=0;
T0* _ct=NULL;
T0* _rt=NULL;
_ct=(((T892*)C))->_current_type/*4*/;
r228push_target_as_target(((T228*)(oBC364jvm)));
_stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
_rt=(((T892*)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_8.actuals_clients*/
T0* r892jvm_descriptor(T892* C){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
/*]*/
/*[IRF3.4update_tmp_jvm_descriptor*/r892routine_update_tmp_jvm_descriptor(C);
/*]*/
R=oBC496tmp_jvm_descriptor;
return R;
}
void r892method_info_start(T892* C){
int _flags=0;
_flags=X291jvm_method_flags((((T892*)C))->_current_type/*4*/);
r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T892*)C))->_name/*16*/),r892jvm_descriptor(C));
}
/*No:RUN_FEATURE_8.us_integer_bits*/
/*No:RUN_FEATURE_8.ucs_in_computation*/
void r892routine_update_tmp_jvm_descriptor(T892* C){
T0* _rt=NULL;
T0* _ct=NULL;
r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
_ct=(((T892*)C))->_current_type/*4*/;
X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
/*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
r31jvm_descriptor_in(((T31*)((((T892*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
}
/*FI*/_rt=(((T892*)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 r892make(T892* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T355*)((T355*)(r892run_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);
r892initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
void r892std_compute_use_current(T892* C){
/*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
/*IF*/if (r567use_current(((T567*)((((T892*)C))->_require_assertion/*28*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T892*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
/*IF*/if (r592use_current(((T592*)((((T892*)C))->_routine_body/*32*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
/*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (r633use_current(((T633*)((((T892*)C))->_ensure_assertion/*36*/)))) {
C->_use_current_state=1004;
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
C->_use_current_state=1003;
}
/*FI*/}
/*No:RUN_FEATURE_8.name*/
int fBC364type_string=0;
T0*oBC364type_string=NULL;
T0* r892type_string(void){
if (fBC364type_string==0){
T0* R=NULL;
fBC364type_string=1;
{T491*n=malloc(sizeof(*n));
*n=M491;
r491make(n,NULL);
R=(T0*)n;
}
oBC364type_string=R;}
return oBC364type_string;}
/*No:RUN_FEATURE_8.fz_iinaiv*/
int r892arg_count(T892* C){
int R=0;
/*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
void r892routine_afd_check(T892* C){
/*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567afd_check(((T567*)((((T892*)C))->_require_assertion/*28*/)));
}
/*FI*//*IF*/if (((((T892*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T892*)C))->_routine_body/*32*/)));
}
/*FI*//*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633afd_check(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*No:RUN_FEATURE_8.local_vars*/
void r892jvm_opening(T892* C){
r892method_info_start(C);
r892jvm_define_opening(C);
}
/*No:RUN_FEATURE_8.base_feature*/
int r892integer_value(T892* C,T0* a1){
int R=0;
T0* _n=NULL;
_n=X776to_string((((T892*)C))->_name/*16*/);
/*IF*/if ((((T0*)ms81_473))==((void*)(_n))) {
R= (CHAR_BIT*sizeof(int)) ;
}
 else if ((((T0*)ms56_473))==((void*)(_n))) {
R= CHAR_BIT ;
}
else {
r683add_position(a1);
r683add_position(/*(IRF4.6start_position*/r679start_position(((T679*)((((T892*)C))->_base_feature/*48*/)))/*)*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/return R;
}
/*No:RUN_FEATURE_8.start_position*/
/*No:RUN_FEATURE_8.us_is_expanded_type*/
int r892jvm_max_locals(T892* C){
int R=0;
R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
/*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=(R)+(r31jvm_stack_space(((T31*)((((T892*)C))->_arguments/*20*/))));
}
/*FI*//*IF*//*AF*//*AE*/
/*FI*//*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
R=(R)+(X291jvm_stack_space((((T892*)C))->_result_type/*24*/));
}
/*FI*/return R;
}
int r892jvm_result_offset(T892* C){
int R=0;
R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
/*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=(R)+(r31jvm_stack_space(((T31*)((((T892*)C))->_arguments/*20*/))));
}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/return R;
}
/*No:RUN_FEATURE_8.ensure_assertion*/
int r892is_exported_in(T892* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r892clients(C))),a1);
return R;
}
void r892jvm_define_opening(T892* C){
T0* _t=NULL;
/*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
_t=X291run_type((((T892*)C))->_result_type/*24*/);
X291jvm_initialize_local(_t,r892jvm_result_offset(C));
}
/*FI*//*IF*//*AF*//*AE*/
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633compile_to_jvm_old(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
}
/*FI*/}
/*FI*//*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
r567compile_to_jvm(((T567*)((((T892*)C))->_require_assertion/*28*/)));
}
/*FI*/}
void r892compute_use_current(T892* C){
/*IF*/if (r679use_current(((T679*)((((T892*)C))->_base_feature/*48*/)))) {
C->_use_current_state=1004;
}
else {
r892std_compute_use_current(C);
}
/*FI*/}
/*No:RUN_FEATURE_8.result_type*/
void r892jvm_field_or_method(T892* C){
T0* _bcn=NULL;
T0* _n=NULL;
T0* _native=NULL;
_n=X776to_string((((T892*)C))->_name/*16*/);
/*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
r228add_field((T0*)C);
}
else {
_native=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_native/*48*/;
_bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
X845jvm_add_method_for_function(_native,(T0*)C,_bcn,_n);
}
/*FI*/}
int r892jvm_argument_offset(T892* C,T0* a1){
int R=0;
R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
R=(R)+(r31jvm_offset_of(((T31*)((((T892*)C))->_arguments/*20*/)),a1));
return R;
}
int r892is_static(T892* C){
int R=0;
T0* _type_bit=NULL;
T0* _n=NULL;
_n=X776to_string((((T892*)C))->_name/*16*/);
/*IF*/if ((((T0*)ms83_473))==((void*)(_n))) {
R=1;
/*IF*/if (X291is_expanded((((T892*)C))->_current_type/*4*/)) {
C->_static_value_mem=1;
}
/*FI*/}
 else if ((((T0*)ms82_473))==((void*)(_n))) {
R=1;
/*IF*/if (X291is_basic_eiffel_expanded((((T892*)C))->_current_type/*4*/)) {
C->_static_value_mem=1;
}
/*FI*/}
 else if (((((T0*)ms60_473))==((void*)(_n)))&&(X291is_bit((((T892*)C))->_current_type/*4*/))) {
R=1;
_type_bit=(((T892*)C))->_current_type/*4*/;
if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
case 549: case 558: 
break;
default:
_type_bit=NULL;
};C->_static_value_mem=X609nb(_type_bit);
}
/*FI*/return R;
}
/*No:RUN_FEATURE_8.us_bitn*/
/*No:RUN_FEATURE_8.us_twin*/
void r892add_client(T892* C,T0* a1){
int _i=0;
/*IF*/if (((((T892*)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*)((((T892*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T892*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r355add_client(((T355*)(r892run_class(C))),a1);
}
/*No:RUN_FEATURE_8.require_assertion*/
/*No:RUN_FEATURE_8.use_current_state*/
/*No:RUN_FEATURE_8.us_is_basic_expanded_type*/
/*No:RUN_FEATURE_8.us_generating_type*/
/*No:RUN_FEATURE_8.can_be_dropped*/
/*No:RUN_FEATURE_8.us_count*/
void r892jvm_define_closing(T892* C){
/*IF*/if (r892use_current(C)) {
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
r633compile_to_jvm(((T633*)((((T892*)C))->_ensure_assertion/*36*/)),1);
}
/*FI*/}
/*FI*//*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
X291jvm_push_local((((T892*)C))->_result_type/*24*/,r892jvm_result_offset(C));
}
/*FI*/}
/*No:RUN_FEATURE_8.us_se_argc*/
void r892mapping_jvm(T892* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(((T892*)C))->_base_feature/*48*/;
_native=(((T679*)((T679*)_bf)))->_native/*48*/;
_bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
X845jvm_mapping_function(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
}
/*No:RUN_FEATURE_8.current_type*/
T0* r892run_class(T892* C){
T0* R=NULL;
R=X291run_class((((T892*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_8.static_value_mem*/
/*No:RUN_FEATURE_8.fz_19*/
/*No:RUN_FEATURE_8.ucs_not_computed*/
/*No:RUN_FEATURE_8.routine_body*/
void r892fall_down(T892* 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((((T892*)C))->_current_type/*4*/);
_running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
/*IF*/if ((_running)!=((void*)(NULL))) {
_current_bc=X291base_class((((T892*)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,(((T892*)C))->_name/*16*/);
_rf=r355get_feature(((T355*)_sub_rc),_sub_name);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*/}
void r892jvm_closing_fast(T892* C){
X291jvm_return_code(X291run_type((((T892*)C))->_result_type/*24*/));
r506finish(((T506*)(oBC364method_info)));
}
/*No:RUN_FEATURE_8.ucs_false*/
/*No:RUN_FEATURE_8.is_pre_computable*/
T0* r892clients(T892* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T892*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T892*)C))->_current_type/*4*/);
_bfbc=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_clients/*20*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T892*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T892*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
int r892use_current(T892* C){
int R=0;
{int z1=(((T892*)C))->_use_current_state/*40*/;

if((1004==z1)){
R=1;
}
 else 
if((1003==z1)){
}
 else 
if((1005==z1)){
C->_use_current_state=1006;
r892compute_use_current(C);
R=r892use_current(C);
}
 else {R=1;
}}
return R;
}
/*No:RUN_FEATURE_8.fz_a9*/
void r892jvm_define(T892* C){
T0* _cp=NULL;
T0* _bcn=NULL;
T0* _n=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(((T892*)C))->_base_feature/*48*/;
_n=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
/*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
_cp=oBC364constant_pool;
r543add(((T543*)(oBC364field_info)),1,r95idx_uft8(((T95*)_cp),_n),r95idx_uft8(((T95*)_cp),((T0*)ms235_470)));
}
else {
_native=(((T679*)((T679*)_bf)))->_native/*48*/;
_bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
X845jvm_define_function(_native,(T0*)C,_bcn,_n);
}
/*FI*/}
int r892jvm_local_variable_offset(T892* C,T0* a1){
int R=0;
R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
/*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=(R)+(r31jvm_stack_space(((T31*)((((T892*)C))->_arguments/*20*/))));
}
/*FI*/R=(R)+(r620jvm_offset_of(((T620*)(/*(IRF4.1local_vars*/NULL/*)*/)),a1));
return R;
}
/*No:RUN_FEATURE_8.fatal_error*/
/*No:RUN_FEATURE_8.clients_memory*/
void r892initialize(T892* C){
T0* _type_bit_ref=NULL;
T0* _rf=NULL;
T0* _n=NULL;
_n=X776to_string((((T892*)C))->_name/*16*/);
C->_arguments=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_arguments/*24*/;
/*IF*/if ((((((T892*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T892*)C))->_arguments/*20*/)),(((T892*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
_type_bit_ref=(((T892*)C))->_current_type/*4*/;
if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
case 963: 
break;
default:
_type_bit_ref=NULL;
};C->_result_type=(((T963*)((T963*)_type_bit_ref)))->_type_bit/*4*/;
}
else {
C->_result_type=X291to_runnable((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_result_type/*12*/,(((T892*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r679run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r679run_ensure((T0*)C);
}
/*FI*//*IF*/if ((((T0*)ms139_473))==((void*)(_n))) {
_rf=r355get_copy(((T355*)(r892run_class(C))));
}
 else if ((((T0*)ms110_473))==((void*)(_n))) {
r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
}
 else if ((((T0*)ms78_473))==((void*)(_n))) {
r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
}
 else if ((((T0*)ms79_473))==((void*)(_n))) {
r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
}
/*FI*/}
void r892jvm_closing(T892* C){
r892jvm_define_closing(C);
X291jvm_return_code(X291run_type((((T892*)C))->_result_type/*24*/));
r506finish(((T506*)(oBC364method_info)));
}
/*No:RUN_FEATURE_8.afd_check*/
/*No:RUN_FEATURE_8.update_tmp_jvm_descriptor*/
T0* r796add_comment(T796* 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 r796to_integer(T796* C){
int R=0;
r796error((((T796*)C))->_start_position/*16*/,((T0*)ms69_470));
return R;
}
int r796is_a(T796* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T284*)r796result_type()))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T796*)C))->_start_position/*16*/);
r796error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_VOID.is_current*/
/*No:E_VOID.jvm_branch_if_false*/
/*No:E_VOID.static_value*/
void r796make(T796* C,T0* a1){
C->_start_position=a1;
C->_to_string=((T0*)ms147_473);
}
/*No:E_VOID.to_string*/
/*No:E_VOID.compile_to_jvm_assignment*/
/*No:E_VOID.fz_iinaiv*/
/*No:E_VOID.jvm_branch_if_true*/
/*No:E_VOID.start_position*/
/*No:E_VOID.compile_to_jvm_old*/
T0* r796to_runnable(T796* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T796*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r796twin(C);
/*[IRF3.3set_current_type*/((((T796*)(((T796*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
int fBC796result_type=0;
T0*oBC796result_type=NULL;
T0* r796result_type(void){
if (fBC796result_type==0){
T0* R=NULL;
fBC796result_type=1;
{T284*n=malloc(sizeof(*n));
*n=M284;
r284make(n,NULL);
R=(T0*)n;
}
oBC796result_type=R;}
return oBC796result_type;}
/*No:E_VOID.is_result*/
T0* r796twin(T796* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T796*)R)=*C;
return R;
}
/*No:E_VOID.set_current_type*/
/*No:E_VOID.is_static*/
int r796compile_to_jvm_into(T0* a1){
int R=0;
R=1;
/*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
/*]*/
return R;
}
/*No:E_VOID.compile_target_to_jvm*/
/*No:E_VOID.can_be_dropped*/
/*No:E_VOID.current_type*/
/*No:E_VOID.jvm_assign*/
/*No:E_VOID.static_value_mem*/
/*No:E_VOID.is_manifest_string*/
/*No:E_VOID.is_void*/
/*No:E_VOID.compile_to_jvm*/
/*No:E_VOID.is_pre_computable*/
/*No:E_VOID.use_current*/
/*No:E_VOID.us_void*/
void r796error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_VOID.isa_dca_inline_argument*/
/*No:E_VOID.afd_check*/
void r404check_creation_clause(T404* C,T0* a1){
T0* _args=NULL;
T0* _top=NULL;
T0* _bottom=NULL;
T0* _fn=NULL;
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
/*IF*/if (X291is_like_current(a1)) {
_top=r627base_class(((T627*)(X776start_position(_fn))));
_bottom=X291base_class(a1);
_fn=r605new_name_of(((T605*)_bottom),_top,_fn);
/*IF*/if ((_fn)==((void*)(NULL))) {
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*FI*/C->_run_feature=r355get_feature(((T355*)(X291run_class(a1))),_fn);
/*IF*/if (((((T404*)C))->_run_feature/*16*/)==((void*)(NULL))) {
r404cp_not_found(C,_fn);
}
/*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if (!(X291has_creation(a1,_fn))) {
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/X496add_client((((T404*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T404*)C))->_run_compound/*4*/))));
/*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
r683add_position(X776start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (((r404arg_count(C))==(0))&&((/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
r683add_position((((T404*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if ((r404arg_count(C))>(0)) {
_args=r431to_runnable(((T431*)(X173arguments((((T404*)C))->_call/*20*/))),r404current_type(C));
/*IF*/if ((_args)==((void*)(NULL))) {
r404error(r431start_position(((T431*)(X173arguments((((T404*)C))->_call/*20*/)))),((T0*)ms56_470));
}
else {
r431match_with(((T431*)_args),(((T404*)C))->_run_feature/*16*/);
}
/*FI*/}
/*FI*/C->_call=X173make_runnable((((T404*)C))->_call/*20*/,(((T404*)C))->_run_compound/*4*/,(((T404*)C))->_writable/*12*/,_args,(((T404*)C))->_run_feature/*16*/);
}
T0* r404add_comment(T404* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r404check_created_type(T404* C,T0* a1){
T0* _rt=NULL;
_rt=X291run_type(a1);
/*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
r683add_type(_rt,((T0*)ms2_747));
r683add_position((((T404*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (X291is_formal_generic(a1)) {
r683add_position((((T404*)C))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms5_747));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
}
void r404cp_not_found(T404* C,T0* a1){
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*No:CREATION_CALL_4.writable*/
/*No:CREATION_CALL_4.us_dictionary*/
/*No:CREATION_CALL_4.us_with_capacity*/
/*No:CREATION_CALL_4.fz_bad_arguments*/
/*No:CREATION_CALL_4.us_array*/
void r404make(T404* C,T0* a1,T0* a2,T0* a3,T0* a4){
C->_start_position=a1;
C->_type=a2;
C->_writable=a3;
C->_call=a4;
}
T0* r404run_args(T404* C){
T0* R=NULL;
R=X173arguments((((T404*)C))->_call/*20*/);
return R;
}
/*No:CREATION_CALL_4.type*/
/*No:CREATION_CALL_4.us_string*/
int r404arg_count(T404* C){
int R=0;
/*IF*/if (((((T404*)C))->_call/*20*/)!=((void*)(NULL))) {
R=X173arg_count((((T404*)C))->_call/*20*/);
}
/*FI*/return R;
}
/*No:CREATION_CALL_4.call*/
/*No:CREATION_CALL_4.run_feature*/
/*No:CREATION_CALL_4.start_position*/
/*No:CREATION_CALL_4.us_blank*/
T0* r404to_runnable(T404* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T404*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r404check_writable(C,a1);
r404check_explicit_type(C);
r404check_created_type(C,(((T404*)C))->_type/*24*/);
r404check_creation_clause(C,(((T404*)C))->_type/*24*/);
R=(T0*)C;
}
else {
{T404*n=malloc(sizeof(*n));
*n=M404;
r404make(n,(((T404*)C))->_start_position/*8*/,(((T404*)C))->_type/*24*/,(((T404*)C))->_writable/*12*/,(((T404*)C))->_call/*20*/);
R=(T0*)n;
}
R=r404to_runnable(((T404*)R),a1);
}
/*FI*/return R;
}
/*No:CREATION_CALL_4.us_std_file_read*/
/*No:CREATION_CALL_4.fz_03*/
/*No:CREATION_CALL_4.us_make*/
T0* r404current_type(T404* C){
T0* R=NULL;
/*IF*/if (((((T404*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T404*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:CREATION_CALL_4.fz_09*/
/*No:CREATION_CALL_4.run_compound*/
void r404check_explicit_type(T404* C){
T0* _t=NULL;
_t=X291to_runnable((((T404*)C))->_type/*24*/,r404current_type(C));
/*IF*/if (((_t)==((void*)(NULL)))||(!(X291is_run_type(_t)))) {
r683add_position(X291start_position((((T404*)C))->_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_432);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_type=_t;
}
/*FI*//*IF*/if (!(X291is_a((((T404*)C))->_type/*24*/,X662result_type((((T404*)C))->_writable/*12*/)))) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_432);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*No:CREATION_CALL_4.compile_to_jvm0*/
void r404compile_to_jvm(T404* C){
T0* _t=NULL;
T0* _w=NULL;
_w=(((T404*)C))->_writable/*12*/;
_t=X291run_type((((T404*)C))->_type/*24*/);
/*[IRF3.6compile_to_jvm0*/{T0* b1=_t;
r355jvm_push_default(((T355*)(X291run_class(b1))));
}/*]*/
r228inside_new(((T228*)(oBC364jvm)),(((T404*)C))->_run_feature/*16*/,(((T404*)C))->_call/*20*/);
X291jvm_check_class_invariant(_t);
X662jvm_assign(_w);
}
/*No:CREATION_CALL_4.fz_dot*/
int r404is_pre_computable(T404* C){
int R=0;
T0* _rfctbcn=NULL;
T0* _rfn=NULL;
T0* _rfct=NULL;
/*IF*/if (X662is_result((((T404*)C))->_writable/*12*/)) {
/*IF*/if ((r404run_args(C))==((void*)(NULL))) {
R=1;
}
else {
R=r431is_pre_computable(((T431*)(r404run_args(C))));
}
/*FI*//*IF*/if (R) {
/*IF*/if (X496is_pre_computable((((T404*)C))->_run_feature/*16*/)) {
R=1;
}
else {
_rfct=/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_current_type/*4*/);
_rfctbcn=(((T451*)((T451*)((((T605*)((T605*)(X291base_class(_rfct)))))->_base_class_name/*24*/))))->_to_string/*0*/;
_rfn=X776to_string(/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_name/*16*/));
/*IF*/if ((((T0*)ms89_473))==((void*)(_rfn))) {
R=r52has(((T52*)(oBC394make_precomputable)),_rfctbcn);
}
 else if ((((T0*)ms51_473))==((void*)(_rfn))) {
R=(((T0*)ms25_473))==((void*)(_rfctbcn));
}
 else if ((((T0*)ms141_473))==((void*)(_rfn))) {
/*IF*/if ((((T0*)ms2_473))==((void*)(_rfctbcn))) {
R=1;
}
 else if ((((T0*)ms13_473))==((void*)(_rfctbcn))) {
R=1;
}
 else if ((((T0*)ms10_473))==((void*)(_rfctbcn))) {
R=1;
}
else {
R=0;
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
int r404use_current(T404* C){
int R=0;
/*IF*/if ((r404run_args(C))!=((void*)(NULL))) {
R=r431use_current(((T431*)(r404run_args(C))));
}
/*FI*/R=(R)||(X662use_current((((T404*)C))->_writable/*12*/));
return R;
}
void r404check_writable(T404* C,T0* a1){
T0* _w=NULL;
C->_run_compound=a1;
_w=X662to_runnable((((T404*)C))->_writable/*12*/,r404current_type(C));
/*IF*/if ((_w)==((void*)(NULL))) {
r683add_position(X662start_position((((T404*)C))->_writable/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_writable=_w;
}
/*FI*/}
void r404error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CREATION_CALL_4.fatal_error*/
/*No:CREATION_CALL_4.end_mark_comment*/
/*No:CREATION_CALL_4.us_fixed_array*/
void r404afd_check(T404* C){
/*IF*/if ((r404arg_count(C))>(0)) {
r431afd_check(((T431*)(r404run_args(C))));
}
/*FI*/}
/*No:CALL_INFIX_INT_REM.arguments*/
T0* r453add_comment(T453* 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 r453to_integer(T453* C){
int R=0;
r453error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r453is_a(T453* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T453*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
r453error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_INT_REM.is_current*/
/*No:CALL_INFIX_INT_REM.jvm_branch_if_false*/
/*No:CALL_INFIX_INT_REM.static_value*/
void r453make(T453* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms1_453),a2);
C->_feature_name=(T0*)n;
}
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r453make_call_1(C,a1,(((T453*)C))->_feature_name/*28*/,_eal);
}
/*No:CALL_INFIX_INT_REM.nb_errors*/
/*No:CALL_INFIX_INT_REM.feature_name*/
/*No:CALL_INFIX_INT_REM.compile_to_jvm_assignment*/
/*No:CALL_INFIX_INT_REM.fz_iinaiv*/
/*No:CALL_INFIX_INT_REM.arg_count*/
/*No:CALL_INFIX_INT_REM.jvm_branch_if_true*/
/*No:CALL_INFIX_INT_REM.run_feature*/
/*No:CALL_INFIX_INT_REM.start_position*/
void r453compile_to_jvm_old(T453* C){
X662compile_to_jvm_old((((T453*)C))->_target/*12*/);
/*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T453*)C))->_arguments/*24*/)));
}
/*FI*/}
/*No:CALL_INFIX_INT_REM.target*/
T0* r453to_runnable(T453* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T453*)C))->_current_type/*8*/)==((void*)(NULL))) {
r453to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T453*)C))->_arguments/*24*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r453error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T453*)C))->_arguments/*24*/)),(((T453*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T453*)C))->_result_type/*20*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r453twin(C);
/*[IRF3.3set_current_type*/((((T453*)(((T453*)R))))->_current_type)=(NULL);
/*]*/
R=r453to_runnable(((T453*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_INT_REM.result_type*/
/*No:CALL_INFIX_INT_REM.is_result*/
T0* r453twin(T453* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T453*)R)=*C;
return R;
}
/*No:CALL_INFIX_INT_REM.set_current_type*/
/*No:CALL_INFIX_INT_REM.operator*/
int r453is_static(T453* C){
int R=0;
/*IF*/if (X291is_integer((((T453*)C))->_result_type/*20*/)) {
/*IF*/if ((X662is_static((((T453*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/))) {
R=1;
C->_static_value_mem=(X662static_value((((T453*)C))->_target/*12*/))%(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/));
}
/*FI*/}
/*FI*/return R;
}
void r453standard_compile_target_to_jvm(T453* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
X291jvm_check_class_invariant((((T453*)C))->_result_type/*20*/);
}
int r453compile_to_jvm_into(T453* C,T0* a1){
int R=0;
R=r453standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_INT_REM.compile_target_to_jvm*/
/*No:CALL_INFIX_INT_REM.fz_07*/
/*No:CALL_INFIX_INT_REM.can_be_dropped*/
/*No:CALL_INFIX_INT_REM.current_type*/
/*No:CALL_INFIX_INT_REM.jvm_assign*/
/*No:CALL_INFIX_INT_REM.static_value_mem*/
void r453make_call_1(T453* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_INT_REM.is_manifest_string*/
/*No:CALL_INFIX_INT_REM.is_void*/
int r453jvm_standard_branch_if_false(T453* C){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
/*No:CALL_INFIX_INT_REM.compile_to_jvm*/
void r453to_runnable_0(T453* C,T0* a1){
C->_current_type=a1;
r453cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T453*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T453*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T453*)C))->_run_feature/*16*/));
r453error((((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T453*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T453*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_INFIX_INT_REM.is_pre_computable*/
int r453jvm_standard_branch_if_true(T453* C){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
return R;
}
int r453use_current(T453* C){
int R=0;
/*IF*/{/*AT*/R=r431use_current(((T431*)((((T453*)C))->_arguments/*24*/)));
}
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T453*)C))->_target/*12*/)) {
R=X496use_current((((T453*)C))->_run_feature/*16*/);
}
else {
R=X662use_current((((T453*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r453cpc_to_runnable(T453* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T453*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T453*)C))->_target/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T453*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T453*)C))->_target/*12*/,(((T453*)C))->_run_feature/*16*/);
}
void r453error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_INT_REM.isa_dca_inline_argument*/
/*No:CALL_INFIX_INT_REM.fatal_error*/
/*No:CALL_INFIX_INT_REM.fz_bad_argument*/
/*No:CALL_INFIX_INT_REM.arg1*/
int r453standard_compile_to_jvm_into(T453* C,T0* a1){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=X291jvm_convert_to(X291run_type((((T453*)C))->_result_type/*20*/),a1);
return R;
}
/*No:CALL_INFIX_INT_REM.call_proc_call_c2jvm*/
void r453afd_check(T453* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T453*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T453*)C))->_target/*12*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_warning(((T683*)(oBC364eh)));
r355set_at_run_time(((T355*)_rc));
}
 else if ((r396count(((T396*)_running)))>(0)) {
r576update((((T453*)C))->_target/*12*/,(((T453*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T453*)C))->_target/*12*/);
/*IF*/{/*AT*/r431afd_check(((T431*)((((T453*)C))->_arguments/*24*/)));
}
/*FI*/}
T0*oBC798tmp_name=NULL;
T0*oBC798running=NULL;
void r798jvm_switch(T0* a1,T0* a2){
T0* _ca=NULL;
int _boost=0;
T0* _dyn_rf=NULL;
T0* _dyn_rc=NULL;
int _i=0;
int _idx=0;
int _point=0;
int _space=0;
_ca=oBC364code_attribute;
_boost=r590boost(((T590*)(oBC364run_control)));
_i=(((T396*)((T396*)(oBC798running))))->_upper/*8*/;
while (!((_i)==(0))) {
_dyn_rc=r396item(((T396*)(oBC798running)),_i);
_dyn_rf=r355dynamic(((T355*)_dyn_rc),a1);
/*IF*/if (((_i)==(1))&&(_boost)) {
}
else {
/*[IRF3.4opcode_aload_0*/r256opcode(((T256*)_ca),42,1);
/*]*/
_idx=r355fully_qualified_constant_pool_index(((T355*)(X496run_class(_dyn_rf))));
r256opcode_instanceof(((T256*)_ca),_idx);
_point=r256opcode_ifeq(((T256*)_ca));
}
/*FI*/r228push_switch(((T228*)(oBC364jvm)),_dyn_rf,a1);
X496mapping_jvm(_dyn_rf);
r228pop(((T228*)(oBC364jvm)));
/*IF*/if ((a2)==((void*)(NULL))) {
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
}
else {
_space=X291jvm_convert_to(/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_result_type/*24*/),a2);
X291jvm_return_code(a2);
}
/*FI*//*IF*/if (((_i)==(1))&&(_boost)) {
}
else {
r256resolve_u2_branch(_point);
}
/*FI*/_i=(_i)-(1);
}
/*IF*/if (_boost) {
}
else {
r256opcode_system_err_println(((T256*)_ca),r798idx_error01());
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
/*]*/
r256opcode_system_exit(((T256*)_ca));
}
/*FI*/}
T0* r798jvm_descriptor(T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _arguments=NULL;
_arguments=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC798tmp_jvmd)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC798tmp_jvmd)),'\50');
r7append(((T7*)(oBC798tmp_jvmd)),r798jvm_root_descriptor());
/*IF*/if ((_arguments)!=((void*)(NULL))) {
r31jvm_descriptor_in(((T31*)_arguments),oBC798tmp_jvmd);
}
/*FI*/_rt=/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/);
/*IF*/if ((_rt)==((void*)(NULL))) {
r7append(((T7*)(oBC798tmp_jvmd)),((T0*)ms153_470));
}
else {
_rt=X291run_type(_rt);
r7extend(((T7*)(oBC798tmp_jvmd)),'\51');
/*IF*/if (X291is_reference(_rt)) {
r7append(((T7*)(oBC798tmp_jvmd)),r798jvm_root_descriptor());
}
else {
X291jvm_descriptor_in(_rt,oBC798tmp_jvmd);
}
/*FI*/}
/*FI*/R=oBC798tmp_jvmd;
return R;
}
T0* r798name(T0* a1){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC798tmp_name)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC798tmp_name)),'X');
r2append_in(X291id(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)),oBC798tmp_name);
r7append(((T7*)(oBC798tmp_name)),X776to_key(/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/)));
R=oBC798tmp_name;
return R;
}
T0* r798jvm_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;}
T0* r798jvm_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),r798jvm_root_class());
r7extend(((T7*)R),'\73');
oBC364jvm_root_descriptor=R;}
return oBC364jvm_root_descriptor;}
/*No:SWITCH.fz_19*/
int r798idx_methodref(T0* a1){
int R=0;
R=r95idx_methodref3(((T95*)(oBC364constant_pool)),r798jvm_root_class(),r798name(a1),r798jvm_descriptor(a1));
return R;
}
/*No:SWITCH.fz_jvm_root*/
int r798idx_error01(void){
int R=0;
R=r95idx_string(((T95*)(oBC364constant_pool)),((T0*)ms15_798));
return R;
}
T0*oBC798tmp_jvmd=NULL;
void r798jvm_define(T0* a1){
T0* _rt=NULL;
r506start(((T506*)(oBC364method_info)),9,r798name(a1),r798jvm_descriptor(a1));
r396copy(((T396*)(oBC798running)),(((T355*)((T355*)(X291run_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/))))))->_running/*12*/);
_rt=/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/);
/*IF*/if ((_rt)!=((void*)(NULL))) {
_rt=X291run_type(_rt);
}
/*FI*/r798jvm_switch(a1,_rt);
r506finish(((T506*)(oBC364method_info)));
}
void r798jvm_mapping(T0* a1){
int _switch=0;
T0* _fal=NULL;
T0* _eal=NULL;
T0* _target=NULL;
T0* _up_rf=NULL;
int _stack_level=0;
int _idx=0;
_target=X135target(a1);
_up_rf=X135run_feature(a1);
_eal=X135arguments(a1);
X662compile_to_jvm(_target);
_stack_level=1;
/*IF*/if ((_eal)!=((void*)(NULL))) {
_fal=/*X496*/((T0*)(((T832*)((T832*)_up_rf)))->_arguments/*20*/);
_stack_level=(_stack_level)+(r431compile_to_jvm(((T431*)_eal),_fal));
}
/*FI*/_idx=r798idx_methodref(_up_rf);
r256opcode_invokestatic(((T256*)(oBC364code_attribute)),_idx,-(_stack_level));
}
/*No:ASSERTION.fz_is_not_boolean*/
/*No:ASSERTION.fz_bad_assertion*/
void r348make(T348* C,T0* a1,T0* a2,T0* a3){
C->_tag=a1;
C->_expression=a2;
C->_comment=a3;
}
/*No:ASSERTION.expression*/
T0* r348start_position(T348* C){
T0* R=NULL;
/*IF*/if (((((T348*)C))->_tag/*0*/)!=((void*)(NULL))) {
R=(((T490*)((T490*)((((T348*)C))->_tag/*0*/))))->_start_position/*4*/;
}
 else if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
R=X662start_position((((T348*)C))->_expression/*4*/);
}
else {
R=(((T393*)((T393*)((((T348*)C))->_comment/*8*/))))->_start_position/*0*/;
}
/*FI*/return R;
}
void r348compile_to_jvm_old(T348* C){
/*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
X662compile_to_jvm_old((((T348*)C))->_expression/*4*/);
}
/*FI*/}
/*No:ASSERTION.comment*/
T0* r348to_runnable(T348* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T348*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
/*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
_e=X662to_runnable((((T348*)C))->_expression/*4*/,a1);
/*IF*/if ((_e)==((void*)(NULL))) {
r348error(r348start_position(C),((T0*)ms57_470));
}
else {
C->_expression=_e;
/*IF*/if (!(X291is_boolean(X662result_type((((T348*)C))->_expression/*4*/)))) {
r683add_type(X662result_type((((T348*)C))->_expression/*4*/),((T0*)ms73_470));
r348error(r348start_position(C),((T0*)ms57_470));
}
/*FI*/}
/*FI*/}
/*FI*/}
else {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,(((T348*)C))->_tag/*0*/,(((T348*)C))->_expression/*4*/,(((T348*)C))->_comment/*8*/);
R=(T0*)n;
}
R=r348to_runnable(((T348*)R),a1);
}
/*FI*/return R;
}
int r348idx_error_message(T348* C){
int R=0;
T0* _sp=NULL;
r7copy(((T7*)(oBC348tmp_string)),((T0*)ms176_470));
_sp=X662start_position((((T348*)C))->_expression/*4*/);
/*IF*/if ((_sp)!=((void*)(NULL))) {
r7extend(((T7*)(oBC348tmp_string)),'\40');
r627append_in(((T627*)_sp),oBC348tmp_string);
}
/*FI*/R=r95idx_string(((T95*)(oBC364constant_pool)),oBC348tmp_string);
return R;
}
/*No:ASSERTION.fz_50*/
/*No:ASSERTION.tag*/
T0*oBC348tmp_string=NULL;
/*No:ASSERTION.current_type*/
void r348compile_to_jvm(T348* C,int a1){
T0* _ca=NULL;
int _idx=0;
int _point1=0;
_ca=oBC364code_attribute;
/*IF*/if (((((T348*)C))->_expression/*4*/)==((void*)(NULL))) {
/*IF*/if (a1) {
}
else {
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
/*]*/
}
/*FI*/}
else {
X662compile_to_jvm((((T348*)C))->_expression/*4*/);
/*IF*/if (a1) {
_point1=r256opcode_ifne(((T256*)(oBC364code_attribute)));
_idx=r348idx_error_message(C);
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);
}
/*FI*/}
/*FI*/}
int r348is_pre_computable(T348* C){
int R=0;
/*IF*/if (((((T348*)C))->_expression/*4*/)==((void*)(NULL))) {
R=1;
}
else {
R=X662is_pre_computable((((T348*)C))->_expression/*4*/);
}
/*FI*/return R;
}
int r348use_current(T348* C){
int R=0;
/*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
R=X662use_current((((T348*)C))->_expression/*4*/);
}
/*FI*/return R;
}
void r348error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r348afd_check(T348* C){
/*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
X662afd_check((((T348*)C))->_expression/*4*/);
}
/*FI*/}
/*No:WHEN_ITEM_2.lower_value*/
/*No:WHEN_ITEM_2.upper_value*/
T0* r372to_runnable_integer(T372* C,T0* a1){
T0* R=NULL;
T0* _v=NULL;
/*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
C->_lower=_v;
C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
}
else {
r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms60_470));
}
/*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
C->_upper=_v;
C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
}
else {
r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms60_470));
}
/*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
R=(T0*)C;
}
else {
{T372*n=malloc(sizeof(*n));
*n=M372;
r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
R=(T0*)n;
}
R=r372to_runnable_integer(((T372*)R),a1);
}
/*FI*/return R;
}
void r372make(T372* C,T0* a1,T0* a2){
C->_lower=a1;
C->_upper=a2;
}
T0* r372start_position(T372* C){
T0* R=NULL;
R=X662start_position((((T372*)C))->_lower/*12*/);
return R;
}
/*No:WHEN_ITEM_2.clear_e_when*/
/*No:WHEN_ITEM_2.fz_bcv*/
T0* r372twin(T372* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T372*)R)=*C;
return R;
}
/*No:WHEN_ITEM_2.current_type*/
/*No:WHEN_ITEM_2.fz_biv*/
/*No:WHEN_ITEM_2.lower*/
/*No:WHEN_ITEM_2.upper*/
void r372error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r372to_runnable_character(T372* C,T0* a1){
T0* R=NULL;
T0* _v=NULL;
/*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
C->_lower=_v;
C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
}
else {
r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms58_470));
}
/*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
C->_upper=_v;
C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
}
else {
r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms58_470));
}
/*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
R=(T0*)C;
}
else {
{T372*n=malloc(sizeof(*n));
*n=M372;
r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
R=(T0*)n;
}
R=r372to_runnable_character(((T372*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_ITEM_2.e_when*/
void r153add_into(T153* C,T0* a1){
T0* _f=NULL;
int _i=0;
/*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=0;
while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
_f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/;
X359set_clients(_f,(((T153*)C))->_clients/*0*/);
X359add_into(_f,a1);
_i=(_i)+(1);
}
}
/*FI*/}
void r153make(T153* C,T0* a1,T0* a2,T0* a3){
C->_clients=a1;
C->_comment=a2;
C->_list=a3;
}
/*No:FEATURE_CLAUSE.comment*/
/*No:FEATURE_CLAUSE.list*/
/*No:FEATURE_CLAUSE.clients*/

