/*
-- 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"
void r673get_started(T673* C){
T0* _p2=NULL;
T0* _p1=NULL;
int _i2=0;
int _i1=0;
_i1=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i1)==(0))) {
r877get_started(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1))),(T0*)C);
_i1=(_i1)-(1);
}
/*IF*/if (((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)>(1)) {
_i2=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i2)==(1))) {
_i1=1;
while (!((_i1)==(_i2))) {
_p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i1);
_p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i2);
r877multiple_check(((T877*)_p1),_p2);
r877multiple_check(((T877*)_p2),_p1);
_i1=(_i1)+(1);
}
_i2=(_i2)-(1);
}
}
/*FI*/}
int r673has_parent(T673* C,T0* a1){
int R=0;
T0* _bc=NULL;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_bc=X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/);
/*IF*/if ((a1)==((void*)(_bc))) {
R=1;
_i=0;
}
 else if (r605is_subclass_of_aux(((T605*)_bc),a1)) {
R=1;
_i=0;
}
else {
_i=(_i)-(1);
}
/*FI*/}
return R;
}
/*No:PARENT_LIST.fz_cnf*/
void r673make(T673* C,T0* a1,T0* a2,T0* a3,T0* a4){
C->_base_class=a1;
C->_heading_comment=a3;
C->_start_position=a2;
C->_list=a4;
}
/*No:PARENT_LIST.start_position*/
T0* r673next_parent_for(T673* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _pbc=NULL;
int _i=0;
_i=1;
while (!((R)==((void*)(a2)))) {
R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_i=(_i)+(1);
}
R=NULL;
while (!(((R)!=((void*)(NULL)))||((_i)>(r26count(((T26*)((((T673*)C))->_list/*12*/))))))) {
R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
/*IF*/if ((_pbc)==((void*)(a1))) {
}
 else if (r605is_subclass_of(((T605*)_pbc),a1)) {
}
else {
R=NULL;
}
/*FI*/_i=(_i)+(1);
}
return R;
}
T0* r673first_parent_for(T673* C,T0* a1){
T0* R=NULL;
T0* _pbc=NULL;
int _i=0;
_i=1;
while (!((R)!=((void*)(NULL)))) {
R=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
/*IF*/if ((_pbc)==((void*)(a1))) {
}
 else if (r605is_subclass_of(((T605*)_pbc),a1)) {
}
else {
R=NULL;
}
/*FI*/_i=(_i)+(1);
}
return R;
}
void r673inherit_cycle_check(T673* C){
T0* _bc=NULL;
T0* _p=NULL;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
/*IF*/if ((_bc)==((void*)(NULL))) {
r683add_position(r877start_position(((T877*)_p)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
r605inherit_cycle_check(((T605*)_bc));
}
/*FI*/_i=(_i)-(1);
}
}
/*No:PARENT_LIST.em1*/
/*No:PARENT_LIST.list*/
T0* r673up_to_original(T673* C,T0* a1,T0* a2){
T0* R=NULL;
int _i=0;
T0* _new_fn=NULL;
T0* _fn2=NULL;
T0* _fn1=NULL;
T0* _p2=NULL;
T0* _p1=NULL;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!(((_i)==(0))||((_fn1)!=((void*)(NULL))))) {
_p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_fn1=r877up_to_original(((T877*)_p1),a1,a2);
_i=(_i)-(1);
}
while (!((_i)==(0))) {
_p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_fn2=r877up_to_original(((T877*)_p2),a1,a2);
/*IF*/if ((_fn2)!=((void*)(NULL))) {
_new_fn=r877do_rename(((T877*)_p2),a2);
/*IF*/if (r877has_select_for(((T877*)_p2),_new_fn)) {
_p1=_p2;
_fn1=_fn2;
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
/*IF*/if ((_fn1)!=((void*)(NULL))) {
/*IF*/if ((X776to_string(_fn1))!=((void*)(X776to_string(a2)))) {
R=r673repeated_inheritance(C,_p1,_fn1,a2);
}
else {
R=_fn1;
}
/*FI*/}
/*FI*/return R;
}
void r673collect_invariant(T673* C,T0* a1){
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i)==(0))) {
r605collect_invariant(((T605*)(X291base_class((((T877*)((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i)))))->_type/*4*/))),a1);
_i=(_i)-(1);
}
}
T0* r673smallest_ancestor(T673* C,T0* a1){
T0* R=NULL;
T0* _sa=NULL;
T0* _p=NULL;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_p=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_sa=X291run_type(r877smallest_ancestor(((T877*)_p),a1));
/*IF*/if ((R)==((void*)(NULL))) {
R=_sa;
}
else {
R=X291smallest_ancestor(_sa,R);
}
/*FI*//*IF*/if (X291is_any(R)) {
_i=0;
}
else {
_i=(_i)-(1);
}
/*FI*/}
return R;
}
int r673has(T673* C,T0* a1){
int R=0;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r877has(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
_i=(_i)-(1);
}
return R;
}
int r673has_redefine(T673* C,T0* a1){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/)))) {
R=r877has_redefine(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
_i=(_i)+(1);
}
return R;
}
T0* r673look_up_for(T673* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _f2=NULL;
T0* _f1=NULL;
T0* _p2=NULL;
T0* _p1=NULL;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!(((_f1)!=((void*)(NULL)))||((_i)==(0)))) {
_p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_f1=r877look_up_for(((T877*)_p1),a1,a2);
_i=(_i)-(1);
}
while (!((_i)==(0))) {
_p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_f2=r877look_up_for(((T877*)_p2),a1,a2);
/*IF*/if ((_f2)==((void*)(NULL))) {
}
 else if ((_f1)==((void*)(_f2))) {
}
 else if (!(X359is_merge_with(_f2,_f1,a1))) {
r683add_position((((T673*)C))->_start_position/*4*/);
r683add_position(X359start_position(_f1));
r683add_position(X359start_position(_f2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms70_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if (X359is_deferred(_f2)) {
}
 else if (X359is_deferred(_f1)) {
_f1=_f2;
_p1=_p2;
}
 else if (r877has_redefine(((T877*)_p1),a2)) {
/*IF*/if (r877has_redefine(((T877*)_p2),a2)) {
}
else {
r683add_position(X776start_position(a2));
r683add_position(r877start_position(((T877*)_p2)));
r683add_position(X359start_position(_f2));
/*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/}
 else if (r877has_redefine(((T877*)_p2),a2)) {
r683add_position(X776start_position(a2));
r683add_position(r877start_position(((T877*)_p1)));
r683add_position(X359start_position(_f1));
/*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
else {
r683add_position(r877start_position(((T877*)_p2)));
r683add_position(r877start_position(((T877*)_p1)));
r683add_position(X359start_position(_f1));
r683add_position(X359start_position(_f2));
/*[IRF3.6append*/{T0* b1=((T0*)ms2_673);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/_i=(_i)-(1);
}
R=_f1;
return R;
}
T0* r673repeated_inheritance(T673* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _bc1=NULL;
T0* _p2=NULL;
int _i=0;
_bc1=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
/*IF*/if ((a1)!=((void*)(_p2))) {
/*IF*/if ((_bc1)==((void*)(X291base_class((((T877*)((T877*)_p2)))->_type/*4*/)))) {
/*IF*/if ((X776to_string(r877do_rename(((T877*)_p2),a2)))==((void*)(X776to_string(a3)))) {
R=a3;
}
 else if ((X776to_string(r877do_rename(((T877*)a1),a2)))==((void*)(X776to_string(a3)))) {
R=a3;
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
/*IF*/if ((R)==((void*)(NULL))) {
R=a2;
}
/*FI*/return R;
}
/*No:PARENT_LIST.super*/
T0* r673clients_for(T673* C,T0* a1){
T0* R=NULL;
T0* _cl=NULL;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((_i)==(0))) {
_cl=r877clients_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1);
/*IF*/if ((R)==((void*)(NULL))) {
R=_cl;
}
 else if ((_cl)!=((void*)(NULL))) {
R=r636append(((T636*)R),_cl);
}
/*FI*//*IF*/if (((R)!=((void*)(NULL)))&&(r636gives_permission_to_any(((T636*)R)))) {
_i=0;
}
else {
_i=(_i)-(1);
}
/*FI*/}
return R;
}
T0* r673going_up(T673* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _fn2=NULL;
T0* _fn1=NULL;
T0* _p2=NULL;
T0* _p1=NULL;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!(((_fn1)!=((void*)(NULL)))||((_i)==(0)))) {
_p1=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_fn1=r877going_up(((T877*)_p1),a1,a2,a3);
_i=(_i)-(1);
}
while (!((_i)==(0))) {
_p2=r26item(((T26*)((((T673*)C))->_list/*12*/)),_i);
_fn2=r877going_up(((T877*)_p2),a1,a2,a3);
/*IF*/if ((_fn2)!=((void*)(NULL))) {
/*IF*/if (r877has_select_for(((T877*)_p2),_fn2)) {
_p1=_p2;
_fn1=_fn2;
}
/*FI*/}
/*FI*/_i=(_i)-(1);
}
R=_fn1;
return R;
}
int r673is_a_vncg(T673* C,T0* a1,T0* a2){
int R=0;
int _i=0;
_i=(((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r877is_a_vncg(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
_i=(_i)-(1);
}
return R;
}
void r673collect_for(T673* C,int a1,T0* a2){
int _i=0;
_i=1;
while (!((_i)>((((T26*)((T26*)((((T673*)C))->_list/*12*/))))->_upper/*8*/))) {
r877collect_for(((T877*)(r26item(((T26*)((((T673*)C))->_list/*12*/)),_i))),a1,a2);
_i=(_i)+(1);
}
}
/*No:PARENT_LIST.heading_comment*/
/*No:PARENT_LIST.count*/
/*No:PARENT_LIST.base_class*/
/*No:PARENT_LIST.fatal_error*/
/*No:PARENT_LIST.fz_ich*/
/*No:CECIL_POOL.us_print*/
/*No:CECIL_POOL.se_cecil_list*/
void r625fill_up(T625* C){
int _i=0;
T0* _rf=NULL;
T0* _fna=NULL;
T0* _rta=NULL;
T0* _t=NULL;
/*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
{T308*n=malloc(sizeof(*n));
*n=M308;
r308with_capacity(n,1);
C->_se_cecil_list=(T0*)n;
}
{T927*n=malloc(sizeof(*n));
*n=M927;
r927with_capacity(n,1);
C->_se_cecil_name=(T0*)n;
}
r927add_last(((T927*)((((T625*)C))->_se_cecil_name/*4*/)),((T0*)ms1_625));
_rf=r355get_feature_with(((T355*)(r669run_class(((T669*)(r625type_any()))))),((T0*)ms101_473));
X308add_last((((T625*)C))->_se_cecil_list/*0*/,_rf);
r576update_with(_rf);
}
/*FI*//*IF*/if (((((T590*)((T590*)(oBC364run_control))))->_cecil_path/*12*/)!=((void*)(NULL))) {
{T308*n=malloc(sizeof(*n));
*n=M308;
r308with_capacity(n,4);
C->_user_cecil_list=(T0*)n;
}
{T927*n=malloc(sizeof(*n));
*n=M927;
r927with_capacity(n,4);
C->_user_cecil_name=(T0*)n;
}
C->_user_path_h=r818connect_to_cecil(((T818*)(oBC364eiffel_parser)));
{T272*n=malloc(sizeof(*n));
*n=M272;
r272with_capacity(n,4);
_rta=(T0*)n;
}
{T719*n=malloc(sizeof(*n));
*n=M719;
r719with_capacity(n,4);
_fna=(T0*)n;
}
while (!(r818end_of_input(((T818*)(oBC364eiffel_parser))))) {
r927add_last(((T927*)((((T625*)C))->_user_cecil_name/*12*/)),r818parse_c_name(((T818*)(oBC364eiffel_parser))));
X272add_last(_rta,r818parse_run_type(((T818*)(oBC364eiffel_parser))));
r719add_last(((T719*)_fna),r818parse_feature_name(((T818*)(oBC364eiffel_parser))));
}
r818disconnect(((T818*)(oBC364eiffel_parser)));
r306put_string(((T306*)(oBC364echo)),((T0*)ms2_625));
_i=0;
while (!((_i)>(/*X272*/((int)(((T272*)((T272*)_rta)))->_upper/*12*/)))) {
_t=X291to_runnable(/*X272*/((T0*)r272item(((T272*)_rta),_i)),r625type_any());
_rf=r355get_feature(((T355*)(X291run_class(_t))),/*(IRF4.6item*/((((T719*)((T719*)_fna)))->_storage/*0*/)[_i]/*)*/);
X308add_last((((T625*)C))->_user_cecil_list/*8*/,_rf);
r576update_with(_rf);
_i=(_i)+(1);
}
}
/*FI*/}
T0* r625type_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;}
/*No:CECIL_POOL.user_path_h*/
/*No:CECIL_POOL.user_cecil_list*/
/*No:CECIL_POOL.user_cecil_name*/
/*No:CECIL_POOL.se_cecil_name*/
/*No:PREFIX_NAME.set_is_frozen*/
void r406make(T406* C,T0* a1,T0* a2){
C->_to_string=r902item(a1);
C->_start_position=a2;
C->_to_key=r902for_prefix((((T406*)C))->_to_string/*4*/);
}
/*No:PREFIX_NAME.to_string*/
/*No:PREFIX_NAME.start_position*/
/*No:PREFIX_NAME.to_key*/
/*No:PREFIX_NAME.is_frozen*/
void r406undefine_in(T406* C,T0* a1){
/*IF*/if ((((T406*)C))->_is_frozen/*12*/) {
r406error((((T406*)C))->_start_position/*8*/,((T0*)ms1_776));
r605fatal_undefine(((T605*)a1),(T0*)C);
}
/*FI*/}
void r406error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r406origin_base_class(T406* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T406*)C))->_start_position/*8*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=r627base_class(((T627*)_sp));
}
/*FI*/return R;
}
void r675connect_to(T675* C,T0* a1){
C->_input_stream=fopen(r7to_external(((T7*)a1)),"r");
/*IF*/if ((NULL!=(((T675*)C))->_input_stream/*8*/)) {
C->_push_back_flag=0;
C->_memory=((unsigned char)'\40');
C->_path=a1;
}
/*FI*/}
T0*oBC762last_string=NULL;
/*No:STD_FILE_READ.push_back_flag*/
void r675skip_separators(T675* C){
while (!((r675end_of_input(C))||(!(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/))))) {
r675read_character(C);
}
}
/*No:STD_FILE_READ.make*/
void r675disconnect(T675* C){
fclose((((T675*)C))->_input_stream/*8*/);
C->_path=NULL;
}
/*No:STD_FILE_READ.path*/
void r675read_character(T675* C){
/*IF*/if ((((T675*)C))->_push_back_flag/*0*/) {
C->_push_back_flag=0;
}
else {
C->_memory=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
}
/*FI*/}
/*No:STD_FILE_READ.is_connected*/
void r675read_word(T675* C){
r675skip_separators(C);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
/*]*/
while (!((r675end_of_input(C))||(r3is_separator(/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/)))) {
r7extend(((T7*)(oBC762last_string)),/*(IRF4.6last_character*/((char)((((T675*)C))->_memory/*12*/))/*)*/);
r675read_character(C);
}
}
/*No:STD_FILE_READ.last_character*/
void r675read_line_in(T675* C,T0* a1){
int _mem=0;
r675read_character(C);
_mem=(((T675*)C))->_memory/*12*/;
while (!(((_mem)==((EOF)))||((_mem)==(((unsigned char)'\n'))))) {
r7extend(((T7*)a1),((char)(_mem)));
_mem=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
}
C->_memory=_mem;
}
int r675end_of_input(T675* C){
int R=0;
/*IF*/if (!((((T675*)C))->_push_back_flag/*0*/)) {
R=((((T675*)C))->_memory/*12*/)==((EOF));
}
/*FI*/return R;
}
void r675read_line(T675* C){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
/*]*/
r675read_line_in(C,oBC762last_string);
}
/*No:STD_FILE_READ.input_stream*/
/*No:STD_FILE_READ.memory*/
T0* r347add_comment(T347* 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 {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
R=(T0*)C;
}
else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
void r347make(T347* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_list=a2;
C->_compound=a3;
}
/*No:E_DEBUG.start_position*/
T0* r347to_runnable(T347* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T347*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
/*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
C->_compound=r592to_runnable(((T592*)((((T347*)C))->_compound/*16*/)),r347current_type(C));
}
/*FI*/}
/*FI*/R=(T0*)C;
}
else {
{T347*n=malloc(sizeof(*n));
*n=M347;
r347make(n,(((T347*)C))->_start_position/*8*/,(((T347*)C))->_list/*12*/,(((T347*)C))->_compound/*16*/);
R=(T0*)n;
}
R=r347to_runnable(((T347*)R),a1);
}
/*FI*/return R;
}
/*No:E_DEBUG.list*/
T0* r347current_type(T347* C){
T0* R=NULL;
/*IF*/if (((((T347*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T347*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:E_DEBUG.run_compound*/
/*No:E_DEBUG.compound*/
void r347compile_to_jvm(T347* C){
/*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
r592compile_to_jvm(((T592*)((((T347*)C))->_compound/*16*/)));
}
/*FI*/}
/*FI*/}
/*No:E_DEBUG.is_pre_computable*/
int r347use_current(T347* C){
int R=0;
/*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
R=r592use_current(((T592*)((((T347*)C))->_compound/*16*/)));
}
/*FI*/}
/*FI*/return R;
}
/*No:E_DEBUG.end_mark_comment*/
void r347afd_check(T347* C){
/*IF*/if (r590debug_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T347*)C))->_compound/*16*/)!=((void*)(NULL))) {
r592afd_check(((T592*)((((T347*)C))->_compound/*16*/)));
}
/*FI*/}
/*FI*/}
/*No:PARSER_BUFFER.make*/
int fBC676buffer=0;
T9 oBC676buffer=NULL;
T9 r676buffer(void){
if (fBC676buffer==0){
T9 R=NULL;
fBC676buffer=1;
R=calloc(4096,sizeof(char));
oBC676buffer=R;}
return oBC676buffer;}
/*No:PARSER_BUFFER.path*/
int r676read_file(T0* a1){
int R=0;
T9 _b=NULL;
T0* _line=NULL;
char _c=0;
int _nb_read=0;
int _i=0;
int _file=0;
void* _p=0;
_p=r7to_external(((T7*)a1));
_file=open(_p,O_RDONLY,0);/*IF*/if ((_file)>=(0)) {
_b=r676buffer();
_line=r676next_line(0);
_line=r676next_line(1);
R=1;
_nb_read=4096;
while (!((_nb_read)<(4096))) {
_nb_read=read(_file,_b,4096);
_i=0;
while (!((_i)==(_nb_read))) {
_c=(_b)[_i];
/*IF*/if ((_c)==('\n')) {
R=(R)+(1);
_line=r676next_line(R);
}
 else if ((_c)==('\15')) {
}
else {
r7extend(((T7*)_line),_c);
}
/*FI*/_i=(_i)+(1);
}
}
/*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)_line)))->_count/*4*/)==(0)/*)*/) {
R=(R)-(1);
}
/*FI*/_file=close(_file);
}
else {
R=-(1);
}
/*FI*/return R;
}
T0* r676item(int a1){
T0* R=NULL;
R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
return R;
}
void r676load_file(T676* C,T0* a1){
C->_count=r676read_file(a1);
/*IF*/if (((((T676*)C))->_count/*4*/)>=(0)) {
C->_path=a1;
}
else {
C->_path=NULL;
}
/*FI*/}
/*No:PARSER_BUFFER.is_ready*/
T0*oBC676text=NULL;
/*No:PARSER_BUFFER.medium_line_size*/
/*No:PARSER_BUFFER.buffer_size*/
/*No:PARSER_BUFFER.count*/
/*No:PARSER_BUFFER.unset_is_ready*/
T0* r676next_line(int a1){
T0* R=NULL;
/*IF*/if ((a1)<=((((T927*)((T927*)(oBC676text))))->_upper/*8*/)) {
R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
/*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
/*]*/
}
else {
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,80);
R=(T0*)n;
}
r927add_last(((T927*)(oBC676text)),R);
}
/*FI*/return R;
}
/*No:CALL_INFIX_LE.arguments*/
T0* r932add_comment(T932* 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 r932to_integer(T932* C){
int R=0;
r932error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r932is_a(T932* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T932*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
r932error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_LE.is_current*/
int r932jvm_branch_if_false(T932* C){
int R=0;
/*IF*/if (X291is_integer((((T932*)C))->_current_type/*8*/)) {
X662compile_to_jvm((((T932*)C))->_target/*12*/);
X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/);
R=r256opcode_if_icmpgt(((T256*)(oBC364code_attribute)));
}
else {
R=r932jvm_standard_branch_if_false(C);
}
/*FI*/return R;
}
/*No:CALL_INFIX_LE.static_value*/
void r932make(T932* 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,r932operator(),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;
}
r932make_call_1(C,a1,(((T932*)C))->_feature_name/*28*/,_eal);
}
/*No:CALL_INFIX_LE.nb_errors*/
/*No:CALL_INFIX_LE.feature_name*/
/*No:CALL_INFIX_LE.compile_to_jvm_assignment*/
/*No:CALL_INFIX_LE.fz_iinaiv*/
/*No:CALL_INFIX_LE.arg_count*/
int r932jvm_branch_if_true(T932* C){
int R=0;
/*IF*/if (X291is_integer((((T932*)C))->_current_type/*8*/)) {
X662compile_to_jvm((((T932*)C))->_target/*12*/);
X662compile_to_jvm(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/);
R=r256opcode_if_icmple(((T256*)(oBC364code_attribute)));
}
else {
R=r932jvm_standard_branch_if_true(C);
}
/*FI*/return R;
}
/*No:CALL_INFIX_LE.run_feature*/
/*No:CALL_INFIX_LE.start_position*/
void r932compile_to_jvm_old(T932* C){
X662compile_to_jvm_old((((T932*)C))->_target/*12*/);
/*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T932*)C))->_arguments/*24*/)));
}
/*FI*/}
/*No:CALL_INFIX_LE.target*/
T0* r932to_runnable(T932* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T932*)C))->_current_type/*8*/)==((void*)(NULL))) {
r932to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T932*)C))->_arguments/*24*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r932error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)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*)((((T932*)C))->_arguments/*24*/)),(((T932*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T932*)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*)((((T932*)C))->_arguments/*24*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r932twin(C);
/*[IRF3.3set_current_type*/((((T932*)(((T932*)R))))->_current_type)=(NULL);
/*]*/
R=r932to_runnable(((T932*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_LE.result_type*/
/*No:CALL_INFIX_LE.is_result*/
T0* r932twin(T932* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T932*)R)=*C;
return R;
}
/*No:CALL_INFIX_LE.set_current_type*/
/*No:CALL_INFIX_LE.us_le*/
T0* r932operator(void){
T0* R=NULL;
R=((T0*)ms35_473);
return R;
}
int r932is_static(T932* C){
int R=0;
/*IF*/if (X291is_integer(X662result_type((((T932*)C))->_target/*12*/))) {
/*IF*/if ((X662is_static((((T932*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/))) {
R=1;
/*IF*/if ((X662static_value((((T932*)C))->_target/*12*/))<=(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*24*/)))/*)*/))) {
C->_static_value_mem=1;
}
else {
C->_static_value_mem=0;
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
void r932standard_compile_target_to_jvm(T932* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
X291jvm_check_class_invariant((((T932*)C))->_result_type/*20*/);
}
int r932compile_to_jvm_into(T932* C,T0* a1){
int R=0;
R=r932standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_LE.compile_target_to_jvm*/
/*No:CALL_INFIX_LE.fz_07*/
/*No:CALL_INFIX_LE.can_be_dropped*/
/*No:CALL_INFIX_LE.current_type*/
/*No:CALL_INFIX_LE.jvm_assign*/
/*No:CALL_INFIX_LE.static_value_mem*/
void r932make_call_1(T932* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_LE.is_manifest_string*/
/*No:CALL_INFIX_LE.is_void*/
int r932jvm_standard_branch_if_false(T932* C){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
/*No:CALL_INFIX_LE.compile_to_jvm*/
void r932to_runnable_0(T932* C,T0* a1){
C->_current_type=a1;
r932cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T932*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T932*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T932*)C))->_run_feature/*16*/));
r932error((((T454*)((T454*)((((T932*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T932*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T932*)C))->_target/*12*/);
}
/*FI*/}
/*No:CALL_INFIX_LE.is_pre_computable*/
int r932jvm_standard_branch_if_true(T932* C){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
return R;
}
int r932use_current(T932* C){
int R=0;
/*IF*/{/*AT*/R=r431use_current(((T431*)((((T932*)C))->_arguments/*24*/)));
}
/*FI*//*IF*/if (R) {
}
 else if (X662is_current((((T932*)C))->_target/*12*/)) {
R=X496use_current((((T932*)C))->_run_feature/*16*/);
}
else {
R=X662use_current((((T932*)C))->_target/*12*/);
}
/*FI*/return R;
}
void r932cpc_to_runnable(T932* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T932*)C))->_target/*12*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T932*)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((((T932*)C))->_target/*12*/));
C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
r576update((((T932*)C))->_target/*12*/,(((T932*)C))->_run_feature/*16*/);
}
void r932error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_LE.isa_dca_inline_argument*/
/*No:CALL_INFIX_LE.fatal_error*/
/*No:CALL_INFIX_LE.fz_bad_argument*/
/*No:CALL_INFIX_LE.arg1*/
int r932standard_compile_to_jvm_into(T932* C,T0* a1){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T932* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=X291jvm_convert_to(X291run_type((((T932*)C))->_result_type/*20*/),a1);
return R;
}
/*No:CALL_INFIX_LE.call_proc_call_c2jvm*/
void r932afd_check(T932* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T932*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T932*)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((((T932*)C))->_target/*12*/,(((T932*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T932*)C))->_target/*12*/);
/*IF*/{/*AT*/r431afd_check(((T431*)((((T932*)C))->_arguments/*24*/)));
}
/*FI*/}
T0* r629add_comment(T629* 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 r629make(T629* C,T0* a1,T0* a2){
C->_left_side=a1;
C->_right_side=a2;
}
/*No:ASSIGNMENT.nb_errors*/
T0* r629start_position(T629* C){
T0* R=NULL;
R=X662start_position((((T629*)C))->_left_side/*8*/);
return R;
}
T0* r629to_runnable(T629* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
T0* _right_run_type=NULL;
T0* _left_run_type=NULL;
/*IF*/if (((((T629*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_e=X662to_runnable((((T629*)C))->_left_side/*8*/,r629current_type(C));
/*IF*/if ((_e)==((void*)(NULL))) {
r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms62_470));
}
else {
C->_left_side=_e;
}
/*FI*/_e=X662to_runnable((((T629*)C))->_right_side/*12*/,r629current_type(C));
/*IF*/if ((_e)==((void*)(NULL))) {
r629error(X662start_position((((T629*)C))->_right_side/*12*/),((T0*)ms63_470));
}
else {
C->_right_side=_e;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (!(X662is_a((((T629*)C))->_right_side/*12*/,(((T629*)C))->_left_side/*8*/))) {
r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms2_629));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_left_run_type=X291run_type(r629left_type(C));
_right_run_type=X291run_type(r629right_type(C));
/*IF*/if (X291is_reference(_left_run_type)) {
/*IF*/if (X291is_reference(_right_run_type)) {
}
else {
X291used_as_reference(_right_run_type);
}
/*FI*/}
else {
/*IF*/if (X291is_reference(_right_run_type)) {
/*IF*/if (X662is_void((((T629*)C))->_right_side/*12*/)) {
r683add_position(X662start_position((((T629*)C))->_right_side/*12*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms3_629);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(r629left_type(C),((T0*)ms4_629));
r683print_as_error(((T683*)(oBC364eh)));
}
else {
r629warning(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms5_629));
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T629*n=malloc(sizeof(*n));
*n=M629;
r629make(n,(((T629*)C))->_left_side/*8*/,(((T629*)C))->_right_side/*12*/);
R=(T0*)n;
}
R=r629to_runnable(((T629*)R),a1);
}
/*FI*/return R;
}
T0* r629right_type(T629* C){
T0* R=NULL;
R=X662result_type((((T629*)C))->_right_side/*12*/);
return R;
}
/*No:ASSIGNMENT.left_side*/
T0* r629current_type(T629* C){
T0* R=NULL;
/*IF*/if (((((T629*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T629*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:ASSIGNMENT.run_compound*/
void r629compile_to_jvm(T629* C){
X662compile_to_jvm_assignment((((T629*)C))->_left_side/*8*/,(T0*)C);
}
int r629is_pre_computable(T629* C){
int R=0;
T0* _rf6=NULL;
T0* _call=NULL;
/*IF*/if (X662is_result((((T629*)C))->_left_side/*8*/)) {
/*IF*/if (X662is_pre_computable((((T629*)C))->_right_side/*12*/)) {
_call=(((T629*)C))->_right_side/*12*/;
if(NULL!=(_call))switch(((T0*)_call)->id) {
case 121: case 890: case 414: case 453: case 180: case 460: case 932: case 990: case 253: case 278: case 767: case 760: case 915: case 534: case 999: case 517: case 520: case 557: case 72: case 574: case 90: case 57: case 313: case 487: case 492: case 655: case 112: 
break;
default:
_call=NULL;
};/*IF*/if ((_call)!=((void*)(NULL))) {
_rf6=X295run_feature(_call);
if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
case 868: 
break;
default:
_rf6=NULL;
};R=(_rf6)==((void*)(NULL));
}
else {
R=1;
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
int r629use_current(T629* C){
int R=0;
R=X662use_current((((T629*)C))->_left_side/*8*/);
R=(R)||(X662use_current((((T629*)C))->_right_side/*12*/));
return R;
}
/*No:ASSIGNMENT.right_side*/
/*No:ASSIGNMENT.fz_blhsoa*/
/*No:ASSIGNMENT.fz_brhsoa*/
void r629error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ASSIGNMENT.end_mark_comment*/
void r629afd_check(T629* C){
X662afd_check((((T629*)C))->_right_side/*12*/);
}
T0* r629left_type(T629* C){
T0* R=NULL;
R=X662result_type((((T629*)C))->_left_side/*8*/);
return R;
}
void r629warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
int r239id(T239* C){
int R=0;
R=(((T355*)((T355*)(r239run_class(C)))))->_id/*4*/;
return R;
}
void r239jvm_target_descriptor_in(T239* C,T0* a1){
X291jvm_target_descriptor_in((((T239*)C))->_run_type/*8*/,a1);
}
T0*oBC646tmp_written_mark=NULL;
int r239jvm_if_x_eq(T239* C){
int R=0;
R=X291jvm_if_x_eq((((T239*)C))->_run_type/*8*/);
return R;
}
int r239has_creation(T239* C,T0* a1){
int R=0;
R=X291has_creation((((T239*)C))->_run_type/*8*/,a1);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_anchored*/
int r239is_array(T239* C){
int R=0;
R=X291is_array((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_a(T239* C,T0* a1){
int R=0;
R=X291is_a((((T239*)C))->_run_type/*8*/,a1);
return R;
}
void r239jvm_to_reference(T239* C){
X291jvm_to_reference((((T239*)C))->_run_type/*8*/);
}
int r239is_pointer(T239* C){
int R=0;
R=X291is_pointer((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.run_type*/
int r239is_dummy_expanded(T239* C){
int R=0;
R=X291is_dummy_expanded((((T239*)C))->_run_type/*8*/);
return R;
}
int r239jvm_push_default(T239* C){
int R=0;
R=X291jvm_push_default((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_string(T239* C){
int R=0;
R=X291is_string((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_like_feature*/
/*No:TYPE_LIKE_ARGUMENT.is_like_current*/
T0* r239ultimate_run_type(T239* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
_t=a1;
while (!((_t)==((void*)(X291run_type(_t))))) {
_t=X291run_type(_t);
}
/*IF*/if (((((T239*)C))->_run_type/*8*/)==((void*)(NULL))) {
C->_run_type=_t;
R=(T0*)C;
}
else {
R=r239twin(C);
/*[IRF3.3set_run_type*/((((T239*)(((T239*)R))))->_run_type)=(_t);
/*]*/
}
/*FI*/return R;
}
void r239make(T239* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_like_what=a2;
r7copy(((T7*)(oBC646tmp_written_mark)),((T0*)ms113_470));
r7append(((T7*)(oBC646tmp_written_mark)),(((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_to_string/*12*/);
C->_written_mark=r902item(oBC646tmp_written_mark);
}
void r239anchor_cycle_start(T239* C){
int _i=0;
/*IF*/if (((((T907*)((T907*)(oBC646visited))))->_upper/*8*/)<(0)) {
r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
}
 else if (r907fast_has(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/)) {
_i=0;
while (!((_i)>((((T907*)((T907*)(oBC646visited))))->_upper/*8*/))) {
r683add_position(/*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
}
/*FI*/}
/*No:TYPE_LIKE_ARGUMENT.fz_bad_anchor*/
void r239jvm_return_code(T239* C){
X291jvm_return_code((((T239*)C))->_run_type/*8*/);
}
void r239jvm_xnewarray(T239* C){
X291jvm_xnewarray((((T239*)C))->_run_type/*8*/);
}
void r239jvm_descriptor_in(T239* C,T0* a1){
X291jvm_descriptor_in((((T239*)C))->_run_type/*8*/,a1);
}
/*No:TYPE_LIKE_ARGUMENT.start_position*/
/*No:TYPE_LIKE_ARGUMENT.like_what*/
int r239is_user_expanded(T239* C){
int R=0;
R=X291is_user_expanded((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_character(T239* C){
int R=0;
R=X291is_character((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.written_mark*/
/*No:TYPE_LIKE_ARGUMENT.is_run_type*/
T0* r239to_runnable(T239* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
r239anchor_cycle_start(C);
_t=X291to_runnable((((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_result_type/*24*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r239error((((T239*)C))->_start_position/*4*/,((T0*)ms54_470));
}
/*FI*/R=r239ultimate_run_type(C,_t);
r239anchor_cycle_end(C);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.rank*/
/*No:TYPE_LIKE_ARGUMENT.is_formal_generic*/
T0* r239generic_list(T239* C){
T0* R=NULL;
/*IF*/if (r239is_generic(C)) {
R=X291generic_list((((T239*)C))->_run_type/*8*/);
}
else {
r239fatal_error_generic_list(C);
}
/*FI*/return R;
}
int r239is_real(T239* C){
int R=0;
R=X291is_real((((T239*)C))->_run_type/*8*/);
return R;
}
T0* r239twin(T239* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T239*)R)=*C;
return R;
}
int r239is_bit(T239* C){
int R=0;
R=X291is_bit((((T239*)C))->_run_type/*8*/);
return R;
}
void r239fatal_error_generic_list(T239* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
void r239jvm_check_class_invariant(T239* C){
X291jvm_check_class_invariant((((T239*)C))->_run_type/*8*/);
}
void r239jvm_xaload(T239* C){
X291jvm_xaload((((T239*)C))->_run_type/*8*/);
}
T0* r239smallest_ancestor(T239* C,T0* a1){
T0* R=NULL;
R=X291smallest_ancestor((((T239*)C))->_run_type/*8*/,a1);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.set_run_type*/
int r239is_boolean(T239* C){
int R=0;
R=X291is_boolean((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_double(T239* C){
int R=0;
R=X291is_double((((T239*)C))->_run_type/*8*/);
return R;
}
int r239jvm_stack_space(T239* C){
int R=0;
/*IF*/if (r239is_double(C)) {
R=2;
}
else {
R=1;
}
/*FI*/return R;
}
T0* r239run_class(T239* C){
T0* R=NULL;
R=r604run_class((((T239*)C))->_run_type/*8*/);
return R;
}
T0* r239run_time_mark(T239* C){
T0* R=NULL;
/*IF*/if (((((T239*)C))->_run_type/*8*/)!=((void*)(NULL))) {
R=X291run_time_mark((((T239*)C))->_run_type/*8*/);
}
/*FI*/return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_cad*/
int r239is_a_in(T239* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T239*)C))->_written_mark/*16*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r239to_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* r239look_up_for(T239* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r239base_class(C))),a1,a2);
return R;
}
int r239jvm_convert_to(T239* C,T0* a1){
int R=0;
R=X291jvm_convert_to((((T239*)C))->_run_type/*8*/,a1);
return R;
}
T0* r239expanded_initializer(T239* C){
T0* R=NULL;
R=X291expanded_initializer((((T239*)C))->_run_type/*8*/);
return R;
}
int r239jvm_if_x_ne(T239* C){
int R=0;
R=X291jvm_if_x_ne((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_dot*/
int r239is_generic(T239* C){
int R=0;
R=X291is_generic((((T239*)C))->_run_type/*8*/);
return R;
}
void r239jvm_write_local(T239* C,int a1){
X291jvm_write_local((((T239*)C))->_run_type/*8*/,a1);
}
void r239jvm_initialize_local(T239* C,int a1){
X291jvm_initialize_local((((T239*)C))->_run_type/*8*/,a1);
}
/*No:TYPE_LIKE_ARGUMENT.used_as_reference*/
int r239is_reference(T239* C){
int R=0;
R=X291is_reference((((T239*)C))->_run_type/*8*/);
return R;
}
void r239error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r239base_class(T239* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r239base_class_name(C);
/*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 r239jvm_xastore(T239* C){
X291jvm_xastore((((T239*)C))->_run_type/*8*/);
}
/*No:TYPE_LIKE_ARGUMENT.fatal_error*/
int r239is_any(T239* C){
int R=0;
R=X291is_any((((T239*)C))->_run_type/*8*/);
return R;
}
int r239jvm_method_flags(T239* C){
int R=0;
R=X291jvm_method_flags((((T239*)C))->_run_type/*8*/);
return R;
}
T0*oBC646visited=NULL;
T0* r239base_class_name(T239* C){
T0* R=NULL;
R=X291base_class_name((((T239*)C))->_run_type/*8*/);
return R;
}
void r239jvm_push_local(T239* C,int a1){
X291jvm_push_local((((T239*)C))->_run_type/*8*/,a1);
}
int r239is_expanded(T239* C){
int R=0;
R=X291is_expanded((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_like_foo*/
int r239is_basic_eiffel_expanded(T239* C){
int R=0;
R=X291is_basic_eiffel_expanded((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_none(T239* C){
int R=0;
R=X291is_none((((T239*)C))->_run_type/*8*/);
return R;
}

