/*
ANSI C code generated by SmallEiffel The GNU Eiffel Compiler
Release -0.76 (Saturday 11th november 2000)
Copyright (C), 1994-2000 - LORIA - UHP - CRIN - INRIA - FRANCE
Dominique COLNET and Suzanne COLLIN - colnet@loria.fr
http://SmallEiffel.loria.fr
*/
#ifdef __cplusplus
}
#endif
#include "compile_to_c.h"
#ifdef __cplusplus
extern "C" {
#endif


void r233collect_c_tmp(T233* C){
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
X96collect_c_tmp((/*RF2*/(C)->_run_feature/*16*/));
}
/*FI]*/
X126collect_c_tmp((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*8*/))!=((void*)(NULL))){
/*SSPRF3*//*X245collect_c_tmp*/r245collect_c_tmp((T245*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}


void r233finalize(T233* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(/*RF2*/(C)->_run_feature/*16*/);
_rc=/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)_rf))->_run_class/*12*/);
(/*SFN*/C->_run_feature)=r60dynamic((T60*)(/*(IRF4.6first*/((/*RF2*/((T63*)((/*RF2*/(((T60*)_rc))->_running/*21*/)))->_storage/*4*/))[0]/*)*/),_rf);
}


T0* r233static_result_base_class(T233* C){
T0* R=NULL;
T0* _cn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _bc=NULL;
_bc=X126static_result_base_class((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if((_bc)!=((void*)(NULL))){
_e_feature=r61e_feature(((T61*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
/*[IF*/
if((_e_feature)!=((void*)(NULL))){
_rt=X99result_type(_e_feature);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_cn=X62static_base_class_name(_rt);
/*[IF*/
if((_cn)!=((void*)(NULL))){
R=r77base_class(((T77*)_cn));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


void r261compile_to_c(T261* C){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms261_162019));
/*]*/
/*[IF*/
if((r3is_letter((/*RF2*/(C)->_value/*12*/)))||(r3is_digit((/*RF2*/(C)->_value/*12*/)))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=(/*RF2*/(C)->_value/*12*/);
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
 else if(((/*RF2*/(C)->_value/*12*/))==(((T3)'\n'))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\134');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'n');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\134');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),r2to_octal(T3code((/*RF2*/(C)->_value/*12*/))));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms261_236));
/*]*/
}


void r261make(T261* C,T104 a1,T3 a2,T2 a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_value)=a2;
/*[IRF3.3set_pretty_print_mode*/((((T261*)(C)))->_pretty_print_mode)=(a3);
/*]*/
}


T2 r261isa_dca_inline_argument(void){
T2 R=0;
/*[IF*/
{/*AT*/R=-(1);
}
/*FI]*/
return R;
}
T0*oBC261result_type=NULL;
int fBC261result_type=0;


T0* r261result_type(void){
if(fBC261result_type==0){fBC261result_type=1;{
T104 _unknown_position={NULL,0};
{T362*n=((T362*)se_malloc(sizeof(*n))/*16*/);
*n=M362;
oBC261result_type=((T0*)n);
r362make(n,_unknown_position);
}
}}
return oBC261result_type;
}


T0* r261add_comment(T261* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T323*n=((T323*)se_malloc(sizeof(*n))/*12*/);
*n=M323;
r323make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r261to_runnable(T261* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
R=((T0*)(C));
_t=r362to_runnable((T362*)(r261result_type()),a1);
return R;
}


T0* r261static_result_base_class(void){
T0* R=NULL;
R=r59get_class(((T0*)ms21_33120277));
return R;
}


void r326from_e_when(T326* C,T0* a1){
T0* _when_item=NULL;
T2 _i=0;
{T104 se_tmp0;
(/*SFN*/C->_start_position)=(/*RF2*/(((T326*)a1))->_start_position/*0*/);
}
(/*SFN*/C->_list)=r333twin((T333*)((/*RF2*/(((T326*)a1))->_list/*24*/)));
_i=(/*RF2*/((T333*)((/*RF2*/(C)->_list/*24*/)))->_lower/*12*/);
while (!((_i)>((/*RF2*/((T333*)((/*RF2*/(C)->_list/*24*/)))->_upper/*8*/))))
{
_when_item=X332twin(r333item((T333*)((/*RF2*/(C)->_list/*24*/)),_i));
/*SSPRF3*//*X332clear_e_when*//*[IRF3.3clear_e_when*/((((T337*)(((T337*)_when_item))))->_e_when)=(NULL);
/*]*/
/*[IRF3.6put*/{T333* C1=(T333*)((/*RF2*/(C)->_list/*24*/));
T0* b1=_when_item;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
_i=(_i)+(1);
}
(/*SFN*/C->_header_comment)=(/*RF2*/(((T326*)a1))->_header_comment/*8*/);
(/*SFN*/C->_compound)=(/*RF2*/(((T326*)a1))->_compound/*12*/);
}


void r326error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


void r326add_value(T326* C,T0* a1){
T0* _element=NULL;
{T337*n=((T337*)se_malloc(sizeof(*n))/*16*/);
*n=M337;
/*[IRF3.3make*/((((T337*)(n)))->_expression)=(a1);
/*]*/
_element=((T0*)n);
}
/*[IF*/
if(((/*RF2*/(C)->_list/*24*/))==((void*)(NULL))){
{T333*n=((T333*)se_malloc(sizeof(*n))/*16*/);
*n=M333;
r333with_capacity(n,4,1);
(/*SFN*/C->_list)=((T0*)n);
}
}
/*FI]*/
r333add_last((T333*)((/*RF2*/(C)->_list/*24*/)),_element);
}


T6 r326includes_integer(T326* C,T2 a1){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((((/*RF2*/(C)->_values/*20*/))!=((void*)(NULL)))&&((a1)>=(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/)))))&&((a1)<=(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))))){
_i=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
while (!((R)||((_i)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/)))))
{
R=r6_px_and((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))<=(a1),(a1)<=(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(1))));
_i=(_i)+(2);
}
}
/*FI]*/
return R;
}


void r326compile_to_c(T326* C){
T2 _bi=0;
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_4425));
/*]*/
_bi=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
while (!((_bi)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_bi))==(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_bi)+(1)))){
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_bi));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_366));
/*]*/
r83put_inspect((T83*)(oBC19cpp));
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_bi));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_361a));
/*]*/
r83put_inspect((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_6305));
/*]*/
r83put_inspect((T83*)(oBC19cpp));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_361));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_bi)+(1)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_bi=(_bi)+(2);
/*[IF*/
if((_bi)<((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_744));
/*]*/
}
/*FI]*/
}
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_1650));
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_compound/*12*/)));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}


T6 r326stupid_switch(T326* C,T0* a1){
T6 R=0;
R=(((/*RF2*/(C)->_compound/*12*/))==((void*)(NULL)))||(r159stupid_switch((T159*)((/*RF2*/(C)->_compound/*12*/)),a1));
return R;
}


T6 r326includes_integer_between(T326* C,T2 a1,T2 a2){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((((/*RF2*/(C)->_values/*20*/))!=((void*)(NULL)))&&((a2)>=(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/)))))&&((a1)<=(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))))){
_i=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
while (!((R)||((_i)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/)))))
{
R=r6_px_and((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))<=(a2),(a1)<=(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(1))));
_i=(_i)+(2);
}
}
/*FI]*/
return R;
}


void r326make(T326* C,T104 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_header_comment)=a2;
}


