/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "short.h"


void r252used_as_reference(void){
if (fBC252used_as_reference==0){
fBC252used_as_reference=1;
r252load_ref(((T0*)ms13_12694));
}}


T6 r252is_a_in(T252* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r252written_mark())==((void*)(X46written_mark(a1)))){
R=1;
}
else{
_ct=(((T310*)a2))->_current_type/*0*/;
_t1=r252to_runnable(C,_ct);
_t2=X46to_runnable(a1,_ct);
/*[IF*/
if((X46run_time_mark(_t1))==((void*)(X46run_time_mark(_t2)))){
R=1;
}
else{
R=X46is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_BOOLEAN.id*/
/*No:TYPE_BOOLEAN.is_pointer*/


T0* r252look_up_for(T252* C,T0* a1,T0* a2){
T0* R=NULL;
R=r22look_up_for((T22*)(r252base_class(C)),a1,a2);
return R;
}


T0* r252to_runnable(T252* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r252check_type(C);
return R;
}
/*No:TYPE_BOOLEAN.run_type*/


T0* r252run_class(T252* C){
T0* R=NULL;
R=r59run_class((T0*)C);
return R;
}
/*No:TYPE_BOOLEAN.us_boolean_ref*/


T6 r252has_creation(T252* C,T0* a1){
T6 R=0;
r67add_position(X77start_position(a1));
r252error(/*(IRF4.6start_position*/(((T47*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms253_100044));
return R;
}
/*No:TYPE_BOOLEAN.expanded_initializer*/
/*No:TYPE_BOOLEAN.us_item*/
/*No:TYPE_BOOLEAN.is_like_current*/
/*No:TYPE_BOOLEAN.is_boolean*/
/*No:TYPE_BOOLEAN.is_generic*/
/*No:TYPE_BOOLEAN.is_bit*/
/*No:TYPE_BOOLEAN.is_real*/


T0* r252smallest_ancestor(T252* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X46run_type(a1);
/*[IF*/
if(X46is_boolean(_rto)){
R=(T0*)C;
}
else{
R=r261smallest_ancestor((T261*)(r252type_boolean_ref()),_rto);
}
/*FI]*/
return R;
}
/*No:TYPE_BOOLEAN.is_any*/
/*No:TYPE_BOOLEAN.nb_errors*/


T0* r252run_time_mark(void){
T0* R=NULL;
R=((T0*)ms13_6510);
return R;
}
/*No:TYPE_BOOLEAN.is_expanded*/
/*No:TYPE_BOOLEAN.is_basic_eiffel_expanded*/
int fBC11type_boolean_ref=0;
T0*oBC11type_boolean_ref=NULL;


T0* r252type_boolean_ref(void){
if(fBC11type_boolean_ref==0){
T0* _boolean_ref=NULL;
fBC11type_boolean_ref=1;
{T47*n=malloc(sizeof(*n));
*n=M47;
r47make(n,((T0*)ms13_12694),NULL);
_boolean_ref=(T0*)n;
}
{T261*n=malloc(sizeof(*n));
*n=M261;
/*[IRF3.3make*/((((T261*)(n)))->_base_class_name)=(_boolean_ref);
/*]*/
oBC11type_boolean_ref=(T0*)n;
}
}
return oBC11type_boolean_ref;}
/*No:TYPE_BOOLEAN.short_hook*/
/*No:TYPE_BOOLEAN.is_string*/
/*No:TYPE_BOOLEAN.is_integer*/
/*No:TYPE_BOOLEAN.is_like_feature*/
/*No:TYPE_BOOLEAN.fz_dot*/
/*No:TYPE_BOOLEAN.is_anchored*/
/*No:TYPE_BOOLEAN.is_run_type*/


T6 r252is_a(T252* C,T0* a1){
T6 R=0;
/*[IF*/
if(X46is_boolean(a1)){
R=1;
}
else{
R=r22is_subclass_of((T22*)(r252base_class(C)),X46base_class(a1));
/*[IF*/
if(R){
r252used_as_reference();
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
r67add_type((T0*)C,((T0*)ms12_17730));
r67add_type(a1,((T0*)ms12_47));
}
/*FI]*/
return R;
}
/*No:TYPE_BOOLEAN.is_character*/
/*No:TYPE_BOOLEAN.is_reference*/


T0* r252written_mark(void){
T0* R=NULL;
R=((T0*)ms13_6510);
return R;
}


void r252error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}


void r252make(T252* C,T0* a1){
{T47*n=malloc(sizeof(*n));
*n=M47;
r47make(n,((T0*)ms13_6510),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_BOOLEAN.is_none*/
/*No:TYPE_BOOLEAN.is_array*/
/*No:TYPE_BOOLEAN.fz_inako*/


void r252fatal_error_generic_list(T252* C){
r67add_type((T0*)C,((T0*)ms46_29184));
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*No:TYPE_BOOLEAN.is_like_argument*/


void r252load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T47*n=malloc(sizeof(*n));
*n=M47;
r47make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r22run_class((T22*)(r47base_class(((T47*)_cn))));
r310set_at_run_time(((T310*)_rc));
_rf=r310get_feature_with(((T310*)_rc),((T0*)ms13_1764));
}
int fBC252check_type=0;


void r252check_type(T252* C){
if (fBC252check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC252check_type=1;
_bc=r252base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
_rc=r252run_class(C);
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(!((((T22*)_bc))->_is_expanded/*20*/)){
r252error(/*(IRF4.6start_position*/(((T47*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms252_38350));
}
/*FI]*/
}
/*FI]*/
}}
/*No:TYPE_BOOLEAN.is_double*/


void r252short(T252* C){
r39hook((T39*)(oBC11short_print),((T0*)ms46_891));
/*[IRF3.6short_hook*/{T252* C1=C;
r39a_class_name((T39*)(oBC11short_print),(C1)->_base_class_name/*4*/);
}/*]*/
r39hook((T39*)(oBC11short_print),((T0*)ms46_888));
}
/*No:TYPE_BOOLEAN.us_boolean*/

