/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "pretty.h"
/*No:RUN_FEATURE_7.arguments*/
/*No:RUN_FEATURE_7.us_copy*/
/*No:RUN_FEATURE_7.actuals_clients*/
void r906make(T906* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r906run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r906initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_7.name*/
int r906arg_count(T906* C){
int R=0;
/*IF*/if (((((T906*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_7.local_vars*/
/*No:RUN_FEATURE_7.base_feature*/
/*No:RUN_FEATURE_7.start_position*/
/*No:RUN_FEATURE_7.ensure_assertion*/
int r906is_exported_in(T906* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r906clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_7.result_type*/
void r906add_client(T906* C,T0* a1){
int _i=0;
/*IF*/if (((((T906*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T906*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T906*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r906run_class(C))),a1);
}
/*No:RUN_FEATURE_7.require_assertion*/
/*No:RUN_FEATURE_7.use_current_state*/
/*No:RUN_FEATURE_7.current_type*/
T0* r906run_class(T906* C){
T0* R=NULL;
R=X291run_class((((T906*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_7.ucs_not_computed*/
T0* r906clients(T906* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T906*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T906*)C))->_current_type/*4*/);
_bfbc=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_clients/*20*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T906*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T906*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_7.clients_memory*/
void r906initialize(T906* C){
C->_arguments=(((T883*)((T883*)((((T906*)C))->_base_feature/*40*/))))->_arguments/*24*/;
/*IF*/if ((((((T906*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T906*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T906*)C))->_arguments/*20*/)),(((T906*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
/*IF*/if (((((T0*)ms64_473))==((void*)(X776to_string((((T906*)C))->_name/*16*/))))&&(X291is_expanded((((T906*)C))->_current_type/*4*/))) {
}
else {
C->_require_assertion=r883run_require((T0*)C);
}
/*FI*/}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r883run_ensure((T0*)C);
}
/*FI*/}
T0* r349to_runnable_integer(T349* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_e)))) {
C->_expression=_e;
C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
}
else {
r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms60_470));
}
/*FI*/R=(T0*)C;
}
else {
{T349*n=malloc(sizeof(*n));
*n=M349;
/*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
/*]*/
R=(T0*)n;
}
R=r349to_runnable_integer(((T349*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_ITEM_1.make*/
/*No:WHEN_ITEM_1.expression*/
T0* r349start_position(T349* C){
T0* R=NULL;
R=X662start_position((((T349*)C))->_expression/*8*/);
return R;
}
/*No:WHEN_ITEM_1.clear_e_when*/
/*No:WHEN_ITEM_1.expression_value*/
/*No:WHEN_ITEM_1.fz_bcv*/
T0* r349twin(T349* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T349*)R)=*C;
return R;
}
void r349pretty_print(T349* C){
X662pretty_print((((T349*)C))->_expression/*8*/);
}
/*No:WHEN_ITEM_1.current_type*/
/*No:WHEN_ITEM_1.fz_biv*/
void r349error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r349to_runnable_character(T349* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T349*)C))->_e_when/*4*/)==((void*)(NULL))) {
C->_e_when=a1;
_e=X662to_runnable((((T349*)C))->_expression/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T349*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
/*IF*/if (((_e)!=((void*)(NULL)))&&(X291is_character(X662result_type(_e)))) {
C->_expression=_e;
C->_expression_value=X662to_integer((((T349*)C))->_expression/*8*/);
r843add_when_item_1(((T843*)((((T349*)C))->_e_when/*4*/)),(T0*)C);
}
else {
r349error(X662start_position((((T349*)C))->_expression/*8*/),((T0*)ms58_470));
}
/*FI*/R=(T0*)C;
}
else {
{T349*n=malloc(sizeof(*n));
*n=M349;
/*[IRF3.3make*/((((T349*)(n)))->_expression)=((((T349*)C))->_expression/*8*/);
/*]*/
R=(T0*)n;
}
R=r349to_runnable_character(((T349*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_ITEM_1.e_when*/
/*No:TYPE_NATIVE_ARRAY.us_put*/
/*No:TYPE_NATIVE_ARRAY.has_creation*/
/*No:TYPE_NATIVE_ARRAY.is_anchored*/
/*No:TYPE_NATIVE_ARRAY.is_array*/
int r933is_a(T933* C,T0* a1){
int R=0;
R=(r933run_time_mark(C))==((void*)(X291run_time_mark(a1)));
/*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
T0*oBC933tmp_str=NULL;
/*No:TYPE_NATIVE_ARRAY.is_pointer*/
/*No:TYPE_NATIVE_ARRAY.run_type*/
/*No:TYPE_NATIVE_ARRAY.is_string*/
/*No:TYPE_NATIVE_ARRAY.is_like_feature*/
/*No:TYPE_NATIVE_ARRAY.is_like_current*/
void r933make(T933* C,T0* a1,T0* a2){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms18_473),a1);
C->_base_class_name=(T0*)n;
}
C->_generic_list=se_ma701(1,a2);
r7copy(((T7*)(oBC933tmp_str)),((T0*)ms18_473));
r7extend(((T7*)(oBC933tmp_str)),'\133');
r7append(((T7*)(oBC933tmp_str)),X291written_mark(a2));
r7extend(((T7*)(oBC933tmp_str)),'\135');
C->_written_mark=r902item(oBC933tmp_str);
}
/*No:TYPE_NATIVE_ARRAY.nb_errors*/
/*No:TYPE_NATIVE_ARRAY.us_item*/
int fBC364type_any=0;
T0*oBC364type_any=NULL;
T0* r933type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
/*No:TYPE_NATIVE_ARRAY.start_position*/
/*No:TYPE_NATIVE_ARRAY.fz_inako*/
/*No:TYPE_NATIVE_ARRAY.is_character*/
/*No:TYPE_NATIVE_ARRAY.written_mark*/
T0* r933to_runnable(T933* C,T0* a1){
T0* R=NULL;
T0* _rc=NULL;
T0* _rt=NULL;
T0* _elt2=NULL;
T0* _elt1=NULL;
/*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(C))) {
R=(T0*)C;
}
else {
_elt1=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
_elt2=X291to_runnable(_elt1,a1);
/*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
/*IF*/if ((_elt2)!=((void*)(NULL))) {
r683add_position(X291start_position(_elt2));
}
/*FI*/r933error(X291start_position(_elt1),((T0*)ms59_470));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_elt2=X291run_type(_elt2);
/*IF*/if (((((T933*)C))->_run_type/*16*/)==((void*)(NULL))) {
R=(T0*)C;
/*IF*/if ((_elt2)==((void*)(_elt1))) {
C->_run_type=(T0*)C;
r933load_basic_features(C);
}
else {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
C->_run_type=(T0*)n;
}
r933load_basic_features(((T933*)((((T933*)C))->_run_type/*16*/)));
}
/*FI*/}
else {
R=r933twin(C);
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T933*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
_rt=(T0*)n;
}
/*[IRF3.3set_run_type*/((((T933*)(((T933*)R))))->_run_type)=(_rt);
/*]*/
r933load_basic_features(((T933*)_rt));
}
/*FI*/}
/*FI*/}
/*FI*/_rc=r933run_class(((T933*)R));
r368set_at_run_time(((T368*)_rc));
return R;
}
int r933is_run_type(T933* C){
int R=0;
T0* _t=NULL;
/*IF*/if (((((T933*)C))->_run_type/*16*/)!=((void*)(NULL))) {
R=1;
}
else {
_t=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
/*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
C->_run_type=(T0*)C;
r933load_basic_features(C);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_NATIVE_ARRAY.is_formal_generic*/
/*No:TYPE_NATIVE_ARRAY.generic_list*/
/*No:TYPE_NATIVE_ARRAY.is_real*/
T0* r933twin(T933* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T933*)R)=*C;
return R;
}
/*No:TYPE_NATIVE_ARRAY.is_bit*/
/*No:TYPE_NATIVE_ARRAY.pretty_print*/
T0* r933smallest_ancestor(T933* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_a(_rto,(((T933*)C))->_run_type/*16*/)) {
R=_rto;
}
 else if (r933is_a(((T933*)((((T933*)C))->_run_type/*16*/)),_rto)) {
R=(((T933*)C))->_run_type/*16*/;
}
else {
R=r933type_any();
}
/*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
return R;
}
/*No:TYPE_NATIVE_ARRAY.is_boolean*/
/*No:TYPE_NATIVE_ARRAY.set_run_type*/
/*No:TYPE_NATIVE_ARRAY.is_double*/
T0* r933run_class(T933* C){
T0* R=NULL;
/*IF*/if (r933is_run_type(C)) {
R=r604run_class((((T933*)C))->_run_type/*16*/);
}
/*FI*/return R;
}
T0* r933run_time_mark(T933* C){
T0* R=NULL;
/*IF*/if (r933is_run_type(C)) {
R=(((T933*)((T933*)((((T933*)C))->_run_type/*16*/))))->_written_mark/*12*/;
}
/*FI*/return R;
}
int r933is_a_in(T933* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T933*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r933to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r933look_up_for(T933* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r933base_class(C))),a1,a2);
return R;
}
/*No:TYPE_NATIVE_ARRAY.expanded_initializer*/
/*No:TYPE_NATIVE_ARRAY.fz_dot*/
/*No:TYPE_NATIVE_ARRAY.is_generic*/
/*No:TYPE_NATIVE_ARRAY.fz_bga*/
/*No:TYPE_NATIVE_ARRAY.used_as_reference*/
/*No:TYPE_NATIVE_ARRAY.is_reference*/
void r933error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r933load_basic_features(T933* C){
T0* _rc=NULL;
T0* _rf=NULL;
T0* _elt_type=NULL;
_rc=r933run_class(C);
r368set_at_run_time(((T368*)_rc));
_elt_type=r701item(((T701*)((((T933*)C))->_generic_list/*8*/)),1);
/*IF*/if (X291is_expanded(_elt_type)) {
r368set_at_run_time(((T368*)(X291run_class(_elt_type))));
}
/*FI*/_rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms104_473));
/*IF*/if ((X291expanded_initializer(_elt_type))!=((void*)(NULL))) {
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms57_473));
}
/*FI*/}
T0* r933base_class(T933* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T933*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_NATIVE_ARRAY.is_any*/
/*No:TYPE_NATIVE_ARRAY.us_clear_all*/
/*No:TYPE_NATIVE_ARRAY.base_class_name*/
/*No:TYPE_NATIVE_ARRAY.us_native_array*/
/*No:TYPE_NATIVE_ARRAY.is_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_basic_eiffel_expanded*/
/*No:TYPE_NATIVE_ARRAY.is_none*/
/*No:TYPE_NATIVE_ARRAY.is_integer*/
void r933make_runnable(T933* C,T0* a1,T0* a2){
r933make(C,a1,a2);
C->_run_type=(T0*)C;
}
T0* r886add_comment(T886* 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 r886to_integer(T886* C){
int R=0;
r886error((((T886*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
int r886is_a(T886* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T886*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T886*)C))->_start_position/*12*/);
r886error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME2.is_current*/
void r886print_as_target(T886* C){
r238put_string(((T238*)(oBC364fmt)),(((T886*)C))->_to_string/*8*/);
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:ARGUMENT_NAME2.to_string*/
/*No:ARGUMENT_NAME2.fz_iinaiv*/
/*No:ARGUMENT_NAME2.set_result_type*/
/*No:ARGUMENT_NAME2.start_position*/
/*No:ARGUMENT_NAME2.precedence*/
T0* r886to_runnable(T886* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rf=NULL;
_rf=r604top_rf(((T604*)(oBC364small_eiffel)));
_rt=r31type(((T31*)(/*X496*/((T0*)(((T808*)((T808*)_rf)))->_arguments/*20*/))),(((T886*)C))->_rank/*16*/);
/*IF*/if (((((T886*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=_rt;
R=(T0*)C;
}
else {
{T886*n=malloc(sizeof(*n));
*n=M886;
r886make_runnable(n,(T0*)C,a1,_rt);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME2.set_rank*/
/*No:ARGUMENT_NAME2.bracketed_pretty_print*/
/*No:ARGUMENT_NAME2.rank*/
/*No:ARGUMENT_NAME2.result_type*/
/*No:ARGUMENT_NAME2.atomic_precedence*/
/*No:ARGUMENT_NAME2.pretty_print*/
/*No:ARGUMENT_NAME2.current_type*/
/*No:ARGUMENT_NAME2.is_manifest_string*/
void r886refer_to(T886* C,T0* a1,T0* a2,int a3){
T0* _declaration_name=NULL;
C->_start_position=a1;
C->_rank=a3;
_declaration_name=/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)a2)))->_flat_list/*12*/)),a3)/*)*/;
C->_to_string=(((T873*)((T873*)_declaration_name)))->_to_string/*8*/;
C->_result_type=(((T873*)((T873*)_declaration_name)))->_result_type/*20*/;
}
/*No:ARGUMENT_NAME2.is_void*/
void r886error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r886make_runnable(T886* C,T0* a1,T0* a2,T0* a3){
*((T886*)(C))=*((T886*)(a1));
C->_current_type=a2;
C->_result_type=a3;
}
T0* r446add_comment(T446* 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 r446to_integer(T446* C){
int R=0;
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms69_470));
return R;
}
/*No:SIMPLE_FEATURE_NAME.set_is_frozen*/
int r446is_a(T446* C,T0* a1){
int R=0;
R=X291is_a(X291run_type(/*(IRF4.6result_type*/(((T820*)((T820*)((((T446*)C))->_run_feature_2/*20*/))))->_result_type/*24*//*)*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T446*)C))->_start_position/*16*/);
r446error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:SIMPLE_FEATURE_NAME.is_current*/
void r446make(T446* C,T0* a1,T0* a2){
C->_to_string=r902item(a1);
C->_start_position=a2;
}
void r446print_as_target(T446* C){
r238put_string(((T238*)(oBC364fmt)),(((T446*)C))->_to_string/*12*/);
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:SIMPLE_FEATURE_NAME.nb_errors*/
/*No:SIMPLE_FEATURE_NAME.to_string*/
/*No:SIMPLE_FEATURE_NAME.fz_iinaiv*/
T0* r446run_feature(T446* C,T0* a1){
T0* R=NULL;
R=r368get_feature(((T368*)(X291run_class(a1))),(T0*)C);
return R;
}
/*No:SIMPLE_FEATURE_NAME.start_position*/
/*No:SIMPLE_FEATURE_NAME.precedence*/
T0* r446to_runnable(T446* C,T0* a1){
T0* R=NULL;
T0* _new_name=NULL;
T0* _rf=NULL;
T0* _wbc=NULL;
/*IF*/if (((((T446*)C))->_current_type/*8*/)==((void*)(NULL))) {
C->_current_type=a1;
_wbc=r627base_class(((T627*)((((T446*)C))->_start_position/*16*/)));
_new_name=r605new_name_of(((T605*)(X291base_class(a1))),_wbc,(T0*)C);
_rf=r368get_feature(((T368*)(X291run_class((((T446*)C))->_current_type/*8*/))),_new_name);
/*IF*/if ((_rf)==((void*)(NULL))) {
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms2_446));
}
else {
C->_run_feature_2=_rf;
if(NULL!=(C->_run_feature_2))switch(((T0*)C->_run_feature_2)->id) {
case 820: 
break;
default:
C->_run_feature_2=NULL;
};/*IF*/if (((((T446*)C))->_run_feature_2/*20*/)==((void*)(NULL))) {
r683add_position(X496start_position(_rf));
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms3_446));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
else {
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms4_446));
}
/*FI*/}
 else if ((a1)==((void*)((((T446*)C))->_current_type/*8*/))) {
R=(T0*)C;
}
else {
{T446*n=malloc(sizeof(*n));
*n=M446;
r446make(n,(((T446*)C))->_to_string/*12*/,(((T446*)C))->_start_position/*16*/);
R=(T0*)n;
}
R=r446to_runnable(((T446*)R),a1);
}
/*FI*/return R;
}
/*No:SIMPLE_FEATURE_NAME.bracketed_pretty_print*/
/*No:SIMPLE_FEATURE_NAME.run_feature_2*/
/*No:SIMPLE_FEATURE_NAME.result_type*/
/*No:SIMPLE_FEATURE_NAME.atomic_precedence*/
/*No:SIMPLE_FEATURE_NAME.definition_pretty_print*/
/*No:SIMPLE_FEATURE_NAME.pretty_print*/
/*No:SIMPLE_FEATURE_NAME.current_type*/
/*No:SIMPLE_FEATURE_NAME.to_key*/
/*No:SIMPLE_FEATURE_NAME.is_manifest_string*/
/*No:SIMPLE_FEATURE_NAME.is_frozen*/
/*No:SIMPLE_FEATURE_NAME.is_void*/
void r446undefine_in(T446* C,T0* a1){
/*IF*/if ((((T446*)C))->_is_frozen/*4*/) {
r446error((((T446*)C))->_start_position/*16*/,((T0*)ms1_776));
r605fatal_undefine(((T605*)a1),(T0*)C);
}
/*FI*/}
void r446error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r446origin_base_class(T446* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T446*)C))->_start_position/*16*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=r627base_class(((T627*)_sp));
}
/*FI*/return R;
}
/*No:CST_ATT_UNIQUE.arguments*/
T0* r398try_to_undefine(T398* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r398try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T398*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_UNIQUE.is_deferred*/
/*No:CST_ATT_UNIQUE.pretty_tail*/
void r398add_into(T398* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)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*)((((T398*)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* r398try_to_undefine_aux(T398* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r398start_position(C));
r398error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r398make(T398* C,T0* a1,T0* a2){
T0* _ic=NULL;
int _i=0;
r398make_e_feature(C,a1,a2);
{T28*n=malloc(sizeof(*n));
*n=M28;
r28make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
C->_values=(T0*)n;
}
_i=1;
while (!((_i)>((((T28*)((T28*)((((T398*)C))->_values/*24*/))))->_upper/*12*/))) {
{T342*n=malloc(sizeof(*n));
*n=M342;
r342make(n,r604next_unique(((T604*)(oBC364small_eiffel))),NULL);
_ic=(T0*)n;
}
/*[IRF3.6put*/{T28* C1=((T28*)((((T398*)C))->_values/*24*/));
T0* b1=_ic;
int b2=_i;
((((T28*)C1))->_storage/*4*/)[(b2)-((((T28*)C1))->_lower/*16*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
/*No:CST_ATT_UNIQUE.nb_errors*/
void r398pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*No:CST_ATT_UNIQUE.set_header_comment*/
/*No:CST_ATT_UNIQUE.values*/
T0* r398start_position(T398* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r398to_run_feature(T398* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X291run_class(a1);
R=r368at(((T368*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 808: 
break;
default:
R=NULL;
};/*IF*/if ((R)==((void*)(NULL))) {
{T808*n=malloc(sizeof(*n));
*n=M808;
r808make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CST_ATT_UNIQUE.ensure_assertion*/
/*No:CST_ATT_UNIQUE.code_require*/
/*No:CST_ATT_UNIQUE.result_type*/
/*No:CST_ATT_UNIQUE.em1*/
void r398pretty_print(T398* C){
r398pretty_print_profile(C);
/*[IRF3.2pretty_tail*/r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_398));
/*]*/
r238put_character(((T238*)(oBC364fmt)),'\73');
/*IF*/if (((((T398*)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*)((((T398*)C))->_header_comment/*16*/)));
}
/*FI*/}
/*No:CST_ATT_UNIQUE.set_clients*/
/*No:CST_ATT_UNIQUE.em2*/
/*No:CST_ATT_UNIQUE.require_assertion*/
/*No:CST_ATT_UNIQUE.value*/
/*No:CST_ATT_UNIQUE.names*/
void r398pretty_print_profile(T398* C){
r398pretty_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 (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T398*)C))->_result_type/*12*/);
}
/*FI*/}
void r398pretty_print_names(T398* C){
int _i=0;
_i=1;
r398pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r398pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r398can_hide(T398* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_UNIQUE.header_comment*/
int r398is_merge_with(T398* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r398error(r398start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_UNIQUE.fz_dot*/
/*No:CST_ATT_UNIQUE.first_name*/
/*No:CST_ATT_UNIQUE.clients*/
void r398collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r398error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_UNIQUE.base_class*/
/*No:CST_ATT_UNIQUE.pretty_print_arguments*/
void r398make_e_feature(T398* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:INSTRUCTION_WITH_COMMENT.add_comment*/
void r46make(T46* C,T0* a1,T0* a2){
C->_instruction=a1;
C->_comment=a2;
}
/*No:INSTRUCTION_WITH_COMMENT.instruction*/
T0* r46start_position(T46* C){
T0* R=NULL;
R=X465start_position((((T46*)C))->_instruction/*8*/);
return R;
}
/*No:INSTRUCTION_WITH_COMMENT.comment*/
T0* r46to_runnable(T46* C,T0* a1){
T0* R=NULL;
T0* _ri=NULL;
/*IF*/if (((((T46*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_ri=X465to_runnable((((T46*)C))->_instruction/*8*/,a1);
/*IF*/if ((_ri)==((void*)(NULL))) {
r46error(X465start_position((((T46*)C))->_instruction/*8*/),((T0*)ms1_46));
}
else {
C->_instruction=_ri;
R=(T0*)C;
}
/*FI*/}
else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(((T46*)C))->_instruction/*8*/,(((T46*)C))->_comment/*12*/);
R=(T0*)n;
}
R=r46to_runnable(((T46*)R),a1);
}
/*FI*/return R;
}
void r46pretty_print(T46* C){
int _fmt_mode=0;
/*IF*/if (r393dummy(((T393*)((((T46*)C))->_comment/*12*/)))) {
X465pretty_print((((T46*)C))->_instruction/*8*/);
}
else {
_fmt_mode=(((T238*)((T238*)(oBC364fmt))))->_mode/*4*/;
/*[IRF3.3set_zen*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(1);
/*]*/
X465pretty_print((((T46*)C))->_instruction/*8*/);
r238level_incr(((T238*)(oBC364fmt)));
r238indent(((T238*)(oBC364fmt)));
r238level_decr(((T238*)(oBC364fmt)));
r393pretty_print(((T393*)((((T46*)C))->_comment/*12*/)));
/*[IRF3.3set_mode*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(_fmt_mode);
/*]*/
}
/*FI*/}
/*No:INSTRUCTION_WITH_COMMENT.run_compound*/
void r46error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:INSTRUCTION_WITH_COMMENT.end_mark_comment*/
/*No:EXTERNAL_FUNCTION.arguments*/
T0* r679try_to_undefine(T679* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r679try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T679*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:EXTERNAL_FUNCTION.is_deferred*/
/*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
T0* r679runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r679error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:EXTERNAL_FUNCTION.rescue_compound*/
void r679add_into(T679* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)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*)((((T679*)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:EXTERNAL_FUNCTION.end_comment*/
T0* r679try_to_undefine_aux(T679* C,T0* a1,T0* a2){
T0* R=NULL;
{T649*n=malloc(sizeof(*n));
*n=M649;
r649from_effective(n,a1,(((T679*)C))->_arguments/*24*/,(((T679*)C))->_result_type/*12*/,(((T679*)C))->_require_assertion/*32*/,(((T679*)C))->_ensure_assertion/*36*/,a2);
R=(T0*)n;
}
return R;
}
T0* r679external_c_name(T679* C){
T0* R=NULL;
/*IF*/if (((((T679*)C))->_alias_string/*52*/)==((void*)(NULL))) {
R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
}
else {
R=(((T679*)C))->_alias_string/*52*/;
}
/*FI*/return R;
}
void r679make(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r679make_routine(C,a1,a2,a4,a5,a6);
C->_result_type=a3;
r679make_external_routine(C,a7,a8);
}
/*No:EXTERNAL_FUNCTION.nb_errors*/
void r679pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*No:EXTERNAL_FUNCTION.native*/
void r679make_routine(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r679make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
void r679set_header_comment(T679* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r679start_position(T679* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r679to_run_feature(T679* C,T0* a1,T0* a2){
T0* R=NULL;
r679check_obsolete(C);
{T892*n=malloc(sizeof(*n));
*n=M892;
r892make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:EXTERNAL_FUNCTION.alias_string*/
/*No:EXTERNAL_FUNCTION.ensure_assertion*/
/*No:EXTERNAL_FUNCTION.code_require*/
T0* r679run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
_r=r679runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r679run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r679runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T541*n=malloc(sizeof(*n));
*n=M541;
/*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:EXTERNAL_FUNCTION.result_type*/
/*No:EXTERNAL_FUNCTION.fz_03*/
/*No:EXTERNAL_FUNCTION.em1*/
void r679pretty_print(T679* C){
T0* _fn=NULL;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r679pretty_print_profile(C);
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
/*IF*/if (((((T679*)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*)((((T679*)C))->_obsolete_mark/*28*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (((((T679*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T679*)C))->_header_comment/*16*/)));
}
/*FI*//*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r343pretty_print(((T343*)((((T679*)C))->_require_assertion/*32*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r679pretty_print_routine_body(C);
/*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r633pretty_print(((T633*)((((T679*)C))->_ensure_assertion/*36*/)));
}
/*FI*//*IF*/if (((((T679*)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*)((((T679*)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 ((((((T679*)C))->_end_comment/*44*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T679*)C))->_end_comment/*44*/)))))) {
r393pretty_print(((T393*)((((T679*)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*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
X776definition_pretty_print(_fn);
}
/*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
}
/*No:EXTERNAL_FUNCTION.obsolete_mark*/
/*No:EXTERNAL_FUNCTION.set_clients*/
/*No:EXTERNAL_FUNCTION.em2*/
/*No:EXTERNAL_FUNCTION.names*/
/*No:EXTERNAL_FUNCTION.require_assertion*/
/*No:EXTERNAL_FUNCTION.code_ensure*/
void r679set_rescue_compound(T679* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r679error(r679start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
void r679pretty_print_profile(T679* C){
r679pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r679pretty_print_arguments(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T679*)C))->_result_type/*12*/);
}
/*FI*/}
void r679pretty_print_names(T679* C){
int _i=0;
_i=1;
r679pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r679pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
void r679make_external_routine(T679* C,T0* a1,T0* a2){
C->_native=a1;
C->_alias_string=a2;
}
int r679can_hide(T679* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)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));
r679error(r679start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T679*)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 (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r679start_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:EXTERNAL_FUNCTION.header_comment*/
int r679is_merge_with(T679* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)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));
r679error(r679start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r679error(r679start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:EXTERNAL_FUNCTION.fz_dot*/
/*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
/*No:EXTERNAL_FUNCTION.first_name*/
/*No:EXTERNAL_FUNCTION.clients*/
void r679collect_for(T679* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T679*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T679*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r679error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:EXTERNAL_FUNCTION.base_class*/
void r679pretty_print_arguments(T679* C){
/*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
r31pretty_print(((T31*)((((T679*)C))->_arguments/*24*/)));
}
/*FI*/}
void r679pretty_print_routine_body(T679* C){
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_279));
X832pretty_print((((T679*)C))->_native/*48*/);
/*IF*/if ((!(r7is_equal(((T7*)(r679external_c_name(C))),X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/))))||((/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/)>(1))) {
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_279));
r238put_character(((T238*)(oBC364fmt)),'\42');
r238put_string(((T238*)(oBC364fmt)),r679external_c_name(C));
r238put_character(((T238*)(oBC364fmt)),'\42');
}
/*FI*/}
void r679make_e_feature(T679* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r679check_obsolete(T679* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T679*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r679warning(r679start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r679warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
void r145make(T145* C,T0* a1,T0* a2){
C->_comment=a2;
C->_expression=a1;
}
/*No:LOOP_VARIANT_1.nb_errors*/
/*No:LOOP_VARIANT_1.expression*/
T0* r145start_position(T145* C){
T0* R=NULL;
R=X662start_position((((T145*)C))->_expression/*8*/);
return R;
}
/*No:LOOP_VARIANT_1.comment*/
T0* r145to_runnable(T145* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*IF*/if (((((T145*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
_e=X662to_runnable((((T145*)C))->_expression/*8*/,a1);
/*IF*/if ((_e)==((void*)(NULL))) {
r145error(r145start_position(C),((T0*)ms1_856));
}
else {
C->_expression=_e;
/*IF*/if (!(X291is_integer(X662result_type((((T145*)C))->_expression/*8*/)))) {
r145error(X662start_position((((T145*)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=r145twin(C);
/*[IRF3.3set_current_type*/((((T145*)(((T145*)R))))->_current_type)=(NULL);
/*]*/
R=r145to_runnable(((T145*)R),a1);
}
/*FI*/return R;
}
T0* r145twin(T145* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T145*)R)=*C;
return R;
}
/*No:LOOP_VARIANT_1.set_current_type*/
void r145pretty_print(T145* C){
/*IF*/if (((((T145*)C))->_comment/*4*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T145*)C))->_comment/*4*/)));
}
else {
r238indent(((T238*)(oBC364fmt)));
}
/*FI*/X662pretty_print((((T145*)C))->_expression/*8*/);
}
/*No:LOOP_VARIANT_1.current_type*/
void r145error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:RUN_FEATURE_8.arguments*/
/*No:RUN_FEATURE_8.us_character_bits*/
/*No:RUN_FEATURE_8.us_generator*/
/*No:RUN_FEATURE_8.actuals_clients*/
/*No:RUN_FEATURE_8.us_integer_bits*/
void r892make(T892* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r892run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
r604incr_magic_count(((T604*)(oBC364small_eiffel)));
C->_use_current_state=1015;
r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
r892initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_8.name*/
int fBC364type_string=0;
T0*oBC364type_string=NULL;
T0* r892type_string(void){
if (fBC364type_string==0){
T0* R=NULL;
fBC364type_string=1;
{T491*n=malloc(sizeof(*n));
*n=M491;
r491make(n,NULL);
R=(T0*)n;
}
oBC364type_string=R;}
return oBC364type_string;}
/*No:RUN_FEATURE_8.fz_iinaiv*/
int r892arg_count(T892* C){
int R=0;
/*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_8.local_vars*/
/*No:RUN_FEATURE_8.base_feature*/
int r892integer_value(T892* C,T0* a1){
int R=0;
T0* _n=NULL;
_n=X776to_string((((T892*)C))->_name/*16*/);
/*IF*/if ((((T0*)ms81_473))==((void*)(_n))) {
R= (CHAR_BIT*sizeof(int)) ;
}
 else if ((((T0*)ms56_473))==((void*)(_n))) {
R= CHAR_BIT ;
}
else {
r683add_position(a1);
r683add_position(/*(IRF4.6start_position*/r679start_position(((T679*)((((T892*)C))->_base_feature/*40*/)))/*)*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/return R;
}
/*No:RUN_FEATURE_8.start_position*/
/*No:RUN_FEATURE_8.ensure_assertion*/
int r892is_exported_in(T892* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r892clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_8.result_type*/
/*No:RUN_FEATURE_8.us_bitn*/
/*No:RUN_FEATURE_8.us_twin*/
void r892add_client(T892* C,T0* a1){
int _i=0;
/*IF*/if (((((T892*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T892*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r892run_class(C))),a1);
}
/*No:RUN_FEATURE_8.require_assertion*/
/*No:RUN_FEATURE_8.use_current_state*/
/*No:RUN_FEATURE_8.us_generating_type*/
/*No:RUN_FEATURE_8.us_se_argc*/
/*No:RUN_FEATURE_8.current_type*/
T0* r892run_class(T892* C){
T0* R=NULL;
R=X291run_class((((T892*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_8.ucs_not_computed*/
T0* r892clients(T892* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T892*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T892*)C))->_current_type/*4*/);
_bfbc=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_clients/*20*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T892*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T892*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_8.fatal_error*/
/*No:RUN_FEATURE_8.clients_memory*/
void r892initialize(T892* C){
T0* _type_bit_ref=NULL;
T0* _rf=NULL;
T0* _n=NULL;
_n=X776to_string((((T892*)C))->_name/*16*/);
C->_arguments=(((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_arguments/*24*/;
/*IF*/if ((((((T892*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T892*)C))->_arguments/*20*/)),(((T892*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
_type_bit_ref=(((T892*)C))->_current_type/*4*/;
if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
case 963: 
break;
default:
_type_bit_ref=NULL;
};C->_result_type=(((T963*)((T963*)_type_bit_ref)))->_type_bit/*4*/;
}
else {
C->_result_type=X291to_runnable((((T679*)((T679*)((((T892*)C))->_base_feature/*40*/))))->_result_type/*12*/,(((T892*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r679run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r679run_ensure((T0*)C);
}
/*FI*//*IF*/if ((((T0*)ms139_473))==((void*)(_n))) {
_rf=r368get_copy(((T368*)(r892run_class(C))));
}
 else if ((((T0*)ms110_473))==((void*)(_n))) {
r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
}
 else if ((((T0*)ms78_473))==((void*)(_n))) {
r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
}
 else if ((((T0*)ms79_473))==((void*)(_n))) {
r368set_at_run_time(((T368*)(r491run_class(((T491*)(r892type_string()))))));
}
/*FI*/}