void r326add_when_item_1(T326* C,T0* a1){
T2 _v=0;
T2 _i=0;
_v=(/*RF2*/(((T337*)a1))->_expression_value/*12*/);
/*[IF*/
if(/*(IRF4.6includes*/r327includes_integer(((T327*)((/*RF2*/((T325*)(/*(IRF4.6e_inspect*/(/*RF2*/(((T327*)((/*RF2*/(C)->_when_list/*16*/))))->_e_inspect/*0*/)/*)*/))->_when_list/*16*/))),_v)/*)*/){
{T104 se_tmp0;
r326err_occ(C,_v,(*(se_tmp0=r337start_position(((T337*)a1)),&se_tmp0)));
}
}
 else if(((/*RF2*/(C)->_values/*20*/))==((void*)(NULL))){
{T263*n=((T263*)se_malloc(sizeof(*n))/*20*/);
*n=M263;
r263make(n,501,502);
(/*SFN*/C->_values)=((T0*)n);
}
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
_i=r326locate_in_values(C,_v);
/*[IF*/
if((_i)==((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/))){
/*[IF*/
if((_v)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))-(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/))-(2),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/));
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/))+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
/*FI]*/
}
 else if((_i)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))){
/*[IF*/
if((_v)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))+(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(_i)-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))+(2));
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(r6_px_and((_v)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))+(1)),(_v)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))-(1)))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(1));
T2 b2=(_i)-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
while (!((_i)>(((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(2))))
{
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(2));
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(3));
T2 b2=(_i)+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
_i=(_i)+(2);
}
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(2));
}
 else if((_v)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))+(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(_i)-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
 else if((_v)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))-(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))+(2));
_i=((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(1);
while (!((_v)>(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))))
{
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(2));
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1));
T2 b2=(_i)+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
_i=(_i)-(2);
}
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_v;
T2 b2=(_i)+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}


void r326add_when_item_2(T326* C,T0* a1){
T2 _i=0;
T2 _u=0;
T2 _l=0;
_l=(/*RF2*/(((T338*)a1))->_lower_value/*16*/);
_u=(/*RF2*/(((T338*)a1))->_upper_value/*20*/);
/*[IF*/
if((_l)>=(_u)){
{T104 se_tmp0;
r326error((*(se_tmp0=r338start_position(((T338*)a1)),&se_tmp0)),((T0*)ms326_281822138));
}
}
 else if(/*(IRF4.6includes_between*/r327includes_integer_between(((T327*)((/*RF2*/((T325*)(/*(IRF4.6e_inspect*/(/*RF2*/(((T327*)((/*RF2*/(C)->_when_list/*16*/))))->_e_inspect/*0*/)/*)*/))->_when_list/*16*/))),_l,_u)/*)*/){
_i=_l;
while (!(/*(IRF4.6includes*/r327includes_integer(((T327*)((/*RF2*/((T325*)(/*(IRF4.6e_inspect*/(/*RF2*/(((T327*)((/*RF2*/(C)->_when_list/*16*/))))->_e_inspect/*0*/)/*)*/))->_when_list/*16*/))),_i)/*)*/))
{
/*[IF*/
if((_i)==(_l)){
_l=(_l)+(1);
_i=_u;
}
else{
_u=(_u)-(1);
_i=_l;
}
/*FI]*/
}
{T104 se_tmp0;
r326err_occ(C,_i,(*(se_tmp0=r338start_position(((T338*)a1)),&se_tmp0)));
}
}
 else if(((/*RF2*/(C)->_values/*20*/))==((void*)(NULL))){
{T263*n=((T263*)se_malloc(sizeof(*n))/*20*/);
*n=M263;
r263make(n,501,502);
(/*SFN*/C->_values)=((T0*)n);
}
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_l;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_u;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
_i=r326locate_in_values(C,_l);
/*[IF*/
if((_i)==((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/))){
/*[IF*/
if((_u)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))-(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_l;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/))-(2),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/));
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_l;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_u;
T2 b2=((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/))+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
/*FI]*/
}
 else if((_i)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))){
/*[IF*/
if((_l)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))+(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_u;
T2 b2=(_i)-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))+(2));
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_l;
T2 b2=((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_u;
T2 b2=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(r6_px_and((_l)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))+(1)),(_u)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))-(1)))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(1));
T2 b2=(_i)-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
while (!((_i)>(((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(2))))
{
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(2));
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(3));
T2 b2=(_i)+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
_i=(_i)+(2);
}
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(2));
}
 else if((_l)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))+(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_u;
T2 b2=(_i)-(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
 else if((_u)==((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i))-(1))){
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_l;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
else{
r263resize((T263*)((/*RF2*/(C)->_values/*20*/)),(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/),((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))+(2));
_i=((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))-(1);
while (!((_l)>(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1)))))
{
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(2));
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)-(1));
T2 b2=(_i)+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
_i=(_i)-(2);
}
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_l;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
/*[IRF3.6put*/{T263* C1=(T263*)((/*RF2*/(C)->_values/*20*/));
T2 b1=_u;
T2 b2=(_i)+(1);
((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}


T0* r326to_runnable_character(T326* C,T0* a1){
T0* R=NULL;
T0* _when_item=NULL;
T2 _i=0;
T2 _ne=0;
T0* _ct=NULL;
/*[IF*/
if(((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL))){
_ne=/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/;
(/*SFN*/C->_when_list)=a1;
/*[IF*/
if(((/*RF2*/(C)->_list/*24*/))==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/((T325*)(/*(IRF4.6e_inspect*/(/*RF2*/(((T327*)((/*RF2*/(C)->_when_list/*16*/))))->_e_inspect/*0*/)/*)*/))->_start_position/*4*/));
}
{T104 se_tmp0;
r326error((/*RF2*/(C)->_start_position/*0*/),((T0*)ms326_811199186));
}
}
else{
_i=(/*RF2*/((T333*)((/*RF2*/(C)->_list/*24*/)))->_lower/*12*/);
while (!(((_i)>((/*RF2*/((T333*)((/*RF2*/(C)->_list/*24*/)))->_upper/*8*/)))||(((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)-(_ne))>(0))))
{
_when_item=X332to_runnable_character(r333item((T333*)((/*RF2*/(C)->_list/*24*/)),_i),(T0*)C);
/*[IF*/
if((_when_item)==((void*)(NULL))){
{T104 se_tmp0;
r326error((/*RF2*/(C)->_start_position/*0*/),((T0*)ms326_1329248467));
}
}
else{
/*[IRF3.6put*/{T333* C1=(T333*)((/*RF2*/(C)->_list/*24*/));
T0* b1=_when_item;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))!=((void*)(NULL))){
_ct=/*SSWARF2*//*X96current_type*/(/*RF2*/((T154*)(/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/))->_current_type/*8*/);
(/*SFN*/C->_compound)=r159to_runnable((T159*)((/*RF2*/(C)->_compound/*12*/)),_ct);
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))==((void*)(NULL))){
{T104 se_tmp0;
r326error((/*RF2*/(C)->_start_position/*0*/),((T0*)ms326_1329248467));
}
}
/*FI]*/
}
/*FI]*/
R=((T0*)(C));
}
else{
{T326*n=((T326*)se_malloc(sizeof(*n))/*28*/);
*n=M326;
r326from_e_when(n,(T0*)C);
R=((T0*)n);
}
R=r326to_runnable_character(((T326*)R),a1);
}
/*FI]*/
return R;
}


void r326afd_check(T326* C){
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_compound/*12*/)));
}
/*FI]*/
}


T6 r326use_current(T326* C){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))!=((void*)(NULL))){
R=r159use_current((T159*)((/*RF2*/(C)->_compound/*12*/)));
}
/*FI]*/
return R;
}


T0* r326to_runnable_integer(T326* C,T0* a1){
T0* R=NULL;
T0* _when_item=NULL;
T2 _i=0;
T2 _ne=0;
T0* _ct=NULL;
/*[IF*/
if(((/*RF2*/(C)->_when_list/*16*/))==((void*)(NULL))){
_ne=/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/;
(/*SFN*/C->_when_list)=a1;
/*[IF*/
if(((/*RF2*/(C)->_list/*24*/))==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/((T325*)(/*(IRF4.6e_inspect*/(/*RF2*/(((T327*)((/*RF2*/(C)->_when_list/*16*/))))->_e_inspect/*0*/)/*)*/))->_start_position/*4*/));
}
{T104 se_tmp0;
r326error((/*RF2*/(C)->_start_position/*0*/),((T0*)ms326_811199186));
}
}
else{
_i=(/*RF2*/((T333*)((/*RF2*/(C)->_list/*24*/)))->_lower/*12*/);
while (!(((_i)>((/*RF2*/((T333*)((/*RF2*/(C)->_list/*24*/)))->_upper/*8*/)))||(((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)-(_ne))>(0))))
{
_when_item=X332to_runnable_integer(r333item((T333*)((/*RF2*/(C)->_list/*24*/)),_i),(T0*)C);
/*[IF*/
if((_when_item)==((void*)(NULL))){
{T104 se_tmp0;
r326error((/*RF2*/(C)->_start_position/*0*/),((T0*)ms326_1329248467));
}
}
else{
/*[IRF3.6put*/{T333* C1=(T333*)((/*RF2*/(C)->_list/*24*/));
T0* b1=_when_item;
T2 b2=_i;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))!=((void*)(NULL))){
_ct=/*SSWARF2*//*X96current_type*/(/*RF2*/((T154*)(/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/))->_current_type/*8*/);
(/*SFN*/C->_compound)=r159to_runnable((T159*)((/*RF2*/(C)->_compound/*12*/)),_ct);
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))==((void*)(NULL))){
{T104 se_tmp0;
r326error((/*RF2*/(C)->_start_position/*0*/),((T0*)ms326_1329248467));
}
}
/*FI]*/
}
/*FI]*/
R=((T0*)(C));
}
else{
{T326*n=((T326*)se_malloc(sizeof(*n))/*28*/);
*n=M326;
r326from_e_when(n,(T0*)C);
R=((T0*)n);
}
R=r326to_runnable_integer(((T326*)R),a1);
}
/*FI]*/
return R;
}


