/*
-- 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"
T0* r715add_comment(T715* 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 r715to_integer(T715* C){
int R=0;
r715error((((T715*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
int r715is_a(T715* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T715*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T715*)C))->_start_position/*12*/);
r715error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_RESULT.is_current*/
void r715make(T715* C,T0* a1){
C->_to_string=((T0*)ms146_473);
C->_start_position=a1;
}
/*No:E_RESULT.print_as_target*/
/*No:E_RESULT.to_string*/
/*No:E_RESULT.fz_iinaiv*/
/*No:E_RESULT.start_position*/
/*No:E_RESULT.precedence*/
T0* r715to_runnable(T715* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T715*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)(r604top_rf(((T604*)(oBC364small_eiffel)))))))->_result_type/*24*/);
R=(T0*)C;
}
else {
{T715*n=malloc(sizeof(*n));
*n=M715;
r715make(n,(((T715*)C))->_start_position/*12*/);
R=(T0*)n;
}
R=r715to_runnable(((T715*)R),a1);
}
/*FI*/return R;
}
/*No:E_RESULT.bracketed_pretty_print*/
/*No:E_RESULT.result_type*/
/*No:E_RESULT.atomic_precedence*/
/*No:E_RESULT.pretty_print*/
/*No:E_RESULT.us_result*/
/*No:E_RESULT.current_type*/
/*No:E_RESULT.is_manifest_string*/
/*No:E_RESULT.is_void*/
void r715error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CREATION_CLAUSE_LIST.make*/
T0* r378start_position(T378* C){
T0* R=NULL;
R=(((T583*)((T583*)(r235first(((T235*)((((T378*)C))->_list/*0*/)))))))->_start_position/*0*/;
return R;
}
void r378check_expanded_with(T378* C,T0* a1){
/*IF*/if (((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)>(1)) {
r683add_type(a1,((T0*)ms65_470));
r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1)))))->_start_position/*0*/);
r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),2)))))->_start_position/*0*/);
/*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
/*]*/
}
/*FI*/r583check_expanded_with(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
}
T0* r378get_clause(T378* C,T0* a1){
T0* R=NULL;
int _i=0;
_i=1;
while (!(((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))||(r583has(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))),a1)))) {
_i=(_i)+(1);
}
/*IF*/if ((_i)<=((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)) {
R=r235item(((T235*)((((T378*)C))->_list/*0*/)),_i);
}
/*FI*/return R;
}
void r378pretty_print(T378* C){
int _i=0;
_i=1;
while (!((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))) {
r583pretty_print(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))));
/*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
/*]*/
r238skip(((T238*)(oBC364fmt)),1);
}
/*FI*/_i=(_i)+(1);
}
}
/*No:CREATION_CLAUSE_LIST.list*/
T0* r378expanded_initializer(T378* C,T0* a1){
T0* R=NULL;
R=r583expanded_initializer(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
return R;
}
/*No:CREATION_CLAUSE_LIST.fz_cbe*/
/*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
/*No:CREATION_CLAUSE_LIST.add_last*/
/*No:CREATION_CLAUSE_LIST.fatal_error*/
/*No:RUN_REQUIRE.make*/
/*No:RUN_REQUIRE.list*/
/*No:CALL_INFIX_AND.arguments*/
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;
}
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);
}
void r313print_as_target(T313* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r313pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*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;
}
void r313bracketed_pretty_print(T313* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r313pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*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*/
void r313pretty_print(T313* C){
/*IF*/if ((X662precedence((((T313*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T313*)C))->_target/*8*/);
r313print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((5)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T313*)C))->_target/*8*/))>=(5)) {
X662bracketed_pretty_print((((T313*)C))->_target/*8*/);
}
else {
X662pretty_print((((T313*)C))->_target/*8*/);
}
/*FI*/r313print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((5)<=(X662precedence((((T313*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T313*)C))->_target/*8*/);
r313print_op(C);
/*IF*/if ((5)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T313*)C))->_target/*8*/);
r313print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T313*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r313print_op(T313* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T313*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*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*/
/*No:CALL_INFIX_AND.arg1*/
/*No:CALL_INFIX_GT.arguments*/
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;
}
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);
}
void r57print_as_target(T57* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r57pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*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;
}
void r57bracketed_pretty_print(T57* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r57pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*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*/
void r57pretty_print(T57* C){
/*IF*/if ((X662precedence((((T57*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T57*)C))->_target/*8*/);
r57print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T57*)C))->_target/*8*/))>=(6)) {
X662bracketed_pretty_print((((T57*)C))->_target/*8*/);
}
else {
X662pretty_print((((T57*)C))->_target/*8*/);
}
/*FI*/r57print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)<=(X662precedence((((T57*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T57*)C))->_target/*8*/);
r57print_op(C);
/*IF*/if ((6)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T57*)C))->_target/*8*/);
r57print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T57*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r57print_op(T57* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T57*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*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*/
/*No:CALL_INFIX_GT.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*/
/*No:WRITABLE_ATTRIBUTE.pretty_tail*/
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*/
void r106pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*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*/
void r106pretty_print(T106* C){
r106pretty_print_profile(C);
/*[IRF3.1pretty_tail*//*]*/
r238put_character(((T238*)(oBC364fmt)),'\73');
/*IF*/if (((((T106*)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*)((((T106*)C))->_header_comment/*16*/)));
}
/*FI*/}
/*No:WRITABLE_ATTRIBUTE.set_clients*/
/*No:WRITABLE_ATTRIBUTE.em2*/
/*No:WRITABLE_ATTRIBUTE.require_assertion*/
/*No:WRITABLE_ATTRIBUTE.names*/
void r106pretty_print_profile(T106* C){
r106pretty_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 (((((T106*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T106*)C))->_result_type/*12*/);
}
/*FI*/}
void r106pretty_print_names(T106* C){
int _i=0;
_i=1;
r106pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r106pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T106*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
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:WRITABLE_ATTRIBUTE.pretty_print_arguments*/
/*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 {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(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;
}
void r268pretty_print(T268* C){
X662print_as_target((((T268*)C))->_target/*8*/);
r238put_string(((T238*)(oBC364fmt)),X776to_string((((T268*)C))->_feature_name/*12*/));
/*IF*/if ((((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/) {
r238put_character(((T238*)(oBC364fmt)),'\73');
}
/*FI*/}
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;
}
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;
}
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);
}
void r39print_as_target(T39* C){
r238put_string(((T238*)(oBC364fmt)),(((T39*)C))->_to_string/*8*/);
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*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.bracketed_pretty_print*/
/*No:LOCAL_NAME1.rank*/
/*No:LOCAL_NAME1.result_type*/
/*No:LOCAL_NAME1.atomic_precedence*/
/*No:LOCAL_NAME1.pretty_print*/
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 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 r853pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
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*/
void r853pretty_print(T853* C){
T0* _fn=NULL;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r853pretty_print_profile(C);
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
/*IF*/if (((((T853*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
r805pretty_print(((T805*)((((T853*)C))->_obsolete_mark/*28*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (((((T853*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T853*)C))->_header_comment/*16*/)));
}
/*FI*//*IF*/if (((((T853*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r343pretty_print(((T343*)((((T853*)C))->_require_assertion/*32*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*[IRF3.2pretty_print_routine_body*/r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_249));
/*]*/
/*IF*/if (((((T853*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r633pretty_print(((T633*)((((T853*)C))->_ensure_assertion/*36*/)));
}
/*FI*//*IF*/if (((((T853*)C))->_rescue_compound/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
r592pretty_print(((T592*)((((T853*)C))->_rescue_compound/*40*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
/*IF*/if ((((((T853*)C))->_end_comment/*44*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T853*)C))->_end_comment/*44*/)))))) {
r393pretty_print(((T393*)((((T853*)C))->_end_comment/*44*/)));
}
 else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
_fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
X776definition_pretty_print(_fn);
}
/*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
}
/*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;
}
void r853pretty_print_profile(T853* C){
r853pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r853pretty_print_arguments(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T853*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T853*)C))->_result_type/*12*/);
}
/*FI*/}
void r853pretty_print_names(T853* C){
int _i=0;
_i=1;
r853pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r853pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T853*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
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 r853pretty_print_arguments(T853* C){
/*IF*/if (((((T853*)C))->_arguments/*24*/)!=((void*)(NULL))) {
r31pretty_print(((T31*)((((T853*)C))->_arguments/*24*/)));
}
/*FI*/}
/*No:DEFERRED_PROCEDURE.pretty_print_routine_body*/
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*/
void r782pretty_print(T782* C){
int _i=0;
/*IF*/if (((((T782*)C))->_index/*0*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),(((T782*)C))->_index/*0*/);
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_782));
}
/*FI*//*IF*/if (((((T782*)C))->_list/*4*/)!=((void*)(NULL))) {
r238level_incr(((T238*)(oBC364fmt)));
_i=/*X96*/((int)(((T96*)((T96*)((((T782*)C))->_list/*4*/))))->_lower/*16*/);
while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T782*)C))->_list/*4*/))))->_upper/*12*/)))) {
X662pretty_print(/*X96*/((T0*)r96item(((T96*)((((T782*)C))->_list/*4*/)),_i)));
_i=(_i)+(1);
/*IF*/if ((_i)<=(/*X96*/((int)(((T96*)((T96*)((((T782*)C))->_list/*4*/))))->_upper/*12*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_782));
}
/*FI*/}
r238level_decr(((T238*)(oBC364fmt)));
}
/*FI*/}
/*No:INDEX_CLAUSE.list*/
/*No:INDEX_CLAUSE.index*/

