/*
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


T0* r371base_class(T371* 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=r371base_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 r371is_dummy_expanded(T371* C){
T6 R=0;
/*[IF*/
if(r371is_user_expanded(C)){
R=(r60writable_attributes((T60*)(r371run_class(C))))==((void*)(NULL));
}
/*FI]*/
return R;
}


void r371standard_c_print_function(T371* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r60c_print_function((T60*)(r371run_class(C)));
}
/*FI]*/
}


T6 r371need_c_struct(T371* C){
T6 R=0;
/*[IF*/
if(X62is_expanded((/*RF2*/(C)->_mapped/*24*/))){
R=X62need_c_struct((/*RF2*/(C)->_mapped/*24*/));
}
else{
R=(r60writable_attributes((T60*)(r371run_class(C))))!=((void*)(NULL));
}
/*FI]*/
return R;
}


void r371c_type_for_target_in(T371* C,T0* a1){
/*[IF*/
if(r371is_dummy_expanded(C)){
r7append(((T7*)a1),((T0*)ms20_3291));
}
else{
r7extend(((T7*)a1),((T3)'T'));
r2append_in(r371id(C),a1);
r7extend(((T7*)a1),((T3)'\52'));
}
/*FI]*/
}


T0* r371expanded_initializer(T371* C){
T0* R=NULL;
R=r61expanded_initializer((T61*)(r371base_class(C)),(T0*)C);
return R;
}


T0* r371actual_reference(T371* C,T0* a1){
T0* R=NULL;
T104 _sp={NULL,0};
{T104 se_tmp0;
_sp=(*(se_tmp0=X62start_position(a1),&se_tmp0));
}
/*[IF*/
if(X62is_expanded((/*RF2*/(C)->_mapped/*24*/))){
{T521*n=((T521*)se_malloc(sizeof(*n))/*28*/);
*n=M521;
r521from_expanded(n,_sp,(/*RF2*/(C)->_mapped/*24*/));
R=((T0*)n);
}
}
else{
R=(/*RF2*/(C)->_mapped/*24*/);
}
/*FI]*/
return R;
}


T0* r371compute_mark(T0* a1){
T0* R=NULL;
r7copy((T7*)(oBC62tmp_string),((T0*)ms20_10193105));
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7append((T7*)(oBC62tmp_string),a1);
R=((/*UT*/(void)((T27*)(r371string_aliaser()))),r27item(oBC62tmp_string));
return R;
}


T6 r371is_a_in(T371* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*20*/))==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r371to_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 r371demangling_in(T371* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),((T3)'E'));
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),(/*RF2*/(C)->_run_time_mark/*28*/));
}


void r371c_initialize_expanded(T371* C){
T0* _rf=NULL;
T2 _i=0;
T0* _wa=NULL;
/*[IF*/
if(r371is_dummy_expanded(C)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'0');
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)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_wa=r60writable_attributes((T60*)(r371run_class(C)));
_i=(/*RF2*/(((T445*)_wa))->_upper/*12*/);
while (!((_i)==(0)))
{
_rf=r445item(((T445*)_wa),_i);
X62c_initialize((/*RF2*/(((T152*)_rf))->_result_type/*32*/));
_i=(_i)-(1);
/*[IF*/
if((_i)>(0)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
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)'\175');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r371standard_c_struct(T371* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=r371id(C);
_wa=r60writable_attributes((T60*)(r371run_class(C)));
r7copy((T7*)(oBC62tmp_string),((T0*)ms20_2248337));
r7extend((T7*)(oBC62tmp_string),((T3)'S'));
r2append_in(_mem_id,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\173'));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(/*RF2*/(((T445*)_wa))->_upper/*12*/);
while (!((_i)==(0)))
{
_a=r445item(((T445*)_wa),_i);
_t=X62run_type((/*RF2*/(((T152*)_a))->_result_type/*32*/));
X62c_type_for_result_in(_t,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7extend((T7*)(oBC62tmp_string),((T3)'\137'));
r7append((T7*)(oBC62tmp_string),X117to_string((/*RF2*/(((T152*)_a))->_name/*16*/)));
r7extend((T7*)(oBC62tmp_string),((T3)'\73'));
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(oBC62tmp_string),((T3)'\175'));
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62tmp_string);
/*]*/
/*[IF*/
{/*AT*/r7copy((T7*)(oBC62tmp_string),((T0*)ms20_3291));
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7append((T7*)(oBC62tmp_string),((T0*)ms20_2187619));
r2append_in(_mem_id,oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms62_284aa));
r2append_in(_mem_id,oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms62_35404));
r2append_in(_mem_id,oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms62_7066));
r83put_c_function((T83*)(oBC19cpp),oBC62tmp_string,((T0*)ms62_1029549485));
}
/*FI]*/
}


T6 r371is_generic(T371* C){
T6 R=0;
R=X62is_generic((/*RF2*/(C)->_mapped/*24*/));
return R;
}


T6 r371is_double(T371* C){
T6 R=0;
R=X62is_double((/*RF2*/(C)->_mapped/*24*/));
return R;
}


void r371id_extra_information(T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
/*AF*//*AE*/
r58put_string(((T58*)a1),((T0*)ms62_3337));
/*FI]*/
}


T6 r371is_user_expanded(T371* C){
T6 R=0;
/*[IF*/
if(X62is_basic_eiffel_expanded((/*RF2*/(C)->_mapped/*24*/))){
}
else{
R=1;
}
/*FI]*/
return R;
}


T6 r371is_a(T371* C,T0* a1){
T6 R=0;
R=X62is_a((/*RF2*/(C)->_mapped/*24*/),a1);
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
r82add_type((T0*)C,((T0*)ms20_1308256781));
r82add_type(a1,((T0*)ms20_46));
}
/*FI]*/
return R;
}


T6 r371is_boolean(T371* C){
T6 R=0;
R=X62is_boolean((/*RF2*/(C)->_mapped/*24*/));
return R;
}


T0* r371to_runnable(T371* C,T0* a1){
T0* R=NULL;
T0* _m=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_type/*32*/))==((void*)(C))){
R=((T0*)(C));
}
 else if(((/*RF2*/(C)->_run_type/*32*/))==((void*)((/*RF2*/(C)->_mapped/*24*/)))){
R=((T0*)(C));
}
else{
_m=X62to_runnable((/*RF2*/(C)->_mapped/*24*/),a1);
/*[IF*/
if((_m)==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*12*/));
}
r371fatal_error(((T0*)ms371_1694564278));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_run_type/*32*/))!=((void*)(NULL))){
{T371*n=((T371*)se_malloc(sizeof(*n))/*36*/);
*n=M371;
r371from_other(n,(T0*)C,X62run_type(_m));
R=((T0*)n);
}
}
 else if(X62is_expanded(_m)){
(/*SFN*/C->_run_type)=_m;
(/*SFN*/C->_run_time_mark)=X62run_time_mark(_m);
R=((T0*)(C));
}
 else if(((/*RF2*/(C)->_mapped/*24*/))==((void*)(X62run_type(_m)))){
(/*SFN*/C->_run_time_mark)=r371compute_mark(X62run_time_mark(_m));
(/*SFN*/C->_run_type)=((T0*)(C));
R=((T0*)(C));
}
else{
(/*SFN*/C->_run_time_mark)=r371compute_mark(X62run_time_mark(_m));
{T371*n=((T371*)se_malloc(sizeof(*n))/*36*/);
*n=M371;
r371from_other(n,(T0*)C,X62run_type(_m));
(/*SFN*/C->_run_type)=((T0*)n);
}
R=((T0*)(C));
}
/*FI]*/
r60set_at_run_time((T60*)(X62run_class((/*RF2*/(C)->_mapped/*24*/))));
r60set_at_run_time((T60*)(X62run_class((/*RF2*/(((T371*)R))->_run_type/*32*/))));
}
/*FI]*/
return R;
}


void r371standard_c_object_model(T371* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=r371run_class(C);
_mem_id=(/*RF2*/(((T60*)_rc))->_id/*16*/);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62tmp_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62tmp_string),((T3)'T'));
r2append_in(_mem_id,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'\40'));
r7extend((T7*)(oBC62tmp_string),((T3)'M'));
r2append_in(_mem_id,oBC62tmp_string);
r83put_extern7((T83*)(oBC19cpp),oBC62tmp_string);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62tmp_string))))->_count)=(0);
/*]*/
r60c_object_model_in(((T60*)_rc),oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62tmp_string);
/*]*/
r83swap_on_h((T83*)(oBC19cpp));
}


T0* r371run_class(T371* 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/*32*/))!=(NULL)/*)*/){
(/*SFN*/C->_run_class_memory)=r59run_class((/*RF2*/(C)->_run_type/*32*/));
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


void r371c_header_pass3(T371* C){
/*[IF*/
if(r371need_c_struct(C)){
/*[IF*/
if(((/*RF2*/(C)->_run_type/*32*/))==((void*)(C))){
r371standard_c_struct(C);
}
else{
X62c_header_pass3((/*RF2*/(C)->_run_type/*32*/));
}
/*FI]*/
r371standard_c_object_model(C);
}
/*FI]*/
}


T0* r371smallest_ancestor(T371* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_time_mark/*28*/))==((void*)(X62run_time_mark(a1)))){
R=(/*RF2*/(C)->_run_type/*32*/);
}
else{
R=X62run_type(X62smallest_ancestor((/*RF2*/(C)->_mapped/*24*/),a1));
}
/*FI]*/
return R;
}


T6 r371is_basic_eiffel_expanded(T371* C){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_run_type/*32*/))==((void*)((/*RF2*/(C)->_mapped/*24*/)))){
R=X62is_basic_eiffel_expanded((/*RF2*/(C)->_mapped/*24*/));
}
/*FI]*/
return R;
}


void r371gc_call_new_in(T371* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(r371id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r188make(T188* C,T0* a1){
{T190*n=((T190*)se_malloc(sizeof(*n))/*12*/);
*n=M190;
r190with_capacity(n,4);
(/*SFN*/C->_list)=((T0*)n);
}
r190add_last((T190*)((/*RF2*/(C)->_list/*0*/)),a1);
}


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


T0* r188name_in_child(T188* C,T0* a1){
T0* R=NULL;
T6 _no_longer_exists=0;
T0* _fn_to_key=NULL;
T0* _rp=NULL;
T2 _i=0;
_fn_to_key=X117to_key(a1);
R=a1;
_i=(/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/);
while (!((_i)<(0)))
{
_rp=/*(IRF4.6item*/((/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_storage/*0*/))[_i]/*)*/;
/*[IF*/
if((X117to_key((/*RF2*/(((T189*)_rp))->_old_name/*4*/)))==((void*)(_fn_to_key))){
R=(/*RF2*/(((T189*)_rp))->_new_name/*0*/);
}
 else if((X117to_key((/*RF2*/(((T189*)_rp))->_new_name/*0*/)))==((void*)(_fn_to_key))){
_no_longer_exists=1;
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if((_no_longer_exists)&&((R)==((void*)(a1)))){
R=NULL;
}
/*FI]*/
return R;
}


T0* r188name_in_parent(T188* C,T0* a1){
T0* R=NULL;
T6 _no_longer_exists=0;
T0* _fn_to_key=NULL;
T0* _rp=NULL;
T2 _i=0;
_fn_to_key=X117to_key(a1);
R=a1;
_i=(/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/);
while (!((_i)<(0)))
{
_rp=/*(IRF4.6item*/((/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_storage/*0*/))[_i]/*)*/;
/*[IF*/
if((X117to_key((/*RF2*/(((T189*)_rp))->_new_name/*0*/)))==((void*)(_fn_to_key))){
R=(/*RF2*/(((T189*)_rp))->_old_name/*4*/);
}
 else if((X117to_key((/*RF2*/(((T189*)_rp))->_old_name/*4*/)))==((void*)(_fn_to_key))){
_no_longer_exists=1;
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if((_no_longer_exists)&&((R)==((void*)(a1)))){
R=NULL;
}
/*FI]*/
return R;
}


void r188get_started(T188* C,T0* a1){
T0* _rp2=NULL;
T0* _rp1=NULL;
T2 _j=0;
T2 _i=0;
_i=(/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/);
while (!((_i)<(0)))
{
_rp1=/*(IRF4.6item*/((/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_storage/*0*/))[_i]/*)*/;
/*[IF*/
if(!(r61has(((T61*)a1),(/*RF2*/(((T189*)_rp1))->_old_name/*4*/)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position((/*RF2*/(((T189*)_rp1))->_old_name/*4*/)),&se_tmp0)));
}
r188fatal_error(((T0*)ms188_766872687));
}
/*FI]*/
_i=(_i)-(1);
_j=_i;
while (!((_j)<(0)))
{
_rp2=/*(IRF4.6item*/((/*RF2*/((T190*)((/*RF2*/(C)->_list/*0*/)))->_storage/*0*/))[_j]/*)*/;
/*[IF*/
if((X117to_key((/*RF2*/(((T189*)_rp2))->_old_name/*4*/)))==((void*)(X117to_key((/*RF2*/(((T189*)_rp1))->_old_name/*4*/))))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position((/*RF2*/(((T189*)_rp1))->_old_name/*4*/)),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position((/*RF2*/(((T189*)_rp2))->_old_name/*4*/)),&se_tmp0)));
}
r188fatal_error(((T0*)ms188_1395974104));
}
/*FI]*/
_j=(_j)-(1);
}
}
}