T2 r326locate_in_values(T326* C,T2 a1){
T2 R=0;
R=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
while (!(((R)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/)))||((a1)<(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),R)))))
{
R=(R)+(2);
}
return R;
}


void r326err_occ(T326* C,T2 a1,T104 a2){
{T104 se_tmp0;
r82add_position((/*RF2*/((T325*)(/*(IRF4.6e_inspect*/(/*RF2*/(((T327*)((/*RF2*/(C)->_when_list/*16*/))))->_e_inspect/*0*/)/*)*/))->_start_position/*4*/));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms326_1190106281);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=r2to_string(a1);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r326error(a2,((T0*)ms326_1936418471));
}


T2 r326largest_range_of_values(T326* C){
T2 R=0;
T2 _range=0;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_values/*20*/))!=((void*)(NULL))){
_i=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
while (!((_i)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))))
{
_range=((r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_i)+(1)))-(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_i)))+(1);
/*[IF*/
if((_range)>(R)){
R=_range;
}
/*FI]*/
_i=(_i)+(2);
}
}
/*FI]*/
return R;
}


void r326add_slice(T326* C,T0* a1,T0* a2){
T0* _element=NULL;
{T338*n=((T338*)se_malloc(sizeof(*n))/*24*/);
*n=M338;
r338make(n,a1,a2);
_element=((T0*)n);
}
/*[IF*/
if(((/*RF2*/(C)->_list/*24*/))==((void*)(NULL))){
{T333*n=((T333*)se_malloc(sizeof(*n))/*16*/);
*n=M333;
r333with_capacity(n,4,1);
(/*SFN*/C->_list)=((T0*)n);
}
}
/*FI]*/
r333add_last((T333*)((/*RF2*/(C)->_list/*24*/)),_element);
}


void r326compile_to_c_switch(T326* C){
T2 _v=0;
T2 _bi=0;
_bi=(/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_lower/*16*/);
while (!((_bi)>((/*RF2*/((T263*)((/*RF2*/(C)->_values/*20*/)))->_upper/*12*/))))
{
_v=r263item((T263*)((/*RF2*/(C)->_values/*20*/)),_bi);
while (!((_v)>(r263item((T263*)((/*RF2*/(C)->_values/*20*/)),(_bi)+(1)))))
{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_77412));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_v);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_300));
/*]*/
_v=(_v)+(1);
}
_bi=(_bi)+(2);
}
/*[IF*/
if(((/*RF2*/(C)->_compound/*12*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_compound/*12*/)));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms326_1965730));
/*]*/
}


void r352c_initialize_in(T352* C,T0* a1){
X62c_initialize_in((/*RF2*/(C)->_run_type/*28*/),a1);
}


void r352c_type_for_external_in(T352* C,T0* a1){
/*[IF*/
if(r352is_reference(C)){
r7append(((T7*)a1),((T0*)ms20_18150));
r7extend(((T7*)a1),((T3)'\52'));
}
else{
r352c_type_for_result_in(C,a1);
}
/*FI]*/
}


T0* r352generic_list(T352* C){
T0* R=NULL;
/*[IF*/
if(r352is_generic(C)){
R=X62generic_list((/*RF2*/(C)->_run_type/*28*/));
}
else{
r352fatal_error_generic_list(C);
}
/*FI]*/
return R;
}


T6 r352is_bit(T352* C){
T6 R=0;
R=X62is_bit((/*RF2*/(C)->_run_type/*28*/));
return R;
}
T0*oBC353written_mark_buffer=NULL;


T6 r352has_creation(T352* C,T0* a1){
T6 R=0;
R=X62has_creation((/*RF2*/(C)->_run_type/*28*/),a1);
return R;
}


T0* r352run_time_mark(T352* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_type/*28*/))!=((void*)(NULL))){
R=X62run_time_mark((/*RF2*/(C)->_run_type/*28*/));
}
/*FI]*/
return R;
}


