/*
-- 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* r491written_mark(void){
T0* R=NULL;
R=((T0*)ms25_473);
return R;
}
/*No:TYPE_STRING.is_run_type*/
T0* r491to_runnable(T491* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r491check_type(C);
return R;
}
/*No:TYPE_STRING.is_formal_generic*/
T0* r491generic_list(T491* C){
T0* R=NULL;
r491fatal_error_generic_list(C);
return R;
}
/*No:TYPE_STRING.is_real*/
void r491standard_jvm_check_class_invariant(T491* C){
/*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
r355jvm_check_class_invariant(((T355*)(r491run_class(C))));
}
/*FI*/}
/*No:TYPE_STRING.is_bit*/
void r491fatal_error_generic_list(T491* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_STRING.jvm_check_class_invariant*/
T0* r491jvm_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),r491jvm_root_class());
r7extend(((T7*)R),'\73');
oBC364jvm_root_descriptor=R;}
return oBC364jvm_root_descriptor;}
/*No:TYPE_STRING.jvm_xaload*/
T0* r491smallest_ancestor(T491* C,T0* a1){
T0* R=NULL;
T0* _rto_bc=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_string(_rto)) {
R=(T0*)C;
}
 else if (X291is_none(_rto)) {
R=(T0*)C;
}
 else if (X291is_expanded(_rto)) {
R=X291smallest_ancestor(_rto,(T0*)C);
}
else {
_rto_bc=X291base_class(_rto);
/*IF*/if (r605is_subclass_of(((T605*)_rto_bc),r491base_class(C))) {
R=(T0*)C;
}
else {
R=X291smallest_ancestor(_rto,(T0*)C);
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_STRING.is_boolean*/
/*No:TYPE_STRING.us_count*/
/*No:TYPE_STRING.is_double*/
int r491jvm_stack_space(void){
int R=0;
/*IF*//*AF*//*AE*/
R=1;
/*FI*/return R;
}
/*No:TYPE_STRING.us_storage*/
T0* r491run_class(T491* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
T0* r491run_time_mark(void){
T0* R=NULL;
R=((T0*)ms25_473);
return R;
}
int r491is_a_in(T491* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r491written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
_t1=r491to_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* r491look_up_for(T491* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r491base_class(C))),a1,a2);
return R;
}
/*No:TYPE_STRING.jvm_convert_to*/
/*No:TYPE_STRING.expanded_initializer*/
/*No:TYPE_STRING.fz_jvm_root*/
/*No:TYPE_STRING.jvm_if_x_ne*/
/*No:TYPE_STRING.fz_dot*/
/*No:TYPE_STRING.is_generic*/
/*No:TYPE_STRING.jvm_write_local*/
void r491jvm_initialize_local(int a1){
/*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
/*]*/
/*[IRF3.6jvm_write_local*/{int b1=a1;
r256opcode_astore(((T256*)(oBC364code_attribute)),b1);
}/*]*/
}
/*No:TYPE_STRING.used_as_reference*/
/*No:TYPE_STRING.is_reference*/
void r491error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r491base_class(T491* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T491*)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;
}
/*No:TYPE_STRING.jvm_xastore*/
/*No:TYPE_STRING.is_any*/
/*No:TYPE_STRING.jvm_method_flags*/
/*No:TYPE_STRING.base_class_name*/
/*No:TYPE_STRING.jvm_push_local*/
/*No:TYPE_STRING.is_expanded*/
/*No:TYPE_STRING.is_basic_eiffel_expanded*/
/*No:TYPE_STRING.is_none*/
/*No:TYPE_STRING.is_integer*/
/*No:TMP_FEATURE.arguments*/
T0* r505n(void){
T0* R=NULL;
{T953*n=malloc(sizeof(*n));
*n=M953;
r953make(n,r855twin(((T855*)(oBC505names))));
R=(T0*)n;
}
return R;
}
T0* r505to_cst_att_integer(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
/*IF*/if (X291is_integer((((T505*)C))->_type/*4*/)) {
{T689*n=malloc(sizeof(*n));
*n=M689;
r689make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
 else if (X291is_real((((T505*)C))->_type/*4*/)) {
{T835*n=malloc(sizeof(*n));
*n=M835;
r835make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
R=(T0*)n;
}
}
 else if (X291is_double((((T505*)C))->_type/*4*/)) {
{T118*n=malloc(sizeof(*n));
*n=M118;
r118make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms6_505));
}
/*FI*/}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms7_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.add_synonym*/
/*No:TMP_FEATURE.set_type*/
T0* r505to_writable_attribute(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms1_505));
}
 else if (((((T505*)C))->_arguments/*0*/)!=((void*)(NULL))) {
r505error(r818current_position(((T818*)(oBC364eiffel_parser))),((T0*)ms2_505));
}
/*FI*/{T106*n=malloc(sizeof(*n));
*n=M106;
r106make(n,r505n(),(((T505*)C))->_type/*4*/);
R=(T0*)n;
}
return R;
}
T0* r505to_cst_att_boolean(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_boolean((((T505*)C))->_type/*4*/))) {
{T580*n=malloc(sizeof(*n));
*n=M580;
r580make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms3_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.type*/
/*No:TMP_FEATURE.local_vars*/
/*No:TMP_FEATURE.set_header_comment*/
void r505set_require(T505* C,T0* a1,T0* a2,T0* a3){
/*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343make(n,a1,a2,a3);
C->_require_assertion=(T0*)n;
}
}
/*FI*/}
/*No:TMP_FEATURE.set_local_vars*/
T0* r505to_deferred_routine(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T853*n=malloc(sizeof(*n));
*n=M853;
/*[IRF3.6make*/{T853* C1=n;
T0* b1=r505n();
T0* b2=(((T505*)C))->_arguments/*0*/;
T0* b3=(((T505*)C))->_obsolete_mark/*12*/;
T0* b4=(((T505*)C))->_header_comment/*8*/;
T0* b5=(((T505*)C))->_require_assertion/*16*/;
r853make_routine(C1,b1,b2,b3,b4,b5);
}/*]*/
R=(T0*)n;
}
}
else {
{T649*n=malloc(sizeof(*n));
*n=M649;
r649make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/);
R=(T0*)n;
}
}
/*FI*/return R;
}
T0* r505to_procedure_or_function(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T297*n=malloc(sizeof(*n));
*n=M297;
r297make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
else {
{T696*n=malloc(sizeof(*n));
*n=M696;
r696make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:TMP_FEATURE.obsolete_mark*/
/*No:TMP_FEATURE.require_assertion*/
T0*oBC505names=NULL;
T0* r505to_cst_att_real(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
/*IF*/if (X291is_real((((T505*)C))->_type/*4*/)) {
{T835*n=malloc(sizeof(*n));
*n=M835;
r835make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
 else if (X291is_double((((T505*)C))->_type/*4*/)) {
{T118*n=malloc(sizeof(*n));
*n=M118;
r118make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r683add_position((((T936*)((T936*)a1)))->_start_position/*12*/);
r683add_position(X776start_position(r855first(((T855*)(oBC505names)))));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_505);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms9_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.set_arguments*/
T0* r505to_cst_att_string(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_string((((T505*)C))->_type/*4*/))) {
{T380*n=malloc(sizeof(*n));
*n=M380;
r380make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms10_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.header_comment*/
/*No:TMP_FEATURE.set_routine_body*/
/*No:TMP_FEATURE.routine_body*/
T0* r505to_external_routine(T505* C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T883*n=malloc(sizeof(*n));
*n=M883;
r883make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
R=(T0*)n;
}
}
else {
{T679*n=malloc(sizeof(*n));
*n=M679;
r679make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
R=(T0*)n;
}
}
/*FI*/return R;
}
T0* r505to_cst_att_unique(T505* C){
T0* R=NULL;
T0* _sp=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
_sp=X776start_position(r855first(((T855*)(oBC505names))));
r505error(_sp,((T0*)ms11_505));
}
/*FI*//*IF*/if (!(X291is_integer((((T505*)C))->_type/*4*/))) {
r505error(X291start_position((((T505*)C))->_type/*4*/),((T0*)ms12_505));
}
/*FI*/{T398*n=malloc(sizeof(*n));
*n=M398;
r398make(n,r505n(),(((T505*)C))->_type/*4*/);
R=(T0*)n;
}
return R;
}
T0* r505to_cst_att_character(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_character((((T505*)C))->_type/*4*/))) {
{T554*n=malloc(sizeof(*n));
*n=M554;
r554make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms5_505));
}
/*FI*/return R;
}
void r505error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:TMP_FEATURE.fatal_error*/
void r505set_require_else(T505* C,T0* a1,T0* a2,T0* a3){
/*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343make(n,a1,a2,a3);
C->_require_assertion=(T0*)n;
}
/*[IRF3.3set_require_else*/((((T343*)(((T343*)((((T505*)C))->_require_assertion/*16*/)))))->_is_require_else)=(1);
/*]*/
}
/*FI*/}
void r505initialize(T505* C){
r855clear(((T855*)(oBC505names)));
C->_arguments=NULL;
C->_type=NULL;
C->_header_comment=NULL;
C->_obsolete_mark=NULL;
C->_require_assertion=NULL;
C->_local_vars=NULL;
C->_routine_body=NULL;
}
/*No:TMP_FEATURE.set_obsolete_mark*/
T0* r505to_cst_att_bit(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_bit((((T505*)C))->_type/*4*/))) {
{T588*n=malloc(sizeof(*n));
*n=M588;
r588make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms4_505));
}
/*FI*/return R;
}
T0* r505to_once_routine(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T134*n=malloc(sizeof(*n));
*n=M134;
r134make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
else {
{T844*n=malloc(sizeof(*n));
*n=M844;
r844make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:RENAME_PAIR.new_name*/
void r498make(T498* C,T0* a1,T0* a2){
/*IF*/if ((X776to_string(a1))==((void*)(X776to_string(a2)))) {
r683add_position(X776start_position(a1));
r683add_position(X776start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_498);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_old_name=a1;
C->_new_name=a2;
}
/*No:RENAME_PAIR.fatal_error*/
/*No:RENAME_PAIR.old_name*/