T0* r300try_to_undefine_aux(T300* C,T0* a1,T0* a2){
T0* R=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=r300start_position(C),&se_tmp0)));
}
{T104 se_tmp0;
r300error((*(se_tmp0=X117start_position(a1),&se_tmp0)),((T0*)ms142_1389744524));
}
r61fatal_undefine(((T61*)a2),a1);
return R;
}


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


T6 r300can_hide(T300* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(X99result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL)))||((X99result_type(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r300error((*(se_tmp0=r300start_position(C),&se_tmp0)),((T0*)ms99_1393094289));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X99arguments(a1)))){
/*[IF*/
{/*AT*/{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r300error((*(se_tmp0=r300start_position(C),&se_tmp0)),((T0*)ms99_1854646737));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(X62is_a_in((/*RF2*/(C)->_result_type/*20*/),X99result_type(a1),a2))){
/*[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]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r300merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r300merge_header_comments(T300* 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 r300add_into(T300* 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);
}
}


T0* r300try_to_undefine(T300* 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=r300try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r300merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r300make(T300* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T300*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_result_type)=a2;
(/*SFN*/C->_value_mem)=a3;
}


void r300check_obsolete(T300* C,T104 a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}


T0* r300to_run_feature(T300* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X62run_class(a1);
R=r60at(((T60*)_rc),a2);
if(NULL!=(R)){
switch(((T0*)R)->id){
case 437:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
{T437*n=((T437*)se_malloc(sizeof(*n))/*40*/);
*n=M437;
r437make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T6 r300is_not_mergeable_with(T300* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL))){
R=(X99result_type(a1))!=((void*)(NULL));
}
else{
R=(X99result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1393094289);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
else{
/*[IF*/
{/*AT*/R=(X99arguments(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1854646737);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
 else {/*AT*/}
/*FI]*/
}
/*FI]*/
r300merge_header_comments(C,a1);
return R;
}


T104 r300start_position(T300* 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 r195add_into(T195* C,T0* a1){
T0* _f=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*8*/))!=((void*)(NULL))){
_i=0;
while (!((_i)>(/*SSWARF2*//*X199upper*/(/*RF2*/((T100*)((/*RF2*/(C)->_list/*8*/)))->_upper/*12*/))))
{
_f=X199item((/*RF2*/(C)->_list/*8*/),_i);
X99set_clients(_f,(/*RF2*/(C)->_clients/*0*/));
X99add_into(_f,a1);
_i=(_i)+(1);
}
}
/*FI]*/
}


void r195make(T195* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_clients)=a1;
(/*SFN*/C->_comment)=a2;
(/*SFN*/C->_list)=a3;
}


T6 r411affect(T411* C,T0* a1){
T6 R=0;
/*[IF*/
if(/*(IRF4.7for_all*/((/*RF2*/(C)->_list/*4*/))==(NULL)/*)*/){
R=1;
}
else{
R=r118has((T118*)((/*RF2*/(C)->_list/*4*/)),a1);
}
/*FI]*/
return R;
}


void r411make_all(T411* C,T0* a1){
(/*SFN*/C->_clients)=a1;
(/*SFN*/C->_list)=NULL;
}


void r411make(T411* C,T0* a1,T0* a2){
(/*SFN*/C->_clients)=a1;
(/*SFN*/C->_list)=a2;
}


T0* r213type_any(void){
if(fBC19type_any==0){fBC19type_any=1;{
T104 _unknown_position={NULL,0};
{T356*n=((T356*)se_malloc(sizeof(*n))/*16*/);
*n=M356;
oBC19type_any=((T0*)n);
r356make(n,_unknown_position);
}
}}
return oBC19type_any;
}


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


void r213compile_to_c(T213* C){
T0* _e=NULL;
T6 _adr=0;
T0* _actual_type=NULL;
T0* _formal_type=NULL;
T2 _i=0;
r461c_call((/*RF2*/(C)->_result_type/*12*/));
_formal_type=X62run_type(r147item((T147*)((/*RF2*/((T357*)((/*RF2*/(C)->_result_type/*12*/)))->_generic_list/*16*/)),1));
/*[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(((/*RF2*/(C)->_list/*16*/))==((void*)(NULL))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'0');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
_adr=X62is_user_expanded(_formal_type);
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),/*SSFRF4*//*X212count*/r212count((T212*)((/*RF2*/(C)->_list/*16*/))));
/*]*/
_i=/*SSCARF1*//*X212lower*/0;
while (!((_i)>(/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
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*/))));
}/*]*/
/*]*/
/*[IF*/
if(_adr){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
_e=X212item((/*RF2*/(C)->_list/*16*/),_i);
_actual_type=X62run_type(X126result_type(_e));
X126compile_to_c(_e);
_i=(_i)+(1);
}
}
/*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*/))));
}/*]*/
/*]*/
}


T6 r213stupid_switch(T213* C,T0* a1){
T6 R=0;
T2 _i=0;
R=1;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((!(R))||((_i)<(/*SSCARF1*//*X212lower*/0))))
{
R=X126stupid_switch(X212item((/*RF2*/(C)->_list/*16*/),_i),a1);
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}


void r213make(T213* C,T104 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_list)=a2;
}


void r213to_integer_error(T213* C){
/*[IRF3.6append*/{T0* b1=((T0*)ms20_752996481);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
r82print_as_error((T82*)(oBC19eh));
}


void r213assertion_check(T213* C,T3 a1){
T0* _e=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
_e=X212item((/*RF2*/(C)->_list/*16*/),_i);
X126assertion_check(_e,a1);
_i=(_i)-(1);
}
}
/*FI]*/
}


void r213afd_check(T213* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
X126afd_check(X212item((/*RF2*/(C)->_list/*16*/),_i));
_i=(_i)-(1);
}
}
/*FI]*/
}


T6 r213use_current(T213* C){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!(((_i)<(/*SSCARF1*//*X212lower*/0))||(R)))
{
R=X126use_current(X212item((/*RF2*/(C)->_list/*16*/),_i));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}


void r213c_declare_for_old(T213* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
X126c_declare_for_old(X212item((/*RF2*/(C)->_list/*16*/),_i));
_i=(_i)-(1);
}
}
/*FI]*/
}


void r213compile_to_c_old(T213* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
X126compile_to_c_old(X212item((/*RF2*/(C)->_list/*16*/),_i));
_i=(_i)-(1);
}
}
/*FI]*/
}


void r213mapping_c_target(T213* C,T0* a1){
/*[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*/))));
}/*]*/
/*]*/
X62mapping_cast(a1);
r213compile_to_c(C);
/*[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*/))));
}/*]*/
/*]*/
}


T2 r213to_integer_or_error(T213* C){
T2 R=0;
r213to_integer_error(C);
return R;
}


T6 r213is_pre_computable(T213* C){
T6 R=0;
T0* _e=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))==((void*)(NULL))){
R=1;
}
 else if(X62is_string(/*(IRF4.6first*/((/*RF2*/((T147*)((/*RF2*/((T357*)((/*RF2*/(C)->_result_type/*12*/)))->_generic_list/*16*/)))->_storage/*0*/))[0]/*)*/)){
R=1;
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((!(R))||((_i)<(/*SSCARF1*//*X212lower*/0))))
{
_e=X212item((/*RF2*/(C)->_list/*16*/),_i);
R=X126is_pre_computable(_e);
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}


T0* r213add_comment(T213* 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* r213to_runnable(T213* C,T0* a1){
T0* R=NULL;
T0* _elt=NULL;
T0* _e=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*20*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))==((void*)(NULL))){
_elt=r213type_any();
}
else{
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
_e=X126to_runnable(X212item((/*RF2*/(C)->_list/*16*/),_i),a1);
/*[IF*/
if((_e)==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
{T104 se_tmp0;
r213error((*(se_tmp0=X126start_position(X212item((/*RF2*/(C)->_list/*16*/),_i)),&se_tmp0)),((T0*)ms213_535614889));
}
_i=(/*SSCARF1*//*X212lower*/0)-(1);
}
else{
X212put((/*RF2*/(C)->_list/*16*/),_e,_i);
/*[IF*/
if((_elt)==((void*)(NULL))){
_elt=X126result_type(_e);
}
else{
_elt=X62smallest_ancestor(_elt,X126result_type(_e));
}
/*FI]*/
_i=(_i)-(1);
}
/*FI]*/
}
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
_elt=X62run_type(_elt);
{T104 se_tmp0;
{T357*n=((T357*)se_malloc(sizeof(*n))/*28*/);
*n=M357;
r357make(n,(/*RF2*/(C)->_start_position/*4*/),_elt);
(/*SFN*/C->_result_type)=((T0*)n);
}
}
r60set_at_run_time((T60*)(r357run_class((T357*)((/*RF2*/(C)->_result_type/*12*/)))));
r357load_basic_features((T357*)((/*RF2*/(C)->_result_type/*12*/)));
R=((T0*)(C));
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
_e=X212item((/*RF2*/(C)->_list/*16*/),_i);
_e=r440implicit_cast((T440*)(oBC19conversion_handler),_e,_elt);
X212put((/*RF2*/(C)->_list/*16*/),_e,_i);
_i=(_i)-(1);
}
}
/*FI]*/
r461register((/*RF2*/(C)->_result_type/*12*/));
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_list/*16*/))==((void*)(NULL))){
R=((T0*)(C));
}
else{
{T104 se_tmp0;
{T213*n=((T213*)se_malloc(sizeof(*n))/*24*/);
*n=M213;
r213make(n,(/*RF2*/(C)->_start_position/*4*/),X212twin((/*RF2*/(C)->_list/*16*/)));
R=((T0*)n);
}
}
R=r213to_runnable(((T213*)R),a1);
}
/*FI]*/
return R;
}


void r213collect_c_tmp(T213* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*16*/))!=((void*)(NULL))){
_i=/*SSWARF2*//*X212upper*/(/*RF2*/((T212*)((/*RF2*/(C)->_list/*16*/)))->_upper/*12*/);
while (!((_i)<(/*SSCARF1*//*X212lower*/0)))
{
X126collect_c_tmp(X212item((/*RF2*/(C)->_list/*16*/),_i));
_i=(_i)-(1);
}
}
/*FI]*/
}


T0* r213static_result_base_class(void){
T0* R=NULL;
R=r59get_class(((T0*)ms21_53339));
return R;
}


void r48append_token(T0* a1,T0* a2){
/*[IF*/
if(!(/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a2))->_count/*4*/))==(0)/*)*/)){
/*[IF*/
if((/*(IRF4.6first*/((/*RF2*/(((T7*)a2))->_storage/*0*/))[0]/*)*/)!=(((T3)'\40'))){
/*[IF*/
if(!(/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a1))->_count/*4*/))==(0)/*)*/)){
r7extend_unless(((T7*)a1),((T3)'\40'));
}
/*FI]*/
}
/*FI]*/
r7append(((T7*)a1),a2);
}
/*FI]*/
}


