/*
-- 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"
int r90standard_compile_to_jvm_into(T90* C,T0* a1){
int R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T90* C1=C;
r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
}/*]*/
/*]*/
R=X291jvm_convert_to(X291run_type((((T90*)C))->_result_type/*20*/),a1);
return R;
}
/*No:CALL_INFIX_IMPLIES.call_proc_call_c2jvm*/
void r90afd_check(T90* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X291run_class(X662result_type((((T90*)C))->_target/*12*/));
_running=(((T355*)((T355*)_rc)))->_running/*12*/;
/*IF*/if ((_running)==((void*)(NULL))) {
r683add_position(X662start_position((((T90*)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((((T90*)C))->_target/*12*/,(((T90*)C))->_run_feature/*16*/);
}
/*FI*/X662afd_check((((T90*)C))->_target/*12*/);
/*IF*/{/*AT*/r431afd_check(((T431*)((((T90*)C))->_arguments/*24*/)));
}
/*FI*/}
T0* r715add_comment(T715* 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 r715to_integer(T715* C){
int R=0;
r715error((((T715*)C))->_start_position/*16*/,((T0*)ms69_470));
return R;
}
int r715is_a(T715* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T715*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T715*)C))->_start_position/*16*/);
r715error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_RESULT.is_current*/
int r715jvm_branch_if_false(T715* C){
int R=0;
r715compile_to_jvm(C);
R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
return R;
}
/*No:E_RESULT.static_value*/
void r715make(T715* C,T0* a1){
C->_to_string=((T0*)ms146_473);
C->_start_position=a1;
}
/*No:E_RESULT.to_string*/
void r715compile_to_jvm_assignment(T715* C,T0* a1){
int _jvm_offset=0;
int _space=0;
_jvm_offset=r228result_offset(((T228*)(oBC364jvm)));
_space=X662compile_to_jvm_into((((T629*)((T629*)a1)))->_right_side/*12*/,X291run_type((((T715*)C))->_result_type/*20*/));
X291jvm_write_local(X291run_type((((T715*)C))->_result_type/*20*/),_jvm_offset);
}
/*No:E_RESULT.fz_iinaiv*/
int r715jvm_branch_if_true(T715* C){
int R=0;
r715compile_to_jvm(C);
R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
return R;
}
/*No:E_RESULT.start_position*/
/*No:E_RESULT.compile_to_jvm_old*/
T0* r715to_runnable(T715* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T715*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=/*X496*/((T0*)(((T832*)((T832*)(r604top_rf(((T604*)(oBC364small_eiffel)))))))->_result_type/*24*/);
R=(T0*)C;
}
else {
{T715*n=malloc(sizeof(*n));
*n=M715;
r715make(n,(((T715*)C))->_start_position/*16*/);
R=(T0*)n;
}
R=r715to_runnable(((T715*)R),a1);
}
/*FI*/return R;
}
/*No:E_RESULT.result_type*/
/*No:E_RESULT.is_result*/
/*No:E_RESULT.is_static*/
void r715standard_compile_target_to_jvm(T715* C){
r715compile_to_jvm(C);
X291jvm_check_class_invariant((((T715*)C))->_result_type/*20*/);
}
int r715compile_to_jvm_into(T715* C,T0* a1){
int R=0;
R=r715standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:E_RESULT.compile_target_to_jvm*/
/*No:E_RESULT.us_result*/
/*No:E_RESULT.can_be_dropped*/
/*No:E_RESULT.current_type*/
void r715jvm_assign(T715* C){
int _jvm_offset=0;
_jvm_offset=r228result_offset(((T228*)(oBC364jvm)));
X291jvm_write_local(X291run_type((((T715*)C))->_result_type/*20*/),_jvm_offset);
}
/*No:E_RESULT.static_value_mem*/
/*No:E_RESULT.is_manifest_string*/
/*No:E_RESULT.is_void*/
void r715compile_to_jvm(T715* C){
int _jvm_offset=0;
_jvm_offset=r228result_offset(((T228*)(oBC364jvm)));
X291jvm_push_local(X291run_type((((T715*)C))->_result_type/*20*/),_jvm_offset);
}
/*No:E_RESULT.is_pre_computable*/
/*No:E_RESULT.use_current*/
void r715error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_RESULT.isa_dca_inline_argument*/
int r715standard_compile_to_jvm_into(T715* C,T0* a1){
int R=0;
r715compile_to_jvm(C);
R=X291jvm_convert_to(X291run_type((((T715*)C))->_result_type/*20*/),a1);
return R;
}
/*No:E_RESULT.afd_check*/
/*No:CREATION_CLAUSE_LIST.make*/
T0* r391start_position(T391* C){
T0* R=NULL;
R=(((T583*)((T583*)(r235first(((T235*)((((T391*)C))->_list/*0*/)))))))->_start_position/*0*/;
return R;
}
void r391check_expanded_with(T391* C,T0* a1){
/*IF*/if (((((T235*)((T235*)((((T391*)C))->_list/*0*/))))->_upper/*8*/)>(1)) {
r683add_type(a1,((T0*)ms65_470));
r683add_position((((T583*)((T583*)(r235item(((T235*)((((T391*)C))->_list/*0*/)),1)))))->_start_position/*0*/);
r683add_position((((T583*)((T583*)(r235item(((T235*)((((T391*)C))->_list/*0*/)),2)))))->_start_position/*0*/);
/*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
/*]*/
}
/*FI*/r583check_expanded_with(((T583*)(r235item(((T235*)((((T391*)C))->_list/*0*/)),1))),a1);
}
T0* r391get_clause(T391* C,T0* a1){
T0* R=NULL;
int _i=0;
_i=1;
while (!(((_i)>((((T235*)((T235*)((((T391*)C))->_list/*0*/))))->_upper/*8*/))||(r583has(((T583*)(r235item(((T235*)((((T391*)C))->_list/*0*/)),_i))),a1)))) {
_i=(_i)+(1);
}
/*IF*/if ((_i)<=((((T235*)((T235*)((((T391*)C))->_list/*0*/))))->_upper/*8*/)) {
R=r235item(((T235*)((((T391*)C))->_list/*0*/)),_i);
}
/*FI*/return R;
}
/*No:CREATION_CLAUSE_LIST.list*/
T0* r391expanded_initializer(T391* C,T0* a1){
T0* R=NULL;
R=r583expanded_initializer(((T583*)(r235item(((T235*)((((T391*)C))->_list/*0*/)),1))),a1);
return R;
}
/*No:CREATION_CLAUSE_LIST.fz_cbe*/
/*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
/*No:CREATION_CLAUSE_LIST.add_last*/
/*No:CREATION_CLAUSE_LIST.fatal_error*/
/*No:RUN_REQUIRE.make*/
/*No:RUN_REQUIRE.list*/
void r567compile_to_jvm(T567* C){
T0* _ca=NULL;
int _i=0;
/*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
_ca=oBC364code_attribute;
/*IF*/if (((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/)==(1)) {
r343compile_to_jvm(((T343*)(r522first(((T522*)((((T567*)C))->_list/*0*/))))),1);
}
else {
/*[IRF3.3clear*/((((T226*)(((T226*)(oBC567points1)))))->_upper)=(-(1));
/*]*/
_i=1;
while (!((_i)>(((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/)-(1)))) {
r343compile_to_jvm(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))),0);
r226add_last(((T226*)(oBC567points1)),r256opcode_ifne(((T256*)_ca)));
_i=(_i)+(1);
}
r343compile_to_jvm(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))),1);
r256resolve_with(oBC567points1);
}
/*FI*/}
/*FI*/}
int r567use_current(T567* C){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>((((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/)))) {
R=r343use_current(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))));
_i=(_i)+(1);
}
return R;
}
void r567afd_check(T567* C){
int _i=0;
_i=(((T522*)((T522*)((((T567*)C))->_list/*0*/))))->_upper/*8*/;
while (!((_i)==(0))) {
r343afd_check(((T343*)(r522item(((T522*)((((T567*)C))->_list/*0*/)),_i))));
_i=(_i)-(1);
}
}
T0*oBC567points1=NULL;