T6 r352is_any(T352* C){
T6 R=0;
R=X62is_any((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T2 r352c_sizeof(T352* C){
T2 R=0;
R=X62c_sizeof((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352c_type_for_result_in(T352* C,T0* a1){
X62c_type_for_result_in((/*RF2*/(C)->_run_type/*28*/),a1);
}


T6 r352is_native_array(T352* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}


void r352gc_mark_in(T352* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(r352id(C),a1);
}


void r352just_before_gc_mark_in(T352* C,T0* a1){
X62just_before_gc_mark_in((/*RF2*/(C)->_run_type/*28*/),a1);
}


void r352with(T352* C,T0* a1,T0* a2){
{T104 se_tmp0;
(/*SFN*/C->_start_position)=(/*RF2*/(((T352*)a1))->_start_position/*12*/);
}
(/*SFN*/C->_like_what)=(/*RF2*/(((T352*)a1))->_like_what/*20*/);
(/*SFN*/C->_written_mark)=(/*RF2*/(((T352*)a1))->_written_mark/*24*/);
(/*SFN*/C->_run_type)=a2;
}


T6 r352is_pointer(T352* C){
T6 R=0;
R=X62is_pointer((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T2 r352id(T352* C){
T2 R=0;
R=(/*RF2*/((T60*)(r352run_class(C)))->_id/*16*/);
return R;
}


void r352mapping_cast(T352* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62mapping_cast_buffer))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\50'));
r352c_type_for_target_in(C,oBC62mapping_cast_buffer);
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\51'));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62mapping_cast_buffer);
/*]*/
}


T0* r352static_base_class_name(T352* C){
T0* R=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _bc=NULL;
{T104 se_tmp0;
_bc=(/*RF2*/((/*RF2*/(C)->_start_position/*12*/))._base_class/*0*/);
}
_e_feature=r61e_feature(((T61*)_bc),/*(IRF4.3like_feature*/(/*RF2*/(C)->_like_what/*20*/)/*)*/);
/*[IF*/
if((_e_feature)!=((void*)(NULL))){
_rt=X99result_type(_e_feature);
/*[IF*/
if((_rt)!=((void*)(NULL))){
R=X62static_base_class_name(_rt);
}
/*FI]*/
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms20_877484516);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*12*/));
}
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
return R;
}


T6 r352is_real(T352* C){
T6 R=0;
R=X62is_real((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352is_none(T352* C){
T6 R=0;
R=X62is_none((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352c_initialize(T352* C){
X62c_initialize((/*RF2*/(C)->_run_type/*28*/));
}


T6 r352need_gc_mark_function(T352* C){
T6 R=0;
R=X62need_gc_mark_function((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352fatal_error_generic_list(T352* C){
r82add_type((T0*)C,((T0*)ms62_1313445026));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r352c_type_for_argument_in(T352* C,T0* a1){
X62c_type_for_argument_in((/*RF2*/(C)->_run_type/*28*/),a1);
}


void r352anchor_cycle_end(T352* C){
{T104 se_tmp0;
/*[IF*/
if(!se_cmpT104(((/*RF2*/(C)->_start_position/*12*/)),(/*(IRF4.6first*/((/*RF2*/((T105*)(oBC353visited))->_storage/*0*/))[0]/*)*/))){
{T104 se_tmp0;
/*[IRF3.3clear*/((((T105*)((T105*)(oBC353visited))))->_upper)=(-(1));
/*]*/
}
}
/*FI]*/
}
}


T6 r352is_integer(T352* C){
T6 R=0;
R=X62is_integer((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352c_frame_descriptor(T352* C){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
if(r352is_reference(C)){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'R'));
}
else{
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'E'));
}
/*FI]*/
r2append_in(r352id(C),oBC19c_frame_descriptor_format);
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
}


void r352make(T352* C,T104 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_like_what)=a2;
r7copy((T7*)(oBC353written_mark_buffer),((T0*)ms20_16761));
r7extend((T7*)(oBC353written_mark_buffer),((T3)'\40'));
X117declaration_in((/*RF2*/(C)->_like_what/*20*/),oBC353written_mark_buffer);
(/*SFN*/C->_written_mark)=((/*UT*/(void)((T27*)(r352string_aliaser()))),r27item(oBC353written_mark_buffer));
}


T0* r352base_class_name(T352* C){
T0* R=NULL;
R=X62base_class_name((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T6 r352is_character(T352* C){
T6 R=0;
R=X62is_character((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352is_expanded(T352* C){
T6 R=0;
R=X62is_expanded((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352is_array(T352* C){
T6 R=0;
R=X62is_array((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352gc_info_in(T352* C,T0* a1){
X62gc_info_in((/*RF2*/(C)->_run_type/*28*/),a1);
}
T0*oBC19string_aliaser=NULL;
int fBC19string_aliaser=0;


T0* r352string_aliaser(void){
if(fBC19string_aliaser==0){fBC19string_aliaser=1;{
{T27*n=((T27*)se_malloc(1));
oBC19string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2104);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53339);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33156840);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1339128);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_836969340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33120277);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_774649014);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_168164374);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_274599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_171638715);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_175767198);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_867350214);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1384826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35866627);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35868574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7173699);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_286922);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_179371455);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1447702);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_904828090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_295849);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_349117293);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12184);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7704337);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1554777);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_971749965);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12376);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7749340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_324411);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_520438282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1692780980);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_65574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3075);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9647090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_64);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_552);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_61);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_371);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_62);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067995);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_361);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_60);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_45);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_296);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3421);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2126626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_43);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1960);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1972);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_47);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9529116);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_77832);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_280482649));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_386854);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9676326);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1597390874));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_49076823);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_79341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_247239028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94407393);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_840111968);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1236707441);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15831);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810604);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1680885744);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244781926);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244783893);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1223936132);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_48958735);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1622700141);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1979951);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_936296820);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1949019648);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_705019679);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1286698901);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10018876);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50778415);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_397576);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15932);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80109);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80416);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80694);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2023685073);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_406284);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067759348);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2090604340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_880412606);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50246319);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_636);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_619776399));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1744612358);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1937220099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_378799862);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10377643);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1297876698);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16639);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16616);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_84969);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16686);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1856946950));
r27special_add(((T0*)ms21_1740332382));
r27special_add(((T0*)ms21_111802057));
r27special_add(((T0*)ms21_756809447));
r27special_add(((T0*)ms21_1419919903));
r27special_add(((T0*)ms21_275488632));
r27special_add(((T0*)ms21_1377517899));
r27special_add(((T0*)ms21_698215697));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1326673961);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_954385774);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1778079380);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_87541);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10945665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_849712179);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3501);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88048);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88049);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_573080478);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54325331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_41849945);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2174354);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_438300);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187464);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187483);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733071);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_733277224);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54749764);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11011040);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_112335826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11026665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1507243919);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1053896806);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591414963);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_267647687);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591417242);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447584);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_89510);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447851);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55924644);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55926626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279656751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2246041);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88795);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_446841);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1607595572);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55868341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279416444);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279523519);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2236118);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1574640467);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1742738754);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_18110);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_90544);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1202672333);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_287359706);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1501191);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1498845794);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2038667775);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42134669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_337331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_14150);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC19string_aliaser;
}


