/*
-- 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"
T0* r377to_runnable_integer(T377* C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
int _i=0;
/*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
C->_e_inspect=a1;
_i=1;
while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_e_when=r843to_runnable_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
/*IF*/if ((_e_when)==((void*)(NULL))) {
r377error(r377start_position(C),((T0*)ms1_377));
}
else {
/*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
T0* b1=_e_when;
int b2=_i;
((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
R=(T0*)C;
}
else {
{T377*n=malloc(sizeof(*n));
*n=M377;
r377from_when_list(n,(T0*)C);
R=(T0*)n;
}
R=r377to_runnable_integer(((T377*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_LIST.make*/
/*No:WHEN_LIST.nb_errors*/
T0* r377start_position(T377* C){
T0* R=NULL;
R=(((T843*)((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),1)))))->_start_position/*0*/;
return R;
}
/*No:WHEN_LIST.em1*/
/*No:WHEN_LIST.list*/
/*No:WHEN_LIST.current_type*/
void r377from_when_list(T377* C,T0* a1){
T0* _e_when=NULL;
int _i=0;
C->_list=r147twin(((T147*)((((T377*)((T377*)a1)))->_list/*4*/)));
_i=1;
while (!((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))) {
{T843*n=malloc(sizeof(*n));
*n=M843;
r843from_e_when(n,r147item(((T147*)((((T377*)C))->_list/*4*/)),_i));
_e_when=(T0*)n;
}
/*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
T0* b1=_e_when;
int b2=_i;
((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
void r377compile_to_jvm(T377* C,T0* a1){
int _i=0;
int _r=0;
/*IF*/if (((((T377*)C))->_list/*4*/)!=((void*)(NULL))) {
_r=(((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/;
_i=1;
while (!((_r)==(0))) {
_r=(_r)-(1);
r843compile_to_jvm(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),a1,_r);
_i=(_i)+(1);
}
}
/*FI*/}
int r377use_current(T377* C){
int R=0;
int _i=0;
/*IF*/if (((((T377*)C))->_list/*4*/)!=((void*)(NULL))) {
_i=1;
while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||(R))) {
R=r843use_current(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))));
_i=(_i)+(1);
}
}
/*FI*/return R;
}
void r377error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:WHEN_LIST.add_last*/
int r377includes_integer(T377* C,int a1){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/)))) {
R=r843includes_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),a1);
_i=(_i)+(1);
}
return R;
}
T0* r377to_runnable_character(T377* C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
int _i=0;
/*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
C->_e_inspect=a1;
_i=1;
while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_e_when=r843to_runnable_character(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
/*IF*/if ((_e_when)==((void*)(NULL))) {
r377error(r377start_position(C),((T0*)ms1_377));
}
else {
/*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
T0* b1=_e_when;
int b2=_i;
((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
R=(T0*)C;
}
else {
{T377*n=malloc(sizeof(*n));
*n=M377;
r377from_when_list(n,(T0*)C);
R=(T0*)n;
}
R=r377to_runnable_character(((T377*)R),a1);
}
/*FI*/return R;
}
void r377compile_to_jvm_resolve_branch(T377* C){
int _i=0;
/*IF*/if (((((T377*)C))->_list/*4*/)!=((void*)(NULL))) {
_i=(((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/;
while (!((_i)==(0))) {
/*[IRF3.6compile_to_jvm_resolve_branch*/{T843* C1=((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i)));
r256resolve_u2_branch((((T843*)C1))->_point2/*24*/);
}/*]*/
_i=(_i)-(1);
}
}
/*FI*/}
void r377afd_check(T377* C){
int _i=0;
_i=(((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/;
while (!((_i)==(0))) {
r843afd_check(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))));
_i=(_i)-(1);
}
}
/*No:WHEN_LIST.e_inspect*/
/*No:ERROR_HANDLER.nb_warnings*/
T0*oBC683explanation=NULL;
void r683incr_nb_warnings(T683* C){
C->_nb_warnings=((((T683*)C))->_nb_warnings/*4*/)+(1);
}
/*No:ERROR_HANDLER.extend*/
void r683incr_nb_errors(T683* C){
C->_nb_errors=((((T683*)C))->_nb_errors/*0*/)+(1);
/*IF*/if (((((T683*)C))->_nb_errors/*0*/)>=(6)) {
r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
r441put_string(((T441*)(oBC1std_error)),((T0*)ms5_683));
exit(1);
}
/*FI*/}
/*No:ERROR_HANDLER.exit_failure_code*/
int r683empty(void){
int R=0;
R=(/*(IRF4.7empty*/((((T7*)((T7*)(oBC683explanation))))->_count/*4*/)==(0)/*)*/)&&(r38empty(((T38*)(oBC683positions))));
return R;
}
/*No:ERROR_HANDLER.make*/
/*No:ERROR_HANDLER.nb_errors*/
void r683print_as_fatal_error(T683* C){
r683do_print(((T0*)ms4_683));
exit(1);
}
/*No:ERROR_HANDLER.no_warning*/
void r683add_position(T0* a1){
/*IF*/if ((a1)!=((void*)(NULL))) {
/*IF*/if (!(r38has(((T38*)(oBC683positions)),a1))) {
r38add_last(((T38*)(oBC683positions)),a1);
}
/*FI*/}
/*FI*/}
/*No:ERROR_HANDLER.set_no_warning*/
void r683print_as_warning(T683* C){
/*IF*/if ((((T683*)C))->_no_warning/*8*/) {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
}
else {
r683do_print(((T0*)ms2_683));
r683incr_nb_warnings(C);
}
/*FI*/}
void r683print_as_error(T683* C){
r683do_print(((T0*)ms3_683));
r683incr_nb_errors(C);
}
void r683add_type(T0* a1,T0* a2){
/*[IRF3.6append*/{T0* b1=((T0*)ms1_683);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*IF*/if (X291is_run_type(a1)) {
/*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
else {
/*[IRF3.6append*/{T0* b1=X291written_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
/*FI*//*[IRF3.6append*/{T0* b1=a2;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_position(X291start_position(a1));
}
void r683error(T683* C,T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_error(C);
}
/*No:ERROR_HANDLER.fz_error_stars*/
void r683fatal_error(T683* C,T0* a1){
r7append(((T7*)(oBC683explanation)),a1);
r683print_as_fatal_error(C);
}
/*No:ERROR_HANDLER.cancel*/
T0*oBC683positions=NULL;
/*No:ERROR_HANDLER.append*/
void r683warning(T683* C,T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_warning(C);
}
void r683do_print(T0* a1){
char _previous_cc=0;
char _cc=0;
int _cpt=0;
int _i=0;
r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
r441put_string(((T441*)(oBC1std_error)),a1);
r441put_string(((T441*)(oBC1std_error)),((T0*)ms6_683));
_i=1;
_cpt=(9)+((((T7*)((T7*)a1)))->_count/*4*/);
while (!((_i)>((((T7*)((T7*)(oBC683explanation))))->_count/*4*/))) {
_previous_cc=_cc;
_cc=/*(IRF4.6item*/((((T7*)((T7*)(oBC683explanation))))->_storage/*0*/)[(_i)-(1)]/*)*/;
_i=(_i)+(1);
/*IF*/if ((_cpt)>(60)) {
/*IF*/if ((_cc)==('\40')) {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=0;
}
 else if (((_previous_cc)==('\54'))||((_previous_cc)==('\57'))) {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=1;
}
else {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=(_cpt)+(1);
}
/*FI*/}
else {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
{int z1=_cc;

if((10==z1)){
_cpt=0;
}
 else{_cpt=(_cpt)+(1);
}}
}
/*FI*/}
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
_i=(((T38*)((T38*)(oBC683positions))))->_lower/*12*/;
while (!((_i)>((((T38*)((T38*)(oBC683positions))))->_upper/*8*/))) {
r627show(((T627*)(r38item(((T38*)(oBC683positions)),_i))));
_i=(_i)+(1);
}
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
r441put_string(((T441*)(oBC1std_error)),((T0*)ms7_683));
}
/*No:CALL_PREFIX_FREEOP.arguments*/
T0* r990add_comment(T990* 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 r990to_integer(T990* C){
int R=0;
T0* _rf1=NULL;
_rf1=(((T990*)C))->_run_feature/*16*/;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 808: 
break;
default:
_rf1=NULL;
};/*IF*/if ((_rf1)==((void*)(NULL))) {
r990error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
}
else {
R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
}
/*FI*/return R;
}
int r990is_a(T990* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T990*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r990error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_PREFIX_FREEOP.is_current*/
/*No:CALL_PREFIX_FREEOP.jvm_branch_if_false*/
/*No:CALL_PREFIX_FREEOP.static_value*/
/*No:CALL_PREFIX_FREEOP.make*/
/*No:CALL_PREFIX_FREEOP.nb_errors*/
/*No:CALL_PREFIX_FREEOP.feature_name*/
/*No:CALL_PREFIX_FREEOP.compile_to_jvm_assignment*/
/*No:CALL_PREFIX_FREEOP.fz_iinaiv*/
/*No:CALL_PREFIX_FREEOP.arg_count*/
/*No:CALL_PREFIX_FREEOP.jvm_branch_if_true*/
/*No:CALL_PREFIX_FREEOP.run_feature*/
/*No:CALL_PREFIX_FREEOP.start_position*/
void r990compile_to_jvm_old(T990* C){
X662compile_to_jvm_old((((T990*)C))->_target/*12*/);
/*IF*//*AF*//*AE*/
/*FI*/}
/*No:CALL_PREFIX_FREEOP.target*/
T0* r990to_runnable(T990* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T990*)C))->_current_type/*8*/)==((void*)(NULL))) {
r990to_runnable_0(C,a1);
/*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T990*)C))->_run_feature/*16*/))>(0))) {
r683add_position((((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*/);
r990error(X496start_position((((T990*)C))->_run_feature/*16*/),((T0*)ms1_752));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r990twin(C);
/*[IRF3.3set_current_type*/((((T990*)(((T990*)R))))->_current_type)=(NULL);
/*]*/
R=r990to_runnable(((T990*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_PREFIX_FREEOP.result_type*/
/*No:CALL_PREFIX_FREEOP.is_result*/
T0* r990twin(T990* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T990*)R)=*C;
return R;
}
/*No:CALL_PREFIX_FREEOP.set_current_type*/
/*No:CALL_PREFIX_FREEOP.is_static*/
void r990standard_compile_target_to_jvm(T990* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
X291jvm_check_class_invariant((((T990*)C))->_result_type/*20*/);
}
int r990compile_to_jvm_into(T990* C,T0* a1){
int R=0;
R=r990standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_PREFIX_FREEOP.compile_target_to_jvm*/
int r990call_is_static(T990* C){
int R=0;
T0* _rf=NULL;
T0* _running=NULL;
T0* _rc=NULL;
/*IF*/if (((((T990*)C))->_run_feature/*16*/)!=((void*)(NULL))) {
_rc=X496run_class((((T990*)C))->_run_feature/*16*/);
/*IF*/if ((_rc)!=((void*)(NULL))) {
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
_rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T990*)C))->_run_feature/*16*/);
/*IF*/if (X496is_static(_rf)) {
C->_static_value_mem=X496static_value_mem(_rf);
R=1;
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:CALL_PREFIX_FREEOP.fz_07*/
int r990can_be_dropped(T990* C){
int R=0;
/*IF*/if (X662can_be_dropped((((T990*)C))->_target/*12*/)) {
R=X496can_be_dropped((((T990*)C))->_run_feature/*16*/);
}
/*FI*/return R;
}
/*No:CALL_PREFIX_FREEOP.current_type*/
/*No:CALL_PREFIX_FREEOP.jvm_assign*/
/*No:CALL_PREFIX_FREEOP.static_value_mem*/
/*No:CALL_PREFIX_FREEOP.is_manifest_string*/
/*No:CALL_PREFIX_FREEOP.is_void*/
int r990jvm_standard_branch_if_false(T990* C){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
/*No:CALL_PREFIX_FREEOP.compile_to_jvm*/
void r990to_runnable_0(T990* C,T0* a1){
C->_current_type=a1;
r990cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T990*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T990*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T990*)C))->_run_feature/*16*/));
r990error((((T406*)((T406*)((((T990*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T990*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T990*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_PREFIX_FREEOP.is_pre_computable*/
int r990jvm_standard_branch_if_true(T990* C){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
return R;
}
int r990use_current(T990* C){
int R=0;
/*IF*//*AF*//*AE*/
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T990*)C))->_target/*12*/)) {
R=X496use_current((((T990*)C))->_run_feature/*16*/);
}
else {
R=X662use_current((((T990*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r990cpc_to_runnable(T990* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T990*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T990*)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((((T990*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T990*)C))->_target/*12*/,(((T990*)C))->_run_feature/*16*/);
}
void r990make_call0(T990* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
void r990error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_PREFIX_FREEOP.isa_dca_inline_argument*/
/*No:CALL_PREFIX_FREEOP.fatal_error*/
int r990standard_compile_to_jvm_into(T990* C,T0* a1){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T990* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=X291jvm_convert_to(X291run_type((((T990*)C))->_result_type/*20*/),a1);
return R;
}
/*No:CALL_PREFIX_FREEOP.call_proc_call_c2jvm*/
void r990afd_check(T990* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T990*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T990*)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((((T990*)C))->_target/*12*/,(((T990*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T990*)C))->_target/*12*/);
/*IF*//*AF*//*AE*/
/*FI*/}
T0* r849add_comment(T849* 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;
}
/*No:E_TRUE.to_integer*/
int r849is_a(T849* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r849type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T849*)C))->_start_position/*12*/);
r849error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_TRUE.is_current*/
int r849jvm_branch_if_false(void){
int R=0;
/*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
/*]*/
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
int fBC364type_boolean=0;
T0*oBC364type_boolean=NULL;
T0* r849type_boolean(void){
if (fBC364type_boolean==0){
T0* R=NULL;
fBC364type_boolean=1;
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,NULL);
R=(T0*)n;
}
oBC364type_boolean=R;}
return oBC364type_boolean;}
/*No:E_TRUE.static_value*/
/*No:E_TRUE.make*/
/*No:E_TRUE.compile_to_jvm_assignment*/
/*No:E_TRUE.fz_iinaiv*/
/*No:E_TRUE.jvm_branch_if_true*/
/*No:E_TRUE.start_position*/
/*No:E_TRUE.compile_to_jvm_old*/
T0* r849to_runnable(T849* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T849*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r849twin(C);
/*[IRF3.3set_current_type*/((((T849*)(((T849*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:E_TRUE.result_type*/
/*No:E_TRUE.is_result*/
T0* r849twin(T849* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T849*)R)=*C;
return R;
}
/*No:E_TRUE.set_current_type*/
int r849is_static(T849* C){
int R=0;
R=1;
C->_static_value_mem=1;
return R;
}
int r849compile_to_jvm_into(T0* a1){
int R=0;
R=r849standard_compile_to_jvm_into(a1);
return R;
}
/*No:E_TRUE.compile_target_to_jvm*/
/*No:E_TRUE.can_be_dropped*/
/*No:E_TRUE.current_type*/
/*No:E_TRUE.jvm_assign*/
/*No:E_TRUE.static_value_mem*/
/*No:E_TRUE.is_manifest_string*/
/*No:E_TRUE.is_void*/
/*No:E_TRUE.compile_to_jvm*/
/*No:E_TRUE.is_pre_computable*/
/*No:E_TRUE.use_current*/
void r849error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int r849isa_dca_inline_argument(T849* C){
int R=0;
/*IF*/if (r849is_static(C)) {
R=-(1);
}
/*FI*/return R;
}
int r849standard_compile_to_jvm_into(T0* a1){
int R=0;
/*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
/*]*/
/*]*/
R=X291jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r849type_boolean()/*)*/))/*)*/,a1);
return R;
}
/*No:E_TRUE.afd_check*/
/*No:ID_PROVIDER.us_integer*/
void r410make(T410* C){
{T226*n=malloc(sizeof(*n));
*n=M226;
r226with_capacity(n,1024);
C->_mem_id=(T0*)n;
}
{T927*n=malloc(sizeof(*n));
*n=M927;
r927with_capacity(n,1024);
C->_mem_str=(T0*)n;
}
C->_modulus=1000;
r410add2(C,NULL,0);
r410add2(C,((T0*)ms14_473),1);
r410add2(C,((T0*)ms15_473),2);
r410add2(C,((T0*)ms8_473),3);
r410add2(C,((T0*)ms23_473),4);
r410add2(C,((T0*)ms11_473),5);
r410add2(C,((T0*)ms6_473),6);
r410add2(C,((T0*)ms25_473),7);
r410add2(C,((T0*)ms21_473),8);
r410add2(C,((T0*)ms144_473),9);
r410add2(C,NULL,10);
r410add2(C,NULL,11);
r410add2(C,NULL,12);
r410add2(C,NULL,13);
r410add2(C,NULL,14);
r410add2(C,NULL,15);
r410add2(C,NULL,16);
r410add2(C,NULL,17);
r410add2(C,NULL,18);
r410add2(C,NULL,19);
r410add2(C,NULL,20);
}
/*No:ID_PROVIDER.us_pointer*/
/*No:ID_PROVIDER.us_string*/
int r410item(T410* C,T0* a1){
int R=0;
int _index=0;
_index=r927fast_index_of(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
/*IF*/if ((_index)<=((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)) {
R=/*(IRF4.6item*/((((T226*)((T226*)((((T410*)C))->_mem_id/*0*/))))->_storage/*0*/)[_index]/*)*/;
}
else {
/*IF*/if ((((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)*(2))>((((T410*)C))->_modulus/*8*/)) {
C->_modulus=((((T410*)C))->_modulus/*8*/)*(2);
}
/*FI*/R=(r7hash_code(((T7*)a1)))%((((T410*)C))->_modulus/*8*/);
/*IF*/if (r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)) {
while (!(!(r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)))) {
R=((R)+(13))%((((T410*)C))->_modulus/*8*/);
}
r410add2(C,a1,R);
}
else {
r410add2(C,a1,R);
}
/*FI*/}
/*FI*/return R;
}
/*No:ID_PROVIDER.us_character*/
/*No:ID_PROVIDER.us_real*/
/*No:ID_PROVIDER.us_boolean*/
/*No:ID_PROVIDER.us_double*/
/*No:ID_PROVIDER.mem_id*/
/*No:ID_PROVIDER.modulus*/
/*No:ID_PROVIDER.us_native_array_character*/
void r410add2(T410* C,T0* a1,int a2){
r927add_last(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
r226add_last(((T226*)((((T410*)C))->_mem_id/*0*/)),a2);
}
/*No:ID_PROVIDER.mem_str*/
/*No:ID_PROVIDER.us_general*/
void r994connect_to(T994* C,T0* a1){
C->_output_stream=r994bfw_open((((T7*)((T7*)a1)))->_count/*4*/,r7to_external(((T7*)a1)));
/*IF*/if ((NULL!=(((T994*)C))->_output_stream/*4*/)) {
C->_path=a1;
}
/*FI*/}
/*No:BINARY_FILE_WRITE.make*/
void r994disconnect(T994* C){
fclose(C->_output_stream);C->_path=NULL;
}
/*No:BINARY_FILE_WRITE.path*/
/*No:BINARY_FILE_WRITE.output_stream*/
/*No:BINARY_FILE_WRITE.put_byte*/
/*No:BINARY_FILE_WRITE.is_connected*/
void* r994bfw_open(int a1,void* a2){
void* R=0;
R=fopen(a2,"wb");return R;
}
/*No:FUNCTION.arguments*/
T0* r696try_to_undefine(T696* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r696try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T696*)C))->_clients/*24*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:FUNCTION.is_deferred*/
/*No:FUNCTION.fz_bad_assertion*/
T0* r696runnable(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))) {
r696error(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:FUNCTION.rescue_compound*/
void r696add_into(T696* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)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*)((((T696*)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:FUNCTION.end_comment*/
T0* r696try_to_undefine_aux(T696* C,T0* a1,T0* a2){
T0* R=NULL;
{T649*n=malloc(sizeof(*n));
*n=M649;
r649from_effective(n,a1,(((T696*)C))->_arguments/*28*/,(((T696*)C))->_result_type/*12*/,(((T696*)C))->_require_assertion/*36*/,(((T696*)C))->_ensure_assertion/*40*/,a2);
R=(T0*)n;
}
return R;
}
void r696make(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r696make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}
/*No:FUNCTION.not_computed*/
/*No:FUNCTION.nb_errors*/
void r696make_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r696make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:FUNCTION.local_vars*/
void r696set_header_comment(T696* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r696start_position(T696* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r696to_run_feature(T696* C,T0* a1,T0* a2){
T0* R=NULL;
r696check_obsolete(C);
{T870*n=malloc(sizeof(*n));
*n=M870;
r870make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:FUNCTION.ensure_assertion*/
/*No:FUNCTION.code_require*/
T0* r696run_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=r696runnable(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* r696run_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=r696runnable((((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:FUNCTION.result_type*/
/*No:FUNCTION.fz_03*/
/*No:FUNCTION.em1*/
/*No:FUNCTION.obsolete_mark*/
/*No:FUNCTION.set_clients*/
/*No:FUNCTION.em2*/
/*No:FUNCTION.names*/
/*No:FUNCTION.require_assertion*/
/*No:FUNCTION.use_current_state*/
/*No:FUNCTION.code_ensure*/
void r696set_rescue_compound(T696* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r696error(r696start_position(C),((T0*)ms6_368));
}
/*FI*/C->_rescue_compound=a1;
}
int r696can_hide(T696* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T696*)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 (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r696start_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:FUNCTION.header_comment*/
/*No:FUNCTION.routine_body*/
int r696is_merge_with(T696* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:FUNCTION.fz_dot*/
/*No:FUNCTION.set_ensure_assertion*/
/*No:FUNCTION.first_name*/
/*No:FUNCTION.clients*/
void r696collect_for(T696* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T696*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T696*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r696make_effective_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r696make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1024;
}
void r696error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:FUNCTION.base_class*/
void r696make_e_feature(T696* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r696check_obsolete(T696* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T696*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r696warning(r696start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r696warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
int r657id(T657* C){
int R=0;
R=(((T605*)((T605*)(r657base_class(C)))))->_id/*0*/;
return R;
}
void r657jvm_target_descriptor_in(T657* C,T0* a1){
/*IF*/if (r657is_dummy_expanded(C)) {
r7extend(((T7*)a1),'B');
}
/*FI*/}
int r657jvm_if_x_eq(T657* C){
int R=0;
/*IF*/if (r657is_expanded(C)) {
R=r355jvm_expanded_if_x_eq(((T355*)(r657run_class(C))));
}
else {
R=r256opcode_if_acmpeq(((T256*)(oBC364code_attribute)));
}
/*FI*/return R;
}
int r657has_creation(T657* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r657base_class(C))),a1);
return R;
}
/*No:TYPE_CLASS.is_anchored*/
/*No:TYPE_CLASS.is_array*/
int r657is_a(T657* C,T0* a1){
int R=0;
T0* _obcn=NULL;
T0* _bcn=NULL;
_bcn=(((T657*)C))->_base_class_name/*4*/;
_obcn=X291base_class_name(a1);
/*IF*/if (((((T451*)((T451*)_bcn)))->_to_string/*0*/)==((void*)((((T451*)((T451*)_obcn)))->_to_string/*0*/))) {
R=1;
}
 else if (r451is_subclass_of(((T451*)_bcn),_obcn)) {
/*IF*/if (X291is_generic(a1)) {
R=r605is_a_vncg(((T605*)(r451base_class(((T451*)_bcn)))),(T0*)C,a1);
}
else {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_CLASS.jvm_to_reference*/
/*No:TYPE_CLASS.run_type*/
/*No:TYPE_CLASS.is_pointer*/
int r657is_dummy_expanded(T657* C){
int R=0;
/*IF*/if (r657is_expanded(C)) {
R=(r355writable_attributes(((T355*)(r657run_class(C)))))==((void*)(NULL));
}
/*FI*/return R;
}
int r657jvm_push_default(T657* C){
int R=0;
R=1;
/*IF*/if (r657is_reference(C)) {
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
}
else {
r355jvm_expanded_push_default(((T355*)(r657run_class(C))));
}
/*FI*/return R;
}
/*No:TYPE_CLASS.is_string*/
/*No:TYPE_CLASS.is_like_feature*/
/*No:TYPE_CLASS.is_like_current*/
/*No:TYPE_CLASS.make*/
T0* r657jvm_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* r657type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
void r657jvm_return_code(T657* C){
/*IF*/if (r657is_expanded(C)) {
r355jvm_expanded_return_code(((T355*)(r657run_class(C))));
}
else {
/*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{int b1=176;
r226add_last(((T226*)(oBC256code)),b1);
}/*]*/
/*]*/
}
/*FI*/}
/*No:TYPE_CLASS.jvm_xnewarray*/
void r657jvm_descriptor_in(T657* C,T0* a1){
/*IF*/if (r657is_expanded(C)) {
r355jvm_expanded_descriptor_in(((T355*)(r657run_class(C))),a1);
}
else {
r7append(((T7*)a1),r657jvm_root_descriptor());
}
/*FI*/}
/*No:TYPE_CLASS.start_position*/
/*No:TYPE_CLASS.fz_inako*/
/*No:TYPE_CLASS.is_user_expanded*/
/*No:TYPE_CLASS.is_character*/
/*No:TYPE_CLASS.written_mark*/
/*No:TYPE_CLASS.is_run_type*/
T0* r657to_runnable(T657* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
_bc=r451base_class(((T451*)((((T657*)C))->_base_class_name/*4*/)));
/*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
/*IF*/if (!(r863fast_has(((T863*)(oBC657check_memory)),_bc))) {
r355set_at_run_time(((T355*)(r657run_class(C))));
r863add_last(((T863*)(oBC657check_memory)),_bc);
}
/*FI*/}
/*FI*/R=(T0*)C;
return R;
}
/*No:TYPE_CLASS.is_formal_generic*/
T0* r657generic_list(T657* C){
T0* R=NULL;
r657fatal_error_generic_list(C);
return R;
}
T0*oBC657check_memory=NULL;
/*No:TYPE_CLASS.is_real*/
void r657standard_jvm_check_class_invariant(T657* C){
/*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
r355jvm_check_class_invariant(((T355*)(r657run_class(C))));
}
/*FI*/}
/*No:TYPE_CLASS.is_bit*/
void r657fatal_error_generic_list(T657* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_CLASS.jvm_check_class_invariant*/
T0* r657jvm_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),r657jvm_root_class());
r7extend(((T7*)R),'\73');
oBC364jvm_root_descriptor=R;}
return oBC364jvm_root_descriptor;}
void r657jvm_xaload(T657* C){
/*IF*/if (r657is_expanded(C)) {
r355jvm_expanded_xaload(((T355*)(r657run_class(C))));
}
else {
/*[IRF3.4opcode_aaload*/r256opcode(((T256*)(oBC364code_attribute)),50,-(1));
/*]*/
}
/*FI*/}
T0* r657smallest_ancestor(T657* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
T0* _rto_bc=NULL;
T0* _pl2=NULL;
T0* _pl1=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_none(a1)) {
R=(T0*)C;
}
 else if (X291is_any(_rto)) {
R=_rto;
}
else {
_rto_bc=X291base_class(_rto);
_bc=r657base_class(C);
/*IF*/if ((_rto_bc)==((void*)(_bc))) {
R=(T0*)C;
}
 else if (r605is_subclass_of(((T605*)_rto_bc),_bc)) {
R=(T0*)C;
}
 else if (r605is_subclass_of(((T605*)_bc),_rto_bc)) {
R=_rto;
}
 else if ((X291is_expanded(_rto))&&(!(r657is_expanded(C)))) {
R=X291smallest_ancestor(_rto,(T0*)C);
}
else {
_pl1=(((T605*)((T605*)_bc)))->_parent_list/*40*/;
_pl2=(((T605*)((T605*)_rto_bc)))->_parent_list/*40*/;
/*IF*/if (((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))) {
R=r657type_any();
}
 else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/)))/*)*/))))->_type/*4*/,(T0*)C);
}
 else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/)))/*)*/))))->_type/*4*/,a1);
}
else {
R=r673smallest_ancestor(((T673*)_pl1),(T0*)C);
R=X291smallest_ancestor(R,a1);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_CLASS.is_boolean*/
/*No:TYPE_CLASS.is_double*/
int r657jvm_stack_space(void){
int R=0;
/*IF*//*AF*//*AE*/
R=1;
/*FI*/return R;
}
T0* r657run_class(T657* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
/*No:TYPE_CLASS.run_time_mark*/
int r657is_a_in(T657* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r657to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r657look_up_for(T657* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r657base_class(C))),a1,a2);
return R;
}
/*No:TYPE_CLASS.jvm_convert_to*/
T0* r657expanded_initializer(T657* C){
T0* R=NULL;
/*IF*/if (r657is_expanded(C)) {
R=r605expanded_initializer(((T605*)(r657base_class(C))),(T0*)C);
}
/*FI*/return R;
}
/*No:TYPE_CLASS.fz_jvm_root*/
int r657jvm_if_x_ne(T657* C){
int R=0;
/*IF*/if (r657is_expanded(C)) {
R=r355jvm_expanded_if_x_ne(((T355*)(r657run_class(C))));
}
else {
R=r256opcode_if_acmpne(((T256*)(oBC364code_attribute)));
}
/*FI*/return R;
}
/*No:TYPE_CLASS.fz_dot*/
/*No:TYPE_CLASS.is_generic*/
void r657jvm_write_local(T657* C,int a1){
/*IF*/if (r657is_expanded(C)) {
r355jvm_expanded_write_local(((T355*)(r657run_class(C))),a1);
}
else {
r256opcode_astore(((T256*)(oBC364code_attribute)),a1);
}
/*FI*/}
void r657jvm_initialize_local(T657* C,int a1){
/*IF*/if (r657is_reference(C)) {
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
}
else {
r355jvm_expanded_push_default(((T355*)(r657run_class(C))));
}
/*FI*/r657jvm_write_local(C,a1);
}
/*No:TYPE_CLASS.used_as_reference*/
int r657is_reference(T657* C){
int R=0;
R=!((((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/);
return R;
}
T0* r657base_class(T657* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T657*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
void r657jvm_xastore(T657* C){
/*IF*/if (r657is_expanded(C)) {
r355jvm_expanded_xastore(((T355*)(r657run_class(C))));
}
else {
/*[IRF3.4opcode_aastore*/r256opcode(((T256*)(oBC364code_attribute)),83,-(3));
/*]*/
}
/*FI*/}
/*No:TYPE_CLASS.is_any*/
int r657jvm_method_flags(T657* C){
int R=0;
/*IF*/if (r657is_reference(C)) {
R=17;
}
 else if ((r355writable_attributes(((T355*)(r657run_class(C)))))==((void*)(NULL))) {
R=9;
}
else {
R=17;
}
/*FI*/return R;
}
/*No:TYPE_CLASS.base_class_name*/
void r657jvm_push_local(T657* C,int a1){
/*IF*/if (r657is_expanded(C)) {
r355jvm_expanded_push_local(((T355*)(r657run_class(C))),a1);
}
else {
r256opcode_aload(((T256*)(oBC364code_attribute)),a1);
}
/*FI*/}
int r657is_expanded(T657* C){
int R=0;
R=(((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/;
return R;
}
/*No:TYPE_CLASS.is_basic_eiffel_expanded*/
/*No:TYPE_CLASS.is_none*/
/*No:TYPE_CLASS.is_integer*/
T0*oBC769tmp_name=NULL;
/*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_procedure*/
T0*oBC769tmp_descriptor=NULL;
/*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_function*/
T0*oBC769tmp_class=NULL;
/*No:NATIVE_JVM_INVOKESTATIC.jvm_mapping_procedure*/
/*No:NATIVE_JVM_INVOKESTATIC.jvm_define_procedure*/
int r300idx_methodref(T0* a1){
int R=0;
T0* _cp=NULL;
T0* _alias_string=NULL;
int _i=0;
_cp=oBC364constant_pool;
_alias_string=/*X279*/((T0*)(((T679*)((T679*)a1)))->_alias_string/*52*/);
/*IF*/if ((_alias_string)==((void*)(NULL))) {
r683add_position(X279start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_769);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/_i=1;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_class)))))->_count)=(0);
/*]*/
while (!((/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\56'))) {
r7extend(((T7*)(oBC769tmp_class)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
_i=(_i)+(1);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_name)))))->_count)=(0);
/*]*/
while (!((/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\40'))) {
r7extend(((T7*)(oBC769tmp_name)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
_i=(_i)+(1);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC769tmp_descriptor)))))->_count)=(0);
/*]*/
while (!((_i)>((((T7*)((T7*)_alias_string)))->_count/*4*/))) {
r7extend(((T7*)(oBC769tmp_descriptor)),/*(IRF4.6item*/((((T7*)((T7*)_alias_string)))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
R=r95idx_methodref3(((T95*)_cp),oBC769tmp_class,oBC769tmp_name,oBC769tmp_descriptor);
return R;
}
/*No:NATIVE_JVM_INVOKESTATIC.use_current*/
/*No:NATIVE_JVM_INVOKESTATIC.jvm_define_function*/
/*No:NATIVE_JVM_INVOKESTATIC.fatal_error*/
void r300jvm_mapping_function(T0* a1,T0* a2,T0* a3){
T0* _ca=NULL;
int _idx=0;
int _space=0;
_ca=oBC364code_attribute;
r228drop_target(((T228*)(oBC364jvm)));
_space=r228push_arguments(((T228*)(oBC364jvm)));
_idx=r300idx_methodref((((T892*)((T892*)a1)))->_base_feature/*48*/);
_space=(X291jvm_stack_space((((T892*)((T892*)a1)))->_result_type/*24*/))-(_space);
r256opcode_invokestatic(((T256*)_ca),_idx,_space);
}
void r671make(T671* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_items=a2;
}
/*No:EXPORT_LIST.start_position*/
T0* r671clients_for(T671* C,T0* a1){
T0* R=NULL;
T0* _ei=NULL;
int _i=0;
_i=1;
while (!(((R)!=((void*)(NULL)))||((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)))) {
_ei=r587item(((T587*)((((T671*)C))->_items/*4*/)),_i);
/*IF*/if (r542affect(((T542*)_ei),a1)) {
R=(((T542*)((T542*)_ei)))->_clients/*0*/;
}
else {
_i=(_i)+(1);
}
/*FI*/}
return R;
}
/*No:EXPORT_LIST.items*/