void r48set_c_compiler(T48* C,T0* a1){
T3 _c=0;
T0* _sd=NULL;
T2 _i=0;
/*[IF*/
if((a1)!=((void*)(NULL))){
_i=r52index_of((T52*)(oBC48compiler_list),a1);
/*[IF*/
if((_i)>((/*RF2*/((T52*)(oBC48compiler_list))->_upper/*12*/))){
r38w_put_string(((T0*)ms48_3498891));
r38w_put_string(a1);
r38w_put_string(((T0*)ms48_228399374));
r48show_compiler_list_then_exit(C);
}
/*FI]*/
(/*SFN*/C->_c_compiler)=r52item((T52*)(oBC48compiler_list),_i);
}
else{
_sd=(/*RF2*/(C)->_sys_directory/*4*/);
r7copy((T7*)(oBC19tmp_path),_sd);
r7append((T7*)(oBC19tmp_path),((T0*)ms48_1236979201));
r38sfr_connect_or_exit((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
(/*SFN*/C->_c_compiler)=r38read_word_in((T38*)(oBC19echo),oBC19tmp_file_read);
_i=r52index_of((T52*)(oBC48compiler_list),(/*RF2*/(C)->_c_compiler/*12*/));
/*[IF*/
if((_i)>((/*RF2*/((T52*)(oBC48compiler_list))->_upper/*12*/))){
r38w_put_string(((T0*)ms48_876917780));
r38w_put_string((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/));
r38w_put_string(((T0*)ms48_1090a));
r48show_compiler_list_then_exit(C);
}
/*FI]*/
(/*SFN*/C->_c_compiler)=r52item((T52*)(oBC48compiler_list),_i);
/*[IF*/
if(!(r43end_of_input((T43*)(oBC19tmp_file_read)))){
_c=/*(IRF4.6last_character*/((T3)((/*RF2*/((T43*)(oBC19tmp_file_read))->_memory/*9*/)))/*)*/;
while (!(((_c)==(((T3)'\n')))||((_c)==(((T3)'\15')))))
{
r7extend((T7*)(((T0*)ms48_0aaaaaaa)),_c);
r43read_character((T43*)(oBC19tmp_file_read));
/*[IF*/
if(!(r43end_of_input((T43*)(oBC19tmp_file_read)))){
_c=/*(IRF4.6last_character*/((T3)((/*RF2*/((T43*)(oBC19tmp_file_read))->_memory/*9*/)))/*)*/;
}
/*FI]*/
}
}
/*FI]*/
r43disconnect((T43*)(oBC19tmp_file_read));
while (!((/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aaaaaaa)))->_count/*4*/))==(0)/*)*/)||(!(r3is_separator(/*(IRF4.6first*/((/*RF2*/((T7*)(((T0*)ms48_0aaaaaaa)))->_storage/*0*/))[0]/*)*/)))))
{
r7remove_first((T7*)(((T0*)ms48_0aaaaaaa)),1);
}
/*[IF*/
if(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aaaaaaa)))->_count/*4*/))==(0)/*)*/){
/*[IF*/
if((((T0*)ms48_3169))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_1570));
}
 else if((((T0*)ms48_51699930))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_304));
}
 else if((((T0*)ms48_594))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_304a));
}
 else if((((T0*)ms48_448859))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
}
 else if((((T0*)ms48_76405))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_836475934));
}
 else if((((T0*)ms48_382130))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_1826831355));
}
 else if((((T0*)ms48_603))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_137550186));
}
 else if((((T0*)ms48_674))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms48_0aaaaaaa)))))->_count)=(0);
/*]*/
r7copy((T7*)(((T0*)ms48_0aaaaaa)),((T0*)ms48_12782));
/*[IF*/
if(!(r48Scoptions_exists())){
r48append_token(((T0*)ms48_0aaaaaa),((T0*)ms48_698995372));
}
/*FI]*/
}
 else if((((T0*)ms48_15721))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_1091987));
}
 else if((((T0*)ms48_17794))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
/*[IF*/
if((((T0*)ms48_57487))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_968120));
}
/*FI]*/
}
 else if((((T0*)ms48_3069))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_1570a));
}
 else if((((T0*)ms48_18144))==((void*)((/*RF2*/(C)->_c_compiler/*12*/)))){
r7copy((T7*)(((T0*)ms48_0aaaaaaa)),((T0*)ms48_1570aa));
}
else{
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}


T6 r48is_linking_mandatory(void){
T6 R=0;
R=!(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0a)))->_count/*4*/))==(0)/*)*/);
/*[IF*/
if(!(R)){
R=!(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aaa)))->_count/*4*/))==(0)/*)*/);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=!(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aa)))->_count/*4*/))==(0)/*)*/);
}
/*FI]*/
return R;
}
T0*oBC48system_list=NULL;


void r48add_directory(T48* C,T0* a1,T0* a2){
T3 _last=0;
/*[IF*/
if(r48slash_separator(C)){
r7extend_unless(((T7*)a1),((T3)'\57'));
r7append(((T7*)a1),a2);
r7extend_unless(((T7*)a1),((T3)'\57'));
}
 else if(r48backslash_separator(C)){
r7extend_unless(((T7*)a1),((T3)'\134'));
r7append(((T7*)a1),a2);
r7extend_unless(((T7*)a1),((T3)'\134'));
}
 else if((((T0*)ms48_39617954))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r7extend_unless(((T7*)a1),((T3)'\72'));
r7append(((T7*)a1),a2);
r7extend_unless(((T7*)a1),((T3)'\72'));
}
 else if((((T0*)ms48_57487))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
_last=r7last(((T7*)a1));
/*[IF*/
if(((_last)!=(((T3)'\57')))&&((_last)!=(((T3)'\72')))){
r7extend_unless(((T7*)a1),((T3)'\57'));
}
/*FI]*/
r7append(((T7*)a1),a2);
r7extend_unless(((T7*)a1),((T3)'\57'));
}
 else if((((T0*)ms48_2618))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r7extend_unless(((T7*)a1),((T3)'\135'));
r7remove_last(((T7*)a1),1);
r7extend_unless(((T7*)a1),((T3)'\56'));
r7append(((T7*)a1),a2);
r7extend_unless(((T7*)a1),((T3)'\135'));
}
else{
}
/*FI]*/
}
T6 oBC48Scoptions_exists=0;
int fBC48Scoptions_exists=0;


T6 r48Scoptions_exists(void){
if(fBC48Scoptions_exists==0){fBC48Scoptions_exists=1;{
oBC48Scoptions_exists=r86is_readable(((T0*)ms48_39204698));
}}
return oBC48Scoptions_exists;
}


void r48no_split_mode_command(T48* C,T0* a1,T0* a2){
/*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3169)))){
/*[IF*/
if(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aa)))->_count/*4*/))==(0)/*)*/){
r7append(((T7*)a1),((T0*)ms48_3169));
}
else{
r7append(((T7*)a1),((T0*)ms48_2833));
}
/*FI]*/
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_51699930)))){
r7append(((T7*)a1),((T0*)ms48_3294));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,a2);
r7extend(((T7*)a1),((T3)'\n'));
r48external_c_files_for_lcc_win32(C,a1);
r7append(((T7*)a1),((T0*)ms48_415107));
/*[IF*/
if(!((/*RF2*/(C)->_no_strip/*16*/))){
r48append_token(a1,((T0*)ms48_340));
}
/*FI]*/
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48add_output_name(C,a1);
/*[IRF3.6remove_suffix*/{T7* C1=((T7*)a2);
T0* b1=((T0*)ms19_329);
r7remove_last(C1,(/*RF2*/(((T7*)b1))->_count/*4*/));
}/*]*/
r7append(((T7*)a2),r48object_suffix(C));
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_594)))){
r7append(((T7*)a1),((T0*)ms48_594));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_448859)))){
r7append(((T7*)a1),((T0*)ms48_448859));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
r7append(((T7*)a1),((T0*)ms48_76405));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
r7append(((T7*)a1),((T0*)ms48_382130));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_603)))){
r7append(((T7*)a1),((T0*)ms48_603));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
r7append(((T7*)a1),((T0*)ms48_674));
r48append_token(a1,r48sas_c_compiler_options(0));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
r48add_output_name(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
r7append(((T7*)a1),((T0*)ms48_3094));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
/*[IF*/
if((/*RF2*/(C)->_no_strip/*16*/)){
r48append_token(a1,((T0*)ms48_340a));
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
r7append(((T7*)a1),((T0*)ms48_689));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_lib_math(C);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3069)))){
r7append(((T7*)a1),((T0*)ms48_3069));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
r7append(((T7*)a1),((T0*)ms48_18144));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48append_token(a1,a2);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
/*FI]*/
}


void r48add_x_suffix(T48* C,T0* a1){
T0* _suffix=NULL;
_suffix=r48x_suffix(C);
/*[IF*/
if(!(r7has_suffix(((T7*)a1),_suffix))){
r7append(((T7*)a1),_suffix);
}
/*FI]*/
}


T0* r48path_h(T48* C){
T0* R=NULL;
R=r7twin((T7*)((/*RF2*/((T57*)(oBC19run_control))->_root_class/*5*/)));
r7to_lower(((T7*)R));
/*[IF*/
if((((T0*)ms48_2178))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
while (!(((/*RF2*/(((T7*)R))->_count/*4*/))<=(4)))
{
r7remove_last(((T7*)R),1);
}
}
/*FI]*/
r7append(((T7*)R),((T0*)ms19_334));
return R;
}


void r48external_c_files_for_lcc_win32(T48* C,T0* a1){
T2 _i=0;
T0* _c_file=NULL;
T0* _c_files=NULL;
/*[IF*/
if(!(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aaa)))->_count/*4*/))==(0)/*)*/)){
_c_files=r7split((T7*)(((T0*)ms48_0aaa)));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms48_0aaa)))))->_count)=(0);
/*]*/
/*[IF*/
if((_c_files)!=((void*)(NULL))){
_i=(/*RF2*/(((T52*)_c_files))->_lower/*16*/);
while (!((_i)>((/*RF2*/(((T52*)_c_files))->_upper/*12*/))))
{
_c_file=r52item(((T52*)_c_files),_i);
r7append(((T7*)a1),((T0*)ms48_3294));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,_c_file);
r7extend(((T7*)a1),((T3)'\n'));
/*[IRF3.6remove_suffix*/{T7* C1=((T7*)_c_file);
T0* b1=((T0*)ms19_329);
r7remove_last(C1,(/*RF2*/(((T7*)b1))->_count/*4*/));
}/*]*/
r7append(((T7*)_c_file),r48object_suffix(C));
r48append_token(((T0*)ms48_0a),_c_file);
_i=(_i)+(1);
}
}
/*FI]*/
}
/*FI]*/
}


