/*
-- 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:CALL_INFIX_LE.arguments*/
T0* r932add_comment(T932* 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 r932to_integer(T932* C){
int R=0;
r932error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
int r932is_a(T932* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T932*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T932*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r932error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_LE.is_current*/
void r932make(T932* C,T0* a1,T0* a2,T0* a3){
T0* _eal=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
r683add_position(a2);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,r932operator(),a2);
C->_feature_name=(T0*)n;
}
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
/*]*/
_eal=(T0*)n;
}
r932make_call_1(C,a1,(((T932*)C))->_feature_name/*24*/,_eal);
}
void r932print_as_target(T932* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r932pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_INFIX_LE.nb_errors*/
/*No:CALL_INFIX_LE.feature_name*/
/*No:CALL_INFIX_LE.fz_iinaiv*/
/*No:CALL_INFIX_LE.run_feature*/
/*No:CALL_INFIX_LE.start_position*/
/*No:CALL_INFIX_LE.target*/
/*No:CALL_INFIX_LE.precedence*/
T0* r932to_runnable(T932* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T932*)C))->_current_type/*4*/)==((void*)(NULL))) {
r932to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T932*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r932error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
}
else {
C->_arguments=_a;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
r431match_with(((T431*)((((T932*)C))->_arguments/*20*/)),(((T932*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T932*)C))->_result_type/*16*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r932twin(C);
/*[IRF3.3set_current_type*/((((T932*)(((T932*)R))))->_current_type)=(NULL);
/*]*/
R=r932to_runnable(((T932*)R),a1);
}
/*FI*/return R;
}
void r932bracketed_pretty_print(T932* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r932pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_INFIX_LE.result_type*/
T0* r932twin(T932* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T932*)R)=*C;
return R;
}
/*No:CALL_INFIX_LE.set_current_type*/
/*No:CALL_INFIX_LE.us_le*/
T0* r932operator(void){
T0* R=NULL;
R=((T0*)ms35_473);
return R;
}
/*No:CALL_INFIX_LE.atomic_precedence*/
void r932pretty_print(T932* C){
/*IF*/if ((X662precedence((((T932*)C))->_target/*8*/))==(13)) {
X662pretty_print((((T932*)C))->_target/*8*/);
r932print_op(C);
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))==(13)) {
/*IF*/if ((X662precedence((((T932*)C))->_target/*8*/))>=(6)) {
X662bracketed_pretty_print((((T932*)C))->_target/*8*/);
}
else {
X662pretty_print((((T932*)C))->_target/*8*/);
}
/*FI*/r932print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((6)<=(X662precedence((((T932*)C))->_target/*8*/))) {
X662bracketed_pretty_print((((T932*)C))->_target/*8*/);
r932print_op(C);
/*IF*/if ((6)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
else {
X662pretty_print((((T932*)C))->_target/*8*/);
r932print_op(C);
X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T932*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
void r932print_op(T932* C){
r238put_character(((T238*)(oBC364fmt)),'\40');
/*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T932*)C))->_feature_name/*24*/));
r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
}
/*No:CALL_INFIX_LE.current_type*/
void r932make_call_1(T932* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_LE.is_manifest_string*/
/*No:CALL_INFIX_LE.is_void*/
void r932to_runnable_0(T932* C,T0* a1){
C->_current_type=a1;
r932cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T932*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T932*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T932*)C))->_run_feature/*12*/));
r932error((((T454*)((T454*)((((T932*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T932*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T932*)C))->_target/*8*/);
}
/*FI*/}
void r932cpc_to_runnable(T932* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T932*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T932*)C))->_target/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T932*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T932*)C))->_target/*8*/,(((T932*)C))->_run_feature/*12*/);
}
void r932error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_LE.fatal_error*/
/*No:CALL_INFIX_LE.fz_bad_argument*/
/*No:CALL_INFIX_LE.arg1*/
/*No:PARSER_BUFFER.make*/
int fBC676buffer=0;
T9 oBC676buffer=NULL;
T9 r676buffer(void){
if (fBC676buffer==0){
T9 R=NULL;
fBC676buffer=1;
R=calloc(4096,sizeof(char));
oBC676buffer=R;}
return oBC676buffer;}
/*No:PARSER_BUFFER.path*/
int r676read_file(T0* a1){
int R=0;
T9 _b=NULL;
T0* _line=NULL;
char _c=0;
int _nb_read=0;
int _i=0;
int _file=0;
void* _p=0;
_p=r7to_external(((T7*)a1));
_file=open(_p,O_RDONLY,0);/*IF*/if ((_file)>=(0)) {
_b=r676buffer();
_line=r676next_line(0);
_line=r676next_line(1);
R=1;
_nb_read=4096;
while (!((_nb_read)<(4096))) {
_nb_read=read(_file,_b,4096);
_i=0;
while (!((_i)==(_nb_read))) {
_c=(_b)[_i];
/*IF*/if ((_c)==('\n')) {
R=(R)+(1);
_line=r676next_line(R);
}
 else if ((_c)==('\15')) {
}
else {
r7extend(((T7*)_line),_c);
}
/*FI*/_i=(_i)+(1);
}
}
/*IF*/if (/*(IRF4.7empty*/((((T7*)((T7*)_line)))->_count/*4*/)==(0)/*)*/) {
R=(R)-(1);
}
/*FI*/_file=close(_file);
}
else {
R=-(1);
}
/*FI*/return R;
}
T0* r676item(int a1){
T0* R=NULL;
R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
return R;
}
void r676load_file(T676* C,T0* a1){
C->_count=r676read_file(a1);
/*IF*/if (((((T676*)C))->_count/*4*/)>=(0)) {
C->_path=a1;
}
else {
C->_path=NULL;
}
/*FI*/}
/*No:PARSER_BUFFER.is_ready*/
T0*oBC676text=NULL;
/*No:PARSER_BUFFER.medium_line_size*/
/*No:PARSER_BUFFER.buffer_size*/
/*No:PARSER_BUFFER.count*/
/*No:PARSER_BUFFER.unset_is_ready*/
T0* r676next_line(int a1){
T0* R=NULL;
/*IF*/if ((a1)<=((((T927*)((T927*)(oBC676text))))->_upper/*8*/)) {
R=/*(IRF4.6item*/((((T927*)((T927*)(oBC676text))))->_storage/*0*/)[a1]/*)*/;
/*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
/*]*/
}
else {
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,80);
R=(T0*)n;
}
r927add_last(((T927*)(oBC676text)),R);
}
/*FI*/return R;
}
T0* r629add_comment(T629* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r629make(T629* C,T0* a1,T0* a2){
C->_left_side=a1;
C->_right_side=a2;
}
/*No:ASSIGNMENT.nb_errors*/
T0* r629start_position(T629* C){
T0* R=NULL;
R=X662start_position((((T629*)C))->_left_side/*8*/);
return R;
}
T0* r629to_runnable(T629* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
T0* _right_run_type=NULL;
T0* _left_run_type=NULL;
/*IF*/if (((((T629*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
_e=X662to_runnable((((T629*)C))->_left_side/*8*/,r629current_type(C));
/*IF*/if ((_e)==((void*)(NULL))) {
r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms62_470));
}
else {
C->_left_side=_e;
}
/*FI*/_e=X662to_runnable((((T629*)C))->_right_side/*12*/,r629current_type(C));
/*IF*/if ((_e)==((void*)(NULL))) {
r629error(X662start_position((((T629*)C))->_right_side/*12*/),((T0*)ms63_470));
}
else {
C->_right_side=_e;
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (!(X662is_a((((T629*)C))->_right_side/*12*/,(((T629*)C))->_left_side/*8*/))) {
r629error(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms2_629));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_left_run_type=X291run_type(r629left_type(C));
_right_run_type=X291run_type(r629right_type(C));
/*IF*/if (X291is_reference(_left_run_type)) {
/*IF*/if (X291is_reference(_right_run_type)) {
}
else {
X291used_as_reference(_right_run_type);
}
/*FI*/}
else {
/*IF*/if (X291is_reference(_right_run_type)) {
/*IF*/if (X662is_void((((T629*)C))->_right_side/*12*/)) {
r683add_position(X662start_position((((T629*)C))->_right_side/*12*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms3_629);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(r629left_type(C),((T0*)ms4_629));
r683print_as_error(((T683*)(oBC364eh)));
}
else {
r629warning(X662start_position((((T629*)C))->_left_side/*8*/),((T0*)ms5_629));
}
/*FI*/}
/*FI*/}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
{T629*n=malloc(sizeof(*n));
*n=M629;
r629make(n,(((T629*)C))->_left_side/*8*/,(((T629*)C))->_right_side/*12*/);
R=(T0*)n;
}
R=r629to_runnable(((T629*)R),a1);
}
/*FI*/return R;
}
void r629pretty_print_assignment(T0* a1,T0* a2,T0* a3){
int _semi_colon_flag=0;
X662pretty_print(a1);
r238put_character(((T238*)(oBC364fmt)),'\40');
r238put_string(((T238*)(oBC364fmt)),a2);
r238put_character(((T238*)(oBC364fmt)),'\40');
_semi_colon_flag=(((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/;
r238level_incr(((T238*)(oBC364fmt)));
/*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
/*]*/
X662pretty_print(a3);
/*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(_semi_colon_flag);
/*]*/
/*IF*/if (_semi_colon_flag) {
r238put_character(((T238*)(oBC364fmt)),'\73');
}
/*FI*/r238level_decr(((T238*)(oBC364fmt)));
}
T0* r629right_type(T629* C){
T0* R=NULL;
R=X662result_type((((T629*)C))->_right_side/*12*/);
return R;
}
/*No:ASSIGNMENT.left_side*/
/*No:ASSIGNMENT.pretty_print*/
T0* r629current_type(T629* C){
T0* R=NULL;
/*IF*/if (((((T629*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
R=(((T592*)((T592*)((((T629*)C))->_run_compound/*4*/))))->_current_type/*4*/;
}
/*FI*/return R;
}
/*No:ASSIGNMENT.run_compound*/
/*No:ASSIGNMENT.right_side*/
/*No:ASSIGNMENT.fz_blhsoa*/
/*No:ASSIGNMENT.fz_brhsoa*/
void r629error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ASSIGNMENT.end_mark_comment*/
T0* r629left_type(T629* C){
T0* R=NULL;
R=X662result_type((((T629*)C))->_left_side/*8*/);
return R;
}
void r629warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
T0*oBC646tmp_written_mark=NULL;
int r239has_creation(T239* C,T0* a1){
int R=0;
R=X291has_creation((((T239*)C))->_run_type/*8*/,a1);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_anchored*/
int r239is_array(T239* C){
int R=0;
R=X291is_array((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_a(T239* C,T0* a1){
int R=0;
R=X291is_a((((T239*)C))->_run_type/*8*/,a1);
return R;
}
int r239is_pointer(T239* C){
int R=0;
R=X291is_pointer((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.run_type*/
int r239is_string(T239* C){
int R=0;
R=X291is_string((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_like_feature*/
/*No:TYPE_LIKE_ARGUMENT.is_like_current*/
T0* r239ultimate_run_type(T239* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
_t=a1;
while (!((_t)==((void*)(X291run_type(_t))))) {
_t=X291run_type(_t);
}
/*IF*/if (((((T239*)C))->_run_type/*8*/)==((void*)(NULL))) {
C->_run_type=_t;
R=(T0*)C;
}
else {
R=r239twin(C);
/*[IRF3.3set_run_type*/((((T239*)(((T239*)R))))->_run_type)=(_t);
/*]*/
}
/*FI*/return R;
}
void r239make(T239* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_like_what=a2;
r7copy(((T7*)(oBC646tmp_written_mark)),((T0*)ms113_470));
r7append(((T7*)(oBC646tmp_written_mark)),(((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_to_string/*8*/);
C->_written_mark=r902item(oBC646tmp_written_mark);
}
void r239anchor_cycle_start(T239* C){
int _i=0;
/*IF*/if (((((T907*)((T907*)(oBC646visited))))->_upper/*8*/)<(0)) {
r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
}
 else if (r907fast_has(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/)) {
_i=0;
while (!((_i)>((((T907*)((T907*)(oBC646visited))))->_upper/*8*/))) {
r683add_position(/*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
r907add_last(((T907*)(oBC646visited)),(((T239*)C))->_start_position/*4*/);
}
/*FI*/}
/*No:TYPE_LIKE_ARGUMENT.fz_bad_anchor*/
/*No:TYPE_LIKE_ARGUMENT.start_position*/
/*No:TYPE_LIKE_ARGUMENT.like_what*/
int r239is_character(T239* C){
int R=0;
R=X291is_character((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.written_mark*/
T0* r239to_runnable(T239* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
r239anchor_cycle_start(C);
_t=X291to_runnable((((T886*)((T886*)((((T239*)C))->_like_what/*12*/))))->_result_type/*20*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r239error((((T239*)C))->_start_position/*4*/,((T0*)ms54_470));
}
/*FI*/R=r239ultimate_run_type(C,_t);
r239anchor_cycle_end(C);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.is_run_type*/
/*No:TYPE_LIKE_ARGUMENT.rank*/
/*No:TYPE_LIKE_ARGUMENT.is_formal_generic*/
T0* r239generic_list(T239* C){
T0* R=NULL;
/*IF*/if (r239is_generic(C)) {
R=X291generic_list((((T239*)C))->_run_type/*8*/);
}
else {
r239fatal_error_generic_list(C);
}
/*FI*/return R;
}
int r239is_real(T239* C){
int R=0;
R=X291is_real((((T239*)C))->_run_type/*8*/);
return R;
}
T0* r239twin(T239* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T239*)R)=*C;
return R;
}
int r239is_bit(T239* C){
int R=0;
R=X291is_bit((((T239*)C))->_run_type/*8*/);
return R;
}
void r239fatal_error_generic_list(T239* C){
r683add_type((T0*)C,((T0*)ms12_291));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*No:TYPE_LIKE_ARGUMENT.pretty_print*/
T0* r239smallest_ancestor(T239* C,T0* a1){
T0* R=NULL;
R=X291smallest_ancestor((((T239*)C))->_run_type/*8*/,a1);
return R;
}
int r239is_boolean(T239* C){
int R=0;
R=X291is_boolean((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.set_run_type*/
int r239is_double(T239* C){
int R=0;
R=X291is_double((((T239*)C))->_run_type/*8*/);
return R;
}
T0* r239run_class(T239* C){
T0* R=NULL;
R=r604run_class((((T239*)C))->_run_type/*8*/);
return R;
}
T0* r239run_time_mark(T239* C){
T0* R=NULL;
/*IF*/if (((((T239*)C))->_run_type/*8*/)!=((void*)(NULL))) {
R=X291run_time_mark((((T239*)C))->_run_type/*8*/);
}
/*FI*/return R;
}
int r239is_a_in(T239* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T239*)C))->_written_mark/*16*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r239to_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* r239look_up_for(T239* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r239base_class(C))),a1,a2);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_cad*/
T0* r239expanded_initializer(T239* C){
T0* R=NULL;
R=X291expanded_initializer((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_dot*/
int r239is_generic(T239* C){
int R=0;
R=X291is_generic((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.used_as_reference*/
int r239is_reference(T239* C){
int R=0;
R=X291is_reference((((T239*)C))->_run_type/*8*/);
return R;
}
void r239error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r239base_class(T239* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r239base_class_name(C);
/*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_LIKE_ARGUMENT.fatal_error*/
int r239is_any(T239* C){
int R=0;
R=X291is_any((((T239*)C))->_run_type/*8*/);
return R;
}
T0* r239base_class_name(T239* C){
T0* R=NULL;
R=X291base_class_name((((T239*)C))->_run_type/*8*/);
return R;
}
T0*oBC646visited=NULL;
int r239is_expanded(T239* C){
int R=0;
R=X291is_expanded((((T239*)C))->_run_type/*8*/);
return R;
}
/*No:TYPE_LIKE_ARGUMENT.fz_like_foo*/
int r239is_basic_eiffel_expanded(T239* C){
int R=0;
R=X291is_basic_eiffel_expanded((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_none(T239* C){
int R=0;
R=X291is_none((((T239*)C))->_run_type/*8*/);
return R;
}
int r239is_integer(T239* C){
int R=0;
R=X291is_integer((((T239*)C))->_run_type/*8*/);
return R;
}
void r239anchor_cycle_end(T239* C){
/*IF*/if (((((T239*)C))->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/((((T907*)((T907*)(oBC646visited))))->_storage/*0*/)[0]/*)*//*)*/))) {
/*[IRF3.3clear*/((((T907*)(((T907*)(oBC646visited)))))->_upper)=(-(1));
/*]*/
}
/*FI*/}
T0* r342add_comment(T342* 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:INTEGER_CONSTANT.to_integer*/
int r342is_a(T342* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T788*)r342result_type()))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T342*)C))->_start_position/*8*/);
r342error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:INTEGER_CONSTANT.is_current*/
void r342make(T342* C,int a1,T0* a2){
C->_value=a1;
C->_start_position=a2;
}
void r342print_as_target(T342* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
/*[IRF3.6pretty_print*/{T342* C1=C;
r238put_string(((T238*)(oBC364fmt)),/*(IRF4.6to_string*/r2to_string(((int)((((T342*)C1))->_value/*12*/)))/*)*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:INTEGER_CONSTANT.to_string*/
/*No:INTEGER_CONSTANT.fz_iinaiv*/
void r342unary_minus(T342* C){
C->_value=-((((T342*)C))->_value/*12*/);
}
/*No:INTEGER_CONSTANT.start_position*/
/*No:INTEGER_CONSTANT.precedence*/
T0* r342to_runnable(T342* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T342*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r342twin(C);
/*[IRF3.3set_current_type*/((((T342*)(((T342*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:INTEGER_CONSTANT.bracketed_pretty_print*/
int fBC342result_type=0;
T0*oBC342result_type=NULL;
T0* r342result_type(void){
if (fBC342result_type==0){
T0* R=NULL;
fBC342result_type=1;
{T788*n=malloc(sizeof(*n));
*n=M788;
r788make(n,NULL);
R=(T0*)n;
}
oBC342result_type=R;}
return oBC342result_type;}
T0* r342twin(T342* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T342*)R)=*C;
return R;
}
/*No:INTEGER_CONSTANT.set_current_type*/
/*No:INTEGER_CONSTANT.atomic_precedence*/
/*No:INTEGER_CONSTANT.pretty_print*/
/*No:INTEGER_CONSTANT.value*/
/*No:INTEGER_CONSTANT.current_type*/
/*No:INTEGER_CONSTANT.is_manifest_string*/
/*No:INTEGER_CONSTANT.is_void*/
T0* r342to_real_constant(T342* C){
T0* R=NULL;
{T936*n=malloc(sizeof(*n));
*n=M936;
r936make(n,(((T342*)C))->_start_position/*8*/,r2to_string((((T342*)C))->_value/*12*/));
R=(T0*)n;
}
return R;
}
void r342error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
T0* r377to_runnable_integer(T377* C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
int _i=0;
/*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
C->_e_inspect=a1;
_i=1;
while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_e_when=r843to_runnable_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
/*IF*/if ((_e_when)==((void*)(NULL))) {
r377error(r377start_position(C),((T0*)ms1_377));
}
else {
/*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
T0* b1=_e_when;
int b2=_i;
((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
R=(T0*)C;
}
else {
{T377*n=malloc(sizeof(*n));
*n=M377;
r377from_when_list(n,(T0*)C);
R=(T0*)n;
}
R=r377to_runnable_integer(((T377*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_LIST.make*/
/*No:WHEN_LIST.nb_errors*/
T0* r377start_position(T377* C){
T0* R=NULL;
R=(((T843*)((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),1)))))->_start_position/*0*/;
return R;
}
/*No:WHEN_LIST.em1*/
void r377pretty_print(T377* C){
int _fmt_mode=0;
int _i=0;
_fmt_mode=(((T238*)((T238*)(oBC364fmt))))->_mode/*4*/;
/*[IRF3.3set_zen*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(1);
/*]*/
_i=1;
while (!((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))) {
r843pretty_print(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))));
_i=(_i)+(1);
/*IF*/if ((_i)<=((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/)) {
r238put_character(((T238*)(oBC364fmt)),'\n');
r238indent(((T238*)(oBC364fmt)));
}
/*FI*/}
/*[IRF3.3set_mode*/((((T238*)(((T238*)(oBC364fmt)))))->_mode)=(_fmt_mode);
/*]*/
}
/*No:WHEN_LIST.list*/
/*No:WHEN_LIST.current_type*/
void r377from_when_list(T377* C,T0* a1){
T0* _e_when=NULL;
int _i=0;
C->_list=r147twin(((T147*)((((T377*)((T377*)a1)))->_list/*4*/)));
_i=1;
while (!((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))) {
{T843*n=malloc(sizeof(*n));
*n=M843;
r843from_e_when(n,r147item(((T147*)((((T377*)C))->_list/*4*/)),_i));
_e_when=(T0*)n;
}
/*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
T0* b1=_e_when;
int b2=_i;
((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
void r377error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:WHEN_LIST.add_last*/
int r377includes_integer(T377* C,int a1){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/)))) {
R=r843includes_integer(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),a1);
_i=(_i)+(1);
}
return R;
}
T0* r377to_runnable_character(T377* C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
int _i=0;
/*IF*/if (((((T377*)C))->_e_inspect/*0*/)==((void*)(NULL))) {
C->_e_inspect=a1;
_i=1;
while (!(((_i)>((((T147*)((T147*)((((T377*)C))->_list/*4*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_e_when=r843to_runnable_character(((T843*)(r147item(((T147*)((((T377*)C))->_list/*4*/)),_i))),(T0*)C);
/*IF*/if ((_e_when)==((void*)(NULL))) {
r377error(r377start_position(C),((T0*)ms1_377));
}
else {
/*[IRF3.6put*/{T147* C1=((T147*)((((T377*)C))->_list/*4*/));
T0* b1=_e_when;
int b2=_i;
((((T147*)C1))->_storage/*0*/)[(b2)-((((T147*)C1))->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)+(1);
}
R=(T0*)C;
}
else {
{T377*n=malloc(sizeof(*n));
*n=M377;
r377from_when_list(n,(T0*)C);
R=(T0*)n;
}
R=r377to_runnable_character(((T377*)R),a1);
}
/*FI*/return R;
}
/*No:WHEN_LIST.e_inspect*/
/*No:ERROR_HANDLER.nb_warnings*/
T0*oBC683explanation=NULL;
void r683incr_nb_warnings(T683* C){
C->_nb_warnings=((((T683*)C))->_nb_warnings/*4*/)+(1);
}
/*No:ERROR_HANDLER.extend*/
void r683incr_nb_errors(T683* C){
C->_nb_errors=((((T683*)C))->_nb_errors/*0*/)+(1);
/*IF*/if (((((T683*)C))->_nb_errors/*0*/)>=(6)) {
r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
r441put_string(((T441*)(oBC1std_error)),((T0*)ms5_683));
exit(1);
}
/*FI*/}
/*No:ERROR_HANDLER.exit_failure_code*/
/*No:ERROR_HANDLER.make*/
/*No:ERROR_HANDLER.nb_errors*/
void r683print_as_fatal_error(T683* C){
r683do_print(((T0*)ms4_683));
exit(1);
}
/*No:ERROR_HANDLER.no_warning*/
void r683add_position(T0* a1){
/*IF*/if ((a1)!=((void*)(NULL))) {
/*IF*/if (!(r38has(((T38*)(oBC683positions)),a1))) {
r38add_last(((T38*)(oBC683positions)),a1);
}
/*FI*/}
/*FI*/}
/*No:ERROR_HANDLER.set_no_warning*/
void r683print_as_warning(T683* C){
/*IF*/if ((((T683*)C))->_no_warning/*8*/) {
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
}
else {
r683do_print(((T0*)ms2_683));
r683incr_nb_warnings(C);
}
/*FI*/}
void r683add_type(T0* a1,T0* a2){
/*[IRF3.6append*/{T0* b1=((T0*)ms1_683);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*IF*/if (X291is_run_type(a1)) {
/*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
else {
/*[IRF3.6append*/{T0* b1=X291written_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
}
/*FI*//*[IRF3.6append*/{T0* b1=a2;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_position(X291start_position(a1));
}
void r683print_as_error(T683* C){
r683do_print(((T0*)ms3_683));
r683incr_nb_errors(C);
}
void r683error(T683* C,T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_error(C);
}
/*No:ERROR_HANDLER.fz_error_stars*/
void r683fatal_error(T683* C,T0* a1){
r7append(((T7*)(oBC683explanation)),a1);
r683print_as_fatal_error(C);
}
/*No:ERROR_HANDLER.cancel*/
T0*oBC683positions=NULL;
/*No:ERROR_HANDLER.append*/
void r683warning(T683* C,T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_warning(C);
}
void r683do_print(T0* a1){
char _previous_cc=0;
char _cc=0;
int _cpt=0;
int _i=0;
r441put_string(((T441*)(oBC1std_error)),((T0*)ms75_470));
r441put_string(((T441*)(oBC1std_error)),a1);
r441put_string(((T441*)(oBC1std_error)),((T0*)ms6_683));
_i=1;
_cpt=(9)+((((T7*)((T7*)a1)))->_count/*4*/);
while (!((_i)>((((T7*)((T7*)(oBC683explanation))))->_count/*4*/))) {
_previous_cc=_cc;
_cc=/*(IRF4.6item*/((((T7*)((T7*)(oBC683explanation))))->_storage/*0*/)[(_i)-(1)]/*)*/;
_i=(_i)+(1);
/*IF*/if ((_cpt)>(60)) {
/*IF*/if ((_cc)==('\40')) {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=0;
}
 else if (((_previous_cc)==('\54'))||((_previous_cc)==('\57'))) {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=1;
}
else {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=(_cpt)+(1);
}
/*FI*/}
else {
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
{int z1=_cc;

if((10==z1)){
_cpt=0;
}
 else{_cpt=(_cpt)+(1);
}}
}
/*FI*/}
/*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
char b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
_i=(((T38*)((T38*)(oBC683positions))))->_lower/*12*/;
while (!((_i)>((((T38*)((T38*)(oBC683positions))))->_upper/*8*/))) {
r627show(((T627*)(r38item(((T38*)(oBC683positions)),_i))));
_i=(_i)+(1);
}
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
/*]*/
r38clear(((T38*)(oBC683positions)));
/*]*/
r441put_string(((T441*)(oBC1std_error)),((T0*)ms7_683));
}
T0* r990add_comment(T990* 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 r990to_integer(T990* C){
int R=0;
T0* _rf1=NULL;
_rf1=(((T990*)C))->_run_feature/*12*/;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 808: 
break;
default:
_rf1=NULL;
};/*IF*/if ((_rf1)==((void*)(NULL))) {
r990error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
}
else {
R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*36*/);
}
/*FI*/return R;
}
int r990is_a(T990* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T990*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
r990error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_PREFIX_FREEOP.is_current*/
/*No:CALL_PREFIX_FREEOP.make*/
void r990print_as_target(T990* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r990pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:CALL_PREFIX_FREEOP.nb_errors*/
/*No:CALL_PREFIX_FREEOP.feature_name*/
/*No:CALL_PREFIX_FREEOP.fz_iinaiv*/
/*No:CALL_PREFIX_FREEOP.run_feature*/
/*No:CALL_PREFIX_FREEOP.start_position*/
/*No:CALL_PREFIX_FREEOP.target*/
/*No:CALL_PREFIX_FREEOP.precedence*/
T0* r990to_runnable(T990* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T990*)C))->_current_type/*4*/)==((void*)(NULL))) {
r990to_runnable_0(C,a1);
/*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T990*)C))->_run_feature/*12*/))>(0))) {
r683add_position((((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*/);
r990error(X496start_position((((T990*)C))->_run_feature/*12*/),((T0*)ms1_752));
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r990twin(C);
/*[IRF3.3set_current_type*/((((T990*)(((T990*)R))))->_current_type)=(NULL);
/*]*/
R=r990to_runnable(((T990*)R),a1);
}
/*FI*/return R;
}
void r990bracketed_pretty_print(T990* C){
r238put_character(((T238*)(oBC364fmt)),'\50');
r990pretty_print(C);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:CALL_PREFIX_FREEOP.result_type*/
T0* r990twin(T990* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T990*)R)=*C;
return R;
}
/*No:CALL_PREFIX_FREEOP.set_current_type*/
void r990pretty_print(T990* C){
/*[IRF3.6pretty_print*/{T406* C1=((T406*)((((T990*)C))->_feature_name/*20*/));
r238put_string(((T238*)(oBC364fmt)),(((T406*)C1))->_to_string/*4*/);
}/*]*/
r238put_character(((T238*)(oBC364fmt)),'\40');
/*IF*/if ((X662precedence((((T990*)C))->_target/*8*/))<(11)) {
r238put_character(((T238*)(oBC364fmt)),'\50');
X662pretty_print((((T990*)C))->_target/*8*/);
r238put_character(((T238*)(oBC364fmt)),'\51');
}
else {
X662pretty_print((((T990*)C))->_target/*8*/);
}
/*FI*/}
/*No:CALL_PREFIX_FREEOP.current_type*/
/*No:CALL_PREFIX_FREEOP.is_manifest_string*/
/*No:CALL_PREFIX_FREEOP.is_void*/
void r990to_runnable_0(T990* C,T0* a1){
C->_current_type=a1;
r990cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T990*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T990*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T990*)C))->_run_feature/*12*/));
r990error((((T406*)((T406*)((((T990*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T990*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T990*)C))->_target/*8*/);
}
/*FI*/}
void r990cpc_to_runnable(T990* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T990*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T990*)C))->_target/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_target=_t;
_rc=X291run_class(X662result_type((((T990*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T990*)C))->_target/*8*/,(((T990*)C))->_run_feature/*12*/);
}
void r990make_call0(T990* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
void r990error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_PREFIX_FREEOP.fatal_error*/
T0* r849add_comment(T849* 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_TRUE.to_integer*/
int r849is_a(T849* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T707*)/*(IRF4.8result_type*/r849type_boolean()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T849*)C))->_start_position/*8*/);
r849error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_TRUE.is_current*/
int fBC364type_boolean=0;
T0*oBC364type_boolean=NULL;
T0* r849type_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_TRUE.make*/
/*No:E_TRUE.print_as_target*/
T0* r849to_string(void){
T0* R=NULL;
R=((T0*)ms47_470);
return R;
}
/*No:E_TRUE.fz_iinaiv*/
/*No:E_TRUE.start_position*/
/*No:E_TRUE.fz_true*/
/*No:E_TRUE.precedence*/
T0* r849to_runnable(T849* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T849*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
R=(T0*)C;
}
else {
R=r849twin(C);
/*[IRF3.3set_current_type*/((((T849*)(((T849*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:E_TRUE.bracketed_pretty_print*/
/*No:E_TRUE.result_type*/
T0* r849twin(T849* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T849*)R)=*C;
return R;
}
/*No:E_TRUE.set_current_type*/
/*No:E_TRUE.atomic_precedence*/
/*No:E_TRUE.pretty_print*/
/*No:E_TRUE.current_type*/
/*No:E_TRUE.is_manifest_string*/
/*No:E_TRUE.is_void*/
void r849error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ID_PROVIDER.us_integer*/
void r410make(T410* C){
{T226*n=malloc(sizeof(*n));
*n=M226;
r226with_capacity(n,1024);
C->_mem_id=(T0*)n;
}
{T927*n=malloc(sizeof(*n));
*n=M927;
r927with_capacity(n,1024);
C->_mem_str=(T0*)n;
}
C->_modulus=1000;
r410add2(C,NULL,0);
r410add2(C,((T0*)ms14_473),1);
r410add2(C,((T0*)ms15_473),2);
r410add2(C,((T0*)ms8_473),3);
r410add2(C,((T0*)ms23_473),4);
r410add2(C,((T0*)ms11_473),5);
r410add2(C,((T0*)ms6_473),6);
r410add2(C,((T0*)ms25_473),7);
r410add2(C,((T0*)ms21_473),8);
r410add2(C,((T0*)ms144_473),9);
r410add2(C,NULL,10);
r410add2(C,NULL,11);
r410add2(C,NULL,12);
r410add2(C,NULL,13);
r410add2(C,NULL,14);
r410add2(C,NULL,15);
r410add2(C,NULL,16);
r410add2(C,NULL,17);
r410add2(C,NULL,18);
r410add2(C,NULL,19);
r410add2(C,NULL,20);
}
/*No:ID_PROVIDER.us_pointer*/
/*No:ID_PROVIDER.us_string*/
int r410item(T410* C,T0* a1){
int R=0;
int _index=0;
_index=r927fast_index_of(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
/*IF*/if ((_index)<=((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)) {
R=/*(IRF4.6item*/((((T226*)((T226*)((((T410*)C))->_mem_id/*0*/))))->_storage/*0*/)[_index]/*)*/;
}
else {
/*IF*/if ((((((T927*)((T927*)((((T410*)C))->_mem_str/*4*/))))->_upper/*8*/)*(2))>((((T410*)C))->_modulus/*8*/)) {
C->_modulus=((((T410*)C))->_modulus/*8*/)*(2);
}
/*FI*/R=(r7hash_code(((T7*)a1)))%((((T410*)C))->_modulus/*8*/);
/*IF*/if (r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)) {
while (!(!(r226fast_has(((T226*)((((T410*)C))->_mem_id/*0*/)),R)))) {
R=((R)+(13))%((((T410*)C))->_modulus/*8*/);
}
r410add2(C,a1,R);
}
else {
r410add2(C,a1,R);
}
/*FI*/}
/*FI*/return R;
}
/*No:ID_PROVIDER.us_character*/
/*No:ID_PROVIDER.us_real*/
/*No:ID_PROVIDER.us_boolean*/
/*No:ID_PROVIDER.us_double*/
/*No:ID_PROVIDER.mem_id*/
/*No:ID_PROVIDER.modulus*/
/*No:ID_PROVIDER.us_native_array_character*/
void r410add2(T410* C,T0* a1,int a2){
r927add_last(((T927*)((((T410*)C))->_mem_str/*4*/)),a1);
r226add_last(((T226*)((((T410*)C))->_mem_id/*0*/)),a2);
}
/*No:ID_PROVIDER.mem_str*/
/*No:ID_PROVIDER.us_general*/

