/*
-- 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:TMP_NAME.li*/
/*No:TMP_NAME.co*/
/*No:TMP_NAME.fz_inherit*/
int r511isa_keyword(void){
int R=0;
char _c=0;
_c=r3to_lower(/*(IRF4.6item*/((((T7*)((T7*)(oBC511tmp_string))))->_storage/*0*/)[(1)-(1)]/*)*/);
{int z1=_c;

if((97==z1)){
R=r511look_in(oBC511keyword_a);
}
 else 
if((99==z1)){
R=r511look_in(oBC511keyword_c);
}
 else 
if((100==z1)){
R=r511look_in(oBC511keyword_d);
}
 else 
if((101==z1)){
R=r511look_in(oBC511keyword_e);
}
 else 
if((102==z1)){
R=r511look_in(oBC511keyword_f);
}
 else 
if((105==z1)){
R=r511look_in(oBC511keyword_i);
}
 else 
if((108==z1)){
R=r511look_in(oBC511keyword_l);
}
 else 
if((111==z1)){
R=r511look_in(oBC511keyword_o);
}
 else 
if((112==z1)){
R=r7same_as(((T7*)(((T0*)ms37_470))),oBC511tmp_string);
}
 else 
if((114==z1)){
R=r511look_in(oBC511keyword_r);
}
 else 
if((115==z1)){
R=r511look_in(oBC511keyword_s);
}
 else 
if((116==z1)){
R=r511look_in(oBC511keyword_t);
}
 else 
if((117==z1)){
R=r511look_in(oBC511keyword_u);
}
 else 
if((118==z1)){
R=r7same_as(((T7*)(((T0*)ms51_470))),oBC511tmp_string);
}
 else 
if((119==z1)){
R=r7same_as(((T7*)(((T0*)ms52_470))),oBC511tmp_string);
}
 else 
if((120==z1)){
R=r7same_as(((T7*)(((T0*)ms50_473))),oBC511tmp_string);
}
}
return R;
}
/*No:TMP_NAME.fz_select*/
/*No:TMP_NAME.fz_creation*/
T0*oBC511keyword_s=NULL;
T0*oBC511keyword_c=NULL;
/*No:TMP_NAME.fz_old*/
T0* r511to_e_result(T511* C){
T0* R=NULL;
{T715*n=malloc(sizeof(*n));
*n=M715;
r715make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
T0* r511to_local_name1(T511* C){
T0* R=NULL;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
R=(T0*)n;
}
return R;
}
T0* r511to_e_current(T511* C){
T0* R=NULL;
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),1);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.extend*/
/*No:TMP_NAME.fz_separate*/
/*No:TMP_NAME.fz_deferred*/
T0*oBC511keyword_t=NULL;
T0*oBC511keyword_d=NULL;
/*No:TMP_NAME.fz_else*/
/*No:TMP_NAME.fz_end*/
T0* r511to_e_void(T511* C){
T0* R=NULL;
{T796*n=malloc(sizeof(*n));
*n=M796;
r796make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
int r511is_current(void){
int R=0;
/*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(7)) {
R=r7same_as(((T7*)(((T0*)ms143_473))),oBC511tmp_string);
}
/*FI*/return R;
}
T0*oBC511keyword_u=NULL;
T0*oBC511keyword_e=NULL;
/*No:TMP_NAME.us_and*/
T0* r511to_local_name2(T511* C,T0* a1,int a2){
T0* R=NULL;
{T23*n=malloc(sizeof(*n));
*n=M23;
r23refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
R=(T0*)n;
}
return R;
}
T0* r511to_argument_name1(T511* C){
T0* R=NULL;
{T873*n=malloc(sizeof(*n));
*n=M873;
r873make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
R=(T0*)n;
}
return R;
}
T0*oBC511keyword_f=NULL;
/*No:TMP_NAME.make*/
/*No:TMP_NAME.us_current*/
/*No:TMP_NAME.fz_rescue*/
T0* r511to_string(T511* C){
T0* R=NULL;
/*IF*/if (((((T511*)C))->_unique_string_memory/*0*/)==((void*)(NULL))) {
R=r902item(oBC511tmp_string);
C->_unique_string_memory=R;
}
else {
R=(((T511*)C))->_unique_string_memory/*0*/;
}
/*FI*/return R;
}
T0* r511to_class_name(T511* C){
T0* R=NULL;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
T0* r511to_tag_name(T511* C){
T0* R=NULL;
{T490*n=malloc(sizeof(*n));
*n=M490;
r490make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.unique_string_memory*/
T0* r511to_argument_name2(T511* C,T0* a1,int a2){
T0* R=NULL;
{T886*n=malloc(sizeof(*n));
*n=M886;
r886refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_external*/
T0* r511start_position(T511* C){
T0* R=NULL;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_prefix*/
/*No:TMP_NAME.fz_export*/
/*No:TMP_NAME.fz_all*/
/*No:TMP_NAME.fz_invariant*/
/*No:TMP_NAME.fz_feature*/
/*No:TMP_NAME.fz_true*/
T0* r511to_infix_name_use(T511* C){
T0* R=NULL;
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_if*/
T0*oBC511keyword_i=NULL;
/*No:TMP_NAME.fz_inspect*/
/*No:TMP_NAME.fz_alias*/
/*No:TMP_NAME.fz_debug*/
int r511is_result(void){
int R=0;
/*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(6)) {
R=r7same_as(((T7*)(((T0*)ms146_473))),oBC511tmp_string);
}
/*FI*/return R;
}
/*No:TMP_NAME.fz_rename*/
/*No:TMP_NAME.fz_from*/
/*No:TMP_NAME.fz_unique*/
/*No:TMP_NAME.fz_once*/
/*No:TMP_NAME.fz_loop*/
/*No:TMP_NAME.fz_do*/
/*No:TMP_NAME.us_result*/
/*No:TMP_NAME.us_implies*/
T0*oBC511tmp_string=NULL;
T0*oBC511keyword_l=NULL;
/*No:TMP_NAME.fz_obsolete*/
/*No:TMP_NAME.fz_as*/
/*No:TMP_NAME.fz_false*/
/*No:TMP_NAME.fz_elseif*/
T0* r511to_infix_name(T0* a1){
T0* R=NULL;
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,oBC511tmp_string,a1);
R=(T0*)n;
}
return R;
}
T0* r511to_prefix_name(T511* C){
T0* R=NULL;
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
T0* r511pos(int a1,int a2){
T0* R=NULL;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,a1,a2);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_variant*/
/*No:TMP_NAME.fz_redefine*/
/*No:TMP_NAME.fz_like*/
int r511is_void(void){
int R=0;
/*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(4)) {
R=r7same_as(((T7*)(((T0*)ms147_473))),oBC511tmp_string);
}
/*FI*/return R;
}
/*No:TMP_NAME.us_xor*/
/*No:TMP_NAME.fz_frozen*/
/*No:TMP_NAME.fz_undefine*/
T0*oBC511keyword_o=NULL;
T0* r511to_simple_feature_name(T511* C){
T0* R=NULL;
{T446*n=malloc(sizeof(*n));
*n=M446;
r446make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_is*/
/*No:TMP_NAME.fz_ensure*/
int r511look_in(T0* a1){
int R=0;
int _i=0;
_i=(((T52*)((T52*)a1)))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r7same_as(((T7*)(r52item(((T52*)a1),_i))),oBC511tmp_string);
_i=(_i)-(1);
}
return R;
}
/*No:TMP_NAME.us_void*/
/*No:TMP_NAME.fz_local*/
/*No:TMP_NAME.fz_indexing*/
/*No:TMP_NAME.fz_require*/
/*No:TMP_NAME.count*/
/*No:TMP_NAME.fz_when*/
/*No:TMP_NAME.fz_then*/
/*No:TMP_NAME.fz_until*/
T0*oBC511keyword_a=NULL;
/*No:TMP_NAME.fz_check*/
void r511initialize(T511* C,int a1,int a2){
C->_li=a1;
C->_co=a2;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC511tmp_string)))))->_count)=(0);
/*]*/
C->_unique_string_memory=NULL;
}
/*No:TMP_NAME.fz_expanded*/
T0*oBC511keyword_r=NULL;
/*No:TMP_NAME.fz_infix*/
/*No:TMP_NAME.fz_class*/
/*No:TMP_NAME.us_or*/
/*No:TMP_NAME.fz_retry*/
/*No:TMP_NAME.fz_strip*/
T0* r240language_name(void){
T0* R=NULL;
R=((T0*)ms90_470);
return R;
}
/*No:NATIVE_INLINE_WITH_CURRENT.pretty_print*/
/*No:NATIVE_INLINE_WITH_CURRENT.fz_c_inlinewithcurrent*/
void r913get_started(T913* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
r153add_into(((T153*)(r764item(((T764*)((((T913*)C))->_list/*0*/)),_i))),a1);
_i=(_i)+(1);
}
}
/*No:FEATURE_CLAUSE_LIST.make*/
void r913pretty_print(T913* C){
int _i=0;
_i=1;
while (!((_i)>((((T764*)((T764*)((((T913*)C))->_list/*0*/))))->_upper/*8*/))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
r238skip(((T238*)(oBC364fmt)),1);
}
/*FI*/r153pretty_print(((T153*)(r764item(((T764*)((((T913*)C))->_list/*0*/)),_i))));
_i=(_i)+(1);
}
}
/*No:FEATURE_CLAUSE_LIST.list*/
/*No:FEATURE_CLAUSE_LIST.add_last*/
/*No:RUN_FEATURE_4.arguments*/
/*No:RUN_FEATURE_4.actuals_clients*/
void r857make(T857* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
r199put(((T199*)((((T368*)((T368*)(r857run_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);
r857initialize(C);
r604pop(((T604*)(oBC364small_eiffel)));
}
/*No:RUN_FEATURE_4.name*/
int r857arg_count(T857* C){
int R=0;
/*IF*/if (((((T857*)C))->_arguments/*20*/)!=((void*)(NULL))) {
R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T857*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_4.local_vars*/
/*No:RUN_FEATURE_4.base_feature*/
/*No:RUN_FEATURE_4.start_position*/
/*No:RUN_FEATURE_4.ensure_assertion*/
int r857is_exported_in(T857* C,T0* a1){
int R=0;
R=r636gives_permission_to(((T636*)(r857clients(C))),a1);
return R;
}
/*No:RUN_FEATURE_4.result_type*/
void r857add_client(T857* C,T0* a1){
int _i=0;
/*IF*/if (((((T857*)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*)((((T857*)C))->_actuals_clients/*12*/)),a1);
}
else {
_i=r187fast_index_of(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
/*IF*/if ((_i)>((((T187*)((T187*)((((T857*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
r187add_last(((T187*)((((T857*)C))->_actuals_clients/*12*/)),a1);
}
/*FI*/}
/*FI*/r368add_client(((T368*)(r857run_class(C))),a1);
}
/*No:RUN_FEATURE_4.require_assertion*/
/*No:RUN_FEATURE_4.use_current_state*/
/*No:RUN_FEATURE_4.current_type*/
T0* r857run_class(T857* C){
T0* R=NULL;
R=X291run_class((((T857*)C))->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_4.ucs_not_computed*/
/*No:RUN_FEATURE_4.routine_body*/
T0* r857clients(T857* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*IF*/if (((((T857*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
_bc=X291base_class((((T857*)C))->_current_type/*4*/);
_bfbc=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_base_class/*4*/;
/*IF*/if ((_bc)==((void*)(_bfbc))) {
R=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_clients/*24*/;
}
else {
R=r605clients_for(((T605*)_bc),(((T857*)C))->_name/*16*/);
}
/*FI*/C->_clients_memory=R;
}
else {
R=(((T857*)C))->_clients_memory/*8*/;
}
/*FI*/return R;
}
/*No:RUN_FEATURE_4.clients_memory*/
void r857initialize(T857* C){
C->_arguments=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_arguments/*28*/;
/*IF*/if ((((((T857*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T857*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_arguments=r31to_runnable(((T31*)((((T857*)C))->_arguments/*20*/)),(((T857*)C))->_current_type/*4*/);
}
/*FI*/C->_result_type=X291to_runnable((((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_result_type/*12*/,(((T857*)C))->_current_type/*4*/);
C->_local_vars=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
/*IF*/if ((((((T857*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T857*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
C->_local_vars=r620to_runnable(((T620*)((((T857*)C))->_local_vars/*48*/)),(((T857*)C))->_current_type/*4*/);
}
/*FI*/C->_routine_body=(((T696*)((T696*)((((T857*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
/*IF*/if (((((T857*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
C->_routine_body=r592to_runnable(((T592*)((((T857*)C))->_routine_body/*32*/)),(((T857*)C))->_current_type/*4*/);
}
/*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
C->_require_assertion=r696run_require((T0*)C);
}
/*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
C->_ensure_assertion=r696run_ensure((T0*)C);
}
/*FI*/}
int r284has_creation(T284* C,T0* a1){
int R=0;
r683add_position(X776start_position(a1));
r284error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T284*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_284));
return R;
}
/*No:TYPE_NONE.us_none*/
/*No:TYPE_NONE.is_anchored*/
/*No:TYPE_NONE.is_array*/
/*No:TYPE_NONE.is_a*/
/*No:TYPE_NONE.run_type*/
/*No:TYPE_NONE.is_pointer*/
/*No:TYPE_NONE.is_string*/
/*No:TYPE_NONE.is_like_feature*/
/*No:TYPE_NONE.is_like_current*/
void r284make(T284* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms19_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_NONE.start_position*/
/*No:TYPE_NONE.is_character*/
T0* r284written_mark(void){
T0* R=NULL;
R=((T0*)ms19_473);
return R;
}
/*No:TYPE_NONE.to_runnable*/
/*No:TYPE_NONE.is_run_type*/
/*No:TYPE_NONE.is_formal_generic*/
T0* r284generic_list(T284* C){
T0* R=NULL;
r284fatal_error_generic_list(C);
return R;
}
/*No:TYPE_NONE.is_real*/
/*No:TYPE_NONE.is_bit*/
void r284fatal_error_generic_list(T284* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_NONE.pretty_print*/
T0* r284smallest_ancestor(T0* a1){
T0* R=NULL;
R=a1;
return R;
}
/*No:TYPE_NONE.is_boolean*/
/*No:TYPE_NONE.is_double*/
/*No:TYPE_NONE.run_class*/
T0* r284run_time_mark(void){
T0* R=NULL;
R=((T0*)ms19_473);
return R;
}
int r284is_a_in(T284* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r284written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
_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* r284look_up_for(T284* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r284base_class(C))),a1,a2);
return R;
}
/*No:TYPE_NONE.expanded_initializer*/
/*No:TYPE_NONE.fz_dot*/
/*No:TYPE_NONE.is_generic*/
/*No:TYPE_NONE.used_as_reference*/
/*No:TYPE_NONE.is_reference*/
void r284error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r284base_class(T284* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T284*)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_NONE.is_any*/
/*No:TYPE_NONE.base_class_name*/
/*No:TYPE_NONE.is_expanded*/
/*No:TYPE_NONE.is_basic_eiffel_expanded*/
/*No:TYPE_NONE.is_none*/
/*No:TYPE_NONE.is_integer*/
/*No:PROCEDURE.arguments*/
T0* r297try_to_undefine(T297* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r297try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T297*)C))->_clients/*24*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:PROCEDURE.is_deferred*/
/*No:PROCEDURE.fz_bad_assertion*/
T0* r297runnable(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))) {
r297error(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:PROCEDURE.rescue_compound*/
void r297add_into(T297* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)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*)((((T297*)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:PROCEDURE.end_comment*/
T0* r297try_to_undefine_aux(T297* C,T0* a1,T0* a2){
T0* R=NULL;
{T853*n=malloc(sizeof(*n));
*n=M853;
r853from_effective(n,a1,(((T297*)C))->_arguments/*28*/,(((T297*)C))->_require_assertion/*36*/,(((T297*)C))->_ensure_assertion/*40*/,a2);
R=(T0*)n;
}
return R;
}
void r297make(T297* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r297make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1011;
}
/*No:PROCEDURE.not_computed*/
/*No:PROCEDURE.nb_errors*/
void r297pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
void r297make_routine(T297* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r297make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:PROCEDURE.local_vars*/
void r297set_header_comment(T297* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r297start_position(T297* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r297to_run_feature(T297* C,T0* a1,T0* a2){
T0* R=NULL;
r297check_obsolete(C);
{T845*n=malloc(sizeof(*n));
*n=M845;
r845make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:PROCEDURE.ensure_assertion*/
/*No:PROCEDURE.code_require*/
T0* r297run_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=r297runnable(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* r297run_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=r297runnable((((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:PROCEDURE.result_type*/
/*No:PROCEDURE.fz_03*/
/*No:PROCEDURE.em1*/
void r297pretty_print(T297* C){
T0* _fn=NULL;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r297pretty_print_profile(C);
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
/*IF*/if (((((T297*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
r805pretty_print(((T805*)((((T297*)C))->_obsolete_mark/*32*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (((((T297*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T297*)C))->_header_comment/*16*/)));
}
/*FI*//*IF*/if (((((T297*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r343pretty_print(((T343*)((((T297*)C))->_require_assertion/*36*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r297pretty_print_routine_body(C);
/*IF*/if (((((T297*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r633pretty_print(((T633*)((((T297*)C))->_ensure_assertion/*40*/)));
}
/*FI*//*IF*/if (((((T297*)C))->_rescue_compound/*44*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
r592pretty_print(((T592*)((((T297*)C))->_rescue_compound/*44*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
/*IF*/if ((((((T297*)C))->_end_comment/*48*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T297*)C))->_end_comment/*48*/)))))) {
r393pretty_print(((T393*)((((T297*)C))->_end_comment/*48*/)));
}
 else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
_fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
X776definition_pretty_print(_fn);
}
/*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
}
/*No:PROCEDURE.obsolete_mark*/
/*No:PROCEDURE.set_clients*/
/*No:PROCEDURE.em2*/
/*No:PROCEDURE.names*/
/*No:PROCEDURE.require_assertion*/
/*No:PROCEDURE.use_current_state*/
/*No:PROCEDURE.code_ensure*/
void r297set_rescue_compound(T297* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r297error(r297start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
void r297pretty_print_profile(T297* C){
r297pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r297pretty_print_arguments(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T297*)C))->_result_type/*12*/);
}
/*FI*/}
void r297pretty_print_names(T297* C){
int _i=0;
_i=1;
r297pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r297pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r297can_hide(T297* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T297*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T297*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T297*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T297*)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 (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T297*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r297start_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:PROCEDURE.header_comment*/
/*No:PROCEDURE.routine_body*/
int r297is_merge_with(T297* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T297*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T297*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T297*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T297*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T297*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T297*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r297error(r297start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:PROCEDURE.fz_dot*/
/*No:PROCEDURE.set_ensure_assertion*/
/*No:PROCEDURE.first_name*/
/*No:PROCEDURE.pretty_print_once_or_do*/
/*No:PROCEDURE.clients*/
void r297collect_for(T297* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T297*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T297*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T297*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T297*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T297*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T297*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r297error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:PROCEDURE.base_class*/
void r297pretty_print_arguments(T297* C){
/*IF*/if (((((T297*)C))->_arguments/*28*/)!=((void*)(NULL))) {
r31pretty_print(((T31*)((((T297*)C))->_arguments/*28*/)));
}
/*FI*/}
void r297pretty_print_routine_body(T297* C){
/*IF*/if (((((T297*)C))->_local_vars/*20*/)!=((void*)(NULL))) {
r620pretty_print(((T620*)((((T297*)C))->_local_vars/*20*/)));
}
/*FI*/r238indent(((T238*)(oBC364fmt)));
/*[IRF3.2pretty_print_once_or_do*/r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_706));
/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
/*IF*/if (((((T297*)C))->_routine_body/*52*/)!=((void*)(NULL))) {
r592pretty_print(((T592*)((((T297*)C))->_routine_body/*52*/)));
}
/*FI*/}
void r297make_e_feature(T297* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r297check_obsolete(T297* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T297*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T297*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r297warning(r297start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r297warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_REAL.arguments*/
T0* r835try_to_undefine(T835* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r835try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T835*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_REAL.is_deferred*/
void r835pretty_tail(T835* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_418));
/*[IRF3.6pretty_print*/{T936* C1=((T936*)(/*(IRF4.3value*/(((T835*)C))->_value_mem/*24*//*)*/));
r238put_string(((T238*)(oBC364fmt)),(((T936*)C1))->_to_string/*12*/);
}/*]*/
}
void r835add_into(T835* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)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*)((((T835*)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* r835try_to_undefine_aux(T835* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r835start_position(C));
r835error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r835make(T835* C,T0* a1,T0* a2,T0* a3){
r835make_e_feature(C,a1,a2);
C->_value_mem=a3;
}
/*No:CST_ATT_REAL.nb_errors*/
void r835pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*No:CST_ATT_REAL.set_header_comment*/
T0* r835start_position(T835* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r835to_run_feature(T835* 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_REAL.ensure_assertion*/
/*No:CST_ATT_REAL.code_require*/
/*No:CST_ATT_REAL.result_type*/
/*No:CST_ATT_REAL.em1*/
void r835pretty_print(T835* C){
r835pretty_print_profile(C);
r835pretty_tail(C);
r238put_character(((T238*)(oBC364fmt)),'\73');
/*IF*/if (((((T835*)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*)((((T835*)C))->_header_comment/*16*/)));
}
/*FI*/}
/*No:CST_ATT_REAL.set_clients*/
/*No:CST_ATT_REAL.em2*/
/*No:CST_ATT_REAL.require_assertion*/
/*No:CST_ATT_REAL.value*/
/*No:CST_ATT_REAL.names*/
/*No:CST_ATT_REAL.value_mem*/
void r835pretty_print_profile(T835* C){
r835pretty_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 (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T835*)C))->_result_type/*12*/);
}
/*FI*/}
void r835pretty_print_names(T835* C){
int _i=0;
_i=1;
r835pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r835pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T835*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r835can_hide(T835* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T835*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r835error(r835start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r835error(r835start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T835*)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_REAL.header_comment*/
int r835is_merge_with(T835* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T835*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r835error(r835start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r835error(r835start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T835*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T835*)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_REAL.fz_dot*/
/*No:CST_ATT_REAL.first_name*/
/*No:CST_ATT_REAL.clients*/
void r835collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r835error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_REAL.base_class*/
/*No:CST_ATT_REAL.pretty_print_arguments*/
void r835make_e_feature(T835* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
/*No:FMT.semi_colon_flag*/
void r238connect_to(T238* C,T0* a1){
C->_sfw=a1;
C->_line=1;
C->_column=1;
C->_blank_lines=0;
C->_last_character='\0';
}
/*No:FMT.C_zen*/
/*No:FMT.set_mode*/
int r238zen_mode(T238* C){
int R=0;
R=((((T238*)C))->_mode/*4*/)==(1);
return R;
}
/*No:FMT.C_parano*/
/*No:FMT.set_default*/
void r238keyword(T238* C,T0* a1){
{int z1=(((T238*)C))->_last_character/*20*/;

if((0==z1)||(10==z1)||(32==z1)){
}
 else{r238put_character(C,'\40');
}}
r238put_string(C,a1);
/*IF*/if (((((T238*)C))->_last_character/*20*/)!=('\40')) {
r238put_character(C,'\40');
}
/*FI*/}
/*No:FMT.line*/
/*No:FMT.mode*/
/*No:FMT.make*/
int r238print_end_if(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
}
 else 
if((2==z1)){
R=1;
}
 else {R=1;
}}
return R;
}
/*No:FMT.C_default*/
/*No:FMT.column*/
int r238print_end_routine(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
R=1;
}
 else 
if((2==z1)){
R=1;
}
 else {R=1;
}}
return R;
}
/*No:FMT.set_semi_colon_flag*/
void r238level_incr(T238* C){
C->_indent_level=((((T238*)C))->_indent_level/*21*/)+(1);
}
/*No:FMT.set_zen*/
void r238skip(T238* C,int a1){
while (!(((((T238*)C))->_blank_lines/*16*/)>=(a1))) {
r238put_character(C,'\n');
}
r238indent(C);
}
T0*oBC238tmp_string=NULL;
int r238print_end_debug(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
}
 else 
if((2==z1)){
R=1;
}
 else {R=1;
}}
return R;
}
/*No:FMT.last_character*/
void r238put_string(T238* C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
r238put_character(C,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
}
void r238indent(T238* C){
int _goal=0;
_goal=(1)+(((((T238*)C))->_indent_level/*21*/)*(3));
/*IF*/if (((((T238*)C))->_column/*8*/)>(_goal)) {
r238put_character(C,'\n');
}
/*FI*/while (!((_goal)==((((T238*)C))->_column/*8*/))) {
r238put_character(C,'\40');
}
{int z1=(((T238*)C))->_last_character/*20*/;

if((10==z1)||(32==z1)){
}
 else{r238put_character(C,'\n');
r238indent(C);
}}
}
/*No:FMT.set_parano*/
void r238put_integer(T238* C,int a1){
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC238tmp_string)))))->_count)=(0);
/*]*/
r2append_in(a1,oBC238tmp_string);
r238put_string(C,oBC238tmp_string);
}
int r238print_end_check(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
}
 else 
if((2==z1)){
R=1;
}
 else {R=1;
}}
return R;
}
/*No:FMT.indent_increment*/
void r238put_character(T238* C,char a1){
/*[IRF3.6put_character*/{T544* C1=((T544*)((((T238*)C))->_sfw/*0*/));
char b1=a1;
putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
}/*]*/
C->_last_character=a1;
{int z1=a1;

if((10==z1)){
C->_line=((((T238*)C))->_line/*12*/)+(1);
C->_column=1;
C->_blank_lines=((((T238*)C))->_blank_lines/*16*/)+(1);
}
 else 
if((9==z1)||(32==z1)){
C->_column=((((T238*)C))->_column/*8*/)+(1);
}
 else{C->_column=((((T238*)C))->_column/*8*/)+(1);
C->_blank_lines=-(1);
}}
}
/*No:FMT.set_end*/
void r238level_decr(T238* C){
C->_indent_level=((((T238*)C))->_indent_level/*21*/)-(1);
}
/*No:FMT.sfw*/
int r238print_end_loop(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
}
 else 
if((2==z1)){
R=1;
}
 else {R=1;
}}
return R;
}
/*No:FMT.indent_level*/
/*No:FMT.blank_lines*/
void r238put_end(T238* C,T0* a1){
r238put_string(C,((T0*)ms1_238));
r238put_string(C,a1);
r238put_character(C,'\n');
}
int r238print_end_inspect(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
}
 else 
if((2==z1)){
R=1;
}
 else {R=1;
}}
return R;
}
int r238print_current(T238* C){
int R=0;
{int z1=(((T238*)C))->_mode/*4*/;

if((1==z1)){
}
 else 
if((0==z1)){
}
 else 
if((2==z1)){
}
 else {R=1;
}}
return R;
}
/*No:FMT.set_indent_level*/
/*No:FMT.C_end*/
/*No:PROC_CALL_N.arguments*/
T0* r568add_comment(T568* 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;
}
/*No:PROC_CALL_N.fz_bad_arguments*/
void r568make(T568* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:PROC_CALL_N.nb_errors*/
/*No:PROC_CALL_N.feature_name*/
/*No:PROC_CALL_N.arg_count*/
/*No:PROC_CALL_N.run_feature*/
/*No:PROC_CALL_N.set_run_compound*/
T0* r568start_position(T568* C){
T0* R=NULL;
R=X776start_position((((T568*)C))->_feature_name/*12*/);
return R;
}
/*No:PROC_CALL_N.target*/
/*No:PROC_CALL_N.set_run_feature*/
T0* r568to_runnable(T568* C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
/*IF*/if (((((T568*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r568to_runnable_0(C,a1);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_a=r431to_runnable(((T431*)((((T568*)C))->_arguments/*20*/)),r568current_type(C));
/*IF*/if ((_a)==((void*)(NULL))) {
r568error(r431start_position(((T431*)((((T568*)C))->_arguments/*20*/))),((T0*)ms56_470));
}
else {
C->_arguments=_a;
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T568*)C))->_arguments/*20*/)),(((T568*)C))->_run_feature/*16*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T568*n=malloc(sizeof(*n));
*n=M568;
r568make(n,(((T568*)C))->_target/*8*/,(((T568*)C))->_feature_name/*12*/,(((T568*)C))->_arguments/*20*/);
R=(T0*)n;
}
R=r568to_runnable(((T568*)R),a1);
}
/*FI*/return R;
}
void r568pretty_print(T568* C){
X662print_as_target((((T568*)C))->_target/*8*/);
r238put_string(((T238*)(oBC364fmt)),X776to_string((((T568*)C))->_feature_name/*12*/));
r238level_incr(((T238*)(oBC364fmt)));
r431pretty_print(((T431*)((((T568*)C))->_arguments/*20*/)));
r238level_decr(((T238*)(oBC364fmt)));
/*IF*/if ((((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/) {
r238put_character(((T238*)(oBC364fmt)),'\73');
}
/*FI*/}
T0* r568current_type(T568* C){
T0* R=NULL;
/*IF*/if (((((T568*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T568*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:PROC_CALL_N.run_compound*/
void r568to_runnable_0(T568* C,T0* a1){
C->_run_compound=a1;
r568cpc_to_runnable(C,r568current_type(C));
/*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T568*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
r683add_position(X496start_position((((T568*)C))->_run_feature/*16*/));
r568error(X776start_position((((T568*)C))->_feature_name/*12*/),((T0*)ms1_173));
}
/*FI*/}
void r568cpc_to_runnable(T568* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T568*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T568*)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((((T568*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T568*)C))->_target/*8*/,(((T568*)C))->_run_feature/*16*/);
}
void r568error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:PROC_CALL_N.fatal_error*/
/*No:PROC_CALL_N.end_mark_comment*/
T0* r568make_runnable(T568* C,T0* a1,T0* a2,T0* a3,T0* a4){
T0* R=NULL;
/*IF*/if (((((T568*)C))->_run_compound/*4*/)==((void*)(NULL))) {
R=(T0*)C;
r568make(((T568*)R),a2,(((T568*)C))->_feature_name/*12*/,a3);
C->_run_compound=a1;
C->_run_feature=a4;
}
else {
{T568*n=malloc(sizeof(*n));
*n=M568;
r568make(n,a2,(((T568*)C))->_feature_name/*12*/,a3);
R=(T0*)n;
}
/*[IRF3.3set_run_compound*/((((T568*)(((T568*)R))))->_run_compound)=(a1);
/*]*/
/*[IRF3.3set_run_feature*/((((T568*)(((T568*)R))))->_run_feature)=(a4);
/*]*/
}
/*FI*/return R;
}
void r362check_creation_clause(T362* C,T0* a1){
/*IF*/if (/*(IRF4.7has_creation_clause*/((((T605*)((T605*)(X291base_class(a1)))))->_creation_clause_list/*44*/)!=(NULL)/*)*/) {
/*[IRF3.6append*/{T0* b1=((T0*)ms1_334);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms2_334));
r362error((((T362*)C))->_start_position/*8*/,((T0*)ms3_334));
}
/*FI*/}
T0* r362add_comment(T362* 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 r362check_created_type(T362* 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((((T362*)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((((T362*)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))));
}
/*No:CREATION_CALL_1.writable*/
void r362make(T362* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_writable=a2;
}
/*No:CREATION_CALL_1.start_position*/
T0* r362to_runnable(T362* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
/*IF*/if (((((T362*)C))->_run_compound/*4*/)==((void*)(NULL))) {
r362check_writable(C,a1);
_t=X662result_type((((T362*)C))->_writable/*12*/);
r362check_created_type(C,_t);
r362check_creation_clause(C,_t);
R=(T0*)C;
}
else {
{T362*n=malloc(sizeof(*n));
*n=M362;
r362make(n,(((T362*)C))->_start_position/*8*/,(((T362*)C))->_writable/*12*/);
R=(T0*)n;
}
R=r362to_runnable(((T362*)R),a1);
}
/*FI*/return R;
}
void r362pretty_print(T362* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_362));
X662pretty_print((((T362*)C))->_writable/*12*/);
/*IF*/if ((((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/) {
r238put_character(((T238*)(oBC364fmt)),'\73');
}
/*FI*/}
T0* r362current_type(T362* C){
T0* R=NULL;
/*IF*/if (((((T362*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T362*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:CREATION_CALL_1.run_compound*/
void r362check_writable(T362* C,T0* a1){
T0* _w=NULL;
C->_run_compound=a1;
_w=X662to_runnable((((T362*)C))->_writable/*12*/,r362current_type(C));
/*IF*/if ((_w)==((void*)(NULL))) {
r683add_position(X662start_position((((T362*)C))->_writable/*12*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
C->_writable=_w;
}
/*FI*/}
void r362error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CREATION_CALL_1.fatal_error*/
/*No:CREATION_CALL_1.end_mark_comment*/