T2 r48extra_arg(T48* C,T0* a1,T2 a2,T0* a3){
T2 R=0;
/*[IF*/
if((/*(IRF4.6item*/((/*RF2*/(((T7*)a1))->_storage/*0*/))[(1)-(1)]/*)*/)!=(((T3)'\55'))){
/*[IF*/
if(r7has_suffix(((T7*)a1),r48object_suffix(C))){
r48append_token(((T0*)ms48_0a),a1);
R=(a2)+(1);
}
 else if(r7has_suffix(((T7*)a1),((T0*)ms19_329))){
r48append_token(((T0*)ms48_0aaa),a1);
R=(a2)+(1);
}
 else if(r48is_c_plus_plus_file_path(a1)){
r48append_token(((T0*)ms48_0aa),a1);
R=(a2)+(1);
}
 else if(r7has_suffix(((T7*)a1),((T0*)ms48_327))){
r48add_external_lib(a1);
R=(a2)+(1);
}
 else if(r7has_suffix(((T7*)a1),((T0*)ms48_9073))){
r48add_external_lib(a1);
R=(a2)+(1);
}
 else if(r7has_suffix(((T7*)a1),((T0*)ms48_9220))){
r48add_external_lib(a1);
R=(a2)+(1);
}
 else if(((/*RF2*/((T57*)(oBC19run_control))->_root_class/*5*/))==((void*)(NULL))){
r57compute_root_class((T57*)(oBC19run_control),a1);
R=(a2)+(1);
/*[IF*/
if((a3)!=((void*)(NULL))){
/*[IF*/
if((/*(IRF4.6item*/((/*RF2*/(((T7*)a3))->_storage/*0*/))[(1)-(1)]/*)*/)!=(((T3)'\55'))){
/*[IF*/
if(r7has_suffix(((T7*)a3),r48object_suffix(C))){
}
 else if(r7has_suffix(((T7*)a3),((T0*)ms19_329))){
}
 else if(r48is_c_plus_plus_file_path(a3)){
}
else{
/*[IRF3.3set_root_procedure*/((((T57*)((T57*)(oBC19run_control))))->_root_procedure_memory)=(a3);
/*]*/
R=(a2)+(2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
else{
r48append_token(((T0*)ms48_0aaaaaaa),a1);
R=(a2)+(1);
}
/*FI]*/
}
 else if(r7has_prefix(((T7*)a1),((T0*)ms48_333))){
r48add_external_lib(a1);
R=(a2)+(1);
}
 else if(r7has_prefix(((T7*)a1),((T0*)ms48_301))){
r48append_token(((T0*)ms48_0aaaaa),a1);
/*[IF*/
if(r7is_equal(ms48_301a,a1)){
/*[IF*/
if((a3)!=((void*)(NULL))){
r48append_token(((T0*)ms48_0aaaaa),a3);
R=(a2)+(2);
}
/*FI]*/
}
else{
R=(a2)+(1);
}
/*FI]*/
}
 else if(r7is_equal(ms48_143937264,a1)){
r48append_token(((T0*)ms48_0aaaaaa),a1);
/*[IF*/
if((a3)!=((void*)(NULL))){
r48append_token(((T0*)ms48_0aaaaaa),a3);
R=(a2)+(2);
}
else{
R=(a2)+(1);
}
/*FI]*/
}
 else if(r7is_equal(ms48_5578901,a1)){
/*[IF*/
if((a3)!=((void*)(NULL))){
r48append_token(((T0*)ms48_0aaaaaaa),a1);
r48append_token(((T0*)ms48_0aaaaaaa),a3);
R=(a2)+(2);
}
else{
R=(a2)+(1);
}
/*FI]*/
}
else{
r48append_token(((T0*)ms48_0aaaaaaa),a1);
R=(a2)+(1);
}
/*FI]*/
return R;
}
T0*oBC48id_file_path=NULL;
int fBC48id_file_path=0;


T0* r48id_file_path(T48* C){
if(fBC48id_file_path==0){fBC48id_file_path=1;{
oBC48id_file_path=r48path_h(C);
/*[IRF3.6remove_suffix*/{T7* C1=((T7*)oBC48id_file_path);
T0* b1=((T0*)ms19_334);
r7remove_last(C1,(/*RF2*/(((T7*)b1))->_count/*4*/));
}/*]*/
r7append(((T7*)oBC48id_file_path),((T0*)ms48_1775));
}}
return oBC48id_file_path;
}


void r48loading_path_add(T48* C,T0* a1,T0* a2,T2 a3){
T0* _line=NULL;
T0* _file=NULL;
/*[IF*/
if(((a3)>(5))||((r52count(((T52*)a1)))>(1024))){
r38w_put_string(((T0*)ms48_678217330));
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7make(n,1024);
_line=((T0*)n);
}
r48append_lp_in(C,_line,a1);
r38w_put_string(_line);
exit(1);
}
/*FI]*/
{T43*n=((T43*)se_malloc(sizeof(*n))/*13*/);
*n=M43;
/*[IRF3.1make*//*]*/
_file=((T0*)n);
}
r38sfr_connect((T38*)(oBC19echo),_file,a2);
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/(((T43*)_file))->_path/*1*/))!=(NULL)/*)*/){
r38put_string((T38*)(oBC19echo),((T0*)ms48_242975417));
r38put_string((T38*)(oBC19echo),a2);
r38put_string((T38*)(oBC19echo),((T0*)ms48_550783544));
while (!(r43end_of_input(((T43*)_file))))
{
r43read_line(((T43*)_file));
_line=r7twin((T7*)(oBC44last_string));
r48environment_variable_substitution(C,a2,_line);
/*[IF*/
if(r7has_suffix(((T7*)_line),((T0*)ms48_1319327951))){
r48loading_path_add(C,a1,_line,(a3)+(1));
}
 else if(/*(IRF4.7is_empty*/((/*RF2*/(((T7*)_line))->_count/*4*/))==(0)/*)*/){
/*[IF*/
if(!(r43end_of_input(((T43*)_file)))){
r52add_last(((T52*)a1),_line);
}
/*FI]*/
}
else{
r52add_last(((T52*)a1),_line);
}
/*FI]*/
}
r43disconnect(((T43*)_file));
}
/*FI]*/
}


T6 r48strip_executable(T48* C,T0* a1){
T6 R=0;
T0* _output_name=NULL;
/*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
/*]*/
/*[IF*/
if(!((/*RF2*/(C)->_no_strip/*16*/))){
_output_name=(/*RF2*/((T57*)(oBC19run_control))->_output_name/*13*/);
/*[IF*/
if((((T0*)ms48_13028))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
r7append(((T7*)a1),((T0*)ms48_449342));
/*[IF*/
if((_output_name)==((void*)(NULL))){
r7append(((T7*)a1),((T0*)ms48_69851));
}
else{
r7append(((T7*)a1),_output_name);
}
/*FI]*/
}
 else if((((T0*)ms48_2440))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
r7append(((T7*)a1),((T0*)ms48_1984046136));
/*[IF*/
if((_output_name)==((void*)(NULL))){
r7append(((T7*)a1),((T0*)ms48_69601));
}
else{
r7append(((T7*)a1),_output_name);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


void r48append_lp_in(T48* C,T0* a1,T0* a2){
T0* _sed=NULL;
T2 _i=0;
r7append(((T7*)a1),((T0*)ms48_1182185621));
_i=(/*RF2*/(((T52*)a2))->_lower/*16*/);
while (!((_i)>((/*RF2*/(((T52*)a2))->_upper/*12*/))))
{
r7extend(((T7*)a1),((T3)'\40'));
r7extend(((T7*)a1),((T3)'\42'));
r7append(((T7*)a1),r52item(((T52*)a2),_i));
r7extend(((T7*)a1),((T3)'\42'));
r7extend(((T7*)a1),((T3)'\n'));
_i=(_i)+(1);
}
r7append(((T7*)a1),((T0*)ms48_1972658421));
_sed=r48get_environment_variable(C,((T0*)ms20_1071750288));
/*[IF*/
if((_sed)==((void*)(NULL))){
r7append(((T7*)a1),((T0*)ms48_53640765));
}
else{
r7append(((T7*)a1),((T0*)ms48_194));
r7append(((T7*)a1),_sed);
r7append(((T7*)a1),((T0*)ms48_1090));
}
/*FI]*/
}


void r48environment_variable_substitution(T48* C,T0* a1,T0* a2){
T0* _variable=NULL;
T0* _value=NULL;
T3 _c=0;
T2 _mem2=0;
T2 _mem1=0;
T2 _state=0;
T2 _i=0;
_i=1;
while (!((_i)>((/*RF2*/(((T7*)a2))->_count/*4*/))))
{
_c=/*(IRF4.6item*/((/*RF2*/(((T7*)a2))->_storage/*0*/))[(_i)-(1)]/*)*/;
/*[INSPECT*/
{int z1=_state;
switch(z1){
case 0:
/*[IF*/
if((_c)==(((T3)'\44'))){
_state=1;
_mem1=_i;
}
/*FI]*/
break;
case 1:
/*[IF*/
if((_c)==(((T3)'\173'))){
_state=2;
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7make(n,8);
_variable=((T0*)n);
}
}
else{
_state=0;
}
/*FI]*/
break;
case 2:
/*[IF*/
if((_c)==(((T3)'\175'))){
_state=3;
_mem2=_i;
}
else{
r7extend(((T7*)_variable),_c);
}
/*FI]*/
break;
}
}/*INSPECT]*/
_i=(_i)+(1);
}
/*[IF*/
if((_state)==(3)){
_value=r48get_environment_variable(C,_variable);
/*[IF*/
if((_value)==((void*)(NULL))){
r38w_put_string(((T0*)ms48_354654986));
r38w_put_string(_variable);
r38w_put_string(((T0*)ms48_427244));
r38w_put_string(a1);
r38w_put_string(((T0*)ms48_152027832));
}
else{
r7copy(((T7*)_variable),a2);
r7head(((T7*)a2),(_mem1)-(1));
r7append(((T7*)a2),_value);
r7remove_first(((T7*)_variable),_mem2);
r7append(((T7*)a2),_variable);
r48environment_variable_substitution(C,a1,a2);
}
/*FI]*/
}
/*FI]*/
}


void r48read_loading_path_in(T48* C,T0* a1){
r48loading_path_add(C,a1,((T0*)ms48_1319327951),1);
r7copy((T7*)(oBC19tmp_path),(/*RF2*/(C)->_sys_directory/*4*/));
r7append((T7*)(oBC19tmp_path),((T0*)ms48_52773091));
r7append((T7*)(oBC19tmp_path),(/*RF2*/(C)->_system_name/*0*/));
r48loading_path_add(C,a1,oBC19tmp_path,1);
}


void r48split_mode_c_compiler_command(T48* C,T0* a1,T0* a2){
/*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3169)))){
/*[IF*/
if(r48is_c_plus_plus_file_path(a2)){
r7append(((T7*)a1),((T0*)ms48_2833));
}
else{
r7append(((T7*)a1),((T0*)ms48_3169));
}
/*FI]*/
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_51699930)))){
r7append(((T7*)a1),((T0*)ms48_3294));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_594)))){
r7append(((T7*)a1),((T0*)ms48_594));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_448859)))){
r7append(((T7*)a1),((T0*)ms48_447734));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
r7append(((T7*)a1),((T0*)ms48_76405));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
r7append(((T7*)a1),((T0*)ms48_382130));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_603)))){
r7append(((T7*)a1),((T0*)ms48_603));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
r7append(((T7*)a1),((T0*)ms48_674));
r48append_token(a1,r48sas_c_compiler_options(1));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
r7append(((T7*)a1),((T0*)ms48_3094));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
r7append(((T7*)a1),((T0*)ms48_689));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3069)))){
r7append(((T7*)a1),((T0*)ms48_3069));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
r7append(((T7*)a1),((T0*)ms48_18144));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_324));
r48append_token(a1,a2);
}
/*FI]*/
}
T0*oBC48make_suffix=NULL;
int fBC48make_suffix=0;


T0* r48make_suffix(T48* C){
if(fBC48make_suffix==0){fBC48make_suffix=1;{
/*[IF*/
if((((T0*)ms48_2178))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48make_suffix=((T0*)ms48_7809);
}
 else if((((T0*)ms48_1772235))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48make_suffix=((T0*)ms48_8801);
}
 else if((((T0*)ms48_2618))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48make_suffix=((T0*)ms48_7897);
}
 else if((((T0*)ms48_2440))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48make_suffix=((T0*)ms48_7878);
}
 else if((((T0*)ms48_59731))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48make_suffix=((T0*)ms48_9222);
}
else{
oBC48make_suffix=((T0*)ms48_45436);
}
/*FI]*/
}}
return oBC48make_suffix;
}
T0*oBC48object_suffix=NULL;
int fBC48object_suffix=0;


T0* r48object_suffix(T48* C){
if(fBC48object_suffix==0){fBC48object_suffix=1;{
/*[IF*/
if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3169)))){
oBC48object_suffix=((T0*)ms48_341);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_51699930)))){
oBC48object_suffix=((T0*)ms48_9121);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_594)))){
/*[IF*/
if(((/*RF2*/(C)->_system_name/*0*/))==((void*)(((T0*)ms48_2618)))){
oBC48object_suffix=((T0*)ms48_9121);
r7to_upper(((T7*)oBC48object_suffix));
}
else{
oBC48object_suffix=((T0*)ms48_341);
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_448859)))){
oBC48object_suffix=((T0*)ms48_9121);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
oBC48object_suffix=((T0*)ms48_9121);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
oBC48object_suffix=((T0*)ms48_9121);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_603)))){
oBC48object_suffix=((T0*)ms48_9121);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
oBC48object_suffix=((T0*)ms48_341);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
oBC48object_suffix=((T0*)ms48_341);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
oBC48object_suffix=((T0*)ms48_341);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3069)))){
oBC48object_suffix=((T0*)ms48_341);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
oBC48object_suffix=((T0*)ms48_341);
}
/*FI]*/
}}
return oBC48object_suffix;
}


