/*
-- 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"
/*No:CALL_INFIX_DIV.arguments*/
T0* r520add_comment(T520* 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 r520to_integer(T520* C){
int R=0;
r520error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r520is_a(T520* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T520*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r520error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_DIV.is_current*/
void r520make(T520* 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,r520operator(),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;
}
r520make_call_1(C,a1,(((T520*)C))->_feature_name/*24*/,_eal);
}
void r520print_as_target(T520* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r520pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_DIV.nb_errors*/
/*No:CALL_INFIX_DIV.feature_name*/
/*No:CALL_INFIX_DIV.fz_iinaiv*/
/*No:CALL_INFIX_DIV.run_feature*/
/*No:CALL_INFIX_DIV.start_position*/
/*No:CALL_INFIX_DIV.target*/
/*No:CALL_INFIX_DIV.precedence*/
T0* r520to_runnable(T520* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T520*)C))->_current_type/*4*/)==((void*)(NULL))) {
r520to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T520*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r520error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)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*)((((T520*)C))->_arguments/*20*/)),(((T520*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T520*)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*)((((T520*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r520twin(C);
/*[IRF3.3set_current_type*/((((T520*)(((T520*)R))))->_current_type)=(NULL);
/*]*/
R=r520to_runnable(((T520*)R),a1);
}
/*FI*/return R;
}
void r520bracketed_pretty_print(T520* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r520pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_DIV.us_slash*/
/*No:CALL_INFIX_DIV.result_type*/
T0* r520twin(T520* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T520*)R)=*C;
return R;
}
/*No:CALL_INFIX_DIV.set_current_type*/
T0* r520operator(void){
T0* R=NULL;
R=((T0*)ms47_473);
return R;
}
/*No:CALL_INFIX_DIV.atomic_precedence*/
void r520pretty_print(T520* C){
/*IF*/if ((X662precedence((((T520*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T520*)C))->_target/*8*/);
r520print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T520*)C))->_target/*8*/))>=(8)) {
X662bracketed_pretty_print((((T520*)C))->_target/*8*/);
}
else {
X662pretty_print((((T520*)C))->_target/*8*/);
}
/*FI*/r520print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((8)<=(X662precedence((((T520*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T520*)C))->_target/*8*/);
r520print_op(C);
/*IF*/if ((8)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T520*)C))->_target/*8*/);
r520print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r520print_op(T520* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T520*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_DIV.current_type*/
void r520make_call_1(T520* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_DIV.is_manifest_string*/
/*No:CALL_INFIX_DIV.is_void*/
void r520to_runnable_0(T520* C,T0* a1){
C->_current_type=a1;
r520cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T520*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T520*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T520*)C))->_run_feature/*12*/));
r520error((((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T520*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T520*)C))->_target/*8*/);
}
/*FI*/}
void r520cpc_to_runnable(T520* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T520*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T520*)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((((T520*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T520*)C))->_target/*8*/,(((T520*)C))->_run_feature/*12*/);
}
void r520error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_DIV.fatal_error*/
/*No:CALL_INFIX_DIV.fz_bad_argument*/
/*No:CALL_INFIX_DIV.arg1*/
T0*oBC340ms_list=NULL;
void r340add_last(T0* a1){
r256add_last(((T256*)(oBC340ms_list)),a1);
}
/*No:ADDRESS_OF.rf*/
T0* r708add_comment(T708* 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 r708to_integer(T708* C){
int R=0;
r708error(r708start_position(C),((T0*)ms69_470));
return R;
}
int r708is_a(T708* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T900*)/*(IRF4.8result_type*/r708type_pointer()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(r708start_position(C));
r708error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:ADDRESS_OF.is_current*/
/*No:ADDRESS_OF.make*/
/*No:ADDRESS_OF.print_as_target*/
/*No:ADDRESS_OF.feature_name*/
/*No:ADDRESS_OF.fz_iinaiv*/
T0* r708start_position(T708* C){
T0* R=NULL;
R=X776start_position((((T708*)C))->_feature_name/*8*/);
return R;
}
/*No:ADDRESS_OF.precedence*/
T0* r708to_runnable(T708* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T708*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_rf=r368get_rf_with(((T368*)(X291run_class(a1))),(((T708*)C))->_feature_name/*8*/);
/*IF*/if (((((T708*)C))->_rf/*12*/)==((void*)(NULL))) {
r708error(r708start_position(C),((T0*)ms2_708));
}
/*FI*/R=(T0*)C;
}
else {
{T708*n=malloc(sizeof(*n));
*n=M708;
/*[IRF3.3make*/((((T708*)(n)))->_feature_name)=((((T708*)C))->_feature_name/*8*/);
/*]*/
R=(T0*)n;
}
R=r708to_runnable(((T708*)R),a1);
}
/*FI*/return R;
}
void r708bracketed_pretty_print(T708* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r708pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:ADDRESS_OF.result_type*/
/*No:ADDRESS_OF.atomic_precedence*/
void r708pretty_print(T708* C){
r238put_character(((T238*)(oBC364fmt)),'\44');
X776pretty_print((((T708*)C))->_feature_name/*8*/);
}
/*No:ADDRESS_OF.current_type*/
/*No:ADDRESS_OF.is_manifest_string*/
/*No:ADDRESS_OF.is_void*/
int fBC364type_pointer=0;
T0*oBC364type_pointer=NULL;
T0* r708type_pointer(void){
if (fBC364type_pointer==0){
T0* R=NULL;
fBC364type_pointer=1;
{T900*n=malloc(sizeof(*n));
*n=M900;
r900make(n,NULL);
R=(T0*)n;
}
oBC364type_pointer=R;}
return oBC364type_pointer;}
void r708error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:TYPE_ARRAY.array_of*/
T0*oBC709tmp_written_mark=NULL;
int r709has_creation(T709* C,T0* a1){
int R=0;
/*IF*/if ((C)==((void*)((((T709*)C))->_run_type/*16*/))) {
R=r605has_creation(((T605*)(r709base_class(C))),a1);
}
else {
R=r709has_creation(((T709*)((((T709*)C))->_run_type/*16*/)),a1);
}
/*FI*/return R;
}
/*No:TYPE_ARRAY.is_anchored*/
/*No:TYPE_ARRAY.is_array*/
int r709is_a(T709* C,T0* a1){
int R=0;
/*IF*/if ((r709run_class(C))==((void*)(X291run_class(a1)))) {
R=1;
}
 else if (X291is_array(a1)) {
R=X291is_a(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/,r701item(((T701*)(X291generic_list(a1))),1));
/*IF*/if (!(R)) {
/*[IRF3.6extend*/{char b1='\40';
r7extend(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/}
 else if (r605is_subclass_of(((T605*)(r709base_class(C))),X291base_class(a1))) {
/*IF*/if (X291is_generic(a1)) {
R=r605is_a_vncg(((T605*)(r709base_class(C))),(T0*)C,a1);
}
else {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_ARRAY.is_pointer*/
/*No:TYPE_ARRAY.run_type*/
/*No:TYPE_ARRAY.us_lower*/
/*No:TYPE_ARRAY.us_array*/
/*No:TYPE_ARRAY.is_string*/
/*No:TYPE_ARRAY.is_like_feature*/
/*No:TYPE_ARRAY.is_like_current*/
/*No:TYPE_ARRAY.us_capacity*/
void r709make(T709* C,T0* a1,T0* a2){
T0* _owwm=NULL;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms2_473),a1);
C->_base_class_name=(T0*)n;
}
C->_generic_list=se_ma701(1,a2);
_owwm=X291written_mark(a2);
r7copy(((T7*)(oBC709tmp_written_mark)),((T0*)ms2_473));
r7extend(((T7*)(oBC709tmp_written_mark)),'\133');
r7append(((T7*)(oBC709tmp_written_mark)),_owwm);
r7extend(((T7*)(oBC709tmp_written_mark)),'\135');
C->_written_mark=r902item(oBC709tmp_written_mark);
}
/*No:TYPE_ARRAY.nb_errors*/
/*No:TYPE_ARRAY.start_position*/
/*No:TYPE_ARRAY.fz_inako*/
/*No:TYPE_ARRAY.is_character*/
/*No:TYPE_ARRAY.written_mark*/
T0* r709to_runnable(T709* C,T0* a1){
T0* R=NULL;
T0* _rc=NULL;
T0* _rt=NULL;
T0* _elt2=NULL;
T0* _elt1=NULL;
/*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(C))) {
R=(T0*)C;
}
else {
_elt1=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
_elt2=X291to_runnable(_elt1,a1);
/*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
/*IF*/if ((_elt2)!=((void*)(NULL))) {
r683add_position(X291start_position(_elt2));
}
/*FI*/r709error(X291start_position(_elt1),((T0*)ms59_470));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_elt2=X291run_type(_elt2);
/*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(NULL))) {
R=(T0*)C;
/*IF*/if ((_elt2)==((void*)(_elt1))) {
C->_run_type=(T0*)C;
r709load_basic_features(C);
}
else {
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
C->_run_type=(T0*)n;
}
r709load_basic_features(((T709*)((((T709*)C))->_run_type/*16*/)));
}
/*FI*/}
else {
R=r709twin(C);
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
_rt=(T0*)n;
}
/*[IRF3.3set_run_type*/((((T709*)(((T709*)R))))->_run_type)=(_rt);
/*]*/
r709load_basic_features(((T709*)_rt));
}
/*FI*/}
/*FI*/}
/*FI*/_rc=X291run_class(r701item(((T701*)((((T709*)((T709*)R)))->_generic_list/*8*/)),1));
_rc=r709run_class(((T709*)R));
return R;
}
int r709is_run_type(T709* C){
int R=0;
T0* _t=NULL;
/*IF*/if (((((T709*)C))->_run_type/*16*/)!=((void*)(NULL))) {
R=1;
}
else {
_t=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
/*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
C->_run_type=(T0*)C;
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_ARRAY.is_formal_generic*/
/*No:TYPE_ARRAY.generic_list*/
/*No:TYPE_ARRAY.is_real*/
T0* r709twin(T709* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T709*)R)=*C;
return R;
}
/*No:TYPE_ARRAY.is_bit*/
/*No:TYPE_ARRAY.pretty_print*/
T0* r709smallest_ancestor(T709* C,T0* a1){
T0* R=NULL;
T0* _array_of3=NULL;
T0* _array_of2=NULL;
T0* _array_of1=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_array(_rto)) {
_array_of1=X291run_type(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/);
_array_of2=r701item(((T701*)(X291generic_list(_rto))),1);
_array_of3=X291smallest_ancestor(_array_of1,_array_of2);
/*IF*/if ((_array_of3)==((void*)(_array_of1))) {
R=(T0*)C;
}
 else if ((_array_of3)==((void*)(_array_of2))) {
R=a1;
}
else {
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make(n,NULL,_array_of3);
R=(T0*)n;
}
}
/*FI*/}
else {
R=X291smallest_ancestor(_rto,(T0*)C);
}
/*FI*/return R;
}
/*No:TYPE_ARRAY.is_boolean*/
/*No:TYPE_ARRAY.set_run_type*/
/*No:TYPE_ARRAY.is_double*/
/*No:TYPE_ARRAY.us_storage*/
T0* r709run_class(T709* C){
T0* R=NULL;
/*IF*/if (r709is_run_type(C)) {
R=r604run_class((((T709*)C))->_run_type/*16*/);
}
/*FI*/return R;
}
T0* r709run_time_mark(T709* C){
T0* R=NULL;
/*IF*/if (r709is_run_type(C)) {
R=(((T709*)((T709*)((((T709*)C))->_run_type/*16*/))))->_written_mark/*12*/;
}
/*FI*/return R;
}
int r709is_a_in(T709* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T709*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r709to_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* r709look_up_for(T709* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r709base_class(C))),a1,a2);
return R;
}
/*No:TYPE_ARRAY.expanded_initializer*/
/*No:TYPE_ARRAY.fz_dot*/
/*No:TYPE_ARRAY.is_generic*/
/*No:TYPE_ARRAY.fz_bga*/
/*No:TYPE_ARRAY.used_as_reference*/
/*No:TYPE_ARRAY.is_reference*/
void r709error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r709load_basic_features(T709* C){
T0* _rc=NULL;
T0* _rf=NULL;
T0* _elt_type=NULL;
_elt_type=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
/*IF*/if (X291is_expanded(_elt_type)) {
r368set_at_run_time(((T368*)(X291run_class(_elt_type))));
}
/*FI*/_rc=r709run_class(C);
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms55_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms87_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms140_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms130_473));
}
T0* r709base_class(T709* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T709*)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_ARRAY.is_any*/
/*No:TYPE_ARRAY.us_upper*/
/*No:TYPE_ARRAY.base_class_name*/
/*No:TYPE_ARRAY.is_expanded*/
/*No:TYPE_ARRAY.is_basic_eiffel_expanded*/
/*No:TYPE_ARRAY.is_none*/
/*No:TYPE_ARRAY.is_integer*/
void r709make_runnable(T709* C,T0* a1,T0* a2){
r709make(C,a1,a2);
C->_run_type=(T0*)C;
}
/*No:E_OLD.id*/
T0* r664add_comment(T664* 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 r664to_integer(T664* C){
int R=0;
r664error(r664start_position(C),((T0*)ms69_470));
return R;
}
int r664is_a(T664* C,T0* a1){
int R=0;
R=X291is_a(X291run_type(r664result_type(C)),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(r664start_position(C));
r664error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_OLD.is_current*/
/*No:E_OLD.make*/
void r664print_as_target(T664* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r664pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:E_OLD.fz_iinaiv*/
/*No:E_OLD.expression*/
T0* r664start_position(T664* C){
T0* R=NULL;
R=X662start_position((((T664*)C))->_expression/*8*/);
return R;
}
/*No:E_OLD.precedence*/
T0* r664to_runnable(T664* C,T0* a1){
T0* R=NULL;
T0* _exp=NULL;
/*IF*/if (((((T664*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
_exp=X662to_runnable((((T664*)C))->_expression/*8*/,a1);
/*IF*/if ((_exp)==((void*)(NULL))) {
r664error(r664start_position(C),((T0*)ms1_664));
}
else {
C->_expression=_exp;
}
/*FI*/r417increment(((T417*)(oBC664id_counter)));
C->_id=(((T417*)((T417*)(oBC664id_counter))))->_value/*0*/;
R=(T0*)C;
}
else {
{T664*n=malloc(sizeof(*n));
*n=M664;
/*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T664*)C))->_expression/*8*/);
/*]*/
R=(T0*)n;
}
R=r664to_runnable(((T664*)R),a1);
}
/*FI*/return R;
}
void r664bracketed_pretty_print(T664* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r664pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
T0* r664result_type(T664* C){
T0* R=NULL;
R=X662result_type((((T664*)C))->_expression/*8*/);
return R;
}
void r664pretty_print(T664* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_664));
r238level_incr(((T238*)(oBC364fmt)));
X662pretty_print((((T664*)C))->_expression/*8*/);
r238level_decr(((T238*)(oBC364fmt)));
}
/*No:E_OLD.current_type*/
/*No:E_OLD.is_manifest_string*/
/*No:E_OLD.is_void*/
void r664error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0*oBC664id_counter=NULL;
/*No:CST_ATT_CHARACTER.arguments*/
T0* r554try_to_undefine(T554* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r554try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T554*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_CHARACTER.is_deferred*/
void r554pretty_tail(T554* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_418));
/*[IRF3.6pretty_print*/{T260* C1=((T260*)(/*(IRF4.3value*/(((T554*)C))->_value_mem/*24*//*)*/));
r238put_string(((T238*)(oBC364fmt)),r260to_string(C1));
}/*]*/
}
void r554add_into(T554* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
T0* r554try_to_undefine_aux(T554* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r554start_position(C));
r554error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r554make(T554* C,T0* a1,T0* a2,T0* a3){
r554make_e_feature(C,a1,a2);
C->_value_mem=a3;
}
/*No:CST_ATT_CHARACTER.nb_errors*/
void r554pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*No:CST_ATT_CHARACTER.set_header_comment*/
T0* r554start_position(T554* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r554to_run_feature(T554* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X291run_class(a1);
R=r368at(((T368*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 808: 
break;
default:
R=NULL;
};/*IF*/if ((R)==((void*)(NULL))) {
{T808*n=malloc(sizeof(*n));
*n=M808;
r808make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CST_ATT_CHARACTER.ensure_assertion*/
/*No:CST_ATT_CHARACTER.code_require*/
/*No:CST_ATT_CHARACTER.result_type*/
/*No:CST_ATT_CHARACTER.em1*/
void r554pretty_print(T554* C){
r554pretty_print_profile(C);
r554pretty_tail(C);
r238put_character(((T238*)(oBC364fmt)),'\73');
/*IF*/if (((((T554*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r393pretty_print(((T393*)((((T554*)C))->_header_comment/*16*/)));
}
/*FI*/}
/*No:CST_ATT_CHARACTER.set_clients*/
/*No:CST_ATT_CHARACTER.em2*/
/*No:CST_ATT_CHARACTER.require_assertion*/
/*No:CST_ATT_CHARACTER.value*/
/*No:CST_ATT_CHARACTER.names*/
/*No:CST_ATT_CHARACTER.value_mem*/
void r554pretty_print_profile(T554* C){
r554pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
/*[IRF3.1pretty_print_arguments*//*]*/
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T554*)C))->_result_type/*12*/);
}
/*FI*/}
void r554pretty_print_names(T554* C){
int _i=0;
_i=1;
r554pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r554pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r554can_hide(T554* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r554error(r554start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r554error(r554start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_CHARACTER.header_comment*/
int r554is_merge_with(T554* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r554error(r554start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r554error(r554start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_CHARACTER.fz_dot*/
/*No:CST_ATT_CHARACTER.first_name*/
/*No:CST_ATT_CHARACTER.clients*/
void r554collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r554error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_CHARACTER.base_class*/
/*No:CST_ATT_CHARACTER.pretty_print_arguments*/
void r554make_e_feature(T554* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:CALL_INFIX_POWER.arguments*/
T0* r557add_comment(T557* 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 r557to_integer(T557* C){
int R=0;
r557error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r557is_a(T557* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T557*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r557error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_POWER.is_current*/
void r557make(T557* 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,r557operator(),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;
}
r557make_call_1(C,a1,(((T557*)C))->_feature_name/*24*/,_eal);
}
void r557print_as_target(T557* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r557pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_POWER.nb_errors*/
/*No:CALL_INFIX_POWER.feature_name*/
/*No:CALL_INFIX_POWER.fz_iinaiv*/
/*No:CALL_INFIX_POWER.run_feature*/
/*No:CALL_INFIX_POWER.start_position*/
/*No:CALL_INFIX_POWER.target*/
/*No:CALL_INFIX_POWER.precedence*/
T0* r557to_runnable(T557* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T557*)C))->_current_type/*4*/)==((void*)(NULL))) {
r557to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T557*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r557error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)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*)((((T557*)C))->_arguments/*20*/)),(((T557*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T557*)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*)((((T557*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r557twin(C);
/*[IRF3.3set_current_type*/((((T557*)(((T557*)R))))->_current_type)=(NULL);
/*]*/
R=r557to_runnable(((T557*)R),a1);
}
/*FI*/return R;
}
void r557bracketed_pretty_print(T557* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r557pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_POWER.result_type*/
T0* r557twin(T557* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T557*)R)=*C;
return R;
}
/*No:CALL_INFIX_POWER.set_current_type*/
T0* r557operator(void){
T0* R=NULL;
R=((T0*)ms44_473);
return R;
}
/*No:CALL_INFIX_POWER.atomic_precedence*/
void r557pretty_print(T557* C){
/*IF*/if ((X662precedence((((T557*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T557*)C))->_target/*8*/);
r557print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((9)>(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence((((T557*)C))->_target/*8*/))<=(9)) {
X662bracketed_pretty_print((((T557*)C))->_target/*8*/);
r557print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print((((T557*)C))->_target/*8*/);
r557print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r557print_op(T557* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T557*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_POWER.current_type*/
void r557make_call_1(T557* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_POWER.is_manifest_string*/
/*No:CALL_INFIX_POWER.is_void*/
void r557to_runnable_0(T557* C,T0* a1){
C->_current_type=a1;
r557cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T557*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T557*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T557*)C))->_run_feature/*12*/));
r557error((((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T557*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T557*)C))->_target/*8*/);
}
/*FI*/}
void r557cpc_to_runnable(T557* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T557*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T557*)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((((T557*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T557*)C))->_target/*8*/,(((T557*)C))->_run_feature/*12*/);
}
void r557error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_POWER.fatal_error*/
/*No:CALL_INFIX_POWER.fz_bad_argument*/
/*No:CALL_INFIX_POWER.arg1*/
/*No:CALL_INFIX_POWER.us_pow*/
T0* r72add_comment(T72* 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 r72to_integer(T72* C){
int R=0;
T0* _rf1=NULL;
_rf1=(((T72*)C))->_run_feature/*12*/;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 808: 
break;
default:
_rf1=NULL;
};/*IF*/if ((_rf1)==((void*)(NULL))) {
r72error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
}
else {
R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*36*/);
}
/*FI*/return R;
}
int r72is_a(T72* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T72*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
r72error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_PREFIX_MINUS.is_current*/
void r72make(T72* C,T0* a1,T0* a2){
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,r72operator(),a1);
C->_feature_name=(T0*)n;
}
r72make_call0(C,a2,(((T72*)C))->_feature_name/*20*/);
}
void r72print_as_target(T72* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r72pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_PREFIX_MINUS.nb_errors*/
/*No:CALL_PREFIX_MINUS.feature_name*/
/*No:CALL_PREFIX_MINUS.fz_iinaiv*/
/*No:CALL_PREFIX_MINUS.run_feature*/
/*No:CALL_PREFIX_MINUS.start_position*/
/*No:CALL_PREFIX_MINUS.target*/
/*No:CALL_PREFIX_MINUS.precedence*/
T0* r72to_runnable(T72* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T72*)C))->_current_type/*4*/)==((void*)(NULL))) {
r72to_runnable_0(C,a1);
/*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T72*)C))->_run_feature/*12*/))>(0))) {
r683add_position((((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*/);
r72error(X496start_position((((T72*)C))->_run_feature/*12*/),((T0*)ms1_752));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r72twin(C);
/*[IRF3.3set_current_type*/((((T72*)(((T72*)R))))->_current_type)=(NULL);
/*]*/
R=r72to_runnable(((T72*)R),a1);
}
/*FI*/return R;
}
void r72bracketed_pretty_print(T72* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r72pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_PREFIX_MINUS.result_type*/
T0* r72twin(T72* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T72*)R)=*C;
return R;
}
/*No:CALL_PREFIX_MINUS.set_current_type*/
T0* r72operator(void){
T0* R=NULL;
R=((T0*)ms37_473);
return R;
}
void r72pretty_print(T72* C){
/*[IRF3.6pretty_print*/{T406* C1=((T406*)((((T72*)C))->_feature_name/*20*/));
r238put_string(((T238*)(oBC364fmt)),(((T406*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
/*IF*/if ((X662precedence((((T72*)C))->_target/*8*/))<(11)) {
r238put_character(((T238*)(oBC364fmt)),'\50');
X662pretty_print((((T72*)C))->_target/*8*/);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
else {
X662pretty_print((((T72*)C))->_target/*8*/);
}
/*FI*/}
/*No:CALL_PREFIX_MINUS.us_minus*/
/*No:CALL_PREFIX_MINUS.current_type*/
/*No:CALL_PREFIX_MINUS.is_manifest_string*/
/*No:CALL_PREFIX_MINUS.is_void*/
void r72to_runnable_0(T72* C,T0* a1){
C->_current_type=a1;
r72cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T72*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T72*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T72*)C))->_run_feature/*12*/));
r72error((((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T72*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T72*)C))->_target/*8*/);
}
/*FI*/}
void r72cpc_to_runnable(T72* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T72*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T72*)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((((T72*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T72*)C))->_target/*8*/,(((T72*)C))->_run_feature/*12*/);
}
void r72make_call0(T72* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
void r72error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_PREFIX_MINUS.fatal_error*/
int fBC364type_real_ref=0;
T0*oBC364type_real_ref=NULL;
T0* r209type_real_ref(void){
if (fBC364type_real_ref==0){
T0* R=NULL;
T0* _real_ref=NULL;
fBC364type_real_ref=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms24_473),NULL);
_real_ref=(T0*)n;
}
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_real_ref);
/*]*/
R=(T0*)n;
}
oBC364type_real_ref=R;}
return oBC364type_real_ref;}
int r209has_creation(T209* C,T0* a1){
int R=0;
r683add_position(X776start_position(a1));
r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
return R;
}
/*No:TYPE_REAL.is_anchored*/
/*No:TYPE_REAL.is_array*/
int r209is_a(T209* C,T0* a1){
int R=0;
/*IF*/if ((X291is_real(a1))||(X291is_double(a1))) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r209base_class(C))),X291base_class(a1));
/*IF*/if (R) {
r209used_as_reference();
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_REAL.run_type*/
/*No:TYPE_REAL.is_pointer*/
/*No:TYPE_REAL.is_string*/
/*No:TYPE_REAL.is_like_feature*/
/*No:TYPE_REAL.is_like_current*/
void r209make(T209* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms23_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_REAL.us_item*/
void r209load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
r368set_at_run_time(((T368*)_rc));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
}
/*No:TYPE_REAL.nb_errors*/
int fBC209check_type=0;
void r209check_type(T209* C){
if (fBC209check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC209check_type=1;
_bc=r209base_class(C);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_rc=r209run_class(C);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_209));
}
/*FI*/}
/*FI*/}}
/*No:TYPE_REAL.start_position*/
/*No:TYPE_REAL.fz_inako*/
/*No:TYPE_REAL.is_character*/
T0* r209written_mark(void){
T0* R=NULL;
R=((T0*)ms23_473);
return R;
}
T0* r209to_runnable(T209* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r209check_type(C);
return R;
}
/*No:TYPE_REAL.is_run_type*/
/*No:TYPE_REAL.is_formal_generic*/
T0* r209generic_list(T209* C){
T0* R=NULL;
r209fatal_error_generic_list(C);
return R;
}
/*No:TYPE_REAL.is_real*/
/*No:TYPE_REAL.is_bit*/
void r209fatal_error_generic_list(T209* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_REAL.pretty_print*/
/*No:TYPE_REAL.us_real*/
T0* r209smallest_ancestor(T209* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_integer(_rto)) {
R=(T0*)C;
}
 else if (X291is_real(_rto)) {
R=(T0*)C;
}
 else if (X291is_double(_rto)) {
R=a1;
}
else {
R=r657smallest_ancestor(((T657*)(r209type_real_ref())),_rto);
}
/*FI*/return R;
}
/*No:TYPE_REAL.is_boolean*/
/*No:TYPE_REAL.is_double*/
T0* r209run_class(T209* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
T0* r209run_time_mark(void){
T0* R=NULL;
R=((T0*)ms23_473);
return R;
}
/*No:TYPE_REAL.us_real_ref*/
int r209is_a_in(T209* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r209written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r209to_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* r209look_up_for(T209* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r209base_class(C))),a1,a2);
return R;
}
/*No:TYPE_REAL.expanded_initializer*/
/*No:TYPE_REAL.fz_dot*/
/*No:TYPE_REAL.is_generic*/
int fBC209used_as_reference=0;
void r209used_as_reference(void){
if (fBC209used_as_reference==0){
fBC209used_as_reference=1;
r209load_ref(((T0*)ms24_473));
}}
/*No:TYPE_REAL.is_reference*/
void r209error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r209base_class(T209* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T209*)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_REAL.is_any*/
/*No:TYPE_REAL.base_class_name*/
/*No:TYPE_REAL.is_expanded*/
/*No:TYPE_REAL.is_basic_eiffel_expanded*/
/*No:TYPE_REAL.is_none*/
/*No:TYPE_REAL.is_integer*/
int r491has_creation(T491* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r491base_class(C))),a1);
return R;
}
/*No:TYPE_STRING.is_anchored*/
/*No:TYPE_STRING.is_array*/
int r491is_a(T491* C,T0* a1){
int R=0;
/*IF*/if (X291is_string(a1)) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r491base_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_STRING.run_type*/
/*No:TYPE_STRING.is_pointer*/
/*No:TYPE_STRING.is_string*/
/*No:TYPE_STRING.is_like_feature*/
/*No:TYPE_STRING.is_like_current*/
/*No:TYPE_STRING.us_capacity*/
void r491make(T491* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms25_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_STRING.nb_errors*/
/*No:TYPE_STRING.us_string*/
int fBC491check_type=0;
void r491check_type(T491* C){
if (fBC491check_type==0){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _bc=NULL;
fBC491check_type=1;
_bc=r491base_class(C);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_rc=r491run_class(C);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
r491error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T491*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_491));
}
/*FI*/}
/*FI*/_rc=r491run_class(C);
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms55_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms60_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms130_473));
r368set_at_run_time(((T368*)(X291run_class(/*X496*/((T0*)(((T808*)((T808*)_rf)))->_result_type/*24*/)))));
}}
/*No:TYPE_STRING.start_position*/
/*No:TYPE_STRING.fz_inako*/
/*No:TYPE_STRING.is_character*/
T0* r491written_mark(void){
T0* R=NULL;
R=((T0*)ms25_473);
return R;
}
T0* r491to_runnable(T491* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r491check_type(C);
return R;
}
/*No:TYPE_STRING.is_run_type*/
/*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*/
/*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.pretty_print*/
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.is_double*/
/*No:TYPE_STRING.us_count*/
/*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=(((T368*)((T368*)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.expanded_initializer*/
/*No:TYPE_STRING.fz_dot*/
/*No:TYPE_STRING.is_generic*/
/*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.is_any*/
/*No:TYPE_STRING.base_class_name*/
/*No:TYPE_STRING.is_expanded*/
/*No:TYPE_STRING.is_basic_eiffel_expanded*/
/*No:TYPE_STRING.is_none*/
/*No:TYPE_STRING.is_integer*/

