/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "pretty.h"
/*No:FUNCTION.arguments*/
T0* r696try_to_undefine(T696* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r696try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T696*)C))->_clients/*24*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:FUNCTION.is_deferred*/
/*No:FUNCTION.fz_bad_assertion*/
T0* r696runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r696error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:FUNCTION.rescue_compound*/
void r696add_into(T696* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
/*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
_fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
r683add_position(X776start_position(_fn));
r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
else {
r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
}
/*FI*/_i=(_i)+(1);
}
}
/*No:FUNCTION.end_comment*/
T0* r696try_to_undefine_aux(T696* C,T0* a1,T0* a2){
T0* R=NULL;
{T649*n=malloc(sizeof(*n));
*n=M649;
r649from_effective(n,a1,(((T696*)C))->_arguments/*28*/,(((T696*)C))->_result_type/*12*/,(((T696*)C))->_require_assertion/*36*/,(((T696*)C))->_ensure_assertion/*40*/,a2);
R=(T0*)n;
}
return R;
}
void r696make(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r696make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}
/*No:FUNCTION.not_computed*/
/*No:FUNCTION.nb_errors*/
void r696pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
void r696make_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
r696make_e_feature(C,a1,NULL);
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
/*No:FUNCTION.local_vars*/
void r696set_header_comment(T696* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
C->_end_comment=a1;
}
/*FI*/}
T0* r696start_position(T696* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r696to_run_feature(T696* C,T0* a1,T0* a2){
T0* R=NULL;
r696check_obsolete(C);
{T857*n=malloc(sizeof(*n));
*n=M857;
r857make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
/*No:FUNCTION.ensure_assertion*/
/*No:FUNCTION.code_require*/
T0* r696run_ensure(T0* a1){
T0* R=NULL;
T0* _r=NULL;
r608clear(((T608*)(oBC359assertion_collector)));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
_r=r696runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633from_runnable(n,_r);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
}/*]*/
}
/*FI*/return R;
}
T0* r696run_require(T0* a1){
T0* R=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
int _i=0;
r522clear(((T522*)(oBC359require_collector)));
r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
/*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
_i=1;
while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
_er=r522item(((T522*)(oBC359require_collector)),_i);
_hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
/*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
_r=r696runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
/*IF*/if ((_r)!=((void*)(NULL))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343from_runnable(n,_r);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
/*]*/
/*IF*/if ((_ar)==((void*)(NULL))) {
_ar=se_ma522(1,_er);
}
else {
r522add_last(((T522*)_ar),_er);
}
/*FI*/}
/*FI*/}
/*FI*/_i=(_i)+(1);
}
/*IF*/if ((_ar)!=((void*)(NULL))) {
{T541*n=malloc(sizeof(*n));
*n=M541;
/*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:FUNCTION.result_type*/
/*No:FUNCTION.fz_03*/
/*No:FUNCTION.em1*/
void r696pretty_print(T696* C){
T0* _fn=NULL;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r696pretty_print_profile(C);
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
/*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
r805pretty_print(((T805*)((((T696*)C))->_obsolete_mark/*32*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*IF*/if (((((T696*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T696*)C))->_header_comment/*16*/)));
}
/*FI*//*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r343pretty_print(((T343*)((((T696*)C))->_require_assertion/*36*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r696pretty_print_routine_body(C);
/*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r633pretty_print(((T633*)((((T696*)C))->_ensure_assertion/*40*/)));
}
/*FI*//*IF*/if (((((T696*)C))->_rescue_compound/*44*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
r592pretty_print(((T592*)((((T696*)C))->_rescue_compound/*44*/)));
}
/*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
/*IF*/if ((((((T696*)C))->_end_comment/*48*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T696*)C))->_end_comment/*48*/)))))) {
r393pretty_print(((T393*)((((T696*)C))->_end_comment/*48*/)));
}
 else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
_fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
X776definition_pretty_print(_fn);
}
/*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
}
/*No:FUNCTION.obsolete_mark*/
/*No:FUNCTION.set_clients*/
/*No:FUNCTION.em2*/
/*No:FUNCTION.names*/
/*No:FUNCTION.require_assertion*/
/*No:FUNCTION.use_current_state*/
/*No:FUNCTION.code_ensure*/
void r696set_rescue_compound(T696* C,T0* a1){
/*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
r696error(r696start_position(C),((T0*)ms6_355));
}
/*FI*/C->_rescue_compound=a1;
}
void r696pretty_print_profile(T696* C){
r696pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r696pretty_print_arguments(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T696*)C))->_result_type/*12*/);
}
/*FI*/}
void r696pretty_print_names(T696* C){
int _i=0;
_i=1;
r696pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r696pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T696*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r696can_hide(T696* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms6_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms7_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r683add_position(r696start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
}
/*FI*/}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:FUNCTION.header_comment*/
/*No:FUNCTION.routine_body*/
int r696is_merge_with(T696* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T696*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
/*IF*/if ((((((T696*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms3_359));
}
 else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T696*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms4_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T696*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
/*IF*/if (!(r31is_a_in(((T31*)((((T696*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
r683add_position(X359start_position(a1));
r696error(r696start_position(C),((T0*)ms12_359));
}
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:FUNCTION.fz_dot*/
/*No:FUNCTION.set_ensure_assertion*/
/*No:FUNCTION.first_name*/
/*No:FUNCTION.pretty_print_once_or_do*/
/*No:FUNCTION.clients*/
void r696collect_for(T696* C,int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*/if (((((T696*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
/*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/))) {
r522add_last(((T522*)(oBC359require_collector)),(((T696*)C))->_require_assertion/*36*/);
}
/*FI*/}
/*FI*/}
else {
/*IF*/if (((((T696*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
/*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T696*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
/*]*/
r633add_into(((T633*)((((T696*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
}
/*FI*/}
/*FI*/}
void r696make_effective_routine(T696* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r696make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=1011;
}
void r696error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:FUNCTION.base_class*/
void r696pretty_print_arguments(T696* C){
/*IF*/if (((((T696*)C))->_arguments/*28*/)!=((void*)(NULL))) {
r31pretty_print(((T31*)((((T696*)C))->_arguments/*28*/)));
}
/*FI*/}
void r696pretty_print_routine_body(T696* C){
/*IF*/if (((((T696*)C))->_local_vars/*20*/)!=((void*)(NULL))) {
r620pretty_print(((T620*)((((T696*)C))->_local_vars/*20*/)));
}
/*FI*/r238indent(((T238*)(oBC364fmt)));
/*[IRF3.2pretty_print_once_or_do*/r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_706));
/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
/*IF*/if (((((T696*)C))->_routine_body/*52*/)!=((void*)(NULL))) {
r592pretty_print(((T592*)((((T696*)C))->_routine_body/*52*/)));
}
/*FI*/}
void r696make_e_feature(T696* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
void r696check_obsolete(T696* C){
/*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
/*IF*/if (((((T696*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T696*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r696warning(r696start_position(C),((T0*)ms137_470));
}
/*FI*/}
/*FI*/}
void r696warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
int r657has_creation(T657* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r657base_class(C))),a1);
return R;
}
/*No:TYPE_CLASS.is_anchored*/
/*No:TYPE_CLASS.is_array*/
int r657is_a(T657* C,T0* a1){
int R=0;
T0* _obcn=NULL;
T0* _bcn=NULL;
_bcn=(((T657*)C))->_base_class_name/*4*/;
_obcn=X291base_class_name(a1);
/*IF*/if (((((T451*)((T451*)_bcn)))->_to_string/*0*/)==((void*)((((T451*)((T451*)_obcn)))->_to_string/*0*/))) {
R=1;
}
 else if (r451is_subclass_of(((T451*)_bcn),_obcn)) {
/*IF*/if (X291is_generic(a1)) {
R=r605is_a_vncg(((T605*)(r451base_class(((T451*)_bcn)))),(T0*)C,a1);
}
else {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_CLASS.run_type*/
/*No:TYPE_CLASS.is_pointer*/
/*No:TYPE_CLASS.is_string*/
/*No:TYPE_CLASS.is_like_feature*/
/*No:TYPE_CLASS.is_like_current*/
/*No:TYPE_CLASS.make*/
T0* r657type_any(void){
if (fBC364type_any==0){
T0* R=NULL;
fBC364type_any=1;
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,NULL);
R=(T0*)n;
}
oBC364type_any=R;}
return oBC364type_any;}
/*No:TYPE_CLASS.start_position*/
/*No:TYPE_CLASS.fz_inako*/
/*No:TYPE_CLASS.is_character*/
/*No:TYPE_CLASS.written_mark*/
T0* r657to_runnable(T657* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
_bc=r451base_class(((T451*)((((T657*)C))->_base_class_name/*4*/)));
/*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
/*IF*/if (!(r863fast_has(((T863*)(oBC657check_memory)),_bc))) {
r368set_at_run_time(((T368*)(r657run_class(C))));
r863add_last(((T863*)(oBC657check_memory)),_bc);
}
/*FI*/}
/*FI*/R=(T0*)C;
return R;
}
/*No:TYPE_CLASS.is_run_type*/
/*No:TYPE_CLASS.is_formal_generic*/
T0* r657generic_list(T657* C){
T0* R=NULL;
r657fatal_error_generic_list(C);
return R;
}
T0*oBC657check_memory=NULL;
/*No:TYPE_CLASS.is_real*/
/*No:TYPE_CLASS.is_bit*/
void r657fatal_error_generic_list(T657* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_CLASS.pretty_print*/
T0* r657smallest_ancestor(T657* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
T0* _rto_bc=NULL;
T0* _pl2=NULL;
T0* _pl1=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_none(a1)) {
R=(T0*)C;
}
 else if (X291is_any(_rto)) {
R=_rto;
}
else {
_rto_bc=X291base_class(_rto);
_bc=r657base_class(C);
/*IF*/if ((_rto_bc)==((void*)(_bc))) {
R=(T0*)C;
}
 else if (r605is_subclass_of(((T605*)_rto_bc),_bc)) {
R=(T0*)C;
}
 else if (r605is_subclass_of(((T605*)_bc),_rto_bc)) {
R=_rto;
}
 else if ((X291is_expanded(_rto))&&(!(r657is_expanded(C)))) {
R=X291smallest_ancestor(_rto,(T0*)C);
}
else {
_pl1=(((T605*)((T605*)_bc)))->_parent_list/*40*/;
_pl2=(((T605*)((T605*)_rto_bc)))->_parent_list/*40*/;
/*IF*/if (((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))) {
R=r657type_any();
}
 else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl2)))->_list/*12*/)))/*)*/))))->_type/*4*/,(T0*)C);
}
 else if ((/*(IRF4.6count*/(((T26*)((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/))))->_upper/*8*//*)*/)==(1)) {
R=X291smallest_ancestor((((T877*)((T877*)(/*(IRF4.6super*/r26first(((T26*)((((T673*)((T673*)_pl1)))->_list/*12*/)))/*)*/))))->_type/*4*/,a1);
}
else {
R=r673smallest_ancestor(((T673*)_pl1),(T0*)C);
R=X291smallest_ancestor(R,a1);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:TYPE_CLASS.is_boolean*/
/*No:TYPE_CLASS.is_double*/
T0* r657run_class(T657* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
/*No:TYPE_CLASS.run_time_mark*/
int r657is_a_in(T657* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((/*(IRF4.6written_mark*/(((T451*)((T451*)((((T657*)C))->_base_class_name/*4*/))))->_to_string/*0*//*)*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r657to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r657look_up_for(T657* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r657base_class(C))),a1,a2);
return R;
}
T0* r657expanded_initializer(T657* C){
T0* R=NULL;
/*IF*/if (r657is_expanded(C)) {
R=r605expanded_initializer(((T605*)(r657base_class(C))),(T0*)C);
}
/*FI*/return R;
}
/*No:TYPE_CLASS.fz_dot*/
/*No:TYPE_CLASS.is_generic*/
/*No:TYPE_CLASS.used_as_reference*/
int r657is_reference(T657* C){
int R=0;
R=!((((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/);
return R;
}
T0* r657base_class(T657* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T657*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_CLASS.is_any*/
/*No:TYPE_CLASS.base_class_name*/
int r657is_expanded(T657* C){
int R=0;
R=(((T605*)((T605*)(r657base_class(C)))))->_is_expanded/*20*/;
return R;
}
/*No:TYPE_CLASS.is_basic_eiffel_expanded*/
/*No:TYPE_CLASS.is_none*/
/*No:TYPE_CLASS.is_integer*/
/*No:NATIVE_JVM_INVOKESTATIC.fz_jvm_invokestatic*/
T0* r300language_name(void){
T0* R=NULL;
R=((T0*)ms28_470);
return R;
}
/*No:NATIVE_JVM_INVOKESTATIC.pretty_print*/
T0* r940add_comment(T940* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r940to_integer(T940* C){
int R=0;
r940error((((T940*)C))->_start_position/*8*/,((T0*)ms69_470));
return R;
}
int r940is_a(T940* C,T0* a1){
int R=0;
R=X609is_a(/*(IRF4.4run_type*/((T0*)((T549*)(((T940*)C))->_result_type/*16*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T940*)C))->_start_position/*8*/);
r940error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:BIT_CONSTANT.is_current*/
void r940make(T940* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_value=a2;
}
void r940print_as_target(T940* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r940pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:BIT_CONSTANT.fz_iinaiv*/
/*No:BIT_CONSTANT.start_position*/
/*No:BIT_CONSTANT.precedence*/
T0* r940to_runnable(T940* C,T0* a1){
T0* R=NULL;
T0* _ic=NULL;
/*IF*/if (((((T940*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
/*IF*/if (((((T940*)C))->_result_type/*16*/)==((void*)(NULL))) {
{T342*n=malloc(sizeof(*n));
*n=M342;
r342make(n,(((T7*)((T7*)((((T940*)C))->_value/*12*/))))->_count/*4*/,(((T940*)C))->_start_position/*8*/);
_ic=(T0*)n;
}
{T549*n=malloc(sizeof(*n));
*n=M549;
r549make(n,(((T940*)C))->_start_position/*8*/,_ic);
C->_result_type=(T0*)n;
}
r368set_at_run_time(((T368*)(r549run_class(((T549*)((((T940*)C))->_result_type/*16*/))))));
}
/*FI*/R=(T0*)C;
}
else {
R=r940twin(C);
/*[IRF3.3set_current_type*/((((T940*)(((T940*)R))))->_current_type)=(NULL);
/*]*/
R=r940to_runnable(((T940*)R),a1);
}
/*FI*/return R;
}
void r940bracketed_pretty_print(T940* C){
r238put_string(((T238*)(oBC364fmt)),(((T940*)C))->_value/*12*/);
r238put_character(((T238*)(oBC364fmt)),'B');
}
/*No:BIT_CONSTANT.result_type*/
T0* r940twin(T940* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T940*)R)=*C;
return R;
}
/*No:BIT_CONSTANT.set_current_type*/
/*No:BIT_CONSTANT.atomic_precedence*/
void r940pretty_print(T940* C){
r238put_string(((T238*)(oBC364fmt)),(((T940*)C))->_value/*12*/);
r238put_character(((T238*)(oBC364fmt)),'B');
}
/*No:BIT_CONSTANT.value*/
/*No:BIT_CONSTANT.current_type*/
/*No:BIT_CONSTANT.is_manifest_string*/
/*No:BIT_CONSTANT.is_void*/
void r940error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r367add_comment(T367* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:E_FALSE.to_integer*/
int r367is_a(T367* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r367type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T367*)C))->_start_position/*8*/);
r367error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_FALSE.is_current*/
T0* r367type_boolean(void){
if (fBC364type_boolean==0){
T0* R=NULL;
fBC364type_boolean=1;
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,NULL);
R=(T0*)n;
}
oBC364type_boolean=R;}
return oBC364type_boolean;}
/*No:E_FALSE.make*/
/*No:E_FALSE.print_as_target*/
T0* r367to_string(void){
T0* R=NULL;
R=((T0*)ms17_470);
return R;
}
/*No:E_FALSE.fz_iinaiv*/
/*No:E_FALSE.start_position*/
/*No:E_FALSE.precedence*/
T0* r367to_runnable(T367* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T367*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r367twin(C);
/*[IRF3.3set_current_type*/((((T367*)(((T367*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:E_FALSE.bracketed_pretty_print*/
/*No:E_FALSE.result_type*/
T0* r367twin(T367* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T367*)R)=*C;
return R;
}
/*No:E_FALSE.set_current_type*/
/*No:E_FALSE.atomic_precedence*/
/*No:E_FALSE.pretty_print*/
/*No:E_FALSE.fz_false*/
/*No:E_FALSE.current_type*/
/*No:E_FALSE.is_manifest_string*/
/*No:E_FALSE.is_void*/
void r367error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
void r671make(T671* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_items=a2;
}
/*No:EXPORT_LIST.start_position*/
void r671pretty_print(T671* C){
int _i=0;
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_671));
_i=1;
while (!((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
r542pretty_print(((T542*)(r587item(((T587*)((((T671*)C))->_items/*4*/)),_i))));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)) {
r238put_character(((T238*)(oBC364fmt)),'\73');
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
r238indent(((T238*)(oBC364fmt)));
}
/*FI*/}
}
T0* r671clients_for(T671* C,T0* a1){
T0* R=NULL;
T0* _ei=NULL;
int _i=0;
_i=1;
while (!(((R)!=((void*)(NULL)))||((_i)>((((T587*)((T587*)((((T671*)C))->_items/*4*/))))->_upper/*8*/)))) {
_ei=r587item(((T587*)((((T671*)C))->_items/*4*/)),_i);
/*IF*/if (r542affect(((T542*)_ei),a1)) {
R=(((T542*)((T542*)_ei)))->_clients/*0*/;
}
else {
_i=(_i)+(1);
}
/*FI*/}
return R;
}
/*No:EXPORT_LIST.items*/
/*No:CLASS_NAME.us_none*/
int r451is_subclass_of(T451* C,T0* a1){
int R=0;
/*IF*/if ((((T0*)ms1_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
R=1;
}
 else if ((((T0*)ms19_473))==((void*)((((T451*)((T451*)a1)))->_to_string/*0*/))) {
}
else {
R=r605is_subclass_of(((T605*)(r451base_class(C))),r451base_class(((T451*)a1)));
}
/*FI*/return R;
}
void r451make(T451* C,T0* a1,T0* a2){
C->_start_position=a2;
C->_to_string=r902item(a1);
}
/*No:CLASS_NAME.to_string*/
void r451make_unknown(T451* C){
{T627*n=malloc(sizeof(*n));
*n=M627;
r627with(n,1,1,(T0*)C);
C->_start_position=(T0*)n;
}
C->_to_string=((T0*)ms3_451);
}
/*No:CLASS_NAME.start_position*/
/*No:CLASS_NAME.unknown_name*/
/*No:CLASS_NAME.pretty_print*/
T0* r451base_class(T451* C){
T0* R=NULL;
R=r604base_class(((T604*)(oBC364small_eiffel)),(T0*)C);
return R;
}
void r451identify(T451* C,T0* a1){
C->_to_string=r902item(a1);
}
/*No:CLASS_NAME.us_any*/
T0* r260add_comment(T260* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
else {
{T529*n=malloc(sizeof(*n));
*n=M529;
r529make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CHARACTER_CONSTANT.ascii_pretty_print*/
/*No:CHARACTER_CONSTANT.to_integer*/
int r260is_a(T260* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T252*)r260result_type()))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T260*)C))->_start_position/*8*/);
r260error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CHARACTER_CONSTANT.std_pretty_print*/
/*No:CHARACTER_CONSTANT.is_current*/
void r260character_coding(char a1,T0* a2){
char _special=0;
{int z1=a1;

if((64==z1)){
_special='A';
}
 else 
if((8==z1)){
_special='B';
}
 else 
if((94==z1)){
_special='C';
}
 else 
if((36==z1)){
_special='D';
}
 else 
if((12==z1)){
_special='F';
}
 else 
if((92==z1)){
_special='H';
}
 else 
if((126==z1)){
_special='L';
}
 else 
if((10==z1)){
_special='N';
}
 else 
if((96==z1)){
_special='Q';
}
 else 
if((13==z1)){
_special='R';
}
 else 
if((35==z1)){
_special='S';
}
 else 
if((9==z1)){
_special='T';
}
 else 
if((0==z1)){
_special='U';
}
 else 
if((124==z1)){
_special='V';
}
 else 
if((37==z1)){
_special='\45';
}
 else 
if((39==z1)){
_special='\47';
}
 else 
if((34==z1)){
_special='\42';
}
 else 
if((91==z1)){
_special='\50';
}
 else 
if((93==z1)){
_special='\51';
}
 else 
if((123==z1)){
_special='\74';
}
 else 
if((125==z1)){
_special='\76';
}
}
r7extend(((T7*)a2),'\45');
/*IF*/if ((_special)==('\0')) {
r7extend(((T7*)a2),'\57');
r2append_in(((unsigned char)a1),a2);
r7extend(((T7*)a2),'\57');
}
else {
r7extend(((T7*)a2),_special);
}
/*FI*/}
void r260make(T260* C,T0* a1,char a2,int a3){
C->_start_position=a1;
C->_value=a2;
/*[IRF3.3set_pretty_print_mode*/((((T260*)(C)))->_pretty_print_mode)=(a3);
/*]*/
}
void r260print_as_target(T260* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
/*[IRF3.6pretty_print*/{T260* C1=C;
r238put_string(((T238*)(oBC364fmt)),r260to_string(C1));
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
T0* r260to_string(T260* C){
T0* R=NULL;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,0);
R=(T0*)n;
}
r7extend(((T7*)R),'\47');
{int z1=(((T260*)C))->_pretty_print_mode/*13*/;

if((0==z1)){
r7extend(((T7*)R),(((T260*)C))->_value/*12*/);
}
 else 
if((1==z1)){
r260character_coding((((T260*)C))->_value/*12*/,R);
}
 else {r7extend(((T7*)R),'\45');
r7extend(((T7*)R),'\57');
r2append_in(((unsigned char)(((T260*)C))->_value/*12*/),R);
r7extend(((T7*)R),'\57');
}}
r7extend(((T7*)R),'\47');
return R;
}
/*No:CHARACTER_CONSTANT.fz_iinaiv*/
/*No:CHARACTER_CONSTANT.set_pretty_print_mode*/
/*No:CHARACTER_CONSTANT.start_position*/
/*No:CHARACTER_CONSTANT.precedence*/
/*No:CHARACTER_CONSTANT.percent_pretty_print*/
T0* r260to_runnable(T260* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T260*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r260twin(C);
/*[IRF3.3set_current_type*/((((T260*)(((T260*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:CHARACTER_CONSTANT.bracketed_pretty_print*/
int fBC260result_type=0;
T0*oBC260result_type=NULL;
T0* r260result_type(void){
if (fBC260result_type==0){
T0* R=NULL;
fBC260result_type=1;
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,NULL);
R=(T0*)n;
}
oBC260result_type=R;}
return oBC260result_type;}
T0* r260twin(T260* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T260*)R)=*C;
return R;
}
/*No:CHARACTER_CONSTANT.set_current_type*/
/*No:CHARACTER_CONSTANT.atomic_precedence*/
/*No:CHARACTER_CONSTANT.pretty_print*/
/*No:CHARACTER_CONSTANT.value*/
/*No:CHARACTER_CONSTANT.current_type*/
/*No:CHARACTER_CONSTANT.is_manifest_string*/
/*No:CHARACTER_CONSTANT.is_void*/
/*No:CHARACTER_CONSTANT.pretty_print_mode*/
void r260error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:LOOP_INVARIANT.fz_bad_assertion*/
T0* r213runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(r608empty(((T608*)a1)))) {
R=r608twin(((T608*)a1));
_i=(((T608*)((T608*)R)))->_upper/*8*/;
while (!((_i)==(0))) {
r604push(((T604*)(oBC364small_eiffel)),a3);
_a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
/*IF*/if ((_a)==((void*)(NULL))) {
r213error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
}
else {
/*[IRF3.6put*/{T608* C1=((T608*)R);
T0* b1=_a;
int b2=_i;
((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/r604pop(((T604*)(oBC364small_eiffel)));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void r213make(T213* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
T0* r213name(void){
T0* R=NULL;
R=((T0*)ms1_213);
return R;
}
/*No:LOOP_INVARIANT.nb_errors*/
/*No:LOOP_INVARIANT.start_position*/
T0* r213to_runnable(T213* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T213*)C))->_current_type/*12*/)==((void*)(NULL))) {
C->_current_type=a1;
/*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
C->_list=r213runnable((((T213*)C))->_list/*8*/,a1,r604top_rf(((T604*)(oBC364small_eiffel))));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r213twin(C);
/*[IRF3.3set_current_type*/((((T213*)(((T213*)R))))->_current_type)=(NULL);
/*]*/
R=r213to_runnable(((T213*)R),a1);
}
/*FI*/return R;
}
T0* r213twin(T213* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T213*)R)=*C;
return R;
}
/*No:LOOP_INVARIANT.set_current_type*/
void r213pretty_print(T213* C){
int _i=0;
r238indent(((T238*)(oBC364fmt)));
r238keyword(((T238*)(oBC364fmt)),r213name());
r238level_incr(((T238*)(oBC364fmt)));
/*IF*/if (((((T213*)C))->_header_comment/*4*/)!=((void*)(NULL))) {
r393pretty_print(((T393*)((((T213*)C))->_header_comment/*4*/)));
}
else {
r238indent(((T238*)(oBC364fmt)));
}
/*FI*//*IF*/if (((((T213*)C))->_list/*8*/)!=((void*)(NULL))) {
_i=1;
while (!((_i)>((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
/*IF*/if (r6_px_and(r238zen_mode(((T238*)(oBC364fmt))),(_i)==((((T608*)((T608*)((((T213*)C))->_list/*8*/))))->_upper/*8*/))) {
/*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
/*]*/
}
else {
/*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(1);
/*]*/
}
/*FI*/r238indent(((T238*)(oBC364fmt)));
r348pretty_print(((T348*)(r608item(((T608*)((((T213*)C))->_list/*8*/)),_i))));
_i=(_i)+(1);
}
}
/*FI*/r238level_decr(((T238*)(oBC364fmt)));
r238indent(((T238*)(oBC364fmt)));
}
/*No:LOOP_INVARIANT.list*/
/*No:LOOP_INVARIANT.current_type*/
/*No:LOOP_INVARIANT.header_comment*/
void r213error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int fBC364type_character_ref=0;
T0*oBC364type_character_ref=NULL;
T0* r252type_character_ref(void){
if (fBC364type_character_ref==0){
T0* R=NULL;
T0* _character_ref=NULL;
fBC364type_character_ref=1;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms9_473),NULL);
_character_ref=(T0*)n;
}
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_character_ref);
/*]*/
R=(T0*)n;
}
oBC364type_character_ref=R;}
return oBC364type_character_ref;}
int r252has_creation(T252* C,T0* a1){
int R=0;
r683add_position(X776start_position(a1));
r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
return R;
}
/*No:TYPE_CHARACTER.is_anchored*/
/*No:TYPE_CHARACTER.us_character_ref*/
/*No:TYPE_CHARACTER.is_array*/
int r252is_a(T252* C,T0* a1){
int R=0;
/*IF*/if (X291is_character(a1)) {
R=1;
}
else {
R=r605is_subclass_of(((T605*)(r252base_class(C))),X291base_class(a1));
/*IF*/if (R) {
r252used_as_reference();
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
/*No:TYPE_CHARACTER.run_type*/
/*No:TYPE_CHARACTER.is_pointer*/
/*No:TYPE_CHARACTER.is_string*/
/*No:TYPE_CHARACTER.is_like_feature*/
/*No:TYPE_CHARACTER.is_like_current*/
void r252make(T252* C,T0* a1){
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,((T0*)ms8_473),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_CHARACTER.us_item*/
void r252load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
T0* _cn=NULL;
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,a1,NULL);
_cn=(T0*)n;
}
_rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
r368set_at_run_time(((T368*)_rc));
_rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
}
/*No:TYPE_CHARACTER.nb_errors*/
int fBC252check_type=0;
void r252check_type(T252* C){
if (fBC252check_type==0){
T0* _rc=NULL;
T0* _bc=NULL;
fBC252check_type=1;
_bc=r252base_class(C);
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_rc=r252run_class(C);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
r252error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T252*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_252));
}
/*FI*/}
/*FI*/}}
/*No:TYPE_CHARACTER.start_position*/
/*No:TYPE_CHARACTER.fz_inako*/
/*No:TYPE_CHARACTER.is_character*/
T0* r252written_mark(void){
T0* R=NULL;
R=((T0*)ms8_473);
return R;
}
T0* r252to_runnable(T252* C,T0* a1){
T0* R=NULL;
R=(T0*)C;
r252check_type(C);
return R;
}
/*No:TYPE_CHARACTER.is_run_type*/
/*No:TYPE_CHARACTER.is_formal_generic*/
T0* r252generic_list(T252* C){
T0* R=NULL;
r252fatal_error_generic_list(C);
return R;
}
/*No:TYPE_CHARACTER.is_real*/
/*No:TYPE_CHARACTER.us_character*/
/*No:TYPE_CHARACTER.is_bit*/
void r252fatal_error_generic_list(T252* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_CHARACTER.pretty_print*/
T0* r252smallest_ancestor(T252* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X291run_type(a1);
/*IF*/if (X291is_character(_rto)) {
R=(T0*)C;
}
else {
R=r657smallest_ancestor(((T657*)(r252type_character_ref())),_rto);
}
/*FI*/return R;
}
/*No:TYPE_CHARACTER.is_boolean*/
/*No:TYPE_CHARACTER.is_double*/
T0* r252run_class(T252* C){
T0* R=NULL;
R=r604run_class((T0*)C);
return R;
}
T0* r252run_time_mark(void){
T0* R=NULL;
R=((T0*)ms8_473);
return R;
}
int r252is_a_in(T252* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if ((r252written_mark())==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r252to_runnable(C,_ct);
_t2=X291to_runnable(a1,_ct);
/*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
R=1;
}
else {
R=X291is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
T0* r252look_up_for(T252* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r252base_class(C))),a1,a2);
return R;
}
/*No:TYPE_CHARACTER.expanded_initializer*/
/*No:TYPE_CHARACTER.fz_dot*/
/*No:TYPE_CHARACTER.is_generic*/
int fBC252used_as_reference=0;
void r252used_as_reference(void){
if (fBC252used_as_reference==0){
fBC252used_as_reference=1;
r252load_ref(((T0*)ms9_473));
}}
/*No:TYPE_CHARACTER.is_reference*/
void r252error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r252base_class(T252* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(((T252*)C))->_base_class_name/*4*/;
/*IF*/if ((_bcn)!=((void*)(NULL))) {
R=r451base_class(((T451*)_bcn));
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type((T0*)C,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/return R;
}
/*No:TYPE_CHARACTER.is_any*/
/*No:TYPE_CHARACTER.base_class_name*/
/*No:TYPE_CHARACTER.is_expanded*/
/*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
/*No:TYPE_CHARACTER.is_none*/
/*No:TYPE_CHARACTER.is_integer*/