void r48make(T48* C){
T2 _i=0;
T0* _system_se_path=NULL;
_system_se_path=r48get_environment_variable(C,((T0*)ms20_1071750288));
/*[IF*/
if((_system_se_path)==((void*)(NULL))){
_system_se_path=r7twin((T7*)(((T0*)ms20_1071750288)));
r7to_upper(((T7*)_system_se_path));
_system_se_path=r48get_environment_variable(C,_system_se_path);
/*[IF*/
if((_system_se_path)==((void*)(NULL))){
r38put_string((T38*)(oBC19echo),((T0*)ms48_860169684));
_system_se_path=((T0*)ms48_115188994);
r38put_string((T38*)(oBC19echo),_system_se_path);
r38put_string((T38*)(oBC19echo),((T0*)ms20_216));
}
/*FI]*/
}
else{
r38put_string((T38*)(oBC19echo),((T0*)ms48_1023953763));
r38put_string((T38*)(oBC19echo),_system_se_path);
r38put_string((T38*)(oBC19echo),((T0*)ms20_1090));
}
/*FI]*/
/*[IF*/
if(r7has_suffix(((T7*)_system_se_path),((T0*)ms20_56612951))){
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,_system_se_path);
}
else{
r38put_string((T38*)(oBC19echo),((T0*)ms48_679150617));
/*[IF*/
if(r7has(((T7*)_system_se_path),((T3)'\57'))){
r38put_string((T38*)(oBC19echo),((T0*)ms48_467476687));
r7copy((T7*)(oBC19tmp_path),_system_se_path);
r7extend_unless((T7*)(oBC19tmp_path),((T3)'\57'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_3595));
r7extend((T7*)(oBC19tmp_path),((T3)'\57'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_56612951));
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/))!=(NULL)/*)*/)){
/*[IF*/
if(r7has(((T7*)_system_se_path),((T3)'\134'))){
r38put_string((T38*)(oBC19echo),((T0*)ms48_581585530));
r7copy((T7*)(oBC19tmp_path),_system_se_path);
r7extend_unless((T7*)(oBC19tmp_path),((T3)'\134'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_3595));
r7extend((T7*)(oBC19tmp_path),((T3)'\134'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_56612951));
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/))!=(NULL)/*)*/)){
/*[IF*/
if(r7has(((T7*)_system_se_path),((T3)'\72'))){
r38put_string((T38*)(oBC19echo),((T0*)ms48_1631212670));
r7copy((T7*)(oBC19tmp_path),_system_se_path);
r7extend_unless((T7*)(oBC19tmp_path),((T3)'\72'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_3595));
r7extend((T7*)(oBC19tmp_path),((T3)'\72'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_56612951));
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/))!=(NULL)/*)*/)){
/*[IF*/
if(r7has(((T7*)_system_se_path),((T3)'\135'))){
r38put_string((T38*)(oBC19echo),((T0*)ms48_128214728));
r7copy((T7*)(oBC19tmp_path),_system_se_path);
r7extend_unless((T7*)(oBC19tmp_path),((T3)'\135'));
r7remove_last((T7*)(oBC19tmp_path),1);
r7extend((T7*)(oBC19tmp_path),((T3)'\56'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_3595));
r7extend((T7*)(oBC19tmp_path),((T3)'\135'));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_56612951));
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/))!=(NULL)/*)*/)){
r38put_string((T38*)(oBC19echo),((T0*)ms48_1106932385));
r7copy((T7*)(oBC19tmp_path),_system_se_path);
r7append((T7*)(oBC19tmp_path),((T0*)ms20_56612951));
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/))!=(NULL)/*)*/)){
r38w_put_string(((T0*)ms48_1429938878));
exit(1);
}
/*FI]*/
r43read_line((T43*)(oBC19tmp_file_read));
(/*SFN*/C->_system_name)=oBC44last_string;
_i=r52index_of((T52*)(oBC48system_list),(/*RF2*/(C)->_system_name/*0*/));
/*[IF*/
if((_i)>((/*RF2*/((T52*)(oBC48system_list))->_upper/*12*/))){
r38w_put_string(((T0*)ms48_179868158));
r38w_put_string((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/));
r38w_put_string(((T0*)ms48_1866433364));
_i=1;
while (!((_i)>((/*RF2*/((T52*)(oBC48system_list))->_upper/*12*/))))
{
r38w_put_string(r52item((T52*)(oBC48system_list),_i));
r38w_put_character(((T3)'\n'));
_i=(_i)+(1);
}
exit(1);
}
else{
(/*SFN*/C->_system_name)=r52item((T52*)(oBC48system_list),_i);
r38put_string((T38*)(oBC19echo),((T0*)ms48_1102814319));
r38put_string((T38*)(oBC19echo),(/*RF2*/(C)->_system_name/*0*/));
r38put_string((T38*)(oBC19echo),((T0*)ms20_1090));
}
/*FI]*/
(/*SFN*/C->_sys_directory)=r7twin((T7*)((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/)));
/*[IRF3.6remove_suffix*/{T7* C1=(T7*)((/*RF2*/(C)->_sys_directory/*4*/));
T0* b1=((T0*)ms20_56612951);
r7remove_last(C1,(/*RF2*/(((T7*)b1))->_count/*4*/));
}/*]*/
r43disconnect((T43*)(oBC19tmp_file_read));
(/*SFN*/C->_bin_directory)=r7twin((T7*)((/*RF2*/(C)->_sys_directory/*4*/)));
r48parent_directory(C,(/*RF2*/(C)->_bin_directory/*8*/));
r48add_directory(C,(/*RF2*/(C)->_bin_directory/*8*/),((T0*)ms20_3085));
}


void r48parent_directory(T48* C,T0* a1){
/*[IF*/
if(r48slash_separator(C)){
r7remove_last(((T7*)a1),1);
while (!((/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a1))->_count/*4*/))==(0)/*)*/)||((r7last(((T7*)a1)))==(((T3)'\57')))))
{
r7remove_last(((T7*)a1),1);
}
}
 else if(r48backslash_separator(C)){
r7remove_last(((T7*)a1),1);
while (!((/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a1))->_count/*4*/))==(0)/*)*/)||((r7last(((T7*)a1)))==(((T3)'\134')))))
{
r7remove_last(((T7*)a1),1);
}
}
 else if((((T0*)ms48_39617954))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r7remove_last(((T7*)a1),1);
while (!((/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a1))->_count/*4*/))==(0)/*)*/)||((r7last(((T7*)a1)))==(((T3)'\72')))))
{
r7remove_last(((T7*)a1),1);
}
}
 else if((((T0*)ms48_57487))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r7remove_last(((T7*)a1),1);
while (!((/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a1))->_count/*4*/))==(0)/*)*/)||(r7has(ms48_293,r7last(((T7*)a1))))))
{
r7remove_last(((T7*)a1),1);
}
}
 else if((((T0*)ms48_2618))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r7remove_last(((T7*)a1),1);
while (!((/*(IRF4.7is_empty*/((/*RF2*/(((T7*)a1))->_count/*4*/))==(0)/*)*/)||((r7last(((T7*)a1)))==(((T3)'\56')))))
{
r7remove_last(((T7*)a1),1);
}
r7remove_last(((T7*)a1),1);
r7extend(((T7*)a1),((T3)'\135'));
}
else{
}
/*FI]*/
}


void r48show_compiler_list_then_exit(T48* C){
T2 _i=0;
r38w_put_string(((T0*)ms48_270309168));
_i=1;
while (!((_i)>((/*RF2*/((T52*)(oBC48compiler_list))->_upper/*12*/))))
{
r38w_put_string(r52item((T52*)(oBC48compiler_list),_i));
r38w_put_character(((T3)'\n'));
_i=(_i)+(1);
}
exit(1);
}


void r48add_output_name(T48* C,T0* a1){
T0* _output_name=NULL;
_output_name=(/*RF2*/((T57*)(oBC19run_control))->_output_name/*13*/);
/*[IF*/
if((_output_name)==((void*)(NULL))){
_output_name=r7twin((T7*)((/*RF2*/((T57*)(oBC19run_control))->_root_class/*5*/)));
r7to_lower(((T7*)_output_name));
/*[IF*/
if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_51699930)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
r48append_token(a1,((T0*)ms48_326));
r7append(((T7*)a1),_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
r48append_token(a1,((T0*)ms48_326));
r7append(((T7*)a1),_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_448859)))){
r48append_token(a1,((T0*)ms48_336));
r7append(((T7*)a1),_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
_output_name=r7twin((T7*)((/*RF2*/((T57*)(oBC19run_control))->_root_class/*5*/)));
r7to_lower(((T7*)_output_name));
r7append(((T7*)a1),((T0*)ms48_6687));
r7append(((T7*)a1),_output_name);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
r48append_token(a1,((T0*)ms48_336));
r7append(((T7*)a1),_output_name);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
r48append_token(a1,((T0*)ms48_336));
r7append(((T7*)a1),_output_name);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
r48append_token(a1,((T0*)ms48_336));
r7append(((T7*)a1),_output_name);
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3169)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_51699930)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_594)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_448859)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
r48append_token(a1,((T0*)ms48_326));
r7append(((T7*)a1),_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
r48append_token(a1,((T0*)ms48_326));
r7append(((T7*)a1),_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_603)))){
r48append_token(a1,((T0*)ms48_336));
r7append(((T7*)a1),_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
r7append(((T7*)a1),((T0*)ms48_6687));
r48append_token(a1,_output_name);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3069)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
r48append_token(a1,((T0*)ms48_336));
r48append_token(a1,_output_name);
r48add_x_suffix(C,a1);
}
/*FI]*/
}


T0* r48get_environment_variable(T48* C,T0* a1){
T0* R=NULL;
T8 _null=NULL;
T8 _p=NULL;
_p=r7to_external(((T7*)a1));
_p=basic_getenv(_p);
/*[IF*/
if((_p)!=(_null)){
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7from_external_copy(n,_p);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


void r48put_mark_stack_and_registers(T48* C){
T0* _architecture=NULL;
r7copy((T7*)(oBC19tmp_path),(/*RF2*/(C)->_sys_directory/*4*/));
r7append((T7*)(oBC19tmp_path),((T0*)ms20_614));
r38sfr_connect_or_exit((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
_architecture=r38read_word_in((T38*)(oBC19echo),oBC19tmp_file_read);
r43disconnect((T43*)(oBC19tmp_file_read));
/*[IF*/
if(r7is_equal((T7*)(((T0*)ms21_12184)),_architecture)){
/*[IRF3.6append*/{T0* b1=((T0*)ms48_793284570);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=oBC19tmp_path;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms48_1461099594);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_warning((T82*)(oBC19eh));
_architecture=((T0*)ms48_50246554);
}
/*FI]*/
r7copy((T7*)(oBC19tmp_path),(/*RF2*/(C)->_sys_directory/*4*/));
r48add_directory(C,oBC19tmp_path,((T0*)ms20_398948));
r7append((T7*)(oBC19tmp_path),_architecture);
r38sfr_connect_or_exit((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
/*[IRF3.6put_c_file*/{T0* b1=oBC19tmp_file_read;
r83put_file(b1,oBC83out_c);
}/*]*/
}


T6 r48slash_separator(T48* C){
T6 R=0;
/*[IF*/
if((((T0*)ms48_13028))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
}
 else if((((T0*)ms48_11253))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
}
 else if((((T0*)ms48_59731))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
}
/*FI]*/
return R;
}


void r48add_external_lib(T0* a1){
/*[IF*/
if(!(r7has_string((T7*)(((T0*)ms48_0)),a1))){
r48append_token(((T0*)ms48_0),a1);
}
/*FI]*/
}


T6 r48is_c_plus_plus_file_path(T0* a1){
T6 R=0;
/*[IF*/
if(r7has_suffix(((T7*)a1),((T0*)ms19_8897))){
R=1;
}
 else if(r7has_suffix(((T7*)a1),((T0*)ms48_1744))){
R=1;
}
 else if(r7has_suffix(((T7*)a1),((T0*)ms48_297))){
R=1;
}
/*FI]*/
return R;
}
T86 oBC1file_tools=0;
T0*oBC48x_suffix=NULL;
int fBC48x_suffix=0;


T0* r48x_suffix(T48* C){
if(fBC48x_suffix==0){fBC48x_suffix=1;{
/*[IF*/
if((((T0*)ms48_2178))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48x_suffix=((T0*)ms48_8976);
r7to_upper(((T7*)oBC48x_suffix));
}
 else if((((T0*)ms48_2618))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48x_suffix=((T0*)ms48_8976);
r7to_upper(((T7*)oBC48x_suffix));
}
 else if((((T0*)ms48_2440))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48x_suffix=((T0*)ms48_8976);
}
 else if((((T0*)ms48_1772235))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48x_suffix=((T0*)ms48_8976);
}
 else if((((T0*)ms48_59731))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
oBC48x_suffix=((T0*)ms48_1438);
}
else{
oBC48x_suffix=((T0*)ms48_0aaaa);
}
/*FI]*/
}}
return oBC48x_suffix;
}
T0*oBC48compiler_list=NULL;
int fBC48add_lib_math=0;


void r48add_lib_math(T48* C){
if(fBC48add_lib_math==0){fBC48add_lib_math=1;{
/*[IF*/
if((((T0*)ms48_11253))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3169)))){
r48add_external_lib(((T0*)ms48_1774));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
r48add_external_lib(((T0*)ms48_1774));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
r48add_external_lib(((T0*)ms48_1774));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_603)))){
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
r48add_external_lib(((T0*)ms48_1774));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
/*[IF*/
if((((T0*)ms48_57487))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r48add_external_lib(((T0*)ms48_1125006));
}
else{
r48add_external_lib(((T0*)ms48_1774));
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3069)))){
r48add_external_lib(((T0*)ms48_223953));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
}
/*FI]*/
}}}