T0* r352base_class(T352* C){
T0* R=NULL;
T0* _bcn=NULL;
/*[IF*/
if(((/*RF2*/(C)->_base_class_memory/*4*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
_bcn=r352base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
(/*SFN*/C->_base_class_memory)=r77base_class(((T77*)_bcn));
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms62_432936020);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_type((T0*)C,((T0*)ms20_46));
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
return R;
}


T6 r352is_dummy_expanded(T352* C){
T6 R=0;
R=X62is_dummy_expanded((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352need_c_struct(T352* C){
T6 R=0;
R=X62need_c_struct((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352is_reference(T352* C){
T6 R=0;
R=X62is_reference((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352gc_define1(T352* C){
X62gc_define1((/*RF2*/(C)->_run_type/*28*/));
}


void r352gc_define2(T352* C){
X62gc_define2((/*RF2*/(C)->_run_type/*28*/));
}


void r352c_type_for_target_in(T352* C,T0* a1){
X62c_type_for_target_in((/*RF2*/(C)->_run_type/*28*/),a1);
}


T0* r352expanded_initializer(T352* C){
T0* R=NULL;
R=X62expanded_initializer((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T0* r352actual_reference(T352* C,T0* a1){
T0* R=NULL;
R=X62actual_reference((/*RF2*/(C)->_run_type/*28*/),a1);
return R;
}


T6 r352is_a_in(T352* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*24*/))==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r352to_runnable(C,_ct);
_t2=X62to_runnable(a1,_ct);
/*[IF*/
if((X62run_time_mark(_t1))==((void*)(X62run_time_mark(_t2)))){
R=1;
}
else{
R=X62is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r352demangling_in(T352* C,T0* a1){
/*[IF*/
if(r352is_reference(C)){
r7extend(((T7*)a1),((T3)'R'));
}
else{
r7extend(((T7*)a1),((T3)'E'));
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r352run_time_mark(C));
}
T0*oBC353visited=NULL;


T6 r352is_generic(T352* C){
T6 R=0;
R=X62is_generic((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352is_double(T352* C){
T6 R=0;
R=X62is_double((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352id_extra_information(T352* C,T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
if(r352is_reference(C)){
r58put_string(((T58*)a1),((T0*)ms62_18257));
}
else{
r58put_string(((T58*)a1),((T0*)ms62_3337));
}
/*FI]*/
}


T6 r352is_user_expanded(T352* C){
T6 R=0;
R=X62is_user_expanded((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T6 r352is_a(T352* C,T0* a1){
T6 R=0;
T0* _tlf=NULL;
/*[IF*/
if(X62is_like_feature(a1)){
_tlf=a1;
if(NULL!=(_tlf)){
switch(((T0*)_tlf)->id){
case 352:
break;
default:
_tlf=NULL;
}
}/*[IF*/
if((X117to_string((/*RF2*/(C)->_like_what/*20*/)))==((void*)(X117to_string((/*RF2*/(((T352*)_tlf))->_like_what/*20*/))))){
R=1;
}
else{
R=X62is_a((/*RF2*/(C)->_run_type/*28*/),a1);
}
/*FI]*/
}
else{
R=X62is_a((/*RF2*/(C)->_run_type/*28*/),a1);
}
/*FI]*/
/*[IF*/
if(!(R)){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*12*/));
}
}
/*FI]*/
return R;
}


T6 r352is_boolean(T352* C){
T6 R=0;
R=X62is_boolean((/*RF2*/(C)->_run_type/*28*/));
return R;
}


void r352anchor_cycle_start(T352* C){
T2 _i=0;
{T104 se_tmp0;
/*[IF*/
if(((/*RF2*/((T105*)(oBC353visited))->_upper/*8*/))<(0)){
{T104 se_tmp1;
T104 se_tmp0;
r105add_last((T105*)(oBC353visited),(/*RF2*/(C)->_start_position/*12*/));
}
}
 else if(r105fast_has((T105*)(oBC353visited),(/*RF2*/(C)->_start_position/*12*/))){
{T104 se_tmp1;
T104 se_tmp0;
{T104 se_tmp1;
T104 se_tmp0;
_i=0;
}
{T104 se_tmp1;
T104 se_tmp0;
while (!((_i)>((/*RF2*/((T105*)(oBC353visited))->_upper/*8*/))))
{
{T104 se_tmp1;
T104 se_tmp0;
r82add_position(/*(IRF4.6item*/((/*RF2*/((T105*)(oBC353visited))->_storage/*0*/))[_i]/*)*/);
}
{T104 se_tmp1;
T104 se_tmp0;
_i=(_i)+(1);
}
}
}
}
{T104 se_tmp1;
T104 se_tmp0;
r352fatal_error(((T0*)ms20_1839765037));
}
}
else{
{T104 se_tmp2;
T104 se_tmp1;
T104 se_tmp0;
r105add_last((T105*)(oBC353visited),(/*RF2*/(C)->_start_position/*12*/));
}
}
/*FI]*/
}
}


T0* r352to_runnable(T352* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
r352anchor_cycle_start(C);
_rc=X62run_class(a1);
_rt=r60get_result_type(((T60*)_rc),(/*RF2*/(C)->_like_what/*20*/));
/*[IF*/
if(((/*RF2*/(C)->_run_type/*28*/))==((void*)(NULL))){
(/*SFN*/C->_run_type)=_rt;
R=((T0*)(C));
}
 else if(((/*RF2*/(C)->_run_type/*28*/))==((void*)(_rt))){
R=((T0*)(C));
}
else{
{T352*n=((T352*)se_malloc(sizeof(*n))/*32*/);
*n=M352;
r352with(n,(T0*)C,_rt);
R=((T0*)n);
}
}
/*FI]*/
r352anchor_cycle_end(C);
return R;
}


T6 r352is_string(T352* C){
T6 R=0;
R=X62is_string((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T0* r352run_class(T352* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else if(/*(IRF4.7is_run_type*/((/*RF2*/(C)->_run_type/*28*/))!=(NULL)/*)*/){
(/*SFN*/C->_run_class_memory)=r59run_class((/*RF2*/(C)->_run_type/*28*/));
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


void r352c_header_pass1(T352* C){
X62c_header_pass1((/*RF2*/(C)->_run_type/*28*/));
}


void r352c_header_pass2(T352* C){
X62c_header_pass2((/*RF2*/(C)->_run_type/*28*/));
}


void r352c_header_pass3(T352* C){
X62c_header_pass3((/*RF2*/(C)->_run_type/*28*/));
}


void r352c_header_pass4(T352* C){
X62c_header_pass4((/*RF2*/(C)->_run_type/*28*/));
}


T6 r352is_basic_eiffel_expanded(T352* C){
T6 R=0;
R=X62is_basic_eiffel_expanded((/*RF2*/(C)->_run_type/*28*/));
return R;
}


T0* r352smallest_ancestor(T352* C,T0* a1){
T0* R=NULL;
R=X62smallest_ancestor((/*RF2*/(C)->_run_type/*28*/),a1);
return R;
}


void r352gc_call_new_in(T352* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(r352id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r189make(T189* C,T0* a1,T0* a2){
/*[IF*/
if((X117to_string(a1))==((void*)(X117to_string(a2)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a2),&se_tmp0)));
}
r189fatal_error(((T0*)ms189_439056951));
}
/*FI]*/
(/*SFN*/C->_old_name)=a1;
(/*SFN*/C->_new_name)=a2;
}


void r189fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T0* r116try_to_undefine_aux(T116* C,T0* a1,T0* a2){
T0* R=NULL;
{T382*n=((T382*)se_malloc(sizeof(*n))/*40*/);
*n=M382;
r382from_effective(n,a1,(/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_require_assertion/*28*/),(/*RF2*/(C)->_ensure_assertion/*32*/),a2);
R=((T0*)n);
}
return R;
}


void r116error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T6 r116can_hide(T116* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X99result_type(a1)))){
/*[IF*/
{/*AT*/{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r116error((*(se_tmp0=r116start_position(C),&se_tmp0)),((T0*)ms99_1393094289));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(X99arguments(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL)))||((X99arguments(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r116error((*(se_tmp0=r116start_position(C),&se_tmp0)),((T0*)ms99_1854646737));
}
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r116error((*(se_tmp0=r116start_position(C),&se_tmp0)),((T0*)ms99_1060258809));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_a_in((T121*)((/*RF2*/(C)->_arguments/*20*/)),X99arguments(a1),a2))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r116start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_895448585);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((/*RF2*/(((T60*)a2))->_current_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r116merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r116make_external_routine(T116* C,T0* a1,T0* a2){
(/*SFN*/C->_native)=a1;
(/*SFN*/C->_alias_string)=a2;
}


void r116merge_header_comments(T116* C,T0* a1){
/*[IF*/
if((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/);
}
 else if((/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X99set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}


void r116add_into(T116* C,T0* a1){
T0* _key=NULL;
T0* _fn=NULL;
T2 _i=0;
{T104 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r118count((T118*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i);
_key=X117to_key(_fn);
/*[IF*/
if(r172has(((T172*)a1),_key)){
_fn=/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T293*)(r172at(((T172*)a1),_key)))->_names/*8*/))))->_first/*0*/)/*)*/;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1087076085);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X117to_string(_fn);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
else{
r172add(((T172*)a1),(T0*)C,_key);
}
/*FI]*/
_i=(_i)+(1);
}
}


void r116make_routine(T116* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T116*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_header_comment)=a4;
(/*SFN*/C->_arguments)=a2;
(/*SFN*/C->_obsolete_mark)=a3;
(/*SFN*/C->_require_assertion)=a5;
}


T0* r116try_to_undefine(T116* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
_fn2=r118feature_name((T118*)((/*RF2*/(C)->_names/*8*/)),X117to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X117undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r116try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r116merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r116make(T116* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r116make_routine(C,a1,a2,a3,a4,a5);
r116make_external_routine(C,a6,a7);
}


void r116check_obsolete(T116* C,T104 a1){
/*[IF*/
if(((/*RF2*/(C)->_obsolete_mark/*24*/))!=((void*)(NULL))){
/*[IF*/
if(!((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/))){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=((T0*)ms99_2129004198);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T262*)((/*RF2*/(C)->_obsolete_mark/*24*/)))->_to_string/*12*/);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((*(se_tmp0=r116start_position(C),&se_tmp0)));
}
r82print_as_warning((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}


T6 r116use_current(T116* C){
T6 R=0;
R=X91use_current((/*RF2*/(C)->_native/*40*/),(T0*)C);
return R;
}


T0* r116external_name(T116* C){
T0* R=NULL;
T0* _new_result=NULL;
T0* _native_c_plus_plus=NULL;
R=r116c_plus_plus_name(C);
_native_c_plus_plus=(/*RF2*/(C)->_native/*40*/);
if(NULL!=(_native_c_plus_plus)){
switch(((T0*)_native_c_plus_plus)->id){
case 89:
break;
default:
_native_c_plus_plus=NULL;
}
}/*[IF*/
if((_native_c_plus_plus)!=((void*)(NULL))){
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7make(n,((/*RF2*/(((T7*)R))->_count/*4*/))+(8));
_new_result=((T0*)n);
}
r7append(((T7*)_new_result),((T0*)ms97_3147));
r2append_in((/*RF2*/((T61*)((/*RF2*/(C)->_base_class/*4*/)))->_id/*0*/),_new_result);
r7append(((T7*)_new_result),R);
R=_new_result;
}
/*FI]*/
return R;
}


T0* r116to_run_feature(T116* C,T0* a1,T0* a2){
T0* R=NULL;
{T115*n=((T115*)se_malloc(sizeof(*n))/*44*/);
*n=M115;
r115make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
return R;
}


void r116set_header_comment(T116* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)>(1))){
(/*SFN*/C->_end_comment)=a1;
}
/*FI]*/
}


T6 r116is_not_mergeable_with(T116* C,T0* a1){
T6 R=0;
/*[IF*/
{/*AT*/R=(X99result_type(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1393094289);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
else{
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
R=(X99arguments(a1))!=((void*)(NULL));
}
else{
R=(X99arguments(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1854646737);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
 else if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1060258809);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
R=1;
}
/*FI]*/
}
/*FI]*/
r116merge_header_comments(C,a1);
return R;
}


T104 r116start_position(T116* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X117start_position(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}


void r116set_rescue_compound(T116* C,T0* a1){
/*[IF*/
if((a1)!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r159start_position(((T159*)a1)),&se_tmp0)));
}
}
else{
{T104 se_tmp0;
r82add_position((*(se_tmp0=r116start_position(C),&se_tmp0)));
}
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms97_2014931627);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


T0* r116c_plus_plus_name(T116* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_alias_string/*44*/))==((void*)(NULL))){
R=X117to_string(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/);
}
else{
R=(/*RF2*/(C)->_alias_string/*44*/);
}
/*FI]*/
return R;
}


T0* r380left_type(T380* C){
T0* R=NULL;
R=X126result_type((/*RF2*/(C)->_left_side/*4*/));
return R;
}


void r380warning(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_warning((T82*)(oBC19eh));
}


void r380error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


void r380compile_to_c(T380* C){
T2 _i=0;
T0* _run=NULL;
{T104 se_tmp0;
r83se_trace_ins((T83*)(oBC19cpp),(*(se_tmp0=r380start_position(C),&se_tmp0)));
}
/*[IF*/
if(X62is_expanded(X62run_type(r380right_type(C)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r380start_position(C),&se_tmp0)));
}
r380fatal_error(((T0*)ms380_908608149));
}
/*FI]*/
_run=(/*RF2*/((T60*)(X62run_class(r380left_type(C))))->_running/*21*/);
/*[IF*/
if((_run)==((void*)(NULL))){
/*[IF*/
if(!(X126can_be_dropped((/*RF2*/(C)->_right_side/*8*/)))){
X126compile_to_c((/*RF2*/(C)->_right_side/*8*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
/*FI]*/
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1261705));
/*]*/
}
 else if(X126is_current((/*RF2*/(C)->_right_side/*8*/))){
/*[IF*/
if(r63fast_has(((T63*)_run),X62run_class(X126result_type((/*RF2*/(C)->_right_side/*8*/))))){
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_28032126));
/*]*/
X126compile_to_c((/*RF2*/(C)->_right_side/*8*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1330));
/*]*/
}
else{
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1261705));
/*]*/
}
/*FI]*/
}
else{
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\75');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(X126is_current((/*RF2*/(C)->_right_side/*8*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_36951));
/*]*/
}
/*FI]*/
X126compile_to_c((/*RF2*/(C)->_right_side/*8*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_1066862250));
/*]*/
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_1016822887));
/*]*/
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_1312));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_79775));
/*]*/
_i=(/*RF2*/(((T63*)_run))->_lower/*16*/);
while (!((_i)>((/*RF2*/(((T63*)_run))->_upper/*12*/))))
{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_77412));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/((T60*)(r63item(((T63*)_run),_i)))->_id/*16*/));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\72');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_i=(_i)+(1);
}
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_830099621));
/*]*/
X126compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms380_157716425));
/*]*/
}
/*FI]*/
}


