/*
-- 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 "short.h"
/*No:CALL_INFIX_GT.arguments*/
void r57short(T57* C){
/*IF*/if ((X662precedence((((T57*)C))->_target/*8*/))==(13)) {
X662short((((T57*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T57* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T57*)C1))->_feature_name/*24*/);
}/*]*/
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence((((T57*)C))->_target/*8*/))<(6)) {
X662bracketed_short((((T57*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T57* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T57*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short((((T57*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T57* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T57*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
T0* r57add_comment(T57* 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 r57to_integer(T57* C){
int R=0;
r57error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T57*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
void r57bracketed_short(T57* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r57short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r57is_a(T57* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T57*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T57*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r57error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_GT.is_current*/
void r57make(T57* 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,r57operator(),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;
}
r57make_call_1(C,a1,(((T57*)C))->_feature_name/*24*/,_eal);
}
/*No:CALL_INFIX_GT.nb_errors*/
/*No:CALL_INFIX_GT.feature_name*/
/*No:CALL_INFIX_GT.fz_iinaiv*/
/*No:CALL_INFIX_GT.run_feature*/
/*No:CALL_INFIX_GT.start_position*/
/*No:CALL_INFIX_GT.target*/
/*No:CALL_INFIX_GT.precedence*/
T0* r57to_runnable(T57* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T57*)C))->_current_type/*4*/)==((void*)(NULL))) {
r57to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T57*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r57error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)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*)((((T57*)C))->_arguments/*20*/)),(((T57*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T57*)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*)((((T57*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r57twin(C);
/*[IRF3.3set_current_type*/((((T57*)(((T57*)R))))->_current_type)=(NULL);
/*]*/
R=r57to_runnable(((T57*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_GT.short_print_feature_name*/
/*No:CALL_INFIX_GT.result_type*/
T0* r57twin(T57* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T57*)R)=*C;
return R;
}
/*No:CALL_INFIX_GT.set_current_type*/
T0* r57operator(void){
T0* R=NULL;
R=((T0*)ms33_473);
return R;
}
/*No:CALL_INFIX_GT.atomic_precedence*/
/*No:CALL_INFIX_GT.current_type*/
void r57make_call_1(T57* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_GT.is_manifest_string*/
/*No:CALL_INFIX_GT.is_void*/
void r57to_runnable_0(T57* C,T0* a1){
C->_current_type=a1;
r57cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T57*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T57*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T57*)C))->_run_feature/*12*/));
r57error((((T454*)((T454*)((((T57*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T57*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T57*)C))->_target/*8*/);
}
/*FI*/}
void r57cpc_to_runnable(T57* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T57*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T57*)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((((T57*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T57*)C))->_target/*8*/,(((T57*)C))->_run_feature/*12*/);
}
void r57error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_GT.us_gt*/
/*No:CALL_INFIX_GT.fatal_error*/
/*No:CALL_INFIX_GT.fz_bad_argument*/
void r57short_target(T57* C){
r57bracketed_short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
/*No:CALL_INFIX_GT.arg1*/
/*No:CALL_INFIX_AND.arguments*/
void r313short(T313* C){
/*IF*/if ((X662precedence((((T313*)C))->_target/*8*/))==(13)) {
X662short((((T313*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T313* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T313*)C1))->_feature_name/*24*/);
}/*]*/
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((5)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence((((T313*)C))->_target/*8*/))<(5)) {
X662bracketed_short((((T313*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T313* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T313*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short((((T313*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T313* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T313*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
T0* r313add_comment(T313* 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 r313to_integer(T313* C){
int R=0;
r313error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T313*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
void r313bracketed_short(T313* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r313short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r313is_a(T313* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T313*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T313*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r313error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_AND.is_current*/
/*No:CALL_INFIX_AND.us_and*/
void r313make(T313* 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,r313operator(),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;
}
r313make_call_1(C,a1,(((T313*)C))->_feature_name/*24*/,_eal);
}
/*No:CALL_INFIX_AND.nb_errors*/
/*No:CALL_INFIX_AND.feature_name*/
/*No:CALL_INFIX_AND.fz_iinaiv*/
/*No:CALL_INFIX_AND.run_feature*/
/*No:CALL_INFIX_AND.start_position*/
/*No:CALL_INFIX_AND.target*/
/*No:CALL_INFIX_AND.precedence*/
T0* r313to_runnable(T313* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T313*)C))->_current_type/*4*/)==((void*)(NULL))) {
r313to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T313*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r313error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)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*)((((T313*)C))->_arguments/*20*/)),(((T313*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T313*)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*)((((T313*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r313twin(C);
/*[IRF3.3set_current_type*/((((T313*)(((T313*)R))))->_current_type)=(NULL);
/*]*/
R=r313to_runnable(((T313*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_AND.short_print_feature_name*/
/*No:CALL_INFIX_AND.result_type*/
T0* r313twin(T313* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T313*)R)=*C;
return R;
}
/*No:CALL_INFIX_AND.set_current_type*/
T0* r313operator(void){
T0* R=NULL;
R=((T0*)ms27_473);
return R;
}
/*No:CALL_INFIX_AND.atomic_precedence*/
/*No:CALL_INFIX_AND.current_type*/
void r313make_call_1(T313* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_AND.is_manifest_string*/
/*No:CALL_INFIX_AND.is_void*/
void r313to_runnable_0(T313* C,T0* a1){
C->_current_type=a1;
r313cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T313*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T313*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T313*)C))->_run_feature/*12*/));
r313error((((T454*)((T454*)((((T313*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T313*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T313*)C))->_target/*8*/);
}
/*FI*/}
void r313cpc_to_runnable(T313* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T313*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T313*)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((((T313*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T313*)C))->_target/*8*/,(((T313*)C))->_run_feature/*12*/);
}
void r313error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_AND.fatal_error*/
/*No:CALL_INFIX_AND.fz_bad_argument*/
void r313short_target(T313* C){
r313bracketed_short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
/*No:CALL_INFIX_AND.arg1*/
/*No:WRITABLE_ATTRIBUTE.arguments*/
T0* r106try_to_undefine(T106* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r106try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T106*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:WRITABLE_ATTRIBUTE.is_deferred*/
void r106add_into(T106* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)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*)((((T106*)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* r106try_to_undefine_aux(T106* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r106start_position(C));
r106error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r106make(T106* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:WRITABLE_ATTRIBUTE.nb_errors*/
/*No:WRITABLE_ATTRIBUTE.set_header_comment*/
T0* r106start_position(T106* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r106to_run_feature(T106* C,T0* a1,T0* a2){
T0* R=NULL;
{T820*n=malloc(sizeof(*n));
*n=M820;
r820make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
/*No:WRITABLE_ATTRIBUTE.code_require*/
/*No:WRITABLE_ATTRIBUTE.result_type*/
/*No:WRITABLE_ATTRIBUTE.em1*/
/*No:WRITABLE_ATTRIBUTE.set_clients*/
/*No:WRITABLE_ATTRIBUTE.em2*/
/*No:WRITABLE_ATTRIBUTE.require_assertion*/
/*No:WRITABLE_ATTRIBUTE.names*/
int r106can_hide(T106* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T106*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r106error(r106start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r106error(r106start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T106*)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:WRITABLE_ATTRIBUTE.header_comment*/
int r106is_merge_with(T106* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T106*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r106error(r106start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r106error(r106start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T106*)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:WRITABLE_ATTRIBUTE.fz_dot*/
/*No:WRITABLE_ATTRIBUTE.first_name*/
/*No:WRITABLE_ATTRIBUTE.clients*/
void r106collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r106error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:WRITABLE_ATTRIBUTE.base_class*/
/*No:PROC_CALL_0.arguments*/
T0* r268add_comment(T268* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r268make(T268* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
/*No:PROC_CALL_0.nb_errors*/
/*No:PROC_CALL_0.feature_name*/
/*No:PROC_CALL_0.arg_count*/
/*No:PROC_CALL_0.run_feature*/
/*No:PROC_CALL_0.set_run_compound*/
T0* r268start_position(T268* C){
T0* R=NULL;
R=X776start_position((((T268*)C))->_feature_name/*12*/);
return R;
}
/*No:PROC_CALL_0.target*/
/*No:PROC_CALL_0.set_run_feature*/
T0* r268to_runnable(T268* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T268*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r268to_runnable_0(C,a1);
/*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T268*)C))->_run_feature/*16*/))>(0))) {
r683add_position(X776start_position((((T268*)C))->_feature_name/*12*/));
r268error(X496start_position((((T268*)C))->_run_feature/*16*/),((T0*)ms1_268));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T268*n=malloc(sizeof(*n));
*n=M268;
r268make(n,(((T268*)C))->_target/*8*/,(((T268*)C))->_feature_name/*12*/);
R=(T0*)n;
}
R=r268to_runnable(((T268*)R),a1);
}
/*FI*/return R;
}
T0* r268current_type(T268* C){
T0* R=NULL;
/*IF*/if (((((T268*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T268*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:PROC_CALL_0.run_compound*/
void r268to_runnable_0(T268* C,T0* a1){
C->_run_compound=a1;
r268cpc_to_runnable(C,r268current_type(C));
/*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T268*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
r683add_position(X496start_position((((T268*)C))->_run_feature/*16*/));
r268error(X776start_position((((T268*)C))->_feature_name/*12*/),((T0*)ms1_173));
}
/*FI*/}
void r268cpc_to_runnable(T268* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T268*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T268*)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((((T268*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T268*)C))->_target/*8*/,(((T268*)C))->_run_feature/*16*/);
}
void r268error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:PROC_CALL_0.fatal_error*/
/*No:PROC_CALL_0.end_mark_comment*/
T0* r268make_runnable(T268* C,T0* a1,T0* a2,T0* a3,T0* a4){
T0* R=NULL;
/*IF*/if (((((T268*)C))->_run_compound/*4*/)==((void*)(NULL))) {
R=(T0*)C;
r268make(((T268*)R),a2,(((T268*)C))->_feature_name/*12*/);
C->_run_compound=a1;
C->_run_feature=a4;
}
else {
{T268*n=malloc(sizeof(*n));
*n=M268;
r268make(n,a2,(((T268*)C))->_feature_name/*12*/);
R=(T0*)n;
}
/*[IRF3.3set_run_compound*/((((T268*)(((T268*)R))))->_run_compound)=(a1);
/*]*/
/*[IRF3.3set_run_feature*/((((T268*)(((T268*)R))))->_run_feature)=(a4);
/*]*/
}
/*FI*/return R;
}
void r39short(T39* C){
char _c=0;
int _i=0;
r580hook(((T580*)(oBC364short_print)),((T0*)ms1_361));
_i=1;
while (!((_i)>((((T7*)((T7*)((((T39*)C))->_to_string/*8*/))))->_count/*4*/))) {
_c=/*(IRF4.6item*/((((T7*)((T7*)((((T39*)C))->_to_string/*8*/))))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*IF*/if ((_c)==('\137')) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_361),((T0*)ms3_361));
}
else {
/*[IRF3.6a_character*/{char b1=_c;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
r580hook(((T580*)(oBC364short_print)),((T0*)ms4_361));
}
T0* r39add_comment(T39* 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 r39to_integer(T39* C){
int R=0;
r39error((((T39*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
void r39bracketed_short(T39* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r39short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r39is_a(T39* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T39*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T39*)C))->_start_position/*12*/);
r39error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:LOCAL_NAME1.set_is_used*/
void r39name_clash(T39* C){
T0* _rf=NULL;
T0* _rc=NULL;
/*IF*/if (r605has_feature(((T605*)(r39base_class_written(C))),(((T39*)C))->_to_string/*8*/)) {
_rc=X291run_class((((T39*)C))->_current_type/*4*/);
_rf=r368get_feature_with(((T368*)_rc),(((T39*)C))->_to_string/*8*/);
/*IF*/if ((_rf)!=((void*)(NULL))) {
r683add_position(X496start_position(_rf));
}
/*FI*/r683add_position((((T39*)C))->_start_position/*12*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_447);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*No:LOCAL_NAME1.is_current*/
T0* r39written_in(T39* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T39*)C))->_start_position/*12*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
}
/*FI*/return R;
}
void r39make(T39* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=r902item(a2);
}
/*No:LOCAL_NAME1.to_string*/
/*No:LOCAL_NAME1.fz_iinaiv*/
/*No:LOCAL_NAME1.em_bl*/
/*No:LOCAL_NAME1.set_result_type*/
/*No:LOCAL_NAME1.start_position*/
/*No:LOCAL_NAME1.precedence*/
T0* r39to_runnable(T39* C,T0* a1){
T0* R=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
_t1=(((T39*)C))->_result_type/*20*/;
_t2=X291to_runnable(_t1,a1);
/*IF*/if ((_t2)==((void*)(NULL))) {
r683add_position(X291start_position(_t1));
r39error((((T39*)C))->_start_position/*12*/,((T0*)ms6_361));
}
/*FI*//*IF*/if (((((T39*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=_t2;
R=(T0*)C;
}
else {
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make_runnable(n,(T0*)C,a1,_t2);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:LOCAL_NAME1.set_rank*/
/*No:LOCAL_NAME1.rank*/
/*No:LOCAL_NAME1.result_type*/
/*No:LOCAL_NAME1.atomic_precedence*/
T0* r39base_class_written(T39* C){
T0* R=NULL;
R=r451base_class(((T451*)(r39written_in(C))));
return R;
}
/*No:LOCAL_NAME1.current_type*/
/*No:LOCAL_NAME1.is_used*/
/*No:LOCAL_NAME1.is_manifest_string*/
/*No:LOCAL_NAME1.is_void*/
void r39error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:LOCAL_NAME1.fatal_error*/
void r39short_target(T39* C){
r39short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
void r39make_runnable(T39* C,T0* a1,T0* a2,T0* a3){
*((T39*)(C))=*((T39*)(a1));
C->_current_type=a2;
C->_result_type=a3;
}
/*No:DEFERRED_PROCEDURE.arguments*/
T0* r853try_to_undefine(T853* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T853*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:DEFERRED_PROCEDURE.is_deferred*/
/*No:DEFERRED_PROCEDURE.rescue_compound*/
void r853add_into(T853* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)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*)((((T853*)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);
}
}
/*No:DEFERRED_PROCEDURE.end_comment*/
/*No:DEFERRED_PROCEDURE.try_to_undefine_aux*/
/*No:DEFERRED_PROCEDURE.make*/
/*No:DEFERRED_PROCEDURE.nb_errors*/
void r853make_routine(T853* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r853make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void r853set_header_comment(T853* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r853start_position(T853* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r853to_run_feature(T853* C,T0* a1,T0* a2){
T0* R=NULL;
r853check_obsolete(C);
{T904*n=malloc(sizeof(*n));
*n=M904;
r904make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:DEFERRED_PROCEDURE.ensure_assertion*/
/*No:DEFERRED_PROCEDURE.code_require*/
/*No:DEFERRED_PROCEDURE.result_type*/
/*No:DEFERRED_PROCEDURE.fz_03*/
/*No:DEFERRED_PROCEDURE.em1*/
/*No:DEFERRED_PROCEDURE.obsolete_mark*/
/*No:DEFERRED_PROCEDURE.em2*/
/*No:DEFERRED_PROCEDURE.set_clients*/
/*No:DEFERRED_PROCEDURE.names*/
/*No:DEFERRED_PROCEDURE.require_assertion*/
void r853from_effective(T853* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
{T953*n=malloc(sizeof(*n));
*n=M953;
r953make(n,se_ma855(1,a1));
C->_names=(T0*)n;
}
r853make_routine(C,(((T853*)C))->_names/*8*/,a2,NULL,NULL,a3);
/*[IRF3.3set_ensure_assertion*/((((T853*)(C)))->_ensure_assertion)=(a4);
/*]*/
C->_base_class=a5;
}
void r853set_rescue_compound(T853* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
r853error(r853start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
int r853can_hide(T853* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T853*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T853*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T853*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T853*)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*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T853*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r853start_position(C));
/*[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*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:DEFERRED_PROCEDURE.header_comment*/
int r853is_merge_with(T853* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T853*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T853*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T853*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T853*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T853*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r853error(r853start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:DEFERRED_PROCEDURE.fz_dot*/
/*No:DEFERRED_PROCEDURE.set_ensure_assertion*/
/*No:DEFERRED_PROCEDURE.first_name*/
/*No:DEFERRED_PROCEDURE.clients*/
void r853collect_for(T853* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T853*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T853*)C))->_require_assertion/*32*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T853*)C))->_require_assertion/*32*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T853*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T853*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T853*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r853error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:DEFERRED_PROCEDURE.base_class*/
void r853make_e_feature(T853* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r853check_obsolete(T853* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T853*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T853*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r853warning(r853start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r853warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
void r782add_index_value(T782* C,T0* a1){
/*IF*/if (((((T782*)C))->_list/*4*/)==((void*)(NULL))) {
C->_list=se_ma96(1,a1);
}
else {
X96add_last((((T782*)C))->_list/*4*/,a1);
}
/*FI*/}
/*No:INDEX_CLAUSE.make*/
/*No:INDEX_CLAUSE.list*/
/*No:INDEX_CLAUSE.index*/
/*No:RUN_FEATURE_1.arguments*/
/*No:RUN_FEATURE_1.actuals_clients*/
void r808make(T808* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r808run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r808initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_1.name*/
int r808arg_count(T808* C){
int R=0;
/*IF*/if (((((T808*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T808*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_1.local_vars*/
/*No:RUN_FEATURE_1.base_feature*/
T0* r808start_position(T808* C){
T0* R=NULL;
R=X418start_position((((T808*)C))->_base_feature/*40*/);
return R;
}
/*No:RUN_FEATURE_1.ensure_assertion*/
int r808is_exported_in(T808* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r808clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_1.result_type*/
void r808add_client(T808* C,T0* a1){
int _i=0;
/*IF*/if (((((T808*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T808*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T808*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r808run_class(C))),a1);
}
/*No:RUN_FEATURE_1.require_assertion*/
/*No:RUN_FEATURE_1.value*/
/*No:RUN_FEATURE_1.use_current_state*/
/*No:RUN_FEATURE_1.current_type*/
T0* r808run_class(T808* C){
T0* R=NULL;
R=X291run_class((((T808*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_1.ucs_not_computed*/
T0* r808clients(T808* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T808*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T808*)C))->_current_type/*4*/);
_bfbc=/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*40*/))))->_base_class/*4*/);
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*40*/))))->_clients/*20*/);
}
else {
R=r605clients_for(((T605*)_bc),(((T808*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T808*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_1.clients_memory*/
void r808initialize(T808* C){
int _i=0;
_i=r953index_of(((T953*)(/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*40*/))))->_names/*8*/))),(((T808*)C))->_name/*16*/);
C->_value=X418value((((T808*)C))->_base_feature/*40*/,_i);
C->_value=X662to_runnable((((T808*)C))->_value/*44*/,(((T808*)C))->_current_type/*4*/);
C->_result_type=X291to_runnable(/*X418*/((T0*)(((T380*)((T380*)((((T808*)C))->_base_feature/*40*/))))->_result_type/*12*/),(((T808*)C))->_current_type/*4*/);
}
void r881short(T881* C){
int _i=0;
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_881),((T0*)ms4_881));
_i=1;
while (!((_i)>((((T681*)((T681*)((((T881*)C))->_list/*4*/))))->_upper/*8*/))) {
r33short(((T33*)(r681item(((T681*)((((T881*)C))->_list/*4*/)),_i))));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T681*)((T681*)((((T881*)C))->_list/*4*/))))->_upper/*8*/)) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_881),((T0*)ms6_881));
}
/*FI*/}
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms7_881),((T0*)ms8_881));
}
void r881make(T881* C,T0* a1,T0* a2){
T0* _fga=NULL;
int _i=0;
int _rank=0;
C->_start_position=a1;
C->_list=a2;
_i=(((T681*)((T681*)a2)))->_upper/*8*/;
while (!((_i)==(0))) {
_fga=r681item(((T681*)a2),_i);
_rank=r881index_of(C,(((T33*)((T33*)_fga)))->_name/*0*/);
/*IF*/if ((_rank)!=(_i)) {
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T33*)((T33*)(r681item(((T681*)a2),_rank)))))->_name/*0*/))))->_start_position/*4*//*)*/);
r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T33*)((T33*)_fga)))->_name/*0*/))))->_start_position/*4*//*)*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_881);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/_i=(_i)-(1);
}
}
/*No:FORMAL_GENERIC_LIST.start_position*/
/*No:FORMAL_GENERIC_LIST.item*/
/*No:FORMAL_GENERIC_LIST.list*/
/*No:FORMAL_GENERIC_LIST.count*/
/*No:FORMAL_GENERIC_LIST.fatal_error*/
int r881index_of(T881* C,T0* a1){
int R=0;
T0* _to_string=NULL;
_to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
R=(((T681*)((T681*)((((T881*)C))->_list/*4*/))))->_upper/*8*/;
while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)((((T33*)((T33*)(r681item(((T681*)((((T881*)C))->_list/*4*/)),R)))))->_name/*0*/))))->_to_string/*0*/))))) {
R=(R)-(1);
}
return R;
}
/*No:CST_ATT_BOOLEAN.arguments*/
T0* r593try_to_undefine(T593* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r593try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T593*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_BOOLEAN.is_deferred*/
void r593add_into(T593* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T593*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T593*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T593*)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*)((((T593*)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* r593try_to_undefine_aux(T593* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r593start_position(C));
r593error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r593make(T593* C,T0* a1,T0* a2,T0* a3){
r593make_e_feature(C,a1,a2);
C->_value_mem=a3;
}
/*No:CST_ATT_BOOLEAN.nb_errors*/
/*No:CST_ATT_BOOLEAN.set_header_comment*/
T0* r593start_position(T593* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T593*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r593to_run_feature(T593* 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_BOOLEAN.ensure_assertion*/
/*No:CST_ATT_BOOLEAN.code_require*/
/*No:CST_ATT_BOOLEAN.result_type*/
/*No:CST_ATT_BOOLEAN.em1*/
/*No:CST_ATT_BOOLEAN.set_clients*/
/*No:CST_ATT_BOOLEAN.em2*/
/*No:CST_ATT_BOOLEAN.value*/
/*No:CST_ATT_BOOLEAN.require_assertion*/
/*No:CST_ATT_BOOLEAN.names*/
/*No:CST_ATT_BOOLEAN.value_mem*/
int r593can_hide(T593* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T593*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T593*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r593error(r593start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r593error(r593start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T593*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T593*)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_BOOLEAN.header_comment*/
int r593is_merge_with(T593* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T593*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T593*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r593error(r593start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r593error(r593start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T593*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T593*)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_BOOLEAN.fz_dot*/
/*No:CST_ATT_BOOLEAN.first_name*/
/*No:CST_ATT_BOOLEAN.clients*/
void r593collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r593error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_BOOLEAN.base_class*/
void r593make_e_feature(T593* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}

