/*
-- 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* r796add_comment(T796* 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 r796to_integer(T796* C){
int R=0;
r796error((((T796*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
int r796is_a(T796* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T284*)r796result_type()))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T796*)C))->_start_position/*12*/);
r796error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_VOID.is_current*/
void r796make(T796* C,T0* a1){
C->_start_position=a1;
C->_to_string=((T0*)ms147_473);
}
/*No:E_VOID.print_as_target*/
/*No:E_VOID.to_string*/
/*No:E_VOID.fz_iinaiv*/
/*No:E_VOID.start_position*/
/*No:E_VOID.precedence*/
T0* r796to_runnable(T796* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T796*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r796twin(C);
/*[IRF3.3set_current_type*/((((T796*)(((T796*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:E_VOID.bracketed_pretty_print*/
int fBC796result_type=0;
T0*oBC796result_type=NULL;
T0* r796result_type(void){
if (fBC796result_type==0){
T0* R=NULL;
fBC796result_type=1;
{T284*n=malloc(sizeof(*n));
*n=M284;
r284make(n,NULL);
R=(T0*)n;
}
oBC796result_type=R;}
return oBC796result_type;}
T0* r796twin(T796* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T796*)R)=*C;
return R;
}
/*No:E_VOID.set_current_type*/
/*No:E_VOID.atomic_precedence*/
/*No:E_VOID.pretty_print*/
/*No:E_VOID.current_type*/
/*No:E_VOID.is_manifest_string*/
/*No:E_VOID.is_void*/
/*No:E_VOID.us_void*/
void r796error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_VOID.fatal_error*/
void r404check_creation_clause(T404* C,T0* a1){
T0* _args=NULL;
T0* _top=NULL;
T0* _bottom=NULL;
T0* _fn=NULL;
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
/*IF*/if (X291is_like_current(a1)) {
_top=r627base_class(((T627*)(X776start_position(_fn))));
_bottom=X291base_class(a1);
_fn=r605new_name_of(((T605*)_bottom),_top,_fn);
/*IF*/if ((_fn)==((void*)(NULL))) {
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*FI*/C->_run_feature=r368get_feature(((T368*)(X291run_class(a1))),_fn);
/*IF*/if (((((T404*)C))->_run_feature/*16*/)==((void*)(NULL))) {
r404cp_not_found(C,_fn);
}
/*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if (!(X291has_creation(a1,_fn))) {
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/X496add_client((((T404*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T404*)C))->_run_compound/*4*/))));
/*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T404*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
r683add_position(X776start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (((r404arg_count(C))==(0))&&((/*X496*/((T0*)(((T808*)((T808*)((((T404*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
r683add_position((((T404*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if ((r404arg_count(C))>(0)) {
_args=r431to_runnable(((T431*)(X173arguments((((T404*)C))->_call/*20*/))),r404current_type(C));
/*IF*/if ((_args)==((void*)(NULL))) {
r404error(r431start_position(((T431*)(X173arguments((((T404*)C))->_call/*20*/)))),((T0*)ms56_470));
}
else {
r431match_with(((T431*)_args),(((T404*)C))->_run_feature/*16*/);
}
/*FI*/}
/*FI*/C->_call=X173make_runnable((((T404*)C))->_call/*20*/,(((T404*)C))->_run_compound/*4*/,(((T404*)C))->_writable/*12*/,_args,(((T404*)C))->_run_feature/*16*/);
}
T0* r404add_comment(T404* 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 r404check_created_type(T404* C,T0* a1){
T0* _rt=NULL;
_rt=X291run_type(a1);
/*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
r683add_type(_rt,((T0*)ms2_747));
r683add_position((((T404*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (X291is_formal_generic(a1)) {
r683add_position((((T404*)C))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms5_747));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/r368set_at_run_time(((T368*)(X291run_class(_rt))));
}
void r404cp_not_found(T404* C,T0* a1){
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*No:CREATION_CALL_4.writable*/
/*No:CREATION_CALL_4.fz_bad_arguments*/
void r404make(T404* C,T0* a1,T0* a2,T0* a3,T0* a4){
C->_start_position=a1;
C->_type=a2;
C->_writable=a3;
C->_call=a4;
}
/*No:CREATION_CALL_4.type*/
int r404arg_count(T404* C){
int R=0;
/*IF*/if (((((T404*)C))->_call/*20*/)!=((void*)(NULL))) {
R=X173arg_count((((T404*)C))->_call/*20*/);
}
/*FI*/return R;
}
/*No:CREATION_CALL_4.call*/
/*No:CREATION_CALL_4.run_feature*/
/*No:CREATION_CALL_4.start_position*/
T0* r404to_runnable(T404* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T404*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r404check_writable(C,a1);
r404check_explicit_type(C);
r404check_created_type(C,(((T404*)C))->_type/*24*/);
r404check_creation_clause(C,(((T404*)C))->_type/*24*/);
R=(T0*)C;
}
else {
{T404*n=malloc(sizeof(*n));
*n=M404;
r404make(n,(((T404*)C))->_start_position/*8*/,(((T404*)C))->_type/*24*/,(((T404*)C))->_writable/*12*/,(((T404*)C))->_call/*20*/);
R=(T0*)n;
}
R=r404to_runnable(((T404*)R),a1);
}
/*FI*/return R;
}
/*No:CREATION_CALL_4.fz_03*/
void r404pretty_print(T404* C){
r238put_character(((T238*)(oBC364fmt)),'\41');
X291pretty_print((((T404*)C))->_type/*24*/);
r238put_character(((T238*)(oBC364fmt)),'\41');
X173pretty_print((((T404*)C))->_call/*20*/);
}
T0* r404current_type(T404* C){
T0* R=NULL;
/*IF*/if (((((T404*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T404*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:CREATION_CALL_4.fz_09*/
/*No:CREATION_CALL_4.run_compound*/
void r404check_explicit_type(T404* C){
T0* _t=NULL;
_t=X291to_runnable((((T404*)C))->_type/*24*/,r404current_type(C));
/*IF*/if (((_t)==((void*)(NULL)))||(!(X291is_run_type(_t)))) {
r683add_position(X291start_position((((T404*)C))->_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_432);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_type=_t;
}
/*FI*//*IF*/if (!(X291is_a((((T404*)C))->_type/*24*/,X662result_type((((T404*)C))->_writable/*12*/)))) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_432);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*No:CREATION_CALL_4.fz_dot*/
void r404check_writable(T404* C,T0* a1){
T0* _w=NULL;
C->_run_compound=a1;
_w=X662to_runnable((((T404*)C))->_writable/*12*/,r404current_type(C));
/*IF*/if ((_w)==((void*)(NULL))) {
r683add_position(X662start_position((((T404*)C))->_writable/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_writable=_w;
}
/*FI*/}
void r404error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CREATION_CALL_4.fatal_error*/
/*No:CREATION_CALL_4.end_mark_comment*/
/*No:CALL_INFIX_INT_REM.arguments*/
T0* r453add_comment(T453* 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 r453to_integer(T453* C){
int R=0;
r453error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r453is_a(T453* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T453*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r453error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
T576 oBC364switch_collection=0;
/*No:CALL_INFIX_INT_REM.is_current*/
void r453make(T453* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms1_453),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;
}
r453make_call_1(C,a1,(((T453*)C))->_feature_name/*24*/,_eal);
}
void r453print_as_target(T453* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r453pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_INT_REM.nb_errors*/
/*No:CALL_INFIX_INT_REM.feature_name*/
/*No:CALL_INFIX_INT_REM.fz_iinaiv*/
/*No:CALL_INFIX_INT_REM.run_feature*/
/*No:CALL_INFIX_INT_REM.start_position*/
/*No:CALL_INFIX_INT_REM.target*/
/*No:CALL_INFIX_INT_REM.precedence*/
T0* r453to_runnable(T453* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T453*)C))->_current_type/*4*/)==((void*)(NULL))) {
r453to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T453*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r453error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)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*)((((T453*)C))->_arguments/*20*/)),(((T453*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T453*)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*)((((T453*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r453twin(C);
/*[IRF3.3set_current_type*/((((T453*)(((T453*)R))))->_current_type)=(NULL);
/*]*/
R=r453to_runnable(((T453*)R),a1);
}
/*FI*/return R;
}
void r453bracketed_pretty_print(T453* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r453pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_INT_REM.result_type*/
T0* r453twin(T453* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T453*)R)=*C;
return R;
}
/*No:CALL_INFIX_INT_REM.set_current_type*/
/*No:CALL_INFIX_INT_REM.operator*/
/*No:CALL_INFIX_INT_REM.atomic_precedence*/
void r453pretty_print(T453* C){
/*IF*/if ((X662precedence((((T453*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T453*)C))->_target/*8*/);
r453print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T453*)C))->_target/*8*/))>=(8)) {
X662bracketed_pretty_print((((T453*)C))->_target/*8*/);
}
else {
X662pretty_print((((T453*)C))->_target/*8*/);
}
/*FI*/r453print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((8)<=(X662precedence((((T453*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T453*)C))->_target/*8*/);
r453print_op(C);
/*IF*/if ((8)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T453*)C))->_target/*8*/);
r453print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r453print_op(T453* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T453*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_INT_REM.current_type*/
void r453make_call_1(T453* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_INT_REM.is_manifest_string*/
/*No:CALL_INFIX_INT_REM.is_void*/
void r453to_runnable_0(T453* C,T0* a1){
C->_current_type=a1;
r453cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T453*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T453*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T453*)C))->_run_feature/*12*/));
r453error((((T454*)((T454*)((((T453*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T453*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T453*)C))->_target/*8*/);
}
/*FI*/}
void r453cpc_to_runnable(T453* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T453*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T453*)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((((T453*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T453*)C))->_target/*8*/,(((T453*)C))->_run_feature/*12*/);
}
void r453error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_INT_REM.fatal_error*/
/*No:CALL_INFIX_INT_REM.fz_bad_argument*/
/*No:CALL_INFIX_INT_REM.arg1*/
/*No:ASSERTION.fz_is_not_boolean*/
/*No:ASSERTION.fz_bad_assertion*/
void r348make(T348* C,T0* a1,T0* a2,T0* a3){
C->_tag=a1;
C->_expression=a2;
C->_comment=a3;
}
/*No:ASSERTION.expression*/
T0* r348start_position(T348* C){
T0* R=NULL;
/*IF*/if (((((T348*)C))->_tag/*0*/)!=((void*)(NULL))) {
R=(((T490*)((T490*)((((T348*)C))->_tag/*0*/))))->_start_position/*4*/;
}
 else if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
R=X662start_position((((T348*)C))->_expression/*4*/);
}
else {
R=(((T393*)((T393*)((((T348*)C))->_comment/*8*/))))->_start_position/*0*/;
}
/*FI*/return R;
}
/*No:ASSERTION.comment*/
T0* r348to_runnable(T348* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T348*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
/*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
_e=X662to_runnable((((T348*)C))->_expression/*4*/,a1);
/*IF*/if ((_e)==((void*)(NULL))) {
r348error(r348start_position(C),((T0*)ms57_470));
}
else {
C->_expression=_e;
/*IF*/if (!(X291is_boolean(X662result_type((((T348*)C))->_expression/*4*/)))) {
r683add_type(X662result_type((((T348*)C))->_expression/*4*/),((T0*)ms73_470));
r348error(r348start_position(C),((T0*)ms57_470));
}
/*FI*/}
/*FI*/}
/*FI*/}
else {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,(((T348*)C))->_tag/*0*/,(((T348*)C))->_expression/*4*/,(((T348*)C))->_comment/*8*/);
R=(T0*)n;
}
R=r348to_runnable(((T348*)R),a1);
}
/*FI*/return R;
}
/*No:ASSERTION.tag*/
void r348pretty_print(T348* C){
/*IF*/if (((((T348*)C))->_tag/*0*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),(((T490*)((T490*)((((T348*)C))->_tag/*0*/))))->_to_string/*0*/);
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_348));
}
/*FI*//*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
X662pretty_print((((T348*)C))->_expression/*4*/);
/*IF*/if ((((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_348));
}
/*FI*/}
/*FI*//*IF*/if (((((T348*)C))->_comment/*8*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T348*)C))->_comment/*8*/)));
}
/*FI*/}
/*No:ASSERTION.current_type*/
void r348error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:WHEN_ITEM_2.lower_value*/
/*No:WHEN_ITEM_2.upper_value*/
T0* r372to_runnable_integer(T372* C,T0* a1){
T0* R=NULL;
T0* _v=NULL;
/*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
C->_lower=_v;
C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
}
else {
r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms60_470));
}
/*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
C->_upper=_v;
C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
}
else {
r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms60_470));
}
/*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
R=(T0*)C;
}
else {
{T372*n=malloc(sizeof(*n));
*n=M372;
r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
R=(T0*)n;
}
R=r372to_runnable_integer(((T372*)R),a1);
}
/*FI*/return R;
}
void r372make(T372* C,T0* a1,T0* a2){
C->_lower=a1;
C->_upper=a2;
}
T0* r372start_position(T372* C){
T0* R=NULL;
R=X662start_position((((T372*)C))->_lower/*12*/);
return R;
}
/*No:WHEN_ITEM_2.clear_e_when*/
/*No:WHEN_ITEM_2.fz_bcv*/
T0* r372twin(T372* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T372*)R)=*C;
return R;
}
void r372pretty_print(T372* C){
X662pretty_print((((T372*)C))->_lower/*12*/);
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_372));
X662pretty_print((((T372*)C))->_upper/*8*/);
}
/*No:WHEN_ITEM_2.current_type*/
/*No:WHEN_ITEM_2.fz_biv*/
/*No:WHEN_ITEM_2.lower*/
/*No:WHEN_ITEM_2.upper*/
void r372error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r372to_runnable_character(T372* C,T0* a1){
T0* R=NULL;
T0* _v=NULL;
/*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
C->_lower=_v;
C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
}
else {
r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms58_470));
}
/*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
C->_upper=_v;
C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
}
else {
r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms58_470));
}
/*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
R=(T0*)C;
}
else {
{T372*n=malloc(sizeof(*n));
*n=M372;
r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
R=(T0*)n;
}
R=r372to_runnable_character(((T372*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_ITEM_2.e_when*/
void r153add_into(T153* C,T0* a1){
T0* _f=NULL;
int _i=0;
/*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=0;
while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
_f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/;
X359set_clients(_f,(((T153*)C))->_clients/*0*/);
X359add_into(_f,a1);
_i=(_i)+(1);
}
}
/*FI*/}
void r153make(T153* C,T0* a1,T0* a2,T0* a3){
C->_clients=a1;
C->_comment=a2;
C->_list=a3;
}
/*No:FEATURE_CLAUSE.fz_feature*/
/*No:FEATURE_CLAUSE.comment*/
void r153pretty_print(T153* C){
int _i=0;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
/*]*/
/*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
r238skip(((T238*)(oBC364fmt)),1);
}
else {
r238indent(((T238*)(oBC364fmt)));
}
/*FI*/r238keyword(((T238*)(oBC364fmt)),((T0*)ms18_470));
r636pretty_print(((T636*)((((T153*)C))->_clients/*0*/)));
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
/*]*/
/*IF*/if (((((T153*)C))->_comment/*4*/)!=((void*)(NULL))) {
/*IF*/if (r238zen_mode(((T238*)(oBC364fmt)))) {
}
 else if (((((T238*)((T238*)(oBC364fmt))))->_column/*8*/)>(15)) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
/*]*/
}
/*FI*/r393pretty_print(((T393*)((((T153*)C))->_comment/*4*/)));
/*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
r238skip(((T238*)(oBC364fmt)),1);
}
/*FI*/}
/*FI*//*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=0;
while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
r238skip(((T238*)(oBC364fmt)),1);
}
/*FI*/X359pretty_print(/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
/*]*/
/*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
r238skip(((T238*)(oBC364fmt)),1);
}
/*FI*/}
/*No:FEATURE_CLAUSE.list*/
/*No:FEATURE_CLAUSE.clients*/
/*No:CALL_INFIX_INT_DIV.arguments*/
T0* r460add_comment(T460* 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 r460to_integer(T460* C){
int R=0;
r460error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r460is_a(T460* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T460*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r460error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_INT_DIV.is_current*/
void r460make(T460* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms1_460),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;
}
r460make_call_1(C,a1,(((T460*)C))->_feature_name/*24*/,_eal);
}
void r460print_as_target(T460* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r460pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_INT_DIV.nb_errors*/
/*No:CALL_INFIX_INT_DIV.feature_name*/
/*No:CALL_INFIX_INT_DIV.fz_iinaiv*/
/*No:CALL_INFIX_INT_DIV.run_feature*/
/*No:CALL_INFIX_INT_DIV.start_position*/
/*No:CALL_INFIX_INT_DIV.target*/
/*No:CALL_INFIX_INT_DIV.precedence*/
T0* r460to_runnable(T460* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T460*)C))->_current_type/*4*/)==((void*)(NULL))) {
r460to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T460*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r460error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)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*)((((T460*)C))->_arguments/*20*/)),(((T460*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T460*)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*)((((T460*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r460twin(C);
/*[IRF3.3set_current_type*/((((T460*)(((T460*)R))))->_current_type)=(NULL);
/*]*/
R=r460to_runnable(((T460*)R),a1);
}
/*FI*/return R;
}
void r460bracketed_pretty_print(T460* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r460pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_INT_DIV.result_type*/
T0* r460twin(T460* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T460*)R)=*C;
return R;
}
/*No:CALL_INFIX_INT_DIV.set_current_type*/
/*No:CALL_INFIX_INT_DIV.operator*/
/*No:CALL_INFIX_INT_DIV.atomic_precedence*/
void r460pretty_print(T460* C){
/*IF*/if ((X662precedence((((T460*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T460*)C))->_target/*8*/);
r460print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T460*)C))->_target/*8*/))>=(8)) {
X662bracketed_pretty_print((((T460*)C))->_target/*8*/);
}
else {
X662pretty_print((((T460*)C))->_target/*8*/);
}
/*FI*/r460print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((8)<=(X662precedence((((T460*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T460*)C))->_target/*8*/);
r460print_op(C);
/*IF*/if ((8)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T460*)C))->_target/*8*/);
r460print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r460print_op(T460* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T460*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_INT_DIV.current_type*/
void r460make_call_1(T460* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_INT_DIV.is_manifest_string*/
/*No:CALL_INFIX_INT_DIV.is_void*/
void r460to_runnable_0(T460* C,T0* a1){
C->_current_type=a1;
r460cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T460*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T460*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T460*)C))->_run_feature/*12*/));
r460error((((T454*)((T454*)((((T460*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T460*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T460*)C))->_target/*8*/);
}
/*FI*/}
void r460cpc_to_runnable(T460* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T460*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T460*)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((((T460*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T460*)C))->_target/*8*/,(((T460*)C))->_run_feature/*12*/);
}
void r460error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_INT_DIV.fatal_error*/
/*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
/*No:CALL_INFIX_INT_DIV.arg1*/
T0* r180add_comment(T180* 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 r180to_integer(T180* C){
int R=0;
T0* _rf1=NULL;
_rf1=(((T180*)C))->_run_feature/*12*/;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 808: 
break;
default:
_rf1=NULL;
};/*IF*/if ((_rf1)==((void*)(NULL))) {
r180error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
}
else {
R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*36*/);
}
/*FI*/return R;
}
int r180is_a(T180* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T180*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
r180error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_PREFIX_NOT.is_current*/
void r180make(T180* C,T0* a1,T0* a2){
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,r180operator(),a1);
C->_feature_name=(T0*)n;
}
r180make_call0(C,a2,(((T180*)C))->_feature_name/*20*/);
}
void r180print_as_target(T180* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r180pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_PREFIX_NOT.nb_errors*/
/*No:CALL_PREFIX_NOT.feature_name*/
/*No:CALL_PREFIX_NOT.fz_iinaiv*/
/*No:CALL_PREFIX_NOT.run_feature*/
/*No:CALL_PREFIX_NOT.start_position*/
/*No:CALL_PREFIX_NOT.target*/
/*No:CALL_PREFIX_NOT.precedence*/
T0* r180to_runnable(T180* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T180*)C))->_current_type/*4*/)==((void*)(NULL))) {
r180to_runnable_0(C,a1);
/*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T180*)C))->_run_feature/*12*/))>(0))) {
r683add_position((((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*/);
r180error(X496start_position((((T180*)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=r180twin(C);
/*[IRF3.3set_current_type*/((((T180*)(((T180*)R))))->_current_type)=(NULL);
/*]*/
R=r180to_runnable(((T180*)R),a1);
}
/*FI*/return R;
}
void r180bracketed_pretty_print(T180* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r180pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_PREFIX_NOT.result_type*/
T0* r180twin(T180* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T180*)R)=*C;
return R;
}
/*No:CALL_PREFIX_NOT.set_current_type*/
T0* r180operator(void){
T0* R=NULL;
R=((T0*)ms40_473);
return R;
}
void r180pretty_print(T180* C){
/*[IRF3.6pretty_print*/{T406* C1=((T406*)((((T180*)C))->_feature_name/*20*/));
r238put_string(((T238*)(oBC364fmt)),(((T406*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
/*IF*/if ((X662precedence((((T180*)C))->_target/*8*/))<(11)) {
r238put_character(((T238*)(oBC364fmt)),'\50');
X662pretty_print((((T180*)C))->_target/*8*/);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
else {
X662pretty_print((((T180*)C))->_target/*8*/);
}
/*FI*/}
/*No:CALL_PREFIX_NOT.current_type*/
/*No:CALL_PREFIX_NOT.is_manifest_string*/
/*No:CALL_PREFIX_NOT.is_void*/
void r180to_runnable_0(T180* C,T0* a1){
C->_current_type=a1;
r180cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T180*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T180*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T180*)C))->_run_feature/*12*/));
r180error((((T406*)((T406*)((((T180*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T180*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T180*)C))->_target/*8*/);
}
/*FI*/}
void r180cpc_to_runnable(T180* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T180*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T180*)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((((T180*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T180*)C))->_target/*8*/,(((T180*)C))->_run_feature/*12*/);
}
/*No:CALL_PREFIX_NOT.us_not*/
void r180make_call0(T180* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
void r180error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_PREFIX_NOT.fatal_error*/
void r158make(T158* C,T0* a1,T0* a2,T0* a3){
C->_comment=a3;
C->_tag=a1;
C->_expression=a2;
}
/*No:LOOP_VARIANT_2.nb_errors*/
/*No:LOOP_VARIANT_2.expression*/
T0* r158start_position(T158* C){
T0* R=NULL;
R=X662start_position((((T158*)C))->_expression/*8*/);
return R;
}
/*No:LOOP_VARIANT_2.comment*/
T0* r158to_runnable(T158* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T158*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
_e=X662to_runnable((((T158*)C))->_expression/*8*/,a1);
/*IF*/if ((_e)==((void*)(NULL))) {
r158error(r158start_position(C),((T0*)ms1_856));
}
else {
C->_expression=_e;
/*IF*/if (!(X291is_integer(X662result_type((((T158*)C))->_expression/*8*/)))) {
r158error(X662start_position((((T158*)C))->_expression/*8*/),((T0*)ms2_856));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r158twin(C);
/*[IRF3.3set_current_type*/((((T158*)(((T158*)R))))->_current_type)=(NULL);
/*]*/
R=r158to_runnable(((T158*)R),a1);
}
/*FI*/return R;
}
T0* r158twin(T158* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T158*)R)=*C;
return R;
}
/*No:LOOP_VARIANT_2.set_current_type*/
/*No:LOOP_VARIANT_2.tag*/
void r158pretty_print(T158* C){
/*IF*/if (((((T158*)C))->_comment/*4*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T158*)C))->_comment/*4*/)));
}
else {
r238indent(((T238*)(oBC364fmt)));
}
/*FI*/r238put_string(((T238*)(oBC364fmt)),(((T490*)((T490*)((((T158*)C))->_tag/*16*/))))->_to_string/*0*/);
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_158));
X662pretty_print((((T158*)C))->_expression/*8*/);
}
/*No:LOOP_VARIANT_2.current_type*/
void r158error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:DEFERRED_FUNCTION.arguments*/
T0* r649try_to_undefine(T649* 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)=((((T649*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:DEFERRED_FUNCTION.is_deferred*/
/*No:DEFERRED_FUNCTION.rescue_compound*/
void r649add_into(T649* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)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*)((((T649*)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_FUNCTION.end_comment*/
/*No:DEFERRED_FUNCTION.try_to_undefine_aux*/
void r649make(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
r649make_routine(C,a1,a2,a4,a5,a6);
C->_result_type=a3;
}
/*No:DEFERRED_FUNCTION.nb_errors*/
void r649pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
void r649make_routine(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r649make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void r649set_header_comment(T649* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r649start_position(T649* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r649to_run_feature(T649* C,T0* a1,T0* a2){
T0* R=NULL;
r649check_obsolete(C);
{T904*n=malloc(sizeof(*n));
*n=M904;
r904make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:DEFERRED_FUNCTION.ensure_assertion*/
/*No:DEFERRED_FUNCTION.code_require*/
/*No:DEFERRED_FUNCTION.result_type*/
/*No:DEFERRED_FUNCTION.fz_03*/
/*No:DEFERRED_FUNCTION.em1*/
void r649pretty_print(T649* C){
T0* _fn=NULL;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r649pretty_print_profile(C);
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
/*IF*/if (((((T649*)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*)((((T649*)C))->_obsolete_mark/*28*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (((((T649*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T649*)C))->_header_comment/*16*/)));
}
/*FI*//*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r343pretty_print(((T343*)((((T649*)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 (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r633pretty_print(((T633*)((((T649*)C))->_ensure_assertion/*36*/)));
}
/*FI*//*IF*/if (((((T649*)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*)((((T649*)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 ((((((T649*)C))->_end_comment/*44*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T649*)C))->_end_comment/*44*/)))))) {
r393pretty_print(((T393*)((((T649*)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*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
X776definition_pretty_print(_fn);
}
/*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
}
/*No:DEFERRED_FUNCTION.obsolete_mark*/
/*No:DEFERRED_FUNCTION.em2*/
/*No:DEFERRED_FUNCTION.set_clients*/
/*No:DEFERRED_FUNCTION.names*/
/*No:DEFERRED_FUNCTION.require_assertion*/
void r649from_effective(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
{T953*n=malloc(sizeof(*n));
*n=M953;
r953make(n,se_ma855(1,a1));
C->_names=(T0*)n;
}
r649make(C,(((T649*)C))->_names/*8*/,a2,a3,NULL,NULL,a4);
/*[IRF3.3set_ensure_assertion*/((((T649*)(C)))->_ensure_assertion)=(a5);
/*]*/
C->_base_class=a6;
}
void r649set_rescue_compound(T649* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
r649error(r649start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
void r649pretty_print_profile(T649* C){
r649pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r649pretty_print_arguments(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T649*)C))->_result_type/*12*/);
}
/*FI*/}
void r649pretty_print_names(T649* C){
int _i=0;
_i=1;
r649pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r649pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r649can_hide(T649* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r649error(r649start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r649error(r649start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)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));
r649error(r649start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T649*)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 (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r649start_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_FUNCTION.header_comment*/
int r649is_merge_with(T649* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r649error(r649start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r649error(r649start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)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));
r649error(r649start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r649error(r649start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:DEFERRED_FUNCTION.fz_dot*/
/*No:DEFERRED_FUNCTION.set_ensure_assertion*/
/*No:DEFERRED_FUNCTION.first_name*/
/*No:DEFERRED_FUNCTION.clients*/
void r649collect_for(T649* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T649*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T649*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r649error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:DEFERRED_FUNCTION.base_class*/
void r649pretty_print_arguments(T649* C){
/*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
r31pretty_print(((T31*)((((T649*)C))->_arguments/*24*/)));
}
/*FI*/}
/*No:DEFERRED_FUNCTION.pretty_print_routine_body*/
void r649make_e_feature(T649* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r649check_obsolete(T649* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T649*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T649*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r649warning(r649start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r649warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}