void r48put_c_main_function_type(T48* C,T0* a1){
/*[IF*/
if((((T0*)ms48_2618))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r58put_string(((T58*)a1),((T0*)ms20_18150));
}
else{
r58put_string(((T58*)a1),((T0*)ms20_3291));
}
/*FI]*/
}


void r48add_external_lib_path(T0* a1){
/*[IF*/
if(!(r7has_string((T7*)(((T0*)ms48_0aaaaa)),a1))){
r48append_token(((T0*)ms48_0aaaaa),a1);
}
/*FI]*/
}


void r48bad_use_exit(T48* C,T0* a1){
r38w_put_string(((T0*)ms48_1832417772));
r38w_put_string(a1);
r38w_put_string(((T0*)ms48_1215));
r7copy((T7*)(oBC19tmp_path),(/*RF2*/(C)->_sys_directory/*4*/));
r48parent_directory(C,oBC19tmp_path);
r48add_directory(C,oBC19tmp_path,((T0*)ms48_3320));
r7append((T7*)(oBC19tmp_path),a1);
r7append((T7*)(oBC19tmp_path),((T0*)ms19_9366));
r38w_put_string(((T0*)ms48_1462565417));
r38w_put_string(oBC19tmp_path);
r38w_put_character(((T3)'\n'));
exit(1);
}


void r48add_objects(T48* C,T0* a1,T0* a2,T2 a3){
T2 _i=0;
_i=1;
while (!((_i)>(a3)))
{
r48append_token(a1,a2);
r2append_in(_i,a1);
r7append(((T7*)a1),r48object_suffix(C));
_i=(_i)+(1);
}
}


void r48put_c_main_function_exit(T48* C,T0* a1){
r58put_string(((T58*)a1),((T0*)ms48_1291097955));
/*[IF*/
if((((T0*)ms48_2618))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
r58put_string(((T58*)a1),((T0*)ms48_54687110));
}
else{
r58put_string(((T58*)a1),((T0*)ms48_1367153110));
}
/*FI]*/
}


T6 r48backslash_separator(T48* C){
T6 R=0;
/*[IF*/
if((((T0*)ms48_1772235))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
}
 else if((((T0*)ms48_2178))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
}
 else if((((T0*)ms48_2440))==((void*)((/*RF2*/(C)->_system_name/*0*/)))){
R=1;
}
/*FI]*/
return R;
}


void r48sys_runtime(T48* C,T0* a1,T3 a2){
r7copy((T7*)(oBC19tmp_path),(/*RF2*/(C)->_sys_directory/*4*/));
r48add_directory(C,oBC19tmp_path,((T0*)ms20_2233396));
r7append((T7*)(oBC19tmp_path),a1);
r7extend((T7*)(oBC19tmp_path),((T3)'\56'));
r7extend((T7*)(oBC19tmp_path),a2);
r38sfr_connect_or_exit((T38*)(oBC19echo),oBC19tmp_file_read,oBC19tmp_path);
}


T0* r48sas_c_compiler_options(T6 a1){
T0* R=NULL;
/*[IF*/
if(r48Scoptions_exists()){
R=((T0*)ms48_0aaaaaaaa);
}
else{
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7make(n,0);
R=((T0*)n);
}
r7append(((T7*)R),((T0*)ms48_1721407046));
/*[IF*/
if(a1){
r7append(((T7*)R),((T0*)ms48_19761224));
}
else{
r7append(((T7*)R),((T0*)ms48_98806116));
}
/*FI]*/
r7append(((T7*)R),((T0*)ms48_1494914262));
r7append(((T7*)R),((T0*)ms48_721564652));
}
/*FI]*/
return R;
}


void r48split_mode_linker_command(T48* C,T0* a1,T0* a2,T2 a3){
/*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3169)))){
/*[IF*/
if(/*(IRF4.7is_empty*/((/*RF2*/((T7*)(((T0*)ms48_0aa)))->_count/*4*/))==(0)/*)*/){
r7append(((T7*)a1),((T0*)ms48_3169));
}
else{
r7append(((T7*)a1),((T0*)ms48_2833));
}
/*FI]*/
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_51699930)))){
r48external_c_files_for_lcc_win32(C,a1);
r7append(((T7*)a1),((T0*)ms48_415107));
/*[IF*/
if(!((/*RF2*/(C)->_no_strip/*16*/))){
r48append_token(a1,((T0*)ms48_340));
}
/*FI]*/
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_594)))){
r7append(((T7*)a1),((T0*)ms48_594));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_448859)))){
r7append(((T7*)a1),((T0*)ms48_91157));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_76405)))){
r7append(((T7*)a1),((T0*)ms48_76405));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_382130)))){
r7append(((T7*)a1),((T0*)ms48_382130));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_603)))){
r7append(((T7*)a1),((T0*)ms48_603));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_674)))){
r7append(((T7*)a1),((T0*)ms48_674));
r48append_token(a1,r48sas_c_compiler_options(1));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,a2);
r7append(((T7*)a1),((T0*)ms48_2075119688));
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
r48add_output_name(C,a1);
/*[IF*/
if(!((/*RF2*/(C)->_no_strip/*16*/))){
r7append(((T7*)a1),((T0*)ms48_530877013));
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_15721)))){
r7append(((T7*)a1),((T0*)ms48_3094));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
/*[IF*/
if((/*RF2*/(C)->_no_strip/*16*/)){
r48append_token(a1,((T0*)ms48_218174));
}
/*FI]*/
r48add_lib_math(C);
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_17794)))){
r7append(((T7*)a1),((T0*)ms48_689));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_lib_math(C);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_3069)))){
r7append(((T7*)a1),((T0*)ms48_3069));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
 else if(((/*RF2*/(C)->_c_compiler/*12*/))==((void*)(((T0*)ms48_18144)))){
r7append(((T7*)a1),((T0*)ms48_18144));
r48append_token(a1,((T0*)ms48_0aaaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaaa));
r48append_token(a1,((T0*)ms48_0aaaaa));
r48add_output_name(C,a1);
r48add_objects(C,a1,a2,a3);
r48append_token(a1,((T0*)ms48_0aaa));
r48append_token(a1,((T0*)ms48_0aa));
r48append_token(a1,((T0*)ms48_0a));
r48append_token(a1,((T0*)ms48_0));
}
/*FI]*/
}
int fBC48add_lib_basic_gui=0;


void r48add_lib_basic_gui(void){
if(fBC48add_lib_basic_gui==0){fBC48add_lib_basic_gui=1;{
r48add_external_lib_path(((T0*)ms48_1514967669));
r48add_external_lib(((T0*)ms48_44119));
}}}


T0* r205check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms205_3293);
return R;
}


void r205make_runnable(T205* C,T104 a1,T0* a2,T0* a3,T0* a4){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_list)=a2;
(/*SFN*/C->_current_type)=a3;
(/*SFN*/C->_run_feature)=a4;
}
T0*oBC205c_code=NULL;


void r205compile_to_c(T205* C){
T0* _assertion=NULL;
T6 _need_se_tmp=0;
T2 _i=0;
/*[IF*/
if(r205is_always_true(C)){
r83increment_static_expression_count((T83*)(oBC19cpp),r204count((T204*)((/*RF2*/(C)->_list/*12*/))));
}
else{
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms206_179423058));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms206_3175));
/*]*/
/*SSPRF3*//*X96c_assertion_flag*/r154c_assertion_flag((T154*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms206_1650));
/*]*/
/*SSPRF3*//*X96c_assertion_flag*/r154c_assertion_flag((T154*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms206_9130));
/*]*/
}
/*FI]*/
_i=1;
while (!((_i)>((/*RF2*/((T204*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_assertion=r204item((T204*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(r203is_always_true(((T203*)_assertion))){
}
else{
r203collect_c_tmp(((T203*)_assertion));
_need_se_tmp=r83se_tmp_open_declaration((T83*)(oBC19cpp));
/*[IRF3.3set_check_assertion_mode*/((((T83*)((T83*)(oBC19cpp))))->_check_assertion_mode)=(r205check_assertion_mode());
/*]*/
r203compile_to_c(((T203*)_assertion));
/*[IF*/
if(_need_se_tmp){
r83se_tmp_close_declaration((T83*)(oBC19cpp));
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms206_862271166));
/*]*/
}
else{
/*SSPRF3*//*X96c_assertion_flag*/r154c_assertion_flag((T154*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms206_229510));
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r205add_into(T205* C,T0* a1){
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=1;
while (!((_i)>((/*RF2*/((T204*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_a=r204item((T204*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(!(r204fast_has(((T204*)a1),_a))){
r204add_last(((T204*)a1),_a);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}


void r205make(T205* C,T104 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_header_comment)=a2;
(/*SFN*/C->_list)=a3;
}


void r205afd_check(T205* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T204*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
r203afd_check((T203*)(r204item((T204*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
}


T6 r205is_always_true(T205* C){
T6 R=0;
T0* _assertion=NULL;
T2 _i=0;
_i=(/*RF2*/((T204*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
R=1;
while (!((!(R))||((_i)==(0))))
{
_assertion=r204item((T204*)((/*RF2*/(C)->_list/*12*/)),_i);
R=r203is_always_true(((T203*)_assertion));
_i=(_i)-(1);
}
return R;
}


void r205c_define(T205* C){
T2 _id=0;
_id=X62id((/*RF2*/(C)->_current_type/*16*/));
r7copy((T7*)(oBC205c_code),((T0*)ms205_1728089446));
r2append_in(_id,oBC205c_code);
r83put_extern7((T83*)(oBC19cpp),oBC205c_code);
r7copy((T7*)(oBC205c_code),((T0*)ms205_427957207));
r7append((T7*)(oBC205c_code),X62run_time_mark((/*RF2*/(C)->_current_type/*16*/)));
r7append((T7*)(oBC205c_code),((T0*)ms205_706329));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC19c_frame_descriptor_format))))->_count)=(0);
/*]*/
X62c_frame_descriptor((/*RF2*/(C)->_current_type/*16*/));
r7append((T7*)(oBC205c_code),oBC19c_frame_descriptor_format);
r7append((T7*)(oBC205c_code),((T0*)ms205_143305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC205c_code);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC205c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC205c_code),((T3)'T'));
r2append_in(_id,oBC205c_code);
r7extend((T7*)(oBC205c_code),((T3)'\52'));
r7append((T7*)(oBC205c_code),((T0*)ms20_17480));
r2append_in(_id,oBC205c_code);
r7append((T7*)(oBC205c_code),((T0*)ms205_1365491496));
r2append_in(_id,oBC205c_code);
r7append((T7*)(oBC205c_code),((T0*)ms205_1426));
r83put_c_heading((T83*)(oBC19cpp),oBC205c_code);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
r7copy((T7*)(oBC205c_code),((T0*)ms205_1112610025));
r2append_in(_id,oBC205c_code);
r7append((T7*)(oBC205c_code),((T0*)ms205_447148204));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC205c_code);
/*]*/
{T104 se_tmp0;
r83put_position_in_ds((/*RF2*/(C)->_start_position/*0*/));
}
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms205_1103861333));
/*]*/
r205compile_to_c(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms205_828911582));
/*]*/
}


T0* r73up_to_original(T73* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _old_name=NULL;
_bc=(/*RF2*/(C)->_base_class/*4*/);
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=r61up_to_original(((T61*)_bc),a1,a2);
}
else{
_old_name=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a2);
/*[IF*/
if((_old_name)!=((void*)(NULL))){
R=r61up_to_original(((T61*)_bc),a1,_old_name);
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r73consider_export(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_export_list/*20*/))==((void*)(NULL))){
R=r61clients_for((T61*)((/*RF2*/(C)->_base_class/*4*/)),a1);
}
else{
R=r413clients_for((T413*)((/*RF2*/(C)->_export_list/*20*/)),a1);
/*[IF*/
if((R)==((void*)(NULL))){
R=r61clients_for((T61*)((/*RF2*/(C)->_base_class/*4*/)),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r73going_up(T73* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _bc=NULL;
_bc=(/*RF2*/(C)->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(a2))){
R=r73going_down(C,a1,a3);
}
 else if(((/*RF2*/(C)->_base_class_name/*8*/))==((void*)(((T0*)ms21_1384826)))){
R=r73going_down(C,a1,a3);
}
 else if(r61is_subclass_of(((T61*)_bc),a2)){
r74add_last(((T74*)a1),(T0*)C);
R=r61going_up(((T61*)_bc),a1,a2,a3);
}
/*FI]*/
return R;
}


T0* r73get_new_name(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))!=((void*)(NULL))){
R=r188name_in_child((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a1);
/*[IF*/
if((R)==((void*)(a1))){
R=NULL;
}
/*FI]*/
}
/*FI]*/
return R;
}
T0*oBC73forbidden_parent_list=NULL;


T0* r73runnable_type(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(X62is_generic((/*RF2*/(C)->_type/*0*/))){
R=X62to_runnable((/*RF2*/(C)->_type/*0*/),a1);
}
else{
R=(/*RF2*/(C)->_type/*0*/);
}
/*FI]*/
return R;
}


T0* r73look_up_for(T73* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _pfn=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=r61look_up_for((T61*)((/*RF2*/(C)->_base_class/*4*/)),a1,a2);
R=r73apply_undefine(C,R,a2);
}
else{
_pfn=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a2);
/*[IF*/
if((_pfn)!=((void*)(NULL))){
R=r61look_up_for((T61*)((/*RF2*/(C)->_base_class/*4*/)),a1,_pfn);
R=r73apply_undefine(C,R,a2);
}
/*FI]*/
}
/*FI]*/
return R;
}


T6 r73has_redefine(T73* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_redefine_list/*28*/))!=((void*)(NULL))){
R=r118has((T118*)((/*RF2*/(C)->_redefine_list/*28*/)),a1);
}
/*FI]*/
return R;
}


T0* r73has_undefine(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_undefine_list/*24*/))!=((void*)(NULL))){
R=r118feature_name((T118*)((/*RF2*/(C)->_undefine_list/*24*/)),X117to_key(a1));
}
/*FI]*/
return R;
}


T0* r73going_down(T73* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _previous=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=a2;
}
else{
R=r188name_in_child((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a2);
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.6is_empty*/((/*RF2*/(((T74*)a1))->_upper/*8*/))<(0)/*)*/)){
_previous=r74last(((T74*)a1));
r74remove_last(((T74*)a1));
R=r73going_down(((T73*)_previous),a1,R);
}
/*FI]*/
return R;
}


T0* r73clients_for(T73* C,T0* a1){
T0* R=NULL;
T0* _fn2=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=r73consider_export(C,a1);
}
else{
_fn2=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a1);
/*[IF*/
if((_fn2)!=((void*)(NULL))){
R=r73consider_export(C,_fn2);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r73add_rename(T73* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
{T188*n=((T188*)se_malloc(sizeof(*n))/*4*/);
*n=M188;
r188make(n,a1);
(/*SFN*/C->_rename_list)=((T0*)n);
}
}
else{
/*[IRF3.5add_last*/r190add_last(((T190*)((/*RF2*/((T188*)((/*RF2*/(C)->_rename_list/*16*/)))->_list/*0*/))),a1);
/*]*/
}
/*FI]*/
}


void r73select_conflict(T0* a1,T0* 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)));
}
r73fatal_error(((T0*)ms73_309360400));
}


