/*
-- 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 "pretty.h"
int r669has_creation(T669* C,T0* a1){
int R=0;
r683add_position(X776start_position(a1));
r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_669));
return R;
}
/*No:TYPE_ANY.is_anchored*/
/*No:TYPE_ANY.is_array*/
int r669is_a(T669* C,T0* a1){
int R=0;
/*IF*/if (X291is_any(a1)) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r669base_class(C))),X291base_class(a1));
}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_ANY.run_type*/
/*No:TYPE_ANY.is_pointer*/
/*No:TYPE_ANY.is_string*/
/*No:TYPE_ANY.is_like_feature*/
/*No:TYPE_ANY.is_like_current*/
void r669make(T669* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms1_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_ANY.nb_errors*/
int fBC669check_type=0;
void r669check_type(T669* C){
if (fBC669check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC669check_type=1;
_bc=r669base_class(C);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_rc=r669run_class(C);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_669));
}
/*FI*/}
/*FI*/}}
/*No:TYPE_ANY.start_position*/
/*No:TYPE_ANY.fz_inako*/
/*No:TYPE_ANY.is_character*/
T0* r669written_mark(void){
T0* R=NULL;
R=((T0*)ms1_473);
return R;
}
T0* r669to_runnable(T669* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r669check_type(C);
return R;
}
/*No:TYPE_ANY.is_run_type*/
/*No:TYPE_ANY.is_formal_generic*/
T0* r669generic_list(T669* C){
T0* R=NULL;
r669fatal_error_generic_list(C);
return R;
}
/*No:TYPE_ANY.is_real*/
/*No:TYPE_ANY.is_bit*/
void r669fatal_error_generic_list(T669* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_ANY.pretty_print*/
/*No:TYPE_ANY.smallest_ancestor*/
/*No:TYPE_ANY.is_boolean*/
/*No:TYPE_ANY.is_double*/
T0* r669run_class(T669* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
T0* r669run_time_mark(void){
T0* R=NULL;
R=((T0*)ms1_473);
return R;
}
int r669is_a_in(T669* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r669written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r669to_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* r669look_up_for(T669* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r669base_class(C))),a1,a2);
return R;
}
/*No:TYPE_ANY.expanded_initializer*/
/*No:TYPE_ANY.fz_dot*/
/*No:TYPE_ANY.is_generic*/
/*No:TYPE_ANY.used_as_reference*/
/*No:TYPE_ANY.is_reference*/
void r669error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r669base_class(T669* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T669*)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_ANY.is_any*/
/*No:TYPE_ANY.base_class_name*/
/*No:TYPE_ANY.is_expanded*/
/*No:TYPE_ANY.is_basic_eiffel_expanded*/
/*No:TYPE_ANY.is_none*/
/*No:TYPE_ANY.is_integer*/
/*No:TYPE_ANY.us_any*/
/*No:CALL_INFIX_FREEOP.arguments*/
T0* r534add_comment(T534* 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 r534to_integer(T534* C){
int R=0;
r534error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T534*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r534is_a(T534* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T534*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T534*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r534error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_FREEOP.is_current*/
void r534make(T534* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r534make_call_1(C,a1,a2,_eal);
}
void r534print_as_target(T534* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r534pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_FREEOP.nb_errors*/
/*No:CALL_INFIX_FREEOP.feature_name*/
/*No:CALL_INFIX_FREEOP.fz_iinaiv*/
/*No:CALL_INFIX_FREEOP.run_feature*/
/*No:CALL_INFIX_FREEOP.start_position*/
/*No:CALL_INFIX_FREEOP.target*/
/*No:CALL_INFIX_FREEOP.precedence*/
T0* r534to_runnable(T534* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T534*)C))->_current_type/*4*/)==((void*)(NULL))) {
r534to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T534*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r534error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T534*)C))->_arguments/*20*/)),(((T534*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T534*)C))->_result_type/*16*/;
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*)((((T534*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r534twin(C);
/*[IRF3.3set_current_type*/((((T534*)(((T534*)R))))->_current_type)=(NULL);
/*]*/
R=r534to_runnable(((T534*)R),a1);
}
/*FI*/return R;
}
void r534bracketed_pretty_print(T534* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r534pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_FREEOP.result_type*/
T0* r534twin(T534* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T534*)R)=*C;
return R;
}
/*No:CALL_INFIX_FREEOP.set_current_type*/
/*No:CALL_INFIX_FREEOP.atomic_precedence*/
void r534pretty_print(T534* C){
/*IF*/if ((X662precedence((((T534*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T534*)C))->_target/*8*/);
r534print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((10)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T534*)C))->_target/*8*/))>=(10)) {
X662bracketed_pretty_print((((T534*)C))->_target/*8*/);
}
else {
X662pretty_print((((T534*)C))->_target/*8*/);
}
/*FI*/r534print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((10)<=(X662precedence((((T534*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T534*)C))->_target/*8*/);
r534print_op(C);
/*IF*/if ((10)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T534*)C))->_target/*8*/);
r534print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r534print_op(T534* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T534*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_FREEOP.current_type*/
void r534make_call_1(T534* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_FREEOP.is_manifest_string*/
/*No:CALL_INFIX_FREEOP.is_void*/
void r534to_runnable_0(T534* C,T0* a1){
C->_current_type=a1;
r534cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T534*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T534*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T534*)C))->_run_feature/*12*/));
r534error((((T454*)((T454*)((((T534*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T534*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T534*)C))->_target/*8*/);
}
/*FI*/}
void r534cpc_to_runnable(T534* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T534*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T534*)C))->_target/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T534*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T534*)C))->_target/*8*/,(((T534*)C))->_run_feature/*12*/);
}
void r534error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_FREEOP.fatal_error*/
/*No:CALL_INFIX_FREEOP.fz_bad_argument*/
/*No:CALL_INFIX_FREEOP.arg1*/
/*No:CALL_N.arguments*/
T0* r915add_comment(T915* 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 r915to_integer(T915* C){
int R=0;
r915error(r915start_position(C),((T0*)ms69_470));
return R;
}
int r915is_a(T915* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T915*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(r915start_position(C));
r915error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_N.fz_bad_arguments*/
/*No:CALL_N.is_current*/
void r915make(T915* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
void r915print_as_target(T915* C){
r915pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_N.nb_errors*/
/*No:CALL_N.feature_name*/
/*No:CALL_N.fz_iinaiv*/
/*No:CALL_N.dot_precedence*/
/*No:CALL_N.run_feature*/
T0* r915start_position(T915* C){
T0* R=NULL;
R=X776start_position((((T915*)C))->_feature_name/*12*/);
return R;
}
/*No:CALL_N.target*/
/*No:CALL_N.precedence*/
T0* r915to_runnable(T915* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T915*)C))->_current_type/*4*/)==((void*)(NULL))) {
r915to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T915*)C))->_arguments/*24*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r915error(r431start_position(((T431*)((((T915*)C))->_arguments/*24*/))),((T0*)ms56_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T915*)C))->_arguments/*24*/)),(((T915*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T915*)C))->_result_type/*20*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
_e=r431expression(((T431*)((((T915*)C))->_arguments/*24*/)),/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*16*//*)*/);
C->_result_type=X291run_type(X662result_type(_e));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r915twin(C);
/*[IRF3.3set_current_type*/((((T915*)(((T915*)R))))->_current_type)=(NULL);
/*]*/
R=r915to_runnable(((T915*)R),a1);
}
/*FI*/return R;
}
void r915bracketed_pretty_print(T915* C){
X662print_as_target((((T915*)C))->_target/*8*/);
r238put_string(((T238*)(oBC364fmt)),X776to_string((((T915*)C))->_feature_name/*12*/));
r238level_incr(((T238*)(oBC364fmt)));
r431pretty_print(((T431*)((((T915*)C))->_arguments/*24*/)));
r238level_decr(((T238*)(oBC364fmt)));
}
/*No:CALL_N.result_type*/
T0* r915twin(T915* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T915*)R)=*C;
return R;
}
/*No:CALL_N.set_current_type*/
void r915pretty_print(T915* C){
X662print_as_target((((T915*)C))->_target/*8*/);
r238put_string(((T238*)(oBC364fmt)),X776to_string((((T915*)C))->_feature_name/*12*/));
r238level_incr(((T238*)(oBC364fmt)));
r431pretty_print(((T431*)((((T915*)C))->_arguments/*24*/)));
r238level_decr(((T238*)(oBC364fmt)));
}
/*No:CALL_N.current_type*/
/*No:CALL_N.is_manifest_string*/
/*No:CALL_N.is_void*/
void r915to_runnable_0(T915* C,T0* a1){
C->_current_type=a1;
r915cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T915*)C))->_run_feature/*16*/))))->_result_type/*24*/);
/*IF*/if (((((T915*)C))->_result_type/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T915*)C))->_run_feature/*16*/));
r915error(X776start_position((((T915*)C))->_feature_name/*12*/),((T0*)ms1_295));
}
 else if (X291is_like_current((((T915*)C))->_result_type/*20*/)) {
C->_result_type=X662result_type((((T915*)C))->_target/*8*/);
}
/*FI*/}
void r915cpc_to_runnable(T915* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T915*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T915*)C))->_target/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T915*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T915*)C))->_target/*8*/,(((T915*)C))->_run_feature/*16*/);
}
void r915error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_N.fatal_error*/
void r999error_comparison(T999* C,T0* a1){
r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((((T999*)C))->_current_type/*4*/,((T0*)ms67_470));
r683print_as_error(((T683*)(oBC364eh)));
}
/*No:CALL_INFIX_EQ.arguments*/
T0* r999add_comment(T999* 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 r999to_integer(T999* C){
int R=0;
r999error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r999is_a(T999* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T999*)C))->_result_type/*12*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
r999error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_EQ.is_current*/
T0* r999type_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;}
void r999make(T999* 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,r999operator(),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;
}
r999make_call_1(C,a1,(((T999*)C))->_feature_name/*20*/,_eal);
}
void r999print_as_target(T999* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r999pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_EQ.nb_errors*/
void r999to_runnable_equal_not_equal(T999* C,T0* a1){
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
C->_current_type=a1;
_t=X662to_runnable((((T999*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r999error(X662start_position((((T999*)C))->_target/*8*/),((T0*)ms1_841));
}
else {
C->_target=_t;
}
/*FI*/_a=r431to_runnable(((T431*)((((T999*)C))->_arguments/*16*/)),a1);
/*IF*/if ((_a)!=((void*)(NULL))) {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tt=X291run_type(X662result_type((((T999*)C))->_target/*8*/));
_at=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/));
/*IF*/if (X291is_none(_tt)) {
/*IF*/if (X291is_expanded(_at)) {
X291used_as_reference(_at);
}
/*FI*/}
 else if (X291is_none(_at)) {
/*IF*/if (X291is_expanded(_tt)) {
X291used_as_reference(_tt);
}
/*FI*/}
 else if (X291is_reference(_tt)) {
/*IF*/if (X291is_reference(_at)) {
/*IF*/if (X291is_a(_tt,_at)) {
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_a(_at,_tt)) {
}
else {
r999error_comparison(C,((T0*)ms2_841));
}
/*FI*/}
/*FI*/}
 else if (!(X291is_a(_at,_tt))) {
r999error_comparison(C,((T0*)ms3_841));
}
else {
X291used_as_reference(_at);
}
/*FI*/}
else {
/*IF*/if (X291is_expanded(_at)) {
/*IF*/if (X291is_basic_eiffel_expanded(_at)) {
/*IF*/if (X291is_a(_tt,_at)) {
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_a(_at,_tt)) {
}
else {
r999error_comparison(C,((T0*)ms4_841));
}
/*FI*/}
/*FI*/}
 else if (X291is_bit(_tt)) {
r999bit_limitation(C,_tt,_at);
}
 else if (!(X291is_a(_at,_tt))) {
r999error_comparison(C,((T0*)ms5_841));
}
/*FI*/}
 else if (!(X291is_a(_tt,_at))) {
r999error_comparison(C,((T0*)ms6_841));
}
else {
X291used_as_reference(_tt);
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_INFIX_EQ.feature_name*/
/*No:CALL_INFIX_EQ.fz_iinaiv*/
/*No:CALL_INFIX_EQ.start_position*/
/*No:CALL_INFIX_EQ.target*/
/*No:CALL_INFIX_EQ.precedence*/
T0* r999to_runnable(T999* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T999*)C))->_current_type/*4*/)==((void*)(NULL))) {
r999to_runnable_equal_not_equal(C,a1);
C->_result_type=r999type_boolean();
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T999*n=malloc(sizeof(*n));
*n=M999;
r999make(n,(((T999*)C))->_target/*8*/,(((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*/,/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
R=(T0*)n;
}
R=r999to_runnable(((T999*)R),a1);
}
/*FI*/return R;
}
void r999bracketed_pretty_print(T999* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r999pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_EQ.result_type*/
T0* r999operator(void){
T0* R=NULL;
R=((T0*)ms31_473);
return R;
}
/*No:CALL_INFIX_EQ.atomic_precedence*/
void r999pretty_print(T999* C){
/*IF*/if ((X662precedence((((T999*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T999*)C))->_target/*8*/);
r999print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
 else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T999*)C))->_target/*8*/))>=(6)) {
X662bracketed_pretty_print((((T999*)C))->_target/*8*/);
}
else {
X662pretty_print((((T999*)C))->_target/*8*/);
}
/*FI*/r999print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
 else if ((6)<=(X662precedence((((T999*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T999*)C))->_target/*8*/);
r999print_op(C);
/*IF*/if ((6)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T999*)C))->_target/*8*/);
r999print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
}
/*FI*/}
void r999print_op(T999* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T999*)C))->_feature_name/*20*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
void r999bit_limitation(T999* C,T0* a1,T0* a2){
T0* _b2=NULL;
T0* _b1=NULL;
_b1=a1;
if(NULL!=(_b1))switch(((T0*)_b1)->id) {
case 549: case 558: 
break;
default:
_b1=NULL;
};_b2=a2;
if(NULL!=(_b2))switch(((T0*)_b2)->id) {
case 549: case 558: 
break;
default:
_b2=NULL;
};/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(_b1,((T0*)ms10_841));
r683add_type(_b2,((T0*)ms11_841));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/}
/*No:CALL_INFIX_EQ.current_type*/
void r999make_call_1(T999* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_EQ.is_manifest_string*/
/*No:CALL_INFIX_EQ.us_eq*/
/*No:CALL_INFIX_EQ.is_void*/
/*No:CALL_INFIX_EQ.fz_dot*/
void r999error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_EQ.fatal_error*/
/*No:CALL_INFIX_EQ.arg1*/
/*No:TYPE_GENERIC.fz_is_invalid*/
int r720has_creation(T720* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r720base_class(C))),a1);
return R;
}
/*No:TYPE_GENERIC.set_run_type_memory*/
/*No:TYPE_GENERIC.is_anchored*/
/*No:TYPE_GENERIC.is_array*/
int r720is_a(T720* C,T0* a1){
int R=0;
T0* _t2=NULL;
T0* _t1=NULL;
int _i=0;
/*IF*/if (X291is_none(a1)) {
}
 else if ((r720run_class(C))==((void*)(X291run_class(a1)))) {
R=1;
}
 else if (X291is_generic(a1)) {
/*IF*/if ((r720base_class(C))==((void*)(X291base_class(a1)))) {
R=1;
_i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
while (!((!(R))||((_i)==(0)))) {
_t1=X291run_type(r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i));
_t2=X291run_type(r701item(((T701*)(X291generic_list(a1))),_i));
/*IF*/if (X291is_a(_t1,_t2)) {
_i=(_i)-(1);
}
else {
R=0;
/*[IRF3.6append*/{T0* b1=((T0*)ms59_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
/*FI*/}
}
 else if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
R=r605is_a_vncg(((T605*)(r720base_class(C))),(T0*)C,a1);
}
/*FI*/}
else {
/*IF*/if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms1_720));
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.is_pointer*/
T0* r720run_type(T720* C){
T0* R=NULL;
/*IF*/if (r720is_run_type(C)) {
R=(((T720*)C))->_run_type_memory/*16*/;
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.is_string*/
/*No:TYPE_GENERIC.is_like_feature*/
/*No:TYPE_GENERIC.is_like_current*/
void r720basic_checks(T720* C){
T0* _fgl=NULL;
T0* _bc=NULL;
_bc=r720base_class(C);
_fgl=(((T605*)((T605*)_bc)))->_formal_generic_list/*28*/;
/*IF*/if ((_fgl)==((void*)(NULL))) {
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
/*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_720);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if ((/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/)!=(r701count(((T701*)((((T720*)C))->_generic_list/*8*/))))) {
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
r683add_position((((T881*)((T881*)_fgl)))->_start_position/*0*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
void r720make(T720* C,T0* a1,T0* a2){
T0* _t=NULL;
int _i=0;
C->_base_class_name=a1;
C->_generic_list=a2;
r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)a1)))->_to_string/*0*/);
r7extend(((T7*)(oBC720tmp_mark)),'\133');
_i=1;
while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
_t=r701item(((T701*)a2),_i);
r7append(((T7*)(oBC720tmp_mark)),X291written_mark(_t));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
r7extend(((T7*)(oBC720tmp_mark)),'\54');
}
/*FI*/}
r7extend(((T7*)(oBC720tmp_mark)),'\135');
C->_written_mark=r902item(oBC720tmp_mark);
}
T0* r720type_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:TYPE_GENERIC.start_position*/
/*No:TYPE_GENERIC.fz_inako*/
/*No:TYPE_GENERIC.is_character*/
/*No:TYPE_GENERIC.written_mark*/
T0* r720to_runnable(T720* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
T0* _rgl=NULL;
int _i=0;
/*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
/*IF*/if (r720is_written_runnable(C)) {
C->_run_type_memory=(T0*)C;
r720basic_checks(C);
R=(T0*)C;
}
else {
_rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
_i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
while (!((_i)==(0))) {
_t1=r701item(((T701*)_rgl),_i);
_t2=X291to_runnable(_t1,a1);
/*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
r683add_type(_t1,((T0*)ms72_470));
r683print_as_error(((T683*)(oBC364eh)));
_i=0;
}
else {
/*[IRF3.6put*/{T701* C1=((T701*)_rgl);
T0* b1=_t2;
int b2=_i;
((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_t2=X291run_type(_t2);
/*IF*/if (X291is_expanded(_t2)) {
r368set_at_run_time(((T368*)(X291run_class(_t2))));
}
/*FI*/_i=(_i)-(1);
}
{T720*n=malloc(sizeof(*n));
*n=M720;
r720make_runnable(n,(T0*)C,_rgl);
_rt=(T0*)n;
}
/*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
C->_run_type_memory=_rt;
R=(T0*)C;
}
else {
R=r720twin(C);
/*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
/*]*/
}
/*FI*/}
/*FI*/}
 else if (r720is_written_runnable(C)) {
R=(T0*)C;
}
else {
_rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
_i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
while (!((_i)==(0))) {
_t1=r701item(((T701*)_rgl),_i);
_t2=X291to_runnable(_t1,a1);
/*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
r683add_type(_t1,((T0*)ms72_470));
r683print_as_error(((T683*)(oBC364eh)));
_i=0;
}
else {
/*[IRF3.6put*/{T701* C1=((T701*)_rgl);
T0* b1=_t2;
int b2=_i;
((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_t2=X291run_type(_t2);
/*IF*/if (X291is_expanded(_t2)) {
r368set_at_run_time(((T368*)(X291run_class(_t2))));
}
/*FI*/_i=(_i)-(1);
}
{T720*n=malloc(sizeof(*n));
*n=M720;
r720make_runnable(n,(T0*)C,_rgl);
_rt=(T0*)n;
}
R=r720twin(C);
/*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
/*]*/
}
/*FI*/return R;
}
int r720is_run_type(T720* C){
int R=0;
/*IF*/if (((((T720*)C))->_run_type_memory/*16*/)!=((void*)(NULL))) {
R=1;
}
 else if (r720is_written_runnable(C)) {
C->_run_type_memory=(T0*)C;
r720basic_checks(C);
R=1;
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.run_type_memory*/
/*No:TYPE_GENERIC.is_formal_generic*/
/*No:TYPE_GENERIC.generic_list*/
/*No:TYPE_GENERIC.is_real*/
int r720is_written_runnable(T720* C){
int R=0;
T0* _t=NULL;
int _i=0;
R=1;
_i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
while (!((!(R))||((_i)==(0)))) {
_t=r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i);
/*IF*/if (X291is_run_type(_t)) {
/*IF*/if ((X291run_type(_t))==((void*)(_t))) {
}
else {
R=0;
}
/*FI*/}
else {
R=0;
}
/*FI*/_i=(_i)-(1);
}
return R;
}
T0* r720twin(T720* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T720*)R)=*C;
return R;
}
/*No:TYPE_GENERIC.fz_bnga*/
/*No:TYPE_GENERIC.is_bit*/
/*No:TYPE_GENERIC.pretty_print*/
T0* r720smallest_ancestor(T720* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_none(a1)) {
R=(T0*)C;
}
 else if (X291is_any(_rto)) {
R=_rto;
}
 else if (X291is_a(_rto,r720run_type(C))) {
R=(((T720*)C))->_run_type_memory/*16*/;
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (r720is_a(((T720*)(r720run_type(C))),_rto)) {
R=_rto;
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_generic(_rto)) {
R=r720type_any();
}
else {
R=X291smallest_ancestor(_rto,(T0*)C);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_GENERIC.is_boolean*/
T0*oBC720tmp_mark=NULL;
/*No:TYPE_GENERIC.is_double*/
T0* r720run_class(T720* C){
T0* R=NULL;
/*IF*/if (r720is_run_type(C)) {
R=r604run_class((((T720*)C))->_run_type_memory/*16*/);
}
/*FI*/return R;
}
T0* r720run_time_mark(T720* C){
T0* R=NULL;
/*IF*/if (r720is_run_type(C)) {
R=(((T720*)((T720*)((((T720*)C))->_run_type_memory/*16*/))))->_written_mark/*12*/;
}
/*FI*/return R;
}
int r720is_a_in(T720* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T720*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r720to_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* r720look_up_for(T720* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r720base_class(C))),a1,a2);
return R;
}
T0* r720expanded_initializer(T720* C){
T0* R=NULL;
/*IF*/if (r720is_expanded(C)) {
R=r605expanded_initializer(((T605*)(r720base_class(C))),(T0*)C);
}
/*FI*/return R;
}
/*No:TYPE_GENERIC.fz_dot*/
/*No:TYPE_GENERIC.fz_bga*/
/*No:TYPE_GENERIC.is_generic*/
/*No:TYPE_GENERIC.used_as_reference*/
int r720is_reference(T720* C){
int R=0;
R=!((((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/);
return R;
}
T0* r720base_class(T720* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T720*)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_GENERIC.fatal_error*/
/*No:TYPE_GENERIC.is_any*/
/*No:TYPE_GENERIC.base_class_name*/
int r720is_expanded(T720* C){
int R=0;
R=(((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/;
return R;
}
/*No:TYPE_GENERIC.is_basic_eiffel_expanded*/
/*No:TYPE_GENERIC.is_none*/
/*No:TYPE_GENERIC.is_integer*/
void r720make_runnable(T720* C,T0* a1,T0* a2){
T0* _t=NULL;
int _i=0;
C->_base_class_name=(((T720*)((T720*)a1)))->_base_class_name/*4*/;
C->_generic_list=a2;
r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_to_string/*0*/);
r7extend(((T7*)(oBC720tmp_mark)),'\133');
_i=1;
while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
_t=r701item(((T701*)a2),_i);
r7append(((T7*)(oBC720tmp_mark)),X291run_time_mark(_t));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
r7extend(((T7*)(oBC720tmp_mark)),'\54');
}
/*FI*/}
r7extend(((T7*)(oBC720tmp_mark)),'\135');
C->_written_mark=r902item(oBC720tmp_mark);
C->_run_type_memory=(T0*)C;
}
T0* r680language_name(void){
T0* R=NULL;
R=((T0*)ms91_470);
return R;
}
/*No:NATIVE_INLINE_WITHOUT_CURRENT.pretty_print*/
/*No:NATIVE_INLINE_WITHOUT_CURRENT.fz_c_inlinewithoutcurrent*/
/*No:STD_ERROR.make*/
T0*oBC817tmp_string=NULL;
/*No:STD_ERROR.flush*/
void r441put_string(T441* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
/*[IRF3.6put_character*/{T441* C1=C;
char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
putc(b1,((FILE*)(stderr)));
}/*]*/
_i=(_i)+(1);
}
}
void r441put_integer(T441* C,int a1){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
/*]*/
r2append_in(a1,oBC817tmp_string);
r441put_string(C,oBC817tmp_string);
}
/*No:STD_ERROR.put_character*/
/*No:STD_ERROR.put_new_line*/
void r64make(T64* C,T0* a1,T0* a2){
int _i=0;
C->_name_list=a1;
_i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/);
while (!((_i)==(0))) {
/*X361*//*[IRF3.3set_result_type*/((((T886*)(((T886*)(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)))))))->_result_type)=(a2);
/*]*/
_i=(_i)-(1);
}
}
void r64append_in(T64* C,T0* a1){
int _i=0;
_i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_lower/*16*/);
while (!((_i)>(/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/)))) {
X535add_last(a1,/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
_i=(_i)+(1);
}
}
void r64pretty_print(T64* C){
int _i=0;
_i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_lower/*16*/);
X361pretty_print(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
_i=(_i)+(1);
while (!((_i)>(/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/)))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_64));
X361pretty_print(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
_i=(_i)+(1);
}
r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_64));
X291pretty_print(/*X361*/((T0*)(((T886*)((T886*)(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),1))))))->_result_type/*20*/));
}
int r64count(T64* C){
int R=0;
R=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/);
return R;
}
/*No:DECLARATION_GROUP.name_list*/
T0* r420add_comment(T420* 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 r420to_integer(T420* C){
int R=0;
r420error(r420start_position(C),((T0*)ms69_470));
return R;
}
int r420is_a(T420* C,T0* a1){
int R=0;
R=r709is_a(((T709*)((((T709*)((T709*)(r420result_type()))))->_run_type/*16*/)),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(r420start_position(C));
r420error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_STRIP.is_current*/
void r420make(T420* C,T0* a1,T0* a2){
/*IF*/if ((a2)!=((void*)(NULL))) {
{T953*n=malloc(sizeof(*n));
*n=M953;
r953make(n,a2);
C->_list=(T0*)n;
}
}
/*FI*/}
void r420print_as_target(T420* C){
r420pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:E_STRIP.fz_iinaiv*/
T0* r420type_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;}
T0* r420start_position(T420* C){
T0* R=NULL;
/*IF*/if (((((T420*)C))->_list/*4*/)!=((void*)(NULL))) {
R=X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T420*)C))->_list/*4*/))))->_list/*0*/)),1)/*)*/);
}
/*FI*/return R;
}
/*No:E_STRIP.precedence*/
T0* r420to_runnable(T420* C,T0* a1){
T0* R=NULL;
r420error(r420start_position(C),((T0*)ms2_420));
return R;
}
void r420bracketed_pretty_print(T420* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r420pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
int fBC420result_type=0;
T0*oBC420result_type=NULL;
T0* r420result_type(void){
if (fBC420result_type==0){
T0* R=NULL;
fBC420result_type=1;
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make(n,NULL,r420type_any());
R=(T0*)n;
}
oBC420result_type=R;}
return oBC420result_type;}
void r420pretty_print(T420* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms3_420));
r238level_incr(((T238*)(oBC364fmt)));
/*IF*/if (((((T420*)C))->_list/*4*/)!=((void*)(NULL))) {
r953pretty_print(((T953*)((((T420*)C))->_list/*4*/)));
}
/*FI*/r238put_string(((T238*)(oBC364fmt)),((T0*)ms4_420));
r238level_decr(((T238*)(oBC364fmt)));
}
/*No:E_STRIP.list*/
/*No:E_STRIP.is_manifest_string*/
/*No:E_STRIP.is_void*/
void r420error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r517error_comparison(T517* C,T0* a1){
r683add_position((((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((((T517*)C))->_current_type/*4*/,((T0*)ms67_470));
r683print_as_error(((T683*)(oBC364eh)));
}
/*No:CALL_INFIX_NEQ.arguments*/
T0* r517add_comment(T517* 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 r517to_integer(T517* C){
int R=0;
r517error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r517is_a(T517* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T517*)C))->_result_type/*12*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
r517error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_NEQ.is_current*/
T0* r517type_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;}
void r517make(T517* 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,((T0*)ms1_517),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;
}
r517make_call_1(C,a1,(((T517*)C))->_feature_name/*20*/,_eal);
}
void r517print_as_target(T517* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r517pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_NEQ.nb_errors*/
void r517to_runnable_equal_not_equal(T517* C,T0* a1){
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
C->_current_type=a1;
_t=X662to_runnable((((T517*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r517error(X662start_position((((T517*)C))->_target/*8*/),((T0*)ms1_841));
}
else {
C->_target=_t;
}
/*FI*/_a=r431to_runnable(((T431*)((((T517*)C))->_arguments/*16*/)),a1);
/*IF*/if ((_a)!=((void*)(NULL))) {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tt=X291run_type(X662result_type((((T517*)C))->_target/*8*/));
_at=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/));
/*IF*/if (X291is_none(_tt)) {
/*IF*/if (X291is_expanded(_at)) {
X291used_as_reference(_at);
}
/*FI*/}
 else if (X291is_none(_at)) {
/*IF*/if (X291is_expanded(_tt)) {
X291used_as_reference(_tt);
}
/*FI*/}
 else if (X291is_reference(_tt)) {
/*IF*/if (X291is_reference(_at)) {
/*IF*/if (X291is_a(_tt,_at)) {
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_a(_at,_tt)) {
}
else {
r517error_comparison(C,((T0*)ms2_841));
}
/*FI*/}
/*FI*/}
 else if (!(X291is_a(_at,_tt))) {
r517error_comparison(C,((T0*)ms3_841));
}
else {
X291used_as_reference(_at);
}
/*FI*/}
else {
/*IF*/if (X291is_expanded(_at)) {
/*IF*/if (X291is_basic_eiffel_expanded(_at)) {
/*IF*/if (X291is_a(_tt,_at)) {
}
else {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
/*IF*/if (X291is_a(_at,_tt)) {
}
else {
r517error_comparison(C,((T0*)ms4_841));
}
/*FI*/}
/*FI*/}
 else if (X291is_bit(_tt)) {
r517bit_limitation(C,_tt,_at);
}
 else if (!(X291is_a(_at,_tt))) {
r517error_comparison(C,((T0*)ms5_841));
}
/*FI*/}
 else if (!(X291is_a(_tt,_at))) {
r517error_comparison(C,((T0*)ms6_841));
}
else {
X291used_as_reference(_tt);
}
/*FI*/}
/*FI*/}
/*FI*/}
/*No:CALL_INFIX_NEQ.feature_name*/
/*No:CALL_INFIX_NEQ.fz_iinaiv*/
/*No:CALL_INFIX_NEQ.start_position*/
/*No:CALL_INFIX_NEQ.target*/
/*No:CALL_INFIX_NEQ.precedence*/
T0* r517to_runnable(T517* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T517*)C))->_current_type/*4*/)==((void*)(NULL))) {
r517to_runnable_equal_not_equal(C,a1);
C->_result_type=r517type_boolean();
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T517*n=malloc(sizeof(*n));
*n=M517;
r517make(n,(((T517*)C))->_target/*8*/,(((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*/,/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
R=(T0*)n;
}
R=r517to_runnable(((T517*)R),a1);
}
/*FI*/return R;
}
void r517bracketed_pretty_print(T517* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r517pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_NEQ.result_type*/
/*No:CALL_INFIX_NEQ.operator*/
/*No:CALL_INFIX_NEQ.atomic_precedence*/
void r517pretty_print(T517* C){
/*IF*/if ((X662precedence((((T517*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T517*)C))->_target/*8*/);
r517print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
 else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T517*)C))->_target/*8*/))>=(6)) {
X662bracketed_pretty_print((((T517*)C))->_target/*8*/);
}
else {
X662pretty_print((((T517*)C))->_target/*8*/);
}
/*FI*/r517print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
 else if ((6)<=(X662precedence((((T517*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T517*)C))->_target/*8*/);
r517print_op(C);
/*IF*/if ((6)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T517*)C))->_target/*8*/);
r517print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
}
/*FI*/}
void r517print_op(T517* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T517*)C))->_feature_name/*20*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
void r517bit_limitation(T517* C,T0* a1,T0* a2){
T0* _b2=NULL;
T0* _b1=NULL;
_b1=a1;
if(NULL!=(_b1))switch(((T0*)_b1)->id) {
case 549: case 558: 
break;
default:
_b1=NULL;
};_b2=a2;
if(NULL!=(_b2))switch(((T0*)_b2)->id) {
case 549: case 558: 
break;
default:
_b2=NULL;
};/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
r683add_position((((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(_b1,((T0*)ms10_841));
r683add_type(_b2,((T0*)ms11_841));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/}
/*No:CALL_INFIX_NEQ.current_type*/
void r517make_call_1(T517* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_NEQ.is_manifest_string*/
/*No:CALL_INFIX_NEQ.is_void*/
/*No:CALL_INFIX_NEQ.fz_dot*/
void r517error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_NEQ.fatal_error*/
/*No:CALL_INFIX_NEQ.arg1*/

