/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "short.h"


void r89for_short(T89* C,T0* a1,T6 a2,T0* a3,T0* a4){
T6 _heading_done=0;
T0* _f=NULL;
T2 _i=0;
/*[IF*/
if(((C)->_list/*8*/)!=((void*)(NULL))){
/*[IF*/
if(r94gives_permission_to_any((T94*)((C)->_clients/*0*/))){
_i=0;
while (!((_i)>(((T92*)((C)->_list/*8*/))->_upper/*8*/))) {
_f=/*(IRF4.6item*/(((T92*)((C)->_list/*8*/))->_storage/*0*/)[_i]/*)*/;
_heading_done=r79for_short((T79*)(/*X87names*/((T0*)(((T187*)_f))->_names/*8*/)),(T0*)C,_heading_done,a1,a2,a3,a4);
_i=(_i)+(1);
}
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}


void r89make(T89* C,T0* a1,T0* a2,T0* a3){
C->_clients=a1;
C->_comment=a2;
C->_list=a3;
}


void r89add_into(T89* C,T0* a1){
T0* _f=NULL;
T2 _i=0;
/*[IF*/
if(((C)->_list/*8*/)!=((void*)(NULL))){
_i=0;
while (!((_i)>(((T92*)((C)->_list/*8*/))->_upper/*8*/))) {
_f=/*(IRF4.6item*/(((T92*)((C)->_list/*8*/))->_storage/*0*/)[_i]/*)*/;
X87set_clients(_f,(C)->_clients/*0*/);
X87add_into(_f,a1);
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:FEATURE_CLAUSE.comment*/


void r89do_heading_for_short(T89* C,T0* a1){
/*[IF*/
if(((C)->_comment/*4*/)==((void*)(NULL))){
r39hook_or((T39*)(oBC11short_print),((T0*)ms89_5936),((T0*)ms89_16960));
r39a_class_name((T39*)(oBC11short_print),a1);
r39hook_or((T39*)(oBC11short_print),((T0*)ms89_5985),((T0*)ms89_11));
}
else{
r39hook_or((T39*)(oBC11short_print),((T0*)ms89_6034),((T0*)ms89_16960a));
r39a_class_name((T39*)(oBC11short_print),a1);
r39hook_or((T39*)(oBC11short_print),((T0*)ms89_6083),((T0*)ms89_11aa));
r52short((T52*)((C)->_comment/*4*/),((T0*)ms89_6132),((T0*)ms89_2358),((T0*)ms89_6181),((T0*)ms89_11a));
r39hook_or((T39*)(oBC11short_print),((T0*)ms89_6230),((T0*)ms89_0));
}
/*FI]*/
}
/*No:FEATURE_CLAUSE.list*/
/*No:FEATURE_CLAUSE.clients*/
/*No:CREATION_CALL_4.start_position*/
/*No:CREATION_CALL_4.type*/


T0* r242add_comment(T242* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
/*AF*/else{
{T213*n=malloc(sizeof(*n));
*n=M213;
r213make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


void r242check_created_type(T242* C,T0* a1){
T0* _rt=NULL;
_rt=X46run_type(a1);
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
}
 else if(((T22*)(X46base_class(_rt)))->_is_deferred/*16*/){
r67add_type(_rt,((T0*)ms237_11858));
r242warning((C)->_start_position/*4*/,((T0*)ms237_30996));
}
/*FI]*/
/*[IF*/
if(X46is_formal_generic(a1)){
r67add_position((C)->_start_position/*4*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms237_77140);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_type(a1,((T0*)ms237_180));
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*FI]*/
r310set_at_run_time((T310*)(X46run_class(_rt)));
}


T0* r242to_runnable(T242* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
r242check_writable(C,a1);
r242check_explicit_type(C);
r242check_created_type(C,(C)->_type/*24*/);
r242check_creation_clause(C,(C)->_type/*24*/);
R=(T0*)C;
}
else{
{T242*n=malloc(sizeof(*n));
*n=M242;
r242make(n,(C)->_start_position/*4*/,(C)->_type/*24*/,(C)->_writable/*8*/,(C)->_call/*20*/);
R=(T0*)n;
}
R=r242to_runnable(((T242*)R),a1);
}
/*FI]*/
return R;
}


void r242warning(T0* a1,T0* a2){
r67add_position(a1);
r67warning((T67*)(oBC11eh),a2);
}
/*No:CREATION_CALL_4.current_type*/
/*No:CREATION_CALL_4.writable*/
/*No:CREATION_CALL_4.fz_03*/
/*No:CREATION_CALL_4.fz_dot*/
/*No:CREATION_CALL_4.call*/


void r242error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:CREATION_CALL_4.run_feature*/
/*No:CREATION_CALL_4.end_mark_comment*/


void r242make(T242* C,T0* a1,T0* a2,T0* a3,T0* a4){
C->_start_position=a1;
C->_type=a2;
C->_writable=a3;
C->_call=a4;
}


void r242check_explicit_type(T242* C){
T0* _t=NULL;
T0* _ct=NULL;
_ct=/*X312current_type*/((T0*)((T326*)(r59top_rf((T59*)(oBC11small_eiffel))))->_current_type/*4*/);
_t=X46to_runnable((C)->_type/*24*/,_ct);
/*[IF*/
if(((_t)==((void*)(NULL)))||(!(X46is_run_type(_t)))){
r67add_position(X46start_position((C)->_type/*24*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms239_33726);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
C->_type=_t;
}
/*FI]*/
/*[IF*/
if(!(X46is_a((C)->_type/*24*/,X53result_type((C)->_writable/*8*/)))){
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms239_34704);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}


void r242cp_not_found(T242* C,T0* a1){
r67add_position(X77start_position(/*X149feature_name*/((T0*)((T152*)((C)->_call/*20*/))->_feature_name/*8*/)));
r67add_position(X77start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms241_53476);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}


void r242check_writable(T242* C,T0* a1){
T0* _w=NULL;
C->_current_type=a1;
_w=X53to_runnable((C)->_writable/*8*/,a1);
/*[IF*/
if((_w)==((void*)(NULL))){
r67add_position(X53start_position((C)->_writable/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms237_64251);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
C->_writable=_w;
}
/*FI]*/
}


void r242check_creation_clause(T242* C,T0* a1){
T0* _args=NULL;
T0* _top=NULL;
T0* _bottom=NULL;
T0* _fn=NULL;
T0* _ct=NULL;
_fn=/*X149feature_name*/((T0*)((T152*)((C)->_call/*20*/))->_feature_name/*8*/);
_top=r69base_class((T69*)(X77start_position(_fn)));
_bottom=X46base_class(a1);
/*[IF*/
if(X46is_like_current(a1)){
_fn=r22new_name_of(((T22*)_bottom),_top,_fn);
/*[IF*/
if((_fn)==((void*)(NULL))){
_fn=/*X149feature_name*/((T0*)((T152*)((C)->_call/*20*/))->_feature_name/*8*/);
r67add_position(X77start_position(_fn));
/*[IRF3.6append*/{T0* b1=((T0*)ms12_7398);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms241_25652);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark(a1);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_166);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
C->_run_feature=r310get_feature((T310*)(X46run_class(a1)),_fn);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
r242cp_not_found(C,_fn);
}
/*FI]*/
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
}
 else if(!(X46has_creation(a1,_fn))){
r67add_position(X77start_position(/*X149feature_name*/((T0*)((T152*)((C)->_call/*20*/))->_feature_name/*8*/)));
r67add_position(X77start_position(_fn));
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms241_45856);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_type(a1,((T0*)ms12_47));
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*FI]*/
X312add_client((C)->_run_feature/*16*/,X46run_class((C)->_current_type/*12*/));
/*[IF*/
if((X312result_type((C)->_run_feature/*16*/))!=((void*)(NULL))){
r67add_position(X312start_position((C)->_run_feature/*16*/));
r67add_position(X77start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms241_67122);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(((r242arg_count(C))==(0))&&((X312arguments((C)->_run_feature/*16*/))!=((void*)(NULL)))){
r67add_position(X312start_position((C)->_run_feature/*16*/));
r67add_position((C)->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms241_63744);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if((r242arg_count(C))>(0)){
_ct=/*X312current_type*/((T0*)((T326*)(r59top_rf((T59*)(oBC11small_eiffel))))->_current_type/*4*/);
_args=r136to_runnable((T136*)(X149arguments((C)->_call/*20*/)),_ct);
/*[IF*/
if((_args)==((void*)(NULL))){
r242error(r136start_position((T136*)(X149arguments((C)->_call/*20*/))),((T0*)ms12_14714));
}
else{
r136match_with(((T136*)_args),(C)->_run_feature/*16*/,_ct);
}
/*FI]*/
}
/*FI]*/
C->_call=X149make_runnable((C)->_call/*20*/,(C)->_writable/*8*/,_args,(C)->_run_feature/*16*/);
}
/*No:CREATION_CALL_4.fz_bad_arguments*/
/*No:CREATION_CALL_4.fz_09*/


T2 r242arg_count(T242* C){
T2 R=0;
/*[IF*/
if(((C)->_call/*20*/)!=((void*)(NULL))){
R=X149arg_count((C)->_call/*20*/);
}
/*FI]*/
return R;
}
/*No:CREATION_CALL_4.fatal_error*/
/*No:SHORT.fatal_bad_usage*/
/*No:SHORT.root_class*/


void r10automat(T10* C){
T0* _a=NULL;
T2 _arg=0;
_arg=1;
while (!((_arg)>(/*(IRF4.9argument_count*/((T26*)(r10command_arguments()))->_upper/*8*//*)*/))) {
_a=r10argument(_arg);
/*[IF*/
if(r7is_equal(ms10_2580,_a)){
C->_sort=1;
}
 else if(r7is_equal(ms10_7200,_a)){
C->_short=1;
}
 else if(r7is_equal(ms10_37213,_a)){
/*[IRF3.3set_case_insensitive*/((((T66*)((T66*)(oBC11eiffel_parser))))->_case_insensitive)=(1);
/*]*/
}
 else if(r7is_equal(ms10_17908,_a)){
/*[IRF3.3set_no_warning*/((((T67*)((T67*)(oBC11eh))))->_no_warning)=(1);
/*]*/
}
 else if((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55')){
r7remove_first(((T7*)_a),1);
C->_format=_a;
}
else{
/*[IF*/
if(r7has_suffix(((T7*)_a),((T0*)ms11_300))){
/*[IRF3.6remove_suffix*/{T7* C1=((T7*)_a);
T0* b1=((T0*)ms11_300);
r7remove_last(C1,(((T7*)b1))->_count/*4*/);
}/*]*/
}
/*FI]*/
/*[IF*/
if(r7same_as((T7*)(((T0*)ms13_9369)),_a)){
_a=((T0*)ms13_2055);
}
/*FI]*/
C->_root_class=_a;
}
/*FI]*/
_arg=(_arg)+(1);
}
}
/*No:SHORT.eiffel_suffix*/
T0*oBC10rf_list=NULL;
/*No:SHORT.run_class*/
/*No:SHORT.us_string*/


T6 r10gt(T2 a1,T2 a2){
T6 R=0;
T0* _n2=NULL;
T0* _n1=NULL;
_n1=X77to_key(/*X312name*/((T0*)((T326*)(/*X311item*/((T0*)r311item((T311*)(oBC10rf_list),a1))))->_name/*16*/));
_n2=X77to_key(/*X312name*/((T0*)((T326*)(/*X311item*/((T0*)r311item((T311*)(oBC10rf_list),a2))))->_name/*16*/));
R=r7_px_62(((T7*)_n1),_n2);
return R;
}
T0*oBC10parents=NULL;
/*No:SHORT.us_bit_n*/
/*No:SHORT.us_array*/
/*No:SHORT.sort_rf_list*/
/*No:SHORT.us_integer*/
/*No:SHORT.us_double*/
/*No:SHORT.us_bit_n_ref*/
/*No:SHORT.us_character*/
/*No:SHORT.us_native_array*/


T0* r10system_tools(void){
if(fBC11system_tools==0){
fBC11system_tools=1;
{T30*n=malloc(sizeof(*n));
*n=M30;
r30make(n);
oBC11system_tools=(T0*)n;
}
}
return oBC11system_tools;}
/*No:SHORT.sort*/


T0* r10argument(T2 a1){
T0* R=NULL;
R=/*(IRF4.6item*/(((T26*)(r10command_arguments()))->_storage/*0*/)[a1]/*)*/;
return R;
}
/*No:SHORT.us_pointer*/


void r10make(T10* C){
T0* _ccl=NULL;
T2 _i=0;
T0* _bc=NULL;
/*[IF*/
if((/*(IRF4.9argument_count*/((T26*)(r10command_arguments()))->_upper/*8*//*)*/)==(0)){
/*[IRF3.2fatal_bad_usage*/r30bad_use_exit((T30*)(r10system_tools()),((T0*)ms10_2875));
/*]*/
}
else{
r10automat(C);
/*[IRF3.3set_short_flag*/((((T59*)((T59*)(oBC11small_eiffel))))->_short_flag)=(1);
/*]*/
/*[IF*/
if(((C)->_root_class/*0*/)==((void*)(NULL))){
/*[IRF3.2fatal_bad_usage*/r30bad_use_exit((T30*)(r10system_tools()),((T0*)ms10_2875));
/*]*/
}
/*FI]*/
_bc=r59load_class((T59*)(oBC11small_eiffel),(C)->_root_class/*0*/);
r64add_last((T64*)(oBC10parents),_bc);
/*[IF*/
if(!((C)->_short/*16*/)){
r22up_to_any_in(((T22*)_bc),oBC10parents);
}
/*FI]*/
/*[IF*/
if(((C)->_format/*4*/)==((void*)(NULL))){
C->_format=((T0*)ms10_2735);
}
/*FI]*/
r10compute_run_class(C,_bc);
r39start((T39*)(oBC11short_print),(C)->_format/*4*/,_bc,(C)->_run_class/*8*/);
_ccl=(((T22*)_bc))->_creation_clause_list/*44*/;
/*[IF*/
if(((_ccl)==((void*)(NULL)))||(!(r16short(((T16*)_ccl))))){
r39hook((T39*)(oBC11short_print),((T0*)ms10_5929));
}
/*FI]*/
r10compute_rf_list(C);
/*[IF*/
if((C)->_sort/*12*/){
r39hook_or((T39*)(oBC11short_print),((T0*)ms10_5838),((T0*)ms10_7238));
/*[IRF3.2sort_rf_list*/{T6 _moved=0;
T2 _buble=0;
T2 _max=0;
T2 _min=0;
_max=/*X311upper*/((T2)((T311*)(oBC10rf_list))->_upper/*12*/);
_min=0;
_moved=1;
while (!(!(_moved))) {
_moved=0;
/*[IF*/
if(((_max)-(_min))>(0)){
_buble=(_min)+(1);
while (!((_buble)>(_max))) {
/*[IF*/
if(r10gt((_buble)-(1),_buble)){
X311swap(oBC10rf_list,(_buble)-(1),_buble);
_moved=1;
}
/*FI]*/
_buble=(_buble)+(1);
}
_max=(_max)-(1);
}
/*FI]*/
/*[IF*/
if((_moved)&&(((_max)-(_min))>(0))){
_moved=0;
_buble=(_max)-(1);
while (!((_buble)<(_min))) {
/*[IF*/
if(r10gt(_buble,(_buble)+(1))){
X311swap(oBC10rf_list,_buble,(_buble)+(1));
_moved=1;
}
/*FI]*/
_buble=(_buble)-(1);
}
_min=(_min)+(1);
}
/*FI]*/
}
}/*]*/
_i=0;
while (!((_i)>(/*X311upper*/((T2)((T311*)(oBC10rf_list))->_upper/*12*/)))) {
r39a_run_feature((T39*)(oBC11short_print),/*X311item*/((T0*)r311item((T311*)(oBC10rf_list),_i)));
_i=(_i)+(1);
}
r39hook((T39*)(oBC11short_print),((T0*)ms10_5887));
}
/*FI]*/
r39finish((T39*)(oBC11short_print));
}
/*FI]*/
}
/*No:SHORT.us_any*/
/*No:SHORT.us_real*/
/*No:SHORT.format*/
/*No:SHORT.argument_count*/
int fBC1command_arguments=0;
T0*oBC1command_arguments=NULL;


T0* r10command_arguments(void){
if(fBC1command_arguments==0){
T0* _arg=NULL;
T2 _i=0;
fBC1command_arguments=1;
_i=se_argc;
{T26*n=malloc(sizeof(*n));
*n=M26;
r26make(n,_i);
oBC1command_arguments=(T0*)n;
}
while (!((_i)==(0))) {
_i=(_i)-(1);
_arg=((T0*)e2s(se_argv[_i]));
/*[IRF3.5put*/((((T26*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
/*]*/
}
}
return oBC1command_arguments;}


void r10compute_rf_list(T10* C){
T0* _fcl=NULL;
T0* _rc=NULL;
T0* _bc=NULL;
T2 _i=0;
_i=((T64*)(oBC10parents))->_upper/*8*/;
_rc=(C)->_run_class/*8*/;
while (!((_i)<(0))) {
_bc=/*(IRF4.6item*/(((T64*)(oBC10parents))->_storage/*0*/)[_i]/*)*/;
_fcl=(((T22*)_bc))->_feature_clause_list/*48*/;
/*[IF*/
if((_fcl)!=((void*)(NULL))){
r88for_short(((T88*)_fcl),(((T22*)_bc))->_name/*24*/,(C)->_sort/*12*/,oBC10rf_list,_rc);
}
/*FI]*/
_i=(_i)-(1);
}
}


void r10compute_run_class(T10* C,T0* a1){
T0* _fga=NULL;
T2 _i=0;
T0* _gl=NULL;
T0* _ct=NULL;
T0* _t=NULL;
T0* _sp=NULL;
T0* _bcn=NULL;
T0* _fgl=NULL;
_bcn=((T47*)((((T22*)a1))->_name/*24*/))->_to_string/*0*/;
_sp=((T47*)((((T22*)a1))->_name/*24*/))->_start_position/*4*/;
_fgl=(((T22*)a1))->_formal_generic_list/*28*/;
/*[IF*/
if((((T0*)ms13_714))==((void*)(_bcn))){
{T247*n=malloc(sizeof(*n));
*n=M247;
r247make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_17628))==((void*)(_bcn))){
{T254*n=malloc(sizeof(*n));
*n=M254;
r254make(n,_sp);
_t=(T0*)n;
}
{T251*n=malloc(sizeof(*n));
*n=M251;
r251make(n,_sp,_t);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_1990))==((void*)(_bcn))){
{T247*n=malloc(sizeof(*n));
*n=M247;
r247make(n,_sp);
_t=(T0*)n;
}
{T248*n=malloc(sizeof(*n));
*n=M248;
r248make(n,_sp,_t);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_6748))==((void*)(_bcn))){
{T256*n=malloc(sizeof(*n));
*n=M256;
r256make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_1208))==((void*)(_bcn))){
{T259*n=malloc(sizeof(*n));
*n=M259;
r259make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_4818))==((void*)(_bcn))){
{T255*n=malloc(sizeof(*n));
*n=M255;
r255make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_9936))==((void*)(_bcn))){
{T254*n=malloc(sizeof(*n));
*n=M254;
r254make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_6510))==((void*)(_bcn))){
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_6881))==((void*)(_bcn))){
{T258*n=malloc(sizeof(*n));
*n=M258;
r258make(n,_sp);
_ct=(T0*)n;
}
}
 else if((((T0*)ms13_5046))==((void*)(_bcn))){
{T260*n=malloc(sizeof(*n));
*n=M260;
r260make(n,_sp);
_ct=(T0*)n;
}
}
 else if((_fgl)!=((void*)(NULL))){
_i=1;
{T249*n=malloc(sizeof(*n));
*n=M249;
r249with_capacity(n,/*(IRF4.6count*/(((T44*)((((T42*)_fgl))->_list/*4*/)))->_upper/*8*//*)*/,1);
_gl=(T0*)n;
}
while (!((_i)>(/*(IRF4.6count*/(((T44*)((((T42*)_fgl))->_list/*4*/)))->_upper/*8*//*)*/))) {
_fga=/*(IRF4.6item*/r44item(((T44*)((((T42*)_fgl))->_list/*4*/)),_i)/*)*/;
/*[IF*/
if(((((T43*)_fga))->_constraint/*4*/)==((void*)(NULL))){
{T247*n=malloc(sizeof(*n));
*n=M247;
r247make(n,_sp);
_t=(T0*)n;
}
}
else{
_t=(((T43*)_fga))->_constraint/*4*/;
}
/*FI]*/
r249add_last(((T249*)_gl),_t);
_i=(_i)+(1);
}
{T262*n=malloc(sizeof(*n));
*n=M262;
r262make(n,(((T22*)a1))->_name/*24*/,_gl);
_ct=(T0*)n;
}
}
else{
{T261*n=malloc(sizeof(*n));
*n=M261;
/*[IRF3.3make*/((((T261*)(n)))->_base_class_name)=((((T22*)a1))->_name/*24*/);
/*]*/
_ct=(T0*)n;
}
}
/*FI]*/
C->_run_class=X46run_class(_ct);
}
/*No:SHORT.short*/
/*No:SHORT.us_boolean*/
/*No:PARSER_BUFFER.is_ready*/


T0* r71get_line(T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)<=(((T26*)(oBC71text))->_upper/*8*/)){
R=/*(IRF4.6item*/(((T26*)(oBC71text))->_storage/*0*/)[a1]/*)*/;
/*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
/*]*/
}
else{
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,80);
R=(T0*)n;
}
r26add_last((T26*)(oBC71text),R);
}
/*FI]*/
return R;
}
T0*oBC71text=NULL;
/*No:PARSER_BUFFER.path*/


T0* r71item(T2 a1){
T0* R=NULL;
R=/*(IRF4.6item*/(((T26*)(oBC71text))->_storage/*0*/)[a1]/*)*/;
return R;
}
/*No:PARSER_BUFFER.medium_line_size*/


void r71load_file(T71* C,T0* a1){
T2 _i=0;
r31connect_to((T31*)(oBC11tmp_file_read),a1);
/*[IF*/
if(/*(IRF4.7is_connected*/(((T31*)(oBC11tmp_file_read))->_path/*4*/)!=(NULL)/*)*/){
C->_path=a1;
/*[IF*/
if((r71get_line(0))!=((void*)(NULL))){
}
/*FI]*/
_i=1;
r31read_line_in((T31*)(oBC11tmp_file_read),r71get_line(_i));
while (!(r31end_of_input((T31*)(oBC11tmp_file_read)))) {
_i=(_i)+(1);
r31read_line_in((T31*)(oBC11tmp_file_read),r71get_line(_i));
}
/*[IF*/
if(/*(IRF4.7empty*/(((T7*)(/*(IRF4.6item*/(((T26*)(oBC71text))->_storage/*0*/)[_i]/*)*/))->_count/*4*/)==(0)/*)*/){
C->_count=(_i)-(1);
}
else{
C->_count=_i;
}
/*FI]*/
r31disconnect((T31*)(oBC11tmp_file_read));
}
else{
C->_path=NULL;
}
/*FI]*/
}
/*No:PARSER_BUFFER.count*/
/*No:PARSER_BUFFER.make*/
/*No:PARSER_BUFFER.unset_is_ready*/
/*No:CALL_INFIX_OR.feature_name*/


T0* r107start_position(T107* C){
T0* R=NULL;
R=((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}


T0* r107add_comment(T107* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r107to_integer(T107* C){
T2 R=0;
r107error(r107start_position(C),((T0*)ms12_45846));
return R;
}


T0* r107to_runnable(T107* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r107runnable_expression((C)->_target/*4*/,a1);
_a=r107runnable_args((C)->_arguments/*8*/,a1);
_tt=X53result_type(_t);
_at=X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r107run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r107run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T107*n=malloc(sizeof(*n));
*n=M107;
r107with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR.fz_bad_argument*/
/*No:CALL_INFIX_OR.fz_iinaiv*/


T0* r107result_type(T107* C){
T0* R=NULL;
T0* _tla=NULL;
R=X312result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X46is_like_current(R)){
R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 246: 
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR.run_feature*/


T0* r107runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r136to_runnable(((T136*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(r136start_position(((T136*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}


void r107bracketed_short(T107* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
r107short(C);
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
}


void r107with(T107* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r107run_feature_match(C,a5);
}
/*No:CALL_INFIX_OR.fatal_error*/


void r107run_feature_match(T107* C,T0* a1){
r107run_feature_has_result(C);
r136match_with((T136*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_OR.arguments*/


T0* r107runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X53to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X53start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR.implicit_cast*/
/*No:CALL_INFIX_OR.us_or*/
/*No:CALL_INFIX_OR.arg1*/


void r107run_feature_has_result(T107* C){
/*[IF*/
if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r67add_position(X312start_position((C)->_run_feature/*16*/));
r67add_position(((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}


T0* r107run_feature_for(T107* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X46run_class(X53result_type(a1));
R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_OR.target*/


void r107error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:CALL_INFIX_OR.precedence*/


void r107make(T107* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T125*n=malloc(sizeof(*n));
*n=M125;
r125make(n,r107operator(),a2);
C->_feature_name=(T0*)n;
}
{T136*n=malloc(sizeof(*n));
*n=M136;
/*[IRF3.3make_1*/((((T136*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_OR.is_current*/
/*No:CALL_INFIX_OR.short_print_feature_name*/
/*No:CALL_INFIX_OR.is_void*/


T0* r107operator(void){
T0* R=NULL;
R=((T0*)ms13_456);
return R;
}


void r107short_target(T107* C){
r107bracketed_short(C);
/*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
}/*]*/
}


void r107short(T107* C){
/*[IF*/
if((X53precedence((C)->_target/*4*/))==(13)){
X53short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T107* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
/*[IF*/
if((X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
 else if((4)>=(X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else{
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
 else if((X53precedence((C)->_target/*4*/))<(4)){
X53bracketed_short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T107* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else{
X53short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T107* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
/*No:CALL_INFIX_OR.atomic_precedence*/
/*No:CALL_N.feature_name*/


void r140run_feature_match(T140* C,T0* a1){
r140run_feature_has_result(C);
r136match_with((T136*)((C)->_arguments/*12*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_N.arguments*/


T0* r140runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X53to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X53start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}


T0* r140start_position(T140* C){
T0* R=NULL;
R=X77start_position((C)->_feature_name/*8*/);
return R;
}


T0* r140add_comment(T140* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}


T2 r140to_integer(T140* C){
T2 R=0;
r140error(r140start_position(C),((T0*)ms12_45846));
return R;
}
/*No:CALL_N.dot_precedence*/


T0* r140to_runnable(T140* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r140runnable_expression((C)->_target/*4*/,a1);
_a=r140runnable_args((C)->_arguments/*12*/,a1);
_rf=r140run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r140run_feature_match(C,a1);
R=(T0*)C;
}
 else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*12*/)))){
R=(T0*)C;
}
else{
{T140*n=malloc(sizeof(*n));
*n=M140;
r140with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CALL_N.fz_bad_argument*/


void r140run_feature_has_result(T140* C){
/*[IF*/
if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r67add_position(X312start_position((C)->_run_feature/*16*/));
r67add_position(X77start_position((C)->_feature_name/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
/*No:CALL_N.fz_iinaiv*/


T0* r140run_feature_for(T140* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X46run_class(X53result_type(a1));
R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
return R;
}


T0* r140result_type(T140* C){
T0* R=NULL;
T0* _e=NULL;
T0* _tla=NULL;
R=X312result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X46is_like_current(R)){
R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 246: 
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
_e=r136expression((T136*)((C)->_arguments/*12*/),/*(IRF4.6rank*/(((T176*)((((T246*)_tla))->_like_what/*8*/)))->_rank/*8*//*)*/);
R=X46run_type(X53result_type(_e));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_N.target*/


void r140error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:CALL_N.run_feature*/
/*No:CALL_N.precedence*/


void r140make(T140* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}


T0* r140runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r136to_runnable(((T136*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(r136start_position(((T136*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}


void r140bracketed_short(T140* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
r140short(C);
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
}
/*No:CALL_N.is_current*/
/*No:CALL_N.is_void*/


void r140short_target(T140* C){
r140short(C);
/*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
}/*]*/
}


void r140with(T140* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r140run_feature_match(C,a5);
}


void r140short(T140* C){
X53short_target((C)->_target/*4*/);
X77short((C)->_feature_name/*8*/);
r136short((T136*)((C)->_arguments/*12*/));
}
/*No:CALL_N.fatal_error*/


T0* r81to_old_name(T81* C,T0* a1){
T0* R=NULL;
T0* _fn_to_key=NULL;
T2 _i=0;
_i=1;
_fn_to_key=X77to_key(a1);
while (!(((R)!=((void*)(NULL)))||((_i)>(((T83*)((C)->_list/*0*/))->_upper/*8*/)))) {
/*[IF*/
if((X77to_key(((T82*)(r83item((T83*)((C)->_list/*0*/),_i)))->_new_name/*4*/))==((void*)(_fn_to_key))){
R=((T82*)(r83item((T83*)((C)->_list/*0*/),_i)))->_old_name/*0*/;
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((R)==((void*)(NULL))){
R=a1;
}
/*FI]*/
return R;
}


T0* r81to_new_name(T81* C,T0* a1){
T0* R=NULL;
T0* _fn_to_key=NULL;
T2 _i=0;
_i=1;
_fn_to_key=X77to_key(a1);
while (!(((R)!=((void*)(NULL)))||((_i)>(((T83*)((C)->_list/*0*/))->_upper/*8*/)))) {
/*[IF*/
if((X77to_key(((T82*)(r83item((T83*)((C)->_list/*0*/),_i)))->_old_name/*0*/))==((void*)(_fn_to_key))){
R=((T82*)(r83item((T83*)((C)->_list/*0*/),_i)))->_new_name/*4*/;
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((R)==((void*)(NULL))){
R=a1;
}
/*FI]*/
return R;
}
/*No:RENAME_LIST.add_last*/


void r81get_started(T81* C,T0* a1){
T0* _rp2=NULL;
T0* _rp1=NULL;
T2 _j=0;
T2 _i=0;
_i=((T83*)((C)->_list/*0*/))->_upper/*8*/;
while (!((_i)==(0))) {
_rp1=r83item((T83*)((C)->_list/*0*/),_i);
/*[IF*/
if(!(r22has(((T22*)a1),(((T82*)_rp1))->_old_name/*0*/))){
r67add_position(X77start_position((((T82*)_rp1))->_old_name/*0*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms81_102564);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
_i=(_i)-(1);
_j=_i;
while (!((_j)==(0))) {
_rp2=r83item((T83*)((C)->_list/*0*/),_j);
/*[IF*/
if((X77to_key((((T82*)_rp2))->_old_name/*0*/))==((void*)(X77to_key((((T82*)_rp1))->_old_name/*0*/)))){
r67add_position(X77start_position((((T82*)_rp1))->_old_name/*0*/));
r67add_position(X77start_position((((T82*)_rp2))->_old_name/*0*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms81_122084);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
_j=(_j)-(1);
}
}
}
/*No:RENAME_LIST.make*/


T6 r81affect(T81* C,T0* a1){
T6 R=0;
T0* _fn_to_key=NULL;
T0* _rp=NULL;
T2 _i=0;
_i=((T83*)((C)->_list/*0*/))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
_rp=r83item((T83*)((C)->_list/*0*/),_i);
_fn_to_key=X77to_key(a1);
/*[IF*/
if(((X77to_key((((T82*)_rp))->_new_name/*4*/))==((void*)(_fn_to_key)))||((X77to_key((((T82*)_rp))->_old_name/*0*/))==((void*)(_fn_to_key)))){
R=1;
}
else{
_i=(_i)-(1);
}
/*FI]*/
}
return R;
}
/*No:RENAME_LIST.list*/
/*No:RENAME_LIST.fatal_error*/


T0* r254generic_list(T254* C){
T0* R=NULL;
r254fatal_error_generic_list(C);
return R;
}


T0* r254base_class(T254* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r47base_class(((T47*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms46_37098);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_type((T0*)C,((T0*)ms12_47));
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*FI]*/
return R;
}
/*No:TYPE_CHARACTER.base_class_name*/
/*No:TYPE_CHARACTER.start_position*/
/*No:TYPE_CHARACTER.is_formal_generic*/
int fBC254used_as_reference=0;


void r254used_as_reference(void){
if (fBC254used_as_reference==0){
fBC254used_as_reference=1;
r254load_ref(((T0*)ms13_16588));
}}


T6 r254is_a_in(T254* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r254written_mark())==((void*)(X46written_mark(a1)))){
R=1;
}
else{
_ct=(((T310*)a2))->_current_type/*0*/;
_t1=r254to_runnable(C,_ct);
_t2=X46to_runnable(a1,_ct);
/*[IF*/
if((X46run_time_mark(_t1))==((void*)(X46run_time_mark(_t2)))){
R=1;
}
else{
R=X46is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_CHARACTER.id*/
/*No:TYPE_CHARACTER.is_pointer*/


T0* r254look_up_for(T254* C,T0* a1,T0* a2){
T0* R=NULL;
R=r22look_up_for((T22*)(r254base_class(C)),a1,a2);
return R;
}


T0* r254to_runnable(T254* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r254check_type(C);
return R;
}
/*No:TYPE_CHARACTER.run_type*/


T0* r254run_class(T254* C){
T0* R=NULL;
R=r59run_class((T0*)C);
return R;
}


T6 r254has_creation(T254* C,T0* a1){
T6 R=0;
r67add_position(X77start_position(a1));
r254error(/*(IRF4.6start_position*/(((T47*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms253_100044));
return R;
}
/*No:TYPE_CHARACTER.expanded_initializer*/
/*No:TYPE_CHARACTER.us_item*/
/*No:TYPE_CHARACTER.is_like_current*/
/*No:TYPE_CHARACTER.is_boolean*/
/*No:TYPE_CHARACTER.is_generic*/
/*No:TYPE_CHARACTER.is_bit*/
/*No:TYPE_CHARACTER.us_character_ref*/
/*No:TYPE_CHARACTER.is_real*/


T0* r254smallest_ancestor(T254* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X46run_type(a1);
/*[IF*/
if(X46is_character(_rto)){
R=(T0*)C;
}
else{
R=r261smallest_ancestor((T261*)(r254type_character_ref()),_rto);
}
/*FI]*/
return R;
}
/*No:TYPE_CHARACTER.is_any*/
/*No:TYPE_CHARACTER.nb_errors*/
/*No:TYPE_CHARACTER.us_character*/


T0* r254run_time_mark(void){
T0* R=NULL;
R=((T0*)ms13_9936);
return R;
}
/*No:TYPE_CHARACTER.is_expanded*/
int fBC11type_character_ref=0;
T0*oBC11type_character_ref=NULL;


T0* r254type_character_ref(void){
if(fBC11type_character_ref==0){
T0* _character_ref=NULL;
fBC11type_character_ref=1;
{T47*n=malloc(sizeof(*n));
*n=M47;
r47make(n,((T0*)ms13_16588),NULL);
_character_ref=(T0*)n;
}
{T261*n=malloc(sizeof(*n));
*n=M261;
/*[IRF3.3make*/((((T261*)(n)))->_base_class_name)=(_character_ref);
/*]*/
oBC11type_character_ref=(T0*)n;
}
}
return oBC11type_character_ref;}
/*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
/*No:TYPE_CHARACTER.short_hook*/
/*No:TYPE_CHARACTER.is_string*/
/*No:TYPE_CHARACTER.is_integer*/
/*No:TYPE_CHARACTER.is_like_feature*/
/*No:TYPE_CHARACTER.fz_dot*/
/*No:TYPE_CHARACTER.is_anchored*/
/*No:TYPE_CHARACTER.is_run_type*/


T6 r254is_a(T254* C,T0* a1){
T6 R=0;
/*[IF*/
if(X46is_character(a1)){
R=1;
}
else{
R=r22is_subclass_of((T22*)(r254base_class(C)),X46base_class(a1));
/*[IF*/
if(R){
r254used_as_reference();
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
r67add_type((T0*)C,((T0*)ms12_17730));
r67add_type(a1,((T0*)ms12_47));
}
/*FI]*/
return R;
}
/*No:TYPE_CHARACTER.is_character*/
/*No:TYPE_CHARACTER.is_reference*/


T0* r254written_mark(void){
T0* R=NULL;
R=((T0*)ms13_9936);
return R;
}


void r254error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}


void r254make(T254* C,T0* a1){
{T47*n=malloc(sizeof(*n));
*n=M47;
r47make(n,((T0*)ms13_9936),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_CHARACTER.is_none*/
/*No:TYPE_CHARACTER.is_array*/
/*No:TYPE_CHARACTER.fz_inako*/


void r254fatal_error_generic_list(T254* C){
r67add_type((T0*)C,((T0*)ms46_29184));
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*No:TYPE_CHARACTER.is_like_argument*/


void r254load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T47*n=malloc(sizeof(*n));
*n=M47;
r47make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r22run_class((T22*)(r47base_class(((T47*)_cn))));
r310set_at_run_time(((T310*)_rc));
_rf=r310get_feature_with(((T310*)_rc),((T0*)ms13_1764));
}
int fBC254check_type=0;


void r254check_type(T254* C){
if (fBC254check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC254check_type=1;
_bc=r254base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
_rc=r254run_class(C);
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(!((((T22*)_bc))->_is_expanded/*20*/)){
r254error(/*(IRF4.6start_position*/(((T47*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms254_43416));
}
/*FI]*/
}
/*FI]*/
}}
/*No:TYPE_CHARACTER.is_double*/


void r254short(T254* C){
r39hook((T39*)(oBC11short_print),((T0*)ms46_891));
/*[IRF3.6short_hook*/{T254* C1=C;
r39a_class_name((T39*)(oBC11short_print),(C1)->_base_class_name/*4*/);
}/*]*/
r39hook((T39*)(oBC11short_print),((T0*)ms46_888));
}
/*No:PARENT_LIST.base_class*/


T6 r55has(T55* C,T0* a1){
T6 R=0;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r56has((T56*)(r57item((T57*)((C)->_list/*12*/),_i)),a1);
_i=(_i)-(1);
}
return R;
}
/*No:PARENT_LIST.start_position*/
/*No:PARENT_LIST.fz_cnf*/


T0* r55next_parent_for(T55* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _pbc=NULL;
T2 _i=0;
_i=1;
while (!((R)==((void*)(a2)))) {
R=r57item((T57*)((C)->_list/*12*/),_i);
_i=(_i)+(1);
}
R=NULL;
while (!(((R)!=((void*)(NULL)))||((_i)>(r57count((T57*)((C)->_list/*12*/)))))) {
R=r57item((T57*)((C)->_list/*12*/),_i);
_pbc=X46base_class((((T56*)R))->_type/*4*/);
/*[IF*/
if((_pbc)==((void*)(a1))){
}
 else if(r22is_subclass_of(((T22*)_pbc),a1)){
}
else{
R=NULL;
}
/*FI]*/
_i=(_i)+(1);
}
return R;
}


T0* r55precursor_for(T55* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _f2=NULL;
T0* _parent=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!(((R)!=((void*)(NULL)))||((_i)==(0)))) {
_parent=r57item((T57*)((C)->_list/*12*/),_i);
R=r56precursor_for(((T56*)_parent),a1,a2);
_i=(_i)-(1);
}
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(/*X164start_position*/((T0*)(((T165*)a1))->_start_position/*4*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms55_50792);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(r73all_check((T73*)(oBC11run_control))){
while (!((_i)==(0))) {
_parent=r57item((T57*)((C)->_list/*12*/),_i);
_f2=r56precursor_for(((T56*)_parent),a1,a2);
/*[IF*/
if(((_f2)!=((void*)(NULL)))&&((_f2)!=((void*)(R)))){
r67add_position(/*X164start_position*/((T0*)(((T165*)a1))->_start_position/*4*/));
r67add_position(X87start_position(R));
r67add_position(X87start_position(_f2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms55_163188);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}


T0* r55going_up(T55* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _fn2=NULL;
T0* _fn1=NULL;
T0* _p2=NULL;
T0* _p1=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!(((_fn1)!=((void*)(NULL)))||((_i)==(0)))) {
_p1=r57item((T57*)((C)->_list/*12*/),_i);
_fn1=r56going_up(((T56*)_p1),a1,a2,a3);
_i=(_i)-(1);
}
while (!((_i)==(0))) {
_p2=r57item((T57*)((C)->_list/*12*/),_i);
_fn2=r56going_up(((T56*)_p2),a1,a2,a3);
/*[IF*/
if((_fn2)!=((void*)(NULL))){
/*[IF*/
if(r56has_select_for(((T56*)_p2),_fn2)){
_p1=_p2;
_fn1=_fn2;
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
R=_fn1;
return R;
}
/*No:PARENT_LIST.em1*/


T0* r55look_up_for(T55* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _f2=NULL;
T0* _f1=NULL;
T0* _p2=NULL;
T0* _p1=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!(((_f1)!=((void*)(NULL)))||((_i)==(0)))) {
_p1=r57item((T57*)((C)->_list/*12*/),_i);
_f1=r56look_up_for(((T56*)_p1),a1,a2);
_i=(_i)-(1);
}
while (!((_i)==(0))) {
_p2=r57item((T57*)((C)->_list/*12*/),_i);
_f2=r56look_up_for(((T56*)_p2),a1,a2);
/*[IF*/
if((_f2)==((void*)(NULL))){
}
 else if((_f1)==((void*)(_f2))){
}
 else if(!(X87is_merge_with(_f2,_f1,a1))){
r67add_position((C)->_start_position/*4*/);
r67add_position(X87start_position(_f1));
r67add_position(X87start_position(_f2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_33638);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
 else if(X87is_deferred(_f2)){
}
 else if(X87is_deferred(_f1)){
_f1=_f2;
_p1=_p2;
}
 else if(r56has_redefine(((T56*)_p1),a2)){
/*[IF*/
if(r56has_redefine(((T56*)_p2),a2)){
}
else{
r67add_position(X77start_position(a2));
r67add_position(r56start_position(((T56*)_p2)));
r67add_position(X87start_position(_f2));
/*[IRF3.6append*/{T0* b1=((T0*)ms55_24210);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*FI]*/
}
 else if(r56has_redefine(((T56*)_p2),a2)){
r67add_position(X77start_position(a2));
r67add_position(r56start_position(((T56*)_p1)));
r67add_position(X87start_position(_f1));
/*[IRF3.6append*/{T0* b1=((T0*)ms55_24210);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67print_as_fatal_error((T67*)(oBC11eh));
}
else{
r67add_position(r56start_position(((T56*)_p2)));
r67add_position(r56start_position(((T56*)_p1)));
r67add_position(X87start_position(_f1));
r67add_position(X87start_position(_f2));
/*[IRF3.6append*/{T0* b1=((T0*)ms55_24210);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*FI]*/
_i=(_i)-(1);
}
R=_f1;
return R;
}


void r55get_started(T55* C){
T0* _p2=NULL;
T0* _p1=NULL;
T2 _i2=0;
T2 _i1=0;
_i1=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i1)==(0))) {
r56get_started((T56*)(r57item((T57*)((C)->_list/*12*/),_i1)),(T0*)C);
_i1=(_i1)-(1);
}
/*[IF*/
if((((T57*)((C)->_list/*12*/))->_upper/*8*/)>(1)){
_i2=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i2)==(1))) {
_i1=1;
while (!((_i1)==(_i2))) {
_p1=r57item((T57*)((C)->_list/*12*/),_i1);
_p2=r57item((T57*)((C)->_list/*12*/),_i2);
r56multiple_check(((T56*)_p1),_p2);
r56multiple_check(((T56*)_p2),_p1);
_i1=(_i1)+(1);
}
_i2=(_i2)-(1);
}
}
/*FI]*/
}


T0* r55first_parent_for(T55* C,T0* a1){
T0* R=NULL;
T0* _pbc=NULL;
T2 _i=0;
_i=1;
while (!((R)!=((void*)(NULL)))) {
R=r57item((T57*)((C)->_list/*12*/),_i);
_pbc=X46base_class((((T56*)R))->_type/*4*/);
/*[IF*/
if((_pbc)==((void*)(a1))){
}
 else if(r22is_subclass_of(((T22*)_pbc),a1)){
}
else{
R=NULL;
}
/*FI]*/
_i=(_i)+(1);
}
return R;
}
/*No:PARENT_LIST.fz_ich*/


T6 r55has_parent(T55* C,T0* a1){
T6 R=0;
T0* _bc=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_bc=X46base_class(((T56*)(r57item((T57*)((C)->_list/*12*/),_i)))->_type/*4*/);
/*[IF*/
if((a1)==((void*)(_bc))){
R=1;
_i=0;
}
 else if(r22is_subclass_of_aux(((T22*)_bc),a1)){
R=1;
_i=0;
}
else{
_i=(_i)-(1);
}
/*FI]*/
}
return R;
}
/*No:PARENT_LIST.list*/


T0* r55smallest_ancestor(T55* C,T0* a1){
T0* R=NULL;
T0* _sa=NULL;
T0* _p=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_p=r57item((T57*)((C)->_list/*12*/),_i);
_sa=X46run_type(r56smallest_ancestor(((T56*)_p),a1));
/*[IF*/
if((R)==((void*)(NULL))){
R=_sa;
}
else{
R=X46smallest_ancestor(_sa,R);
}
/*FI]*/
/*[IF*/
if(X46is_any(R)){
_i=0;
}
else{
_i=(_i)-(1);
}
/*FI]*/
}
return R;
}
/*No:PARENT_LIST.fatal_error*/


T6 r55has_redefine(T55* C,T0* a1){
T6 R=0;
T2 _i=0;
_i=1;
while (!((R)||((_i)>(((T57*)((C)->_list/*12*/))->_upper/*8*/)))) {
R=r56has_redefine((T56*)(r57item((T57*)((C)->_list/*12*/),_i)),a1);
_i=(_i)+(1);
}
return R;
}


void r55inherit_cycle_check(T55* C){
T0* _bc=NULL;
T0* _p=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_p=r57item((T57*)((C)->_list/*12*/),_i);
_bc=X46base_class((((T56*)_p))->_type/*4*/);
/*[IF*/
if((_bc)==((void*)(NULL))){
r67add_position(r56start_position(((T56*)_p)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_20048);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
r22inherit_cycle_check(((T22*)_bc));
}
/*FI]*/
_i=(_i)-(1);
}
}


T0* r55up_to_original(T55* C,T0* a1,T0* a2){
T0* R=NULL;
T2 _i=0;
T0* _new_fn=NULL;
T0* _fn2=NULL;
T0* _fn1=NULL;
T0* _p2=NULL;
T0* _p1=NULL;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!(((_i)==(0))||((_fn1)!=((void*)(NULL))))) {
_p1=r57item((T57*)((C)->_list/*12*/),_i);
_fn1=r56up_to_original(((T56*)_p1),a1,a2);
_i=(_i)-(1);
}
while (!((_i)==(0))) {
_p2=r57item((T57*)((C)->_list/*12*/),_i);
_fn2=r56up_to_original(((T56*)_p2),a1,a2);
/*[IF*/
if((_fn2)!=((void*)(NULL))){
_new_fn=r56do_rename(((T56*)_p2),a2);
/*[IF*/
if(r56has_select_for(((T56*)_p2),_new_fn)){
_p1=_p2;
_fn1=_fn2;
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if((_fn1)!=((void*)(NULL))){
/*[IF*/
if((X77to_string(_fn1))!=((void*)(X77to_string(a2)))){
R=r55repeated_inheritance(C,_p1,_fn1,a2);
}
else{
R=_fn1;
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r55clients_for(T55* C,T0* a1){
T0* R=NULL;
T0* _cl=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_cl=r56clients_for((T56*)(r57item((T57*)((C)->_list/*12*/),_i)),a1);
/*[IF*/
if((R)==((void*)(NULL))){
R=_cl;
}
 else if((_cl)!=((void*)(NULL))){
R=r94append(((T94*)R),_cl);
}
/*FI]*/
/*[IF*/
if((R)==((void*)(NULL))){
_i=(_i)-(1);
}
 else if(r94gives_permission_to_any(((T94*)R))){
_i=0;
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
_i=(_i)-(1);
}
/*FI]*/
}
return R;
}


T0* r55repeated_inheritance(T55* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _bc1=NULL;
T0* _p2=NULL;
T2 _i=0;
_bc1=X46base_class((((T56*)a1))->_type/*4*/);
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_p2=r57item((T57*)((C)->_list/*12*/),_i);
/*[IF*/
if((a1)!=((void*)(_p2))){
/*[IF*/
if((_bc1)==((void*)(X46base_class((((T56*)_p2))->_type/*4*/)))){
/*[IF*/
if((X77to_string(r56do_rename(((T56*)_p2),a2)))==((void*)(X77to_string(a3)))){
R=a3;
}
 else if((X77to_string(r56do_rename(((T56*)a1),a2)))==((void*)(X77to_string(a3)))){
R=a3;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if((R)==((void*)(NULL))){
R=a2;
}
/*FI]*/
return R;
}
/*No:PARENT_LIST.heading_comment*/


T0* r55class_with(T0* a1){
T0* R=NULL;
R=r59get_class(a1);
return R;
}
int fBC11class_any=0;
T0*oBC11class_any=NULL;


T0* r55class_any(void){
if(fBC11class_any==0){
fBC11class_any=1;
oBC11class_any=r55class_with(((T0*)ms13_714));
}
return oBC11class_any;}
/*No:PARENT_LIST.count*/


void r55make(T55* C,T0* a1,T0* a2,T0* a3,T0* a4){
C->_base_class=a1;
C->_heading_comment=a3;
C->_start_position=a2;
C->_list=a4;
}
/*No:PARENT_LIST.us_any*/


void r55up_to_any_in(T55* C,T0* a1){
T0* _bc=NULL;
T0* _p=NULL;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_p=r57item((T57*)((C)->_list/*12*/),_i);
_bc=X46base_class((((T56*)_p))->_type/*4*/);
/*[IF*/
if(!(r64fast_has(((T64*)a1),_bc))){
r64add_last(((T64*)a1),_bc);
}
/*FI]*/
_i=(_i)-(1);
}
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
_p=r57item((T57*)((C)->_list/*12*/),_i);
_bc=X46base_class((((T56*)_p))->_type/*4*/);
/*[IF*/
if((_bc)!=((void*)(r55class_any()))){
r22up_to_any_in(((T22*)_bc),a1);
}
/*FI]*/
_i=(_i)-(1);
}
}


void r55collect_for(T55* C,T2 a1,T0* a2){
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((_i)==(0))) {
r56collect_for((T56*)(r57item((T57*)((C)->_list/*12*/),_i)),a1,a2);
_i=(_i)-(1);
}
}


T6 r55is_a_vncg(T55* C,T0* a1,T0* a2){
T6 R=0;
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r56is_a_vncg((T56*)(r57item((T57*)((C)->_list/*12*/),_i)),a1,a2);
_i=(_i)-(1);
}
return R;
}


void r55header_comment_for(T55* C,T0* a1){
T2 _i=0;
_i=((T57*)((C)->_list/*12*/))->_upper/*8*/;
while (!(((_i)==(0))||(((((T40*)a1))->_header_comment/*4*/)!=((void*)(NULL))))) {
r22header_comment_for((T22*)(X46base_class(((T56*)(r57item((T57*)((C)->_list/*12*/),_i)))->_type/*4*/)),a1);
_i=(_i)-(1);
}
}
/*No:PARENT_LIST.super*/


T0* r47base_class(T47* C){
T0* R=NULL;
R=r59base_class((T59*)(oBC11small_eiffel),(T0*)C);
return R;
}
/*No:CLASS_NAME.start_position*/
/*No:CLASS_NAME.to_string*/


T6 r47is_subclass_of(T47* C,T0* a1){
T6 R=0;
/*[IF*/
if((((T0*)ms13_1256))==((void*)((C)->_to_string/*0*/))){
R=1;
}
 else if((((T0*)ms13_714))==((void*)((((T47*)a1))->_to_string/*0*/))){
R=1;
}
 else if((((T0*)ms13_1256))==((void*)((((T47*)a1))->_to_string/*0*/))){
}
else{
R=r22is_subclass_of((T22*)(r47base_class(C)),r47base_class(((T47*)a1)));
}
/*FI]*/
return R;
}


void r47identify(T47* C,T0* a1){
C->_to_string=r78item(a1);
}


void r47make_unknown(T47* C){
{T69*n=malloc(sizeof(*n));
*n=M69;
r69with(n,1,1,(T0*)C);
C->_start_position=(T0*)n;
}
C->_to_string=((T0*)ms47_702);
}
/*No:CLASS_NAME.us_none*/


void r47make(T47* C,T0* a1,T0* a2){
C->_start_position=a2;
C->_to_string=r78item(a1);
}
/*No:CLASS_NAME.us_any*/
/*No:CLASS_NAME.unknown_name*/