T6 r380stupid_switch(T380* C,T0* a1){
T6 R=0;
/*[IF*/
if(r59stupid_switch(X126result_type((/*RF2*/(C)->_left_side/*4*/)),a1)){
/*[IF*/
if(r59stupid_switch(X126result_type((/*RF2*/(C)->_right_side/*8*/)),a1)){
/*[IF*/
if(X126stupid_switch((/*RF2*/(C)->_left_side/*4*/),a1)){
/*[IF*/
if(X126stupid_switch((/*RF2*/(C)->_right_side/*8*/),a1)){
R=1;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


void r380make(T380* C,T0* a1,T0* a2){
(/*SFN*/C->_left_side)=a1;
(/*SFN*/C->_right_side)=a2;
}


void r380fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r380afd_check(T380* C){
X126afd_check((/*RF2*/(C)->_right_side/*8*/));
}


T6 r380use_current(T380* C){
T6 R=0;
/*[IF*/
if(X126use_current((/*RF2*/(C)->_left_side/*4*/))){
R=1;
}
else{
R=X126use_current((/*RF2*/(C)->_right_side/*8*/));
}
/*FI]*/
return R;
}


T0* r380add_comment(T380* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
/*AF*/else{
{T316*n=((T316*)se_malloc(sizeof(*n))/*12*/);
*n=M316;
r316make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r380to_runnable(T380* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*12*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
_e=X126to_runnable((/*RF2*/(C)->_left_side/*4*/),a1);
/*[IF*/
if((_e)==((void*)(NULL))){
{T104 se_tmp0;
r380error((*(se_tmp0=X126start_position((/*RF2*/(C)->_left_side/*4*/)),&se_tmp0)),((T0*)ms20_1854346358));
}
}
else{
(/*SFN*/C->_left_side)=_e;
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
_e=X126to_runnable((/*RF2*/(C)->_right_side/*8*/),a1);
/*[IF*/
if((_e)==((void*)(NULL))){
{T104 se_tmp0;
r380error((*(se_tmp0=X126start_position((/*RF2*/(C)->_right_side/*8*/)),&se_tmp0)),((T0*)ms20_1138570986));
}
}
else{
(/*SFN*/C->_right_side)=_e;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0))&&(X62is_a(X62run_type(r380right_type(C)),X62run_type(r380left_type(C))))){
/*[IF*/
if((((!(X126is_current((/*RF2*/(C)->_right_side/*8*/))))&&(!(X62is_like_current(r380left_type(C)))))&&(!(X62is_formal_generic(r380right_type(C)))))&&(!(X62is_formal_generic(r380left_type(C))))){
r82add_type(r380right_type(C),((T0*)ms380_181317));
r82add_type(r380left_type(C),((T0*)ms380_1140065898));
{T104 se_tmp0;
r380warning((*(se_tmp0=r380start_position(C),&se_tmp0)),((T0*)ms380_897982986));
}
}
/*FI]*/
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(!(X62is_reference(X62run_type(r380left_type(C))))){
r82add_type(X62run_type(r380left_type(C)),((T0*)ms380_1701574474));
{T104 se_tmp0;
r380error((*(se_tmp0=r380start_position(C),&se_tmp0)),((T0*)ms380_811579327));
}
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
R=((T0*)(C));
}
/*FI]*/
}
else{
{T380*n=((T380*)se_malloc(sizeof(*n))/*16*/);
*n=M380;
r380make(n,(/*RF2*/(C)->_left_side/*4*/),(/*RF2*/(C)->_right_side/*8*/));
R=((T0*)n);
}
R=r380to_runnable(((T380*)R),a1);
}
/*FI]*/
return R;
}


void r380collect_c_tmp(T380* C){
X126collect_c_tmp((/*RF2*/(C)->_right_side/*8*/));
}


T0* r380right_type(T380* C){
T0* R=NULL;
R=X126result_type((/*RF2*/(C)->_right_side/*8*/));
return R;
}


T104 r380start_position(T380* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X126start_position((/*RF2*/(C)->_left_side/*4*/)),&se_tmp0));
}
return R;
}


void r409error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T0* r409to_key(T409* C){
T0* R=NULL;
R=X117to_key((/*RF2*/(C)->_feature_name/*4*/));
return R;
}


T0* r409to_string(T409* C){
T0* R=NULL;
R=X117to_string((/*RF2*/(C)->_feature_name/*4*/));
return R;
}


void r409undefine_in(T409* C,T0* a1){
/*[IF*/
{/*AT*/{T104 se_tmp0;
r409error((*(se_tmp0=r409start_position(C),&se_tmp0)),((T0*)ms117_1217321133));
}
r61fatal_undefine(((T61*)a1),(T0*)C);
}
/*FI]*/
}


void r409declaration_in(T409* C,T0* a1){
X117declaration_in((/*RF2*/(C)->_feature_name/*4*/),a1);
}


void r409mapping_c_in(T409* C,T0* a1){
X117mapping_c_in((/*RF2*/(C)->_feature_name/*4*/),a1);
}


T0* r409origin_base_class(T409* C){
T0* R=NULL;
{T104 se_tmp0;
R=(/*RF2*/((*(se_tmp0=r409start_position(C),&se_tmp0)))._base_class/*0*/);
}
return R;
}


T104 r409start_position(T409* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X117start_position((/*RF2*/(C)->_feature_name/*4*/)),&se_tmp0));
}
return R;
}


void r409put_cpp_tag(T409* C){
X117put_cpp_tag((/*RF2*/(C)->_feature_name/*4*/));
}


T2 r259isa_dca_inline_argument(void){
T2 R=0;
/*[IF*/
{/*AT*/R=-(1);
}
/*FI]*/
return R;
}


T0* r259type_boolean(void){
if(fBC19type_boolean==0){fBC19type_boolean=1;{
T104 _unknown_position={NULL,0};
{T360*n=((T360*)se_malloc(sizeof(*n))/*16*/);
*n=M360;
oBC19type_boolean=((T0*)n);
r360make(n,_unknown_position);
}
}}
return oBC19type_boolean;
}


T0* r259add_comment(T259* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T323*n=((T323*)se_malloc(sizeof(*n))/*12*/);
*n=M323;
r323make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r259to_runnable(T259* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
R=((T0*)(C));
_t=r360to_runnable((T360*)(/*(IRF4.8result_type*/r259type_boolean()/*)*/),a1);
return R;
}


T0* r259static_result_base_class(void){
T0* R=NULL;
R=r59get_class(((T0*)ms21_1339128));
return R;
}


void r313add_if_then(T313* C,T0* a1,T0* a2){
T0* _ifthen=NULL;
{T317*n=((T317*)se_malloc(sizeof(*n))/*12*/);
*n=M317;
r317make(n,a1,a2);
_ifthen=((T0*)n);
}
/*[IF*/
if(((/*RF2*/(C)->_ifthenlist/*12*/))==((void*)(NULL))){
{T318*n=((T318*)se_malloc(sizeof(*n))/*8*/);
*n=M318;
r318make(n,_ifthen);
(/*SFN*/C->_ifthenlist)=((T0*)n);
}
}
else{
/*[IRF3.5add_last*/r319add_last(((T319*)((/*RF2*/((T318*)((/*RF2*/(C)->_ifthenlist/*12*/)))->_list/*0*/))),_ifthen);
/*]*/
}
/*FI]*/
}


void r313compile_to_c(T313* C){
T2 _static_value=0;
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms313_4668170));
/*]*/
_static_value=r318compile_to_c((T318*)((/*RF2*/(C)->_ifthenlist/*12*/)));
/*[INSPECT*/
{int z1=_static_value;
switch(z1){
case 23:
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms313_916170));
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_else_compound/*16*/)));
}
/*FI]*/
break;
case 22:
break;
default:;
/*[IF*/
if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_16001));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_625));
/*]*/
r159compile_to_c((T159*)((/*RF2*/(C)->_else_compound/*16*/)));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
/*FI]*/
}
}/*INSPECT]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms313_4605420));
/*]*/
}