T6 r73is_a_vncg(T73* C,T0* a1,T0* a2){
T6 R=0;
T0* _t2_bcn=NULL;
T0* _t2_bc=NULL;
T0* _rt=NULL;
T0* _tfg=NULL;
T0* _gl2=NULL;
T0* _gl1=NULL;
T0* _gl=NULL;
T2 _i=0;
T2 _rank=0;
_t2_bc=X62base_class(a2);
_t2_bcn=(/*RF2*/((T77*)((/*RF2*/(((T61*)_t2_bc))->_name/*18*/)))->_to_string/*8*/);
/*[IF*/
if(((/*RF2*/(C)->_base_class_name/*8*/))==((void*)(_t2_bcn))){
_gl=X62generic_list((/*RF2*/(C)->_type/*0*/));
_gl2=X62generic_list(a2);
/*[IF*/
if(((_gl)==((void*)(NULL)))||((r147count(((T147*)_gl)))!=(r147count(((T147*)_gl2))))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r73start_position(C),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(a2),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_867907918));
}
/*FI]*/
/*[IF*/
if(X62is_generic(a1)){
_gl1=X62generic_list(a1);
R=1;
_i=r147count(((T147*)_gl2));
while (!((!(R))||((_i)==(0))))
{
/*[IF*/
if(X62is_formal_generic(r147item(((T147*)_gl),_i))){
_tfg=r147item(((T147*)_gl),_i);
if(NULL!=(_tfg)){
switch(((T0*)_tfg)->id){
case 376:
break;
default:
_tfg=NULL;
}
}_rank=(/*RF2*/(((T376*)_tfg))->_rank/*24*/);
R=X62is_a(r147item(((T147*)_gl1),_rank),r147item(((T147*)_gl2),_i));
}
else{
_rt=X62run_type(X62to_runnable(r147item(((T147*)_gl),_i),a1));
R=X62is_a(_rt,r147item(((T147*)_gl2),_i));
}
/*FI]*/
_i=(_i)-(1);
}
}
 else if(X62is_run_type((/*RF2*/(C)->_type/*0*/))){
R=X62is_a((/*RF2*/(C)->_type/*0*/),a2);
}
else{
{T104 se_tmp0;
r82add_position((*(se_tmp0=r73start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms73_214953505);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
 else if(r61is_subclass_of((T61*)((/*RF2*/(C)->_base_class/*4*/)),_t2_bc)){
/*[IF*/
if(X62is_generic(a1)){
_rt=X62run_type(X62to_runnable((/*RF2*/(C)->_type/*0*/),a1));
R=r61is_a_vncg((T61*)((/*RF2*/(C)->_base_class/*4*/)),_rt,a2);
}
else{
R=r61is_a_vncg((T61*)((/*RF2*/(C)->_base_class/*4*/)),(/*RF2*/(C)->_type/*0*/),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


void r73make(T73* C,T0* a1){
(/*SFN*/C->_type)=a1;
/*[IF*/
if(r52fast_has((T52*)(oBC73forbidden_parent_list),X62written_mark((/*RF2*/(C)->_type/*0*/)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r73start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms73_875060418);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62written_mark((/*RF2*/(C)->_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r73fatal_error(((T0*)ms73_846328008));
}
/*FI]*/
}


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


T0* r73original_name(T73* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _old_name=NULL;
_bc=(/*RF2*/(C)->_base_class/*4*/);
/*[IF*/
if(((_bc)==((void*)(a1)))||(r61is_subclass_of(((T61*)_bc),a1))){
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=r61original_name(((T61*)_bc),a1,a2);
}
else{
_old_name=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a2);
/*[IF*/
if((_old_name)!=((void*)(NULL))){
R=r61original_name(((T61*)_bc),a1,_old_name);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r73do_rename(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=a1;
}
else{
R=r188name_in_child((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a1);
/*[IF*/
if((R)==((void*)(NULL))){
R=a1;
}
/*FI]*/
}
/*FI]*/
return R;
}


void r73multiple_check(T73* C,T0* a1){
T0* _fn2=NULL;
T0* _fn1=NULL;
T2 _i=0;
T0* _bc2=NULL;
T0* _bc1=NULL;
_bc1=(/*RF2*/(C)->_base_class/*4*/);
_bc2=(/*RF2*/(((T73*)a1))->_base_class/*4*/);
/*[IF*/
if((((_bc1)==((void*)(_bc2)))||(r61is_subclass_of(((T61*)_bc1),_bc2)))||(r61is_subclass_of(((T61*)_bc2),_bc1))){
/*[IF*/
if(((/*RF2*/(C)->_redefine_list/*28*/))!=((void*)(NULL))){
_i=r118count((T118*)((/*RF2*/(C)->_redefine_list/*28*/)));
while (!((_i)==(0)))
{
_fn1=r118item((T118*)((/*RF2*/(C)->_redefine_list/*28*/)),_i);
/*[IF*/
if(((/*RF2*/(((T73*)a1))->_rename_list/*16*/))==((void*)(NULL))){
}
else{
_fn2=r188name_in_child((T188*)((/*RF2*/(((T73*)a1))->_rename_list/*16*/)),_fn1);
/*[IF*/
if((_fn2)!=((void*)(_fn1))){
/*[IF*/
if(((/*RF2*/(C)->_select_list/*32*/))!=((void*)(NULL))){
/*[IF*/
if(r118has((T118*)((/*RF2*/(C)->_select_list/*32*/)),_fn1)){
/*[IF*/
if(((/*RF2*/(((T73*)a1))->_select_list/*32*/))!=((void*)(NULL))){
/*[IF*/
if(r118has((T118*)((/*RF2*/(((T73*)a1))->_select_list/*32*/)),_fn2)){
r73select_conflict(_fn1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
 else if(((/*RF2*/(((T73*)a1))->_select_list/*32*/))==((void*)(NULL))){
r73missing_select(_fn1,_fn2);
}
 else if(!(r118has((T118*)((/*RF2*/(((T73*)a1))->_select_list/*32*/)),_fn2))){
r73missing_select(_fn1,_fn2);
}
/*FI]*/
}
 else if(((/*RF2*/(((T73*)a1))->_select_list/*32*/))==((void*)(NULL))){
r73missing_select(_fn1,_fn2);
}
 else if(!(r118has((T118*)((/*RF2*/(((T73*)a1))->_select_list/*32*/)),_fn2))){
r73missing_select(_fn1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
/*FI]*/
}


T0* r73e_feature(T73* C,T0* a1){
T0* R=NULL;
T0* _fn2=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=r61e_feature((T61*)((/*RF2*/(C)->_base_class/*4*/)),a1);
}
else{
_fn2=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a1);
/*[IF*/
if((_fn2)!=((void*)(NULL))){
R=r61e_feature((T61*)((/*RF2*/(C)->_base_class/*4*/)),_fn2);
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r73precursor_for(T73* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _er=NULL;
T0* _f=NULL;
T0* _cn=NULL;
T0* _original_fn=NULL;
_original_fn=/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T293*)(/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a2))->_base_feature/*28*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if(r73has_redefine(C,_original_fn)){
_cn=/*SSWARF2*//*X267parent*/(/*RF2*/(((T268*)a1))->_parent/*12*/);
/*[IF*/
if(((_cn)==((void*)(NULL)))||(((/*RF2*/(((T77*)_cn))->_to_string/*8*/))==((void*)((/*RF2*/(C)->_base_class_name/*8*/))))){
_f=r73look_up_for(C,/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)a2))->_run_class/*12*/),_original_fn);
R=_f;
if(NULL!=(R)){
switch(((T0*)R)->id){
case 396:case 393:case 150:case 395:
break;
default:
R=NULL;
}
}/*[IF*/
if(((_f)!=((void*)(NULL)))&&((R)==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position(/*SSWARF2*//*X267start_position*/(/*RF2*/(((T268*)a1))->_start_position/*4*/));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(_f),&se_tmp0)));
}
_er=_f;
if(NULL!=(_er)){
switch(((T0*)_er)->id){
case 116:case 119:
break;
default:
_er=NULL;
}
}/*[IF*/
if((_er)!=((void*)(NULL))){
r73fatal_error(((T0*)ms73_773063953));
}
/*FI]*/
r73fatal_error(((T0*)ms73_1493757059));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r73name_in_parent(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))==((void*)(NULL))){
R=a1;
}
else{
R=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a1);
}
/*FI]*/
return R;
}


T0* r73apply_undefine(T73* C,T0* a1,T0* a2){
T0* R=NULL;
T2 _index=0;
T0* _fnkey=NULL;
T0* _ufn=NULL;
_ufn=r73has_undefine(C,a2);
/*[IF*/
if((_ufn)!=((void*)(NULL))){
/*[IF*/
if(((/*RF2*/(C)->_undefine_memory1/*40*/))==((void*)(NULL))){
{T120*n=((T120*)se_malloc(sizeof(*n))/*16*/);
*n=M120;
r120with_capacity(n,r118count((T118*)((/*RF2*/(C)->_undefine_list/*24*/))));
(/*SFN*/C->_undefine_memory1)=((T0*)n);
}
{T199*n=((T199*)se_malloc(sizeof(*n))/*16*/);
*n=M199;
r199with_capacity(n,r118count((T118*)((/*RF2*/(C)->_undefine_list/*24*/))));
(/*SFN*/C->_undefine_memory2)=((T0*)n);
}
}
/*FI]*/
_fnkey=X117to_key(_ufn);
_index=r120fast_index_of((T120*)((/*RF2*/(C)->_undefine_memory1/*40*/)),_fnkey);
/*[IF*/
if((_index)>((/*RF2*/((T120*)((/*RF2*/(C)->_undefine_memory1/*40*/)))->_upper/*12*/))){
r120add_last((T120*)((/*RF2*/(C)->_undefine_memory1/*40*/)),_fnkey);
R=X99try_to_undefine(a1,_ufn,(/*RF2*/((T72*)((/*RF2*/(C)->_parent_list/*12*/)))->_base_class/*0*/));
X199add_last((/*RF2*/(C)->_undefine_memory2/*44*/),R);
}
else{
R=X199item((/*RF2*/(C)->_undefine_memory2/*44*/),_index);
}
/*FI]*/
}
else{
R=a1;
}
/*FI]*/
return R;
}


T6 r73has_select_for(T73* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_select_list/*32*/))!=((void*)(NULL))){
R=r118has((T118*)((/*RF2*/(C)->_select_list/*32*/)),a1);
}
/*FI]*/
return R;
}


T0* r73get_old_name(T73* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*16*/))!=((void*)(NULL))){
R=r188name_in_parent((T188*)((/*RF2*/(C)->_rename_list/*16*/)),a1);
/*[IF*/
if((R)==((void*)(a1))){
R=NULL;
}
/*FI]*/
}
/*FI]*/
return R;
}


void r73missing_select(T0* a1,T0* 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)));
}
r73fatal_error(((T0*)ms73_104720455));
}


void r73get_started(T73* C,T0* a1){
T6 _all_check=0;
T0* _new_fn=NULL;
T0* _old_fn=NULL;
T0* _fn=NULL;
T0* _wbc=NULL;
T2 _i=0;
_all_check=r57all_check((T57*)(oBC19run_control));
(/*SFN*/C->_parent_list)=a1;
(/*SFN*/C->_base_class)=X62base_class((/*RF2*/(C)->_type/*0*/));
(/*SFN*/C->_base_class_name)=(/*RF2*/((T77*)((/*RF2*/((T61*)((/*RF2*/(C)->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
_wbc=(/*RF2*/((T72*)((/*RF2*/(C)->_parent_list/*12*/)))->_base_class/*0*/);
/*[IF*/
if(_all_check){
/*[IF*/
if(((/*RF2*/((T61*)((/*RF2*/(C)->_base_class/*4*/)))->_formal_generic_list/*22*/))!=((void*)(NULL))){
/*[IF*/
if((X62generic_list((/*RF2*/(C)->_type/*0*/)))==((void*)(NULL))){
}
/*FI]*/
}
 else if(X62is_generic((/*RF2*/(C)->_type/*0*/))){
{T104 se_tmp0;
r82add_position((/*RF2*/((T77*)((/*RF2*/((T61*)((/*RF2*/(C)->_base_class/*4*/)))->_name/*18*/)))->_start_position/*0*/));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r73start_position(C),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_225645047));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((/*RF2*/(C)->_rename_list/*16*/))!=((void*)(NULL)))){
r188get_started((T188*)((/*RF2*/(C)->_rename_list/*16*/)),(/*RF2*/(C)->_base_class/*4*/));
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((/*RF2*/(C)->_undefine_list/*24*/))!=((void*)(NULL)))){
_i=r118count((T118*)((/*RF2*/(C)->_undefine_list/*24*/)));
while (!((_i)==(0)))
{
_fn=r118item((T118*)((/*RF2*/(C)->_undefine_list/*24*/)),_i);
_old_fn=r73get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r61has((T61*)((/*RF2*/(C)->_base_class/*4*/)),_fn)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_430276609));
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_redefine_list/*28*/))!=((void*)(NULL))){
_i=r118count((T118*)((/*RF2*/(C)->_redefine_list/*28*/)));
while (!((_i)==(0)))
{
_fn=r118item((T118*)((/*RF2*/(C)->_redefine_list/*28*/)),_i);
/*[IF*/
if(!(r61proper_has(((T61*)_wbc),_fn))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_404453571));
}
/*FI]*/
/*[IF*/
if(_all_check){
_old_fn=r73get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r61has((T61*)((/*RF2*/(C)->_base_class/*4*/)),_fn)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_1492005482));
}
/*FI]*/
_new_fn=r73get_new_name(C,_fn);
/*[IF*/
if((_new_fn)!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_new_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_1492005482));
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((/*RF2*/(C)->_select_list/*32*/))!=((void*)(NULL)))){
_i=r118count((T118*)((/*RF2*/(C)->_select_list/*32*/)));
while (!((_i)==(0)))
{
_fn=r118item((T118*)((/*RF2*/(C)->_select_list/*32*/)),_i);
_old_fn=r73get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r61has((T61*)((/*RF2*/(C)->_base_class/*4*/)),_fn)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_887869768));
}
/*FI]*/
_new_fn=r73get_new_name(C,_fn);
/*[IF*/
if((_new_fn)!=((void*)(NULL))){
/*[IF*/
if((r73get_old_name(C,_new_fn))==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_new_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
r73fatal_error(((T0*)ms73_887869768));
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}


T104 r73start_position(T73* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X62start_position((/*RF2*/(C)->_type/*0*/)),&se_tmp0));
}
return R;
}