T6 r313stupid_switch(T313* C,T0* a1){
T6 R=0;
R=(r318stupid_switch((T318*)((/*RF2*/(C)->_ifthenlist/*12*/)),a1))&&((((/*RF2*/(C)->_else_compound/*16*/))==((void*)(NULL)))||(r159stupid_switch((T159*)((/*RF2*/(C)->_else_compound/*16*/)),a1)));
return R;
}


void r313afd_check(T313* C){
r318afd_check((T318*)((/*RF2*/(C)->_ifthenlist/*12*/)));
/*[IF*/
if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_else_compound/*16*/)));
}
/*FI]*/
}


T6 r313use_current(T313* C){
T6 R=0;
/*[IF*/
if(r318use_current((T318*)((/*RF2*/(C)->_ifthenlist/*12*/)))){
R=1;
}
 else if(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL))){
R=r159use_current((T159*)((/*RF2*/(C)->_else_compound/*16*/)));
}
/*FI]*/
return R;
}


T0* r313twin(T313* C){
T0* R=NULL;
R=se_malloc(sizeof(*C));
*((T313*)R)=*C;
return R;
}


T0* r313add_comment(T313* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
 else {/*AT*//*[IF*/
if((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(1)){
R=((T0*)(C));
}
else{
{T316*n=((T316*)se_malloc(sizeof(*n))/*12*/);
*n=M316;
r316make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r313to_runnable(T313* C,T0* a1){
T0* R=NULL;
T0* _ec=NULL;
T0* _itl=NULL;
T2 _ne=0;
_ne=/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*20*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
_itl=r318to_runnable((T318*)((/*RF2*/(C)->_ifthenlist/*12*/)),a1);
/*[IF*/
if((_itl)==((void*)(NULL))){
}
else{
(/*SFN*/C->_ifthenlist)=_itl;
}
/*FI]*/
/*[IF*/
if((((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)-(_ne))==(0))&&(((/*RF2*/(C)->_else_compound/*16*/))!=((void*)(NULL)))){
_ec=r159to_runnable((T159*)((/*RF2*/(C)->_else_compound/*16*/)),a1);
/*[IF*/
if((_ec)==((void*)(NULL))){
}
else{
(/*SFN*/C->_else_compound)=_ec;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_itl)!=((void*)(NULL))){
R=((T0*)(C));
}
/*FI]*/
}
else{
R=r313twin(C);
/*[IRF3.3clear_current_type*/((((T313*)(((T313*)R))))->_current_type)=(NULL);
/*]*/
R=r313to_runnable(((T313*)R),a1);
}
/*FI]*/
return R;
}


void r239error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


void r239make(T239* C,T0* a1,T104 a2){
(/*SFN*/C->_to_string)=a1;
(/*SFN*/C->_start_position)=a2;
(/*SFN*/C->_to_key)=((/*UT*/(void)((T27*)(r239string_aliaser()))),r27for_prefix((/*RF2*/(C)->_to_string/*12*/)));
}


void r239undefine_in(T239* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}


T0* r239string_aliaser(void){
if(fBC19string_aliaser==0){fBC19string_aliaser=1;{
{T27*n=((T27*)se_malloc(1));
oBC19string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2104);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53339);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33156840);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1339128);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_836969340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33120277);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_774649014);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_168164374);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_274599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_171638715);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_175767198);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_867350214);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1384826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35866627);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35868574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7173699);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_286922);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_179371455);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1447702);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_904828090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_295849);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_349117293);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12184);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7704337);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1554777);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_971749965);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12376);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7749340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_324411);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_520438282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1692780980);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_65574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3075);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9647090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_64);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_552);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_61);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_371);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_62);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067995);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_361);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_60);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_45);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_296);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3421);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2126626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_43);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1960);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1972);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_47);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9529116);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_77832);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_280482649));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_386854);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9676326);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1597390874));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_49076823);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_79341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_247239028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94407393);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_840111968);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1236707441);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15831);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810604);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1680885744);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244781926);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244783893);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1223936132);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_48958735);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1622700141);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1979951);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_936296820);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1949019648);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_705019679);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1286698901);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10018876);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50778415);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_397576);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15932);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80109);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80416);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80694);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2023685073);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_406284);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067759348);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2090604340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_880412606);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50246319);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_636);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_619776399));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1744612358);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1937220099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_378799862);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10377643);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1297876698);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16639);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16616);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_84969);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16686);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1856946950));
r27special_add(((T0*)ms21_1740332382));
r27special_add(((T0*)ms21_111802057));
r27special_add(((T0*)ms21_756809447));
r27special_add(((T0*)ms21_1419919903));
r27special_add(((T0*)ms21_275488632));
r27special_add(((T0*)ms21_1377517899));
r27special_add(((T0*)ms21_698215697));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1326673961);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_954385774);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1778079380);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_87541);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10945665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_849712179);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3501);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88048);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88049);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_573080478);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54325331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_41849945);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2174354);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_438300);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187464);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187483);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733071);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_733277224);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54749764);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11011040);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_112335826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11026665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1507243919);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1053896806);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591414963);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_267647687);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591417242);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447584);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_89510);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447851);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55924644);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55926626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279656751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2246041);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88795);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_446841);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1607595572);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55868341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279416444);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279523519);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2236118);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1574640467);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1742738754);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_18110);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_90544);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1202672333);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_287359706);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1501191);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1498845794);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2038667775);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42134669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_337331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_14150);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC19string_aliaser;
}


void r239declaration_in(T239* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_437070));
r7extend(((T7*)a1),((T3)'\40'));
r7extend(((T7*)a1),((T3)'\42'));
r7append(((T7*)a1),(/*RF2*/(C)->_to_string/*12*/));
r7extend(((T7*)a1),((T3)'\42'));
}


T0* r239origin_base_class(T239* C){
T0* R=NULL;
{T104 se_tmp0;
R=(/*RF2*/((/*RF2*/(C)->_start_position/*4*/))._base_class/*0*/);
}
return R;
}


T0* r395try_to_undefine_aux(T395* C,T0* a1,T0* a2){
T0* R=NULL;
{T382*n=((T382*)se_malloc(sizeof(*n))/*40*/);
*n=M382;
r382from_effective(n,a1,(/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_require_assertion/*28*/),(/*RF2*/(C)->_ensure_assertion/*32*/),a2);
R=((T0*)n);
}
return R;
}


void r395error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T6 r395can_hide(T395* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X99result_type(a1)))){
/*[IF*/
{/*AT*/{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r395error((*(se_tmp0=r395start_position(C),&se_tmp0)),((T0*)ms99_1393094289));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(X99arguments(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL)))||((X99arguments(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r395error((*(se_tmp0=r395start_position(C),&se_tmp0)),((T0*)ms99_1854646737));
}
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r395error((*(se_tmp0=r395start_position(C),&se_tmp0)),((T0*)ms99_1060258809));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_a_in((T121*)((/*RF2*/(C)->_arguments/*20*/)),X99arguments(a1),a2))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r395start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_895448585);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((/*RF2*/(((T60*)a2))->_current_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r395merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r395merge_header_comments(T395* C,T0* a1){
/*[IF*/
if((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/);
}
 else if((/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X99set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}


void r395add_into(T395* C,T0* a1){
T0* _key=NULL;
T0* _fn=NULL;
T2 _i=0;
{T104 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r118count((T118*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i);
_key=X117to_key(_fn);
/*[IF*/
if(r172has(((T172*)a1),_key)){
_fn=/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T293*)(r172at(((T172*)a1),_key)))->_names/*8*/))))->_first/*0*/)/*)*/;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1087076085);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X117to_string(_fn);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
else{
r172add(((T172*)a1),(T0*)C,_key);
}
/*FI]*/
_i=(_i)+(1);
}
}


void r395make_routine(T395* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T395*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_header_comment)=a4;
(/*SFN*/C->_arguments)=a2;
(/*SFN*/C->_obsolete_mark)=a3;
(/*SFN*/C->_require_assertion)=a5;
}


T0* r395try_to_undefine(T395* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
_fn2=r118feature_name((T118*)((/*RF2*/(C)->_names/*8*/)),X117to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X117undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r395try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r395merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r395make(T395* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r395make_routine(C,a1,a2,a3,a4,a5);
(/*SFN*/C->_local_vars)=a6;
(/*SFN*/C->_routine_body)=a7;
(/*SFN*/C->_use_current_state)=20;
}


void r395check_obsolete(T395* C,T104 a1){
/*[IF*/
if(((/*RF2*/(C)->_obsolete_mark/*24*/))!=((void*)(NULL))){
/*[IF*/
if(!((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/))){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=((T0*)ms99_2129004198);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T262*)((/*RF2*/(C)->_obsolete_mark/*24*/)))->_to_string/*12*/);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((*(se_tmp0=r395start_position(C),&se_tmp0)));
}
r82print_as_warning((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}


T0* r395to_run_feature(T395* C,T0* a1,T0* a2){
T0* R=NULL;
{T524*n=((T524*)se_malloc(sizeof(*n))/*56*/);
*n=M524;
r524make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
return R;
}


void r395set_header_comment(T395* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)>(1))){
(/*SFN*/C->_end_comment)=a1;
}
/*FI]*/
}


T6 r395is_not_mergeable_with(T395* C,T0* a1){
T6 R=0;
/*[IF*/
{/*AT*/R=(X99result_type(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1393094289);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
else{
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
R=(X99arguments(a1))!=((void*)(NULL));
}
else{
R=(X99arguments(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1854646737);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
 else if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1060258809);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
R=1;
}
/*FI]*/
}
/*FI]*/
r395merge_header_comments(C,a1);
return R;
}


T104 r395start_position(T395* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X117start_position(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}


T0* r150try_to_undefine_aux(T150* C,T0* a1,T0* a2){
T0* R=NULL;
{T382*n=((T382*)se_malloc(sizeof(*n))/*40*/);
*n=M382;
r382from_effective(n,a1,(/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_require_assertion/*28*/),(/*RF2*/(C)->_ensure_assertion/*32*/),a2);
R=((T0*)n);
}
return R;
}


void r150error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T6 r150can_hide(T150* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X99result_type(a1)))){
/*[IF*/
{/*AT*/{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r150error((*(se_tmp0=r150start_position(C),&se_tmp0)),((T0*)ms99_1393094289));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(X99arguments(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL)))||((X99arguments(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r150error((*(se_tmp0=r150start_position(C),&se_tmp0)),((T0*)ms99_1854646737));
}
}
 else if((/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))/*)*/)!=(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/((T121*)(X99arguments(a1)))->_flat_list/*8*/))))/*)*/)){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r150error((*(se_tmp0=r150start_position(C),&se_tmp0)),((T0*)ms99_1060258809));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_a_in((T121*)((/*RF2*/(C)->_arguments/*20*/)),X99arguments(a1),a2))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r150start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_895448585);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((/*RF2*/(((T60*)a2))->_current_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r150merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r150merge_header_comments(T150* C,T0* a1){
/*[IF*/
if((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/);
}
 else if((/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X99set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}


T0* r150a_default_rescue(T150* C,T0* a1,T0* a2){
T0* R=NULL;
T6 _non_empty_default_rescue=0;
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
_non_empty_default_rescue=1;
}
 else if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
_non_empty_default_rescue=!(/*(IRF4.7empty_or_null_body*/((/*RF2*/((T159*)((/*RF2*/(C)->_routine_body/*44*/)))->_first_one/*8*/))==(NULL)/*)*/);
}
/*FI]*/
/*[IF*/
if(_non_empty_default_rescue){
R=r60at(((T60*)a1),a2);
if(NULL!=(R)){
switch(((T0*)R)->id){
case 154:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
R=r150to_run_feature(C,(/*RF2*/(((T60*)a1))->_current_type/*0*/),a2);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r150add_into(T150* C,T0* a1){
T0* _key=NULL;
T0* _fn=NULL;
T2 _i=0;
{T104 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r118count((T118*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i);
_key=X117to_key(_fn);
/*[IF*/
if(r172has(((T172*)a1),_key)){
_fn=/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T293*)(r172at(((T172*)a1),_key)))->_names/*8*/))))->_first/*0*/)/*)*/;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1087076085);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X117to_string(_fn);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
else{
r172add(((T172*)a1),(T0*)C,_key);
}
/*FI]*/
_i=(_i)+(1);
}
}


void r150make_routine(T150* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T150*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_header_comment)=a4;
(/*SFN*/C->_arguments)=a2;
(/*SFN*/C->_obsolete_mark)=a3;
(/*SFN*/C->_require_assertion)=a5;
}


T0* r150try_to_undefine(T150* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
_fn2=r118feature_name((T118*)((/*RF2*/(C)->_names/*8*/)),X117to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X117undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r150try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r150merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r150make(T150* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r150make_routine(C,a1,a2,a3,a4,a5);
(/*SFN*/C->_local_vars)=a6;
(/*SFN*/C->_routine_body)=a7;
(/*SFN*/C->_use_current_state)=20;
}


void r150check_obsolete(T150* C,T104 a1){
/*[IF*/
if(((/*RF2*/(C)->_obsolete_mark/*24*/))!=((void*)(NULL))){
/*[IF*/
if(!((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/))){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=((T0*)ms99_2129004198);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T262*)((/*RF2*/(C)->_obsolete_mark/*24*/)))->_to_string/*12*/);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((*(se_tmp0=r150start_position(C),&se_tmp0)));
}
r82print_as_warning((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}