void r317print_else(T6 a1){
/*[IF*/
if(a1){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms317_180037));
/*]*/
}
/*FI]*/
}


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


T2 r317compile_to_c(T317* C,T6 a1){
T2 R=0;
T6 _trace=0;
/*[IF*/
if(X126is_static((/*RF2*/(C)->_expression/*0*/))){
r83incr_static_expression_count((T83*)(oBC19cpp));
/*[IF*/
if((X126static_value((/*RF2*/(C)->_expression/*0*/)))==(1)){
r317print_else(a1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms317_2105482));
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_then_compound/*4*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_then_compound/*4*/)));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
R=22;
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms317_183257));
/*]*/
R=23;
}
/*FI]*/
}
else{
R=24;
_trace=(!(X126c_simple((/*RF2*/(C)->_expression/*0*/))))&&(r57no_check((T57*)(oBC19run_control)));
r317print_else(a1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_627));
/*]*/
/*[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(_trace){
r83trace_boolean_expression((T83*)(oBC19cpp),(/*RF2*/(C)->_expression/*0*/));
}
else{
X126compile_to_c((/*RF2*/(C)->_expression/*0*/));
}
/*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*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_625));
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_then_compound/*4*/))!=((void*)(NULL))){
r159compile_to_c((T159*)((/*RF2*/(C)->_then_compound/*4*/)));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
/*FI]*/
return R;
}


T6 r317stupid_switch(T317* C,T0* a1){
T6 R=0;
R=(X126stupid_switch((/*RF2*/(C)->_expression/*0*/),a1))&&((((/*RF2*/(C)->_then_compound/*4*/))==((void*)(NULL)))||(r159stupid_switch((T159*)((/*RF2*/(C)->_then_compound/*4*/)),a1)));
return R;
}


void r317make(T317* C,T0* a1,T0* a2){
(/*SFN*/C->_expression)=a1;
(/*SFN*/C->_then_compound)=a2;
}


void r317afd_check(T317* C){
X126afd_check((/*RF2*/(C)->_expression/*0*/));
/*[IF*/
if(((/*RF2*/(C)->_then_compound/*4*/))!=((void*)(NULL))){
r159afd_check((T159*)((/*RF2*/(C)->_then_compound/*4*/)));
}
/*FI]*/
}


T6 r317use_current(T317* C){
T6 R=0;
R=X126use_current((/*RF2*/(C)->_expression/*0*/));
/*[IF*/
if((!(R))&&(((/*RF2*/(C)->_then_compound/*4*/))!=((void*)(NULL)))){
R=r159use_current((T159*)((/*RF2*/(C)->_then_compound/*4*/)));
}
/*FI]*/
return R;
}


T0* r317to_runnable(T317* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
T0* _tc=NULL;
T0* _e=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*8*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
_e=X126to_runnable((/*RF2*/(C)->_expression/*0*/),a1);
/*[IF*/
if((_e)==((void*)(NULL))){
{T104 se_tmp0;
r317error((*(se_tmp0=X126start_position((/*RF2*/(C)->_expression/*0*/)),&se_tmp0)),((T0*)ms317_96445217));
}
}
else{
(/*SFN*/C->_expression)=_e;
_t=X126result_type((/*RF2*/(C)->_expression/*0*/));
/*[IF*/
if(!(X62is_boolean(_t))){
/*[IRF3.6append*/{T0* b1=((T0*)ms317_1214068530);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_type(X126result_type((/*RF2*/(C)->_expression/*0*/)),((T0*)ms20_1495656936));
{T104 se_tmp0;
r82add_position((*(se_tmp0=X126start_position((/*RF2*/(C)->_expression/*0*/)),&se_tmp0)));
}
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_then_compound/*4*/))!=((void*)(NULL))){
_tc=r159to_runnable((T159*)((/*RF2*/(C)->_then_compound/*4*/)),a1);
/*[IF*/
if((_tc)!=((void*)(NULL))){
(/*SFN*/C->_then_compound)=_tc;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
R=((T0*)(C));
}
/*FI]*/
}
else{
{T317*n=((T317*)se_malloc(sizeof(*n))/*12*/);
*n=M317;
r317make(n,(/*RF2*/(C)->_expression/*0*/),(/*RF2*/(C)->_then_compound/*4*/));
R=((T0*)n);
}
R=r317to_runnable(((T317*)R),a1);
}
/*FI]*/
return R;
}


void r317collect_c_tmp(T317* C){
X126collect_c_tmp((/*RF2*/(C)->_expression/*0*/));
}


T6 r57loop_check(T57* C){
T6 R=0;
R=((/*RF2*/(C)->_level/*0*/))>=(-1);
return R;
}


T6 r57boost(T57* C){
T6 R=0;
R=((/*RF2*/(C)->_level/*0*/))==(-6);
return R;
}


T6 r57ensure_check(T57* C){
T6 R=0;
R=((/*RF2*/(C)->_level/*0*/))>=(-3);
return R;
}


T6 r57debug_check(T57* C){
T6 R=0;
R=((/*RF2*/(C)->_level/*0*/))==(1);
return R;
}


void r57compute_root_class(T57* C,T0* a1){
T3 _c=0;
T2 _i=0;
(/*SFN*/C->_root_class)=r7twin(((T7*)a1));
/*[IF*/
if(r7has_suffix((T7*)((/*RF2*/(C)->_root_class/*5*/)),((T0*)ms19_331))){
r7remove_last((T7*)((/*RF2*/(C)->_root_class/*5*/)),2);
}
/*FI]*/
_i=(/*RF2*/((T7*)((/*RF2*/(C)->_root_class/*5*/)))->_count/*4*/);
while (!((_i)==(0)))
{
_c=/*(IRF4.6item*/((/*RF2*/((T7*)((/*RF2*/(C)->_root_class/*5*/)))->_storage/*0*/))[(_i)-(1)]/*)*/;
/*[IF*/
if(r3is_letter(_c)){
_i=(_i)-(1);
}
 else if((_c)==(((T3)'\137'))){
_i=(_i)-(1);
}
 else if(r3is_digit(_c)){
_i=(_i)-(1);
}
else{
r7remove_first((T7*)((/*RF2*/(C)->_root_class/*5*/)),_i);
_i=0;
}
/*FI]*/
}
r7to_upper((T7*)((/*RF2*/(C)->_root_class/*5*/)));
(/*SFN*/C->_root_class)=((/*UT*/(void)((T27*)(r57string_aliaser()))),r27item((/*RF2*/(C)->_root_class/*5*/)));
}


T6 r57require_check(T57* C){
T6 R=0;
R=((/*RF2*/(C)->_level/*0*/))>=(-4);
return R;
}


void r57set_is_deep_equal_used(T57* C){
/*[IRF3.3set_deep_twin_used*/((((T57*)(C)))->_deep_twin_used)=(1);
/*]*/
(/*SFN*/C->_is_deep_equal_used)=1;
}


T0* r57string_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;
}

