/*
-- 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 "short.h"
/*No:TMP_FEATURE.arguments*/
T0* r505n(void){
T0* R=NULL;
{T953*n=malloc(sizeof(*n));
*n=M953;
r953make(n,r855twin(((T855*)(oBC505names))));
R=(T0*)n;
}
return R;
}
T0* r505to_cst_att_integer(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
/*IF*/if (X291is_integer((((T505*)C))->_type/*4*/)) {
{T689*n=malloc(sizeof(*n));
*n=M689;
r689make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
 else if (X291is_real((((T505*)C))->_type/*4*/)) {
{T835*n=malloc(sizeof(*n));
*n=M835;
r835make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
R=(T0*)n;
}
}
 else if (X291is_double((((T505*)C))->_type/*4*/)) {
{T118*n=malloc(sizeof(*n));
*n=M118;
r118make(n,r505n(),(((T505*)C))->_type/*4*/,r342to_real_constant(((T342*)a1)));
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms6_505));
}
/*FI*/}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms7_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.add_synonym*/
/*No:TMP_FEATURE.set_type*/
T0* r505to_writable_attribute(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms1_505));
}
 else if (((((T505*)C))->_arguments/*0*/)!=((void*)(NULL))) {
r505error(r818current_position(((T818*)(oBC364eiffel_parser))),((T0*)ms2_505));
}
/*FI*/{T106*n=malloc(sizeof(*n));
*n=M106;
r106make(n,r505n(),(((T505*)C))->_type/*4*/);
R=(T0*)n;
}
return R;
}
T0* r505to_cst_att_boolean(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_boolean((((T505*)C))->_type/*4*/))) {
{T593*n=malloc(sizeof(*n));
*n=M593;
r593make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms3_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.type*/
/*No:TMP_FEATURE.local_vars*/
/*No:TMP_FEATURE.set_header_comment*/
void r505set_require(T505* C,T0* a1,T0* a2,T0* a3){
/*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343make(n,a1,a2,a3);
C->_require_assertion=(T0*)n;
}
}
/*FI*/}
/*No:TMP_FEATURE.set_local_vars*/
T0* r505to_deferred_routine(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T853*n=malloc(sizeof(*n));
*n=M853;
/*[IRF3.6make*/{T853* C1=n;
T0* b1=r505n();
T0* b2=(((T505*)C))->_arguments/*0*/;
T0* b3=(((T505*)C))->_obsolete_mark/*12*/;
T0* b4=(((T505*)C))->_header_comment/*8*/;
T0* b5=(((T505*)C))->_require_assertion/*16*/;
r853make_routine(C1,b1,b2,b3,b4,b5);
}/*]*/
R=(T0*)n;
}
}
else {
{T649*n=malloc(sizeof(*n));
*n=M649;
r649make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/);
R=(T0*)n;
}
}
/*FI*/return R;
}
T0* r505to_procedure_or_function(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T297*n=malloc(sizeof(*n));
*n=M297;
r297make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
else {
{T696*n=malloc(sizeof(*n));
*n=M696;
r696make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:TMP_FEATURE.obsolete_mark*/
/*No:TMP_FEATURE.require_assertion*/
T0*oBC505names=NULL;
T0* r505to_cst_att_real(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)!=((void*)(NULL))) {
/*IF*/if (X291is_real((((T505*)C))->_type/*4*/)) {
{T835*n=malloc(sizeof(*n));
*n=M835;
r835make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
 else if (X291is_double((((T505*)C))->_type/*4*/)) {
{T118*n=malloc(sizeof(*n));
*n=M118;
r118make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r683add_position((((T936*)((T936*)a1)))->_start_position/*8*/);
r683add_position(X776start_position(r855first(((T855*)(oBC505names)))));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_505);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms9_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.set_arguments*/
T0* r505to_cst_att_string(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_string((((T505*)C))->_type/*4*/))) {
{T380*n=malloc(sizeof(*n));
*n=M380;
r380make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms10_505));
}
/*FI*/return R;
}
/*No:TMP_FEATURE.header_comment*/
/*No:TMP_FEATURE.set_routine_body*/
/*No:TMP_FEATURE.routine_body*/
T0* r505to_external_routine(T505* C,T0* a1,T0* a2){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T883*n=malloc(sizeof(*n));
*n=M883;
r883make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
R=(T0*)n;
}
}
else {
{T679*n=malloc(sizeof(*n));
*n=M679;
r679make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,a1,a2);
R=(T0*)n;
}
}
/*FI*/return R;
}
T0* r505to_cst_att_unique(T505* C){
T0* R=NULL;
T0* _sp=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
_sp=X776start_position(r855first(((T855*)(oBC505names))));
r505error(_sp,((T0*)ms11_505));
}
/*FI*//*IF*/if (!(X291is_integer((((T505*)C))->_type/*4*/))) {
r505error(X291start_position((((T505*)C))->_type/*4*/),((T0*)ms12_505));
}
/*FI*/{T398*n=malloc(sizeof(*n));
*n=M398;
r398make(n,r505n(),(((T505*)C))->_type/*4*/);
R=(T0*)n;
}
return R;
}
T0* r505to_cst_att_character(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_character((((T505*)C))->_type/*4*/))) {
{T554*n=malloc(sizeof(*n));
*n=M554;
r554make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms5_505));
}
/*FI*/return R;
}
void r505error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:TMP_FEATURE.fatal_error*/
void r505set_require_else(T505* C,T0* a1,T0* a2,T0* a3){
/*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
{T343*n=malloc(sizeof(*n));
*n=M343;
r343make(n,a1,a2,a3);
C->_require_assertion=(T0*)n;
}
/*[IRF3.3set_require_else*/((((T343*)(((T343*)((((T505*)C))->_require_assertion/*16*/)))))->_is_require_else)=(1);
/*]*/
}
/*FI*/}
void r505initialize(T505* C){
r855clear(((T855*)(oBC505names)));
C->_arguments=NULL;
C->_type=NULL;
C->_header_comment=NULL;
C->_obsolete_mark=NULL;
C->_require_assertion=NULL;
C->_local_vars=NULL;
C->_routine_body=NULL;
}
/*No:TMP_FEATURE.set_obsolete_mark*/
T0* r505to_cst_att_bit(T505* C,T0* a1){
T0* R=NULL;
/*IF*/if ((((((T505*)C))->_type/*4*/)!=((void*)(NULL)))&&(X291is_bit((((T505*)C))->_type/*4*/))) {
{T588*n=malloc(sizeof(*n));
*n=M588;
r588make(n,r505n(),(((T505*)C))->_type/*4*/,a1);
R=(T0*)n;
}
}
else {
r505error(X776start_position(r855first(((T855*)(oBC505names)))),((T0*)ms4_505));
}
/*FI*/return R;
}
T0* r505to_once_routine(T505* C){
T0* R=NULL;
/*IF*/if (((((T505*)C))->_type/*4*/)==((void*)(NULL))) {
{T134*n=malloc(sizeof(*n));
*n=M134;
r134make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
else {
{T844*n=malloc(sizeof(*n));
*n=M844;
r844make(n,r505n(),(((T505*)C))->_arguments/*0*/,(((T505*)C))->_type/*4*/,(((T505*)C))->_obsolete_mark/*12*/,(((T505*)C))->_header_comment/*8*/,(((T505*)C))->_require_assertion/*16*/,(((T505*)C))->_local_vars/*20*/,(((T505*)C))->_routine_body/*24*/);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:RENAME_PAIR.new_name*/
void r498make(T498* C,T0* a1,T0* a2){
/*IF*/if ((X776to_string(a1))==((void*)(X776to_string(a2)))) {
r683add_position(X776start_position(a1));
r683add_position(X776start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_498);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_old_name=a1;
C->_new_name=a2;
}
/*No:RENAME_PAIR.fatal_error*/
/*No:RENAME_PAIR.old_name*/
void r523short(T523* C){
r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
r523short_hook(C);
r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
}
T0*oBC523tmp_written_mark=NULL;
int r523has_creation(T523* C,T0* a1){
int R=0;
R=r605has_creation(((T605*)(r523base_class(C))),a1);
return R;
}
/*No:TYPE_EXPANDED.is_anchored*/
/*No:TYPE_EXPANDED.is_array*/
int r523is_a(T523* C,T0* a1){
int R=0;
R=((((T523*)C))->_run_time_mark/*16*/)==((void*)(X291run_time_mark(a1)));
/*IF*/if (!(R)) {
r683add_type((T0*)C,((T0*)ms71_470));
r683add_type(a1,((T0*)ms67_470));
}
/*FI*/return R;
}
int r523is_pointer(T523* C){
int R=0;
R=X291is_pointer((((T523*)C))->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.run_type*/
/*No:TYPE_EXPANDED.is_string*/
/*No:TYPE_EXPANDED.is_like_feature*/
T0* r523compute_mark(T0* a1){
T0* R=NULL;
r7copy(((T7*)(oBC523tmp_written_mark)),((T0*)ms14_470));
r7extend(((T7*)(oBC523tmp_written_mark)),'\40');
r7append(((T7*)(oBC523tmp_written_mark)),a1);
R=r902item(oBC523tmp_written_mark);
return R;
}
/*No:TYPE_EXPANDED.is_like_current*/
void r523make(T523* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_mapped=a2;
C->_written_mark=r523compute_mark(X291written_mark((((T523*)C))->_mapped/*12*/));
}
/*No:TYPE_EXPANDED.start_position*/
/*No:TYPE_EXPANDED.fz_inako*/
int r523is_character(T523* C){
int R=0;
R=X291is_character((((T523*)C))->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.written_mark*/
/*No:TYPE_EXPANDED.is_run_type*/
T0* r523to_runnable(T523* C,T0* a1){
T0* R=NULL;
T0* _m=NULL;
/*IF*/if (((((T523*)C))->_run_type/*20*/)==((void*)(C))) {
R=(T0*)C;
}
 else if (((((T523*)C))->_run_type/*20*/)==((void*)((((T523*)C))->_mapped/*12*/))) {
R=(T0*)C;
}
else {
_m=X291to_runnable((((T523*)C))->_mapped/*12*/,a1);
/*IF*/if ((_m)==((void*)(NULL))) {
r683add_position((((T523*)C))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_523);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (((((T523*)C))->_run_type/*20*/)!=((void*)(NULL))) {
{T523*n=malloc(sizeof(*n));
*n=M523;
r523from_other(n,(T0*)C,X291run_type(_m));
R=(T0*)n;
}
}
 else if (X291is_expanded(_m)) {
C->_run_type=_m;
C->_run_time_mark=X291run_time_mark(_m);
R=(T0*)C;
}
 else if (((((T523*)C))->_mapped/*12*/)==((void*)(X291run_type(_m)))) {
C->_run_time_mark=r523compute_mark(X291run_time_mark(_m));
C->_run_type=(T0*)C;
R=(T0*)C;
}
else {
C->_run_time_mark=r523compute_mark(X291run_time_mark(_m));
{T523*n=malloc(sizeof(*n));
*n=M523;
r523from_other(n,(T0*)C,X291run_type(_m));
C->_run_type=(T0*)n;
}
R=(T0*)C;
}
/*FI*/r368set_at_run_time(((T368*)(X291run_class((((T523*)((T523*)R)))->_run_type/*20*/))));
}
/*FI*/return R;
}
T0* r523generic_list(T523* C){
T0* R=NULL;
R=X291generic_list((((T523*)C))->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.is_formal_generic*/
int r523is_real(T523* C){
int R=0;
R=X291is_real((((T523*)C))->_mapped/*12*/);
return R;
}
int r523is_bit(T523* C){
int R=0;
R=X291is_bit((((T523*)C))->_mapped/*12*/);
return R;
}
T0* r523smallest_ancestor(T523* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T523*)C))->_run_time_mark/*16*/)==((void*)(X291run_time_mark(a1)))) {
R=(((T523*)C))->_run_type/*20*/;
}
else {
R=X291run_type(X291smallest_ancestor((((T523*)C))->_mapped/*12*/,a1));
}
/*FI*/return R;
}
int r523is_boolean(T523* C){
int R=0;
R=X291is_boolean((((T523*)C))->_mapped/*12*/);
return R;
}
int r523is_double(T523* C){
int R=0;
R=X291is_double((((T523*)C))->_mapped/*12*/);
return R;
}
T0* r523run_class(T523* C){
T0* R=NULL;
R=r604run_class((((T523*)C))->_run_type/*20*/);
return R;
}
/*No:TYPE_EXPANDED.run_time_mark*/
/*No:TYPE_EXPANDED.mapped*/
int r523is_a_in(T523* C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (((((T523*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
R=1;
}
else {
_ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
_t1=r523to_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* r523look_up_for(T523* C,T0* a1,T0* a2){
T0* R=NULL;
R=r605look_up_for(((T605*)(r523base_class(C))),a1,a2);
return R;
}
T0* r523expanded_initializer(T523* C){
T0* R=NULL;
R=r605expanded_initializer(((T605*)(r523base_class(C))),(T0*)C);
return R;
}
/*No:TYPE_EXPANDED.fz_dot*/
int r523is_generic(T523* C){
int R=0;
R=X291is_generic((((T523*)C))->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.used_as_reference*/
/*No:TYPE_EXPANDED.is_reference*/
T0* r523base_class(T523* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r523base_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;
}
void r523from_other(T523* C,T0* a1,T0* a2){
C->_start_position=(((T523*)((T523*)a1)))->_start_position/*4*/;
C->_written_mark=(((T523*)((T523*)a1)))->_written_mark/*8*/;
C->_mapped=a2;
/*IF*/if (X291is_expanded((((T523*)C))->_mapped/*12*/)) {
C->_run_time_mark=X291run_time_mark((((T523*)C))->_mapped/*12*/);
C->_run_type=(((T523*)C))->_mapped/*12*/;
}
else {
C->_run_time_mark=r523compute_mark(X291run_time_mark((((T523*)C))->_mapped/*12*/));
C->_run_type=(T0*)C;
}
/*FI*/}
/*No:TYPE_EXPANDED.fatal_error*/
void r523short_hook(T523* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms14_470),((T0*)ms2_523));
X291short_hook((((T523*)C))->_mapped/*12*/);
}
/*No:TYPE_EXPANDED.is_any*/
T0* r523base_class_name(T523* C){
T0* R=NULL;
R=X291base_class_name((((T523*)C))->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.is_expanded*/
/*No:TYPE_EXPANDED.fz_expanded*/
int r523is_basic_eiffel_expanded(T523* C){
int R=0;
/*IF*/if (((((T523*)C))->_run_type/*20*/)==((void*)((((T523*)C))->_mapped/*12*/))) {
R=X291is_basic_eiffel_expanded((((T523*)C))->_mapped/*12*/);
}
/*FI*/return R;
}
/*No:TYPE_EXPANDED.is_none*/
int r523is_integer(T523* C){
int R=0;
R=X291is_integer((((T523*)C))->_mapped/*12*/);
return R;
}
void r805short(T805* C){
int _i=0;
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_805),((T0*)ms4_805));
_i=1;
while (!((_i)>((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/))) {
r805short_character(C,_i);
_i=(_i)+(1);
}
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_805),((T0*)ms6_805));
}
T0* r805add_comment(T805* 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 r805to_integer(T805* C){
int R=0;
r805error((((T805*)C))->_start_position/*8*/,((T0*)ms69_470));
return R;
}
void r805bracketed_short(T805* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r805short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r805is_a(T805* C,T0* a1){
int R=0;
R=X291is_a(/*(IRF4.4run_type*/((T0*)((T491*)/*(IRF4.8result_type*/r805type_string()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T805*)C))->_start_position/*8*/);
r805error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
void r805from_manifest_string(T805* C,T0* a1,int a2){
*((T805*)(C))=*((T805*)(a1));
C->_mapping_c=r7twin(((T7*)((((T805*)((T805*)a1)))->_mapping_c/*28*/)));
r7extend(((T7*)((((T805*)C))->_mapping_c/*28*/)),'\137');
r2append_in(a2,(((T805*)C))->_mapping_c/*28*/);
}
/*No:MANIFEST_STRING.is_current*/
void r805character_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 r805make(T805* C,T0* a1,int a2){
C->_start_position=a1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,0);
C->_to_string=(T0*)n;
}
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
C->_mapping_c=(T0*)n;
}
r7copy(((T7*)((((T805*)C))->_mapping_c/*28*/)),((T0*)ms1_805));
r2append_in(a2,(((T805*)C))->_mapping_c/*28*/);
}
/*No:MANIFEST_STRING.to_string*/
/*No:MANIFEST_STRING.fz_iinaiv*/
T0* r805type_string(void){
if (fBC364type_string==0){
T0* R=NULL;
fBC364type_string=1;
{T491*n=malloc(sizeof(*n));
*n=M491;
r491make(n,NULL);
R=(T0*)n;
}
oBC364type_string=R;}
return oBC364type_string;}
/*No:MANIFEST_STRING.break*/
/*No:MANIFEST_STRING.add*/
/*No:MANIFEST_STRING.start_position*/
/*No:MANIFEST_STRING.precedence*/
T0* r805to_runnable(T805* C,T0* a1){
T0* R=NULL;
T0* _dummy=NULL;
T0* _bc=NULL;
_dummy=r491to_runnable(((T491*)(r805type_string())),a1);
/*IF*/if (((((T805*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
r7extend(((T7*)((((T805*)C))->_mapping_c/*28*/)),'\137');
_bc=r627base_class(((T627*)((((T805*)C))->_start_position/*8*/)));
r2append_in((((T605*)((T605*)_bc)))->_id/*0*/,(((T805*)C))->_mapping_c/*28*/);
r368set_at_run_time(((T368*)(r491run_class(((T491*)(/*(IRF4.8result_type*/r805type_string()/*)*/))))));
r340add_last((T0*)C);
R=(T0*)C;
}
else {
R=r805twin(C);
/*[IRF3.3set_current_type*/((((T805*)(((T805*)R))))->_current_type)=(a1);
/*]*/
}
/*FI*/return R;
}
/*No:MANIFEST_STRING.ascii*/
/*No:MANIFEST_STRING.us_slash*/
/*No:MANIFEST_STRING.percent*/
/*No:MANIFEST_STRING.result_type*/
T0* r805twin(T805* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T805*)R)=*C;
return R;
}
/*No:MANIFEST_STRING.set_current_type*/
void r805add_ascii(T805* C,char a1){
r7extend(((T7*)((((T805*)C))->_to_string/*12*/)),a1);
/*IF*/if (((((T805*)C))->_ascii/*20*/)==((void*)(NULL))) {
C->_ascii=se_ma429(1,(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
}
else {
r429add_last(((T429*)((((T805*)C))->_ascii/*20*/)),(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
}
/*FI*/}
/*No:MANIFEST_STRING.atomic_precedence*/
T0*oBC805tmp_string=NULL;
/*No:MANIFEST_STRING.current_type*/
T0*oBC364manifest_string_pool=NULL;
/*No:MANIFEST_STRING.is_manifest_string*/
/*No:MANIFEST_STRING.is_void*/
void r805add_percent(T805* C,char a1){
r7extend(((T7*)((((T805*)C))->_to_string/*12*/)),a1);
/*IF*/if (((((T805*)C))->_percent/*24*/)==((void*)(NULL))) {
C->_percent=se_ma429(1,(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
}
else {
r429add_last(((T429*)((((T805*)C))->_percent/*24*/)),(((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/);
}
/*FI*/}
void r805short_character(T805* C,int a1){
char _c=0;
int _val=0;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC805tmp_string)))))->_count)=(0);
/*]*/
/*IF*/if ((((((T805*)C))->_percent/*24*/)!=((void*)(NULL)))&&(r429fast_has(((T429*)((((T805*)C))->_percent/*24*/)),a1))) {
r805character_coding(/*(IRF4.6item*/((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_storage/*0*/)[(a1)-(1)]/*)*/,oBC805tmp_string);
}
 else if ((((((T805*)C))->_ascii/*20*/)!=((void*)(NULL)))&&(r429fast_has(((T429*)((((T805*)C))->_ascii/*20*/)),a1))) {
_val=((unsigned char)/*(IRF4.6item*/((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_storage/*0*/)[(a1)-(1)]/*)*/);
r7append(((T7*)(oBC805tmp_string)),((T0*)ms8_805));
r2append_in(_val,oBC805tmp_string);
r7append(((T7*)(oBC805tmp_string)),((T0*)ms47_473));
}
/*FI*//*IF*/if (((((T7*)((T7*)(oBC805tmp_string))))->_count/*4*/)==(0)) {
/*[IRF3.6a_character*/{char b1=/*(IRF4.6item*/((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_storage/*0*/)[(a1)-(1)]/*)*/;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
else {
_val=1;
while (!((_val)>((((T7*)((T7*)(oBC805tmp_string))))->_count/*4*/))) {
_c=/*(IRF4.6item*/((((T7*)((T7*)(oBC805tmp_string))))->_storage/*0*/)[(_val)-(1)]/*)*/;
/*IF*/if ((_c)==('\45')) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms9_805),((T0*)ms10_805));
}
 else if ((_c)==('\57')) {
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms11_805),((T0*)ms47_473));
}
else {
/*[IRF3.6a_character*/{char b1=_c;
/*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
char c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
/*FI*/_val=(_val)+(1);
}
}
/*FI*/}
void r805error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:MANIFEST_STRING.mapping_c*/
void r805short_target(T805* C){
r805bracketed_short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
void r805break_line(T805* C){
/*IF*/if (((((T805*)C))->_break/*16*/)==((void*)(NULL))) {
C->_break=se_ma429(1,((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/)+(1));
}
else {
r429add_last(((T429*)((((T805*)C))->_break/*16*/)),((((T7*)((T7*)((((T805*)C))->_to_string/*12*/))))->_count/*4*/)+(1));
}
/*FI*/}
/*No:CALL_INFIX_MINUS.arguments*/
void r574short(T574* C){
/*IF*/if ((X662precedence((((T574*)C))->_target/*8*/))==(13)) {
X662short((((T574*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T574* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T574*)C1))->_feature_name/*24*/);
}/*]*/
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((7)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence((((T574*)C))->_target/*8*/))<(7)) {
X662bracketed_short((((T574*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T574* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T574*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short((((T574*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T574* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T574*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
T0* r574add_comment(T574* 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 r574to_integer(T574* C){
int R=0;
r574error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T574*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
void r574bracketed_short(T574* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r574short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r574is_a(T574* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T574*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T574*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r574error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_MINUS.is_current*/
void r574make(T574* 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,r574operator(),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;
}
r574make_call_1(C,a1,(((T574*)C))->_feature_name/*24*/,_eal);
}
/*No:CALL_INFIX_MINUS.nb_errors*/
/*No:CALL_INFIX_MINUS.feature_name*/
/*No:CALL_INFIX_MINUS.fz_iinaiv*/
/*No:CALL_INFIX_MINUS.run_feature*/
/*No:CALL_INFIX_MINUS.start_position*/
/*No:CALL_INFIX_MINUS.target*/
/*No:CALL_INFIX_MINUS.precedence*/
T0* r574to_runnable(T574* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T574*)C))->_current_type/*4*/)==((void*)(NULL))) {
r574to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T574*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r574error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T574*)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*)((((T574*)C))->_arguments/*20*/)),(((T574*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T574*)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*)((((T574*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r574twin(C);
/*[IRF3.3set_current_type*/((((T574*)(((T574*)R))))->_current_type)=(NULL);
/*]*/
R=r574to_runnable(((T574*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_MINUS.short_print_feature_name*/
/*No:CALL_INFIX_MINUS.result_type*/
T0* r574twin(T574* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T574*)R)=*C;
return R;
}
/*No:CALL_INFIX_MINUS.set_current_type*/
T0* r574operator(void){
T0* R=NULL;
R=((T0*)ms37_473);
return R;
}
/*No:CALL_INFIX_MINUS.atomic_precedence*/
/*No:CALL_INFIX_MINUS.us_minus*/
/*No:CALL_INFIX_MINUS.current_type*/
void r574make_call_1(T574* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_MINUS.is_manifest_string*/
/*No:CALL_INFIX_MINUS.is_void*/
void r574to_runnable_0(T574* C,T0* a1){
C->_current_type=a1;
r574cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T574*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T574*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T574*)C))->_run_feature/*12*/));
r574error((((T454*)((T454*)((((T574*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T574*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T574*)C))->_target/*8*/);
}
/*FI*/}
void r574cpc_to_runnable(T574* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T574*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T574*)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((((T574*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T574*)C))->_target/*8*/,(((T574*)C))->_run_feature/*12*/);
}
void r574error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_MINUS.fatal_error*/
/*No:CALL_INFIX_MINUS.fz_bad_argument*/
void r574short_target(T574* C){
r574bracketed_short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
/*No:CALL_INFIX_MINUS.arg1*/
void r576update_with(T0* a1){
T0* _running=NULL;
T0* _dictionary2=NULL;
T0* _key2=NULL;
T0* _key1=NULL;
T0* _current_type=NULL;
_current_type=/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/);
_running=(((T368*)((T368*)(X291run_class(_current_type)))))->_running/*12*/;
/*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))>(1))) {
_key1=X291run_time_mark(_current_type);
_key2=X776to_key(/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
/*IF*/if (r338has(((T338*)(oBC576dictionary)),_key1)) {
_dictionary2=r338at(((T338*)(oBC576dictionary)),_key1);
/*IF*/if (!(r199has(((T199*)_dictionary2),_key2))) {
r199put(((T199*)_dictionary2),a1,_key2);
}
/*FI*/}
else {
{T199*n=malloc(sizeof(*n));
*n=M199;
r199make(n);
_dictionary2=(T0*)n;
}
r199put(((T199*)_dictionary2),a1,_key2);
r338put(((T338*)(oBC576dictionary)),_dictionary2,_key1);
}
/*FI*/}
/*FI*/}
void r576update(T0* a1,T0* a2){
T0* _running=NULL;
T0* _current_type=NULL;
/*IF*/if (X662is_current(a1)) {
}
 else if (X662is_manifest_string(a1)) {
}
else {
_current_type=/*X496*/((T0*)(((T808*)((T808*)a2)))->_current_type/*4*/);
/*IF*/if (X291is_reference(_current_type)) {
_running=(((T368*)((T368*)(X291run_class(_current_type)))))->_running/*12*/;
/*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))>(1))) {
r576update_with(a2);
}
/*FI*/}
/*FI*/}
/*FI*/}
T0*oBC576dictionary=NULL;
/*No:CALL_INFIX_IMPLIES.arguments*/
void r90short(T90* C){
/*IF*/if ((X662precedence((((T90*)C))->_target/*8*/))==(13)) {
X662short((((T90*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T90* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T90*)C1))->_feature_name/*24*/);
}/*]*/
/*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/))==(13)) {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
}
 else if ((3)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/))) {
X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
 else if ((X662precedence((((T90*)C))->_target/*8*/))<(3)) {
X662bracketed_short((((T90*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T90* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T90*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
}
else {
X662short((((T90*)C))->_target/*8*/);
/*[IRF3.6short_print_feature_name*/{T90* C1=C;
r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T90*)C1))->_feature_name/*24*/);
}/*]*/
X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)C))->_arguments/*20*/)))/*)*/);
}
/*FI*/}
T0* r90add_comment(T90* 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 r90to_integer(T90* C){
int R=0;
r90error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T90*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
return R;
}
void r90bracketed_short(T90* C){
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
r90short(C);
r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
}
int r90is_a(T90* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T90*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T90*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
r90error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:CALL_INFIX_IMPLIES.is_current*/
void r90make(T90* 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,r90operator(),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;
}
r90make_call_1(C,a1,(((T90*)C))->_feature_name/*24*/,_eal);
}
/*No:CALL_INFIX_IMPLIES.nb_errors*/
/*No:CALL_INFIX_IMPLIES.feature_name*/
/*No:CALL_INFIX_IMPLIES.fz_iinaiv*/
/*No:CALL_INFIX_IMPLIES.run_feature*/
/*No:CALL_INFIX_IMPLIES.start_position*/
/*No:CALL_INFIX_IMPLIES.target*/
/*No:CALL_INFIX_IMPLIES.precedence*/
T0* r90to_runnable(T90* C,T0* a1){
T0* R=NULL;
T0* _tla=NULL;
T0* _a=NULL;
/*IF*/if (((((T90*)C))->_current_type/*4*/)==((void*)(NULL))) {
r90to_runnable_0(C,a1);
_a=r431to_runnable(((T431*)((((T90*)C))->_arguments/*20*/)),a1);
/*IF*/if ((_a)==((void*)(NULL))) {
r90error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T90*)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*)((((T90*)C))->_arguments/*20*/)),(((T90*)C))->_run_feature/*12*/);
}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
_tla=(((T90*)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*)((((T90*)C))->_arguments/*20*/)))/*)*/));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
else {
R=r90twin(C);
/*[IRF3.3set_current_type*/((((T90*)(((T90*)R))))->_current_type)=(NULL);
/*]*/
R=r90to_runnable(((T90*)R),a1);
}
/*FI*/return R;
}
/*No:CALL_INFIX_IMPLIES.short_print_feature_name*/
/*No:CALL_INFIX_IMPLIES.result_type*/
T0* r90twin(T90* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T90*)R)=*C;
return R;
}
/*No:CALL_INFIX_IMPLIES.set_current_type*/
T0* r90operator(void){
T0* R=NULL;
R=((T0*)ms34_473);
return R;
}
/*No:CALL_INFIX_IMPLIES.atomic_precedence*/
/*No:CALL_INFIX_IMPLIES.us_implies*/
/*No:CALL_INFIX_IMPLIES.current_type*/
void r90make_call_1(T90* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_IMPLIES.is_manifest_string*/
/*No:CALL_INFIX_IMPLIES.is_void*/
void r90to_runnable_0(T90* C,T0* a1){
C->_current_type=a1;
r90cpc_to_runnable(C,a1);
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T90*)C))->_run_feature/*12*/))))->_result_type/*24*/);
/*IF*/if (((((T90*)C))->_result_type/*16*/)==((void*)(NULL))) {
r683add_position(X496start_position((((T90*)C))->_run_feature/*12*/));
r90error((((T454*)((T454*)((((T90*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
}
 else if (X291is_like_current((((T90*)C))->_result_type/*16*/)) {
C->_result_type=X662result_type((((T90*)C))->_target/*8*/);
}
/*FI*/}
void r90cpc_to_runnable(T90* C,T0* a1){
T0* _rc=NULL;
T0* _t=NULL;
_t=X662to_runnable((((T90*)C))->_target/*8*/,a1);
/*IF*/if ((_t)==((void*)(NULL))) {
r683add_position(X662start_position((((T90*)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((((T90*)C))->_target/*8*/));
C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
r576update((((T90*)C))->_target/*8*/,(((T90*)C))->_run_feature/*12*/);
}
void r90error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CALL_INFIX_IMPLIES.fatal_error*/
/*No:CALL_INFIX_IMPLIES.fz_bad_argument*/
void r90short_target(T90* C){
r90bracketed_short(C);
/*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
}/*]*/
}
/*No:CALL_INFIX_IMPLIES.arg1*/
/*No:E_RESULT.short*/
T0* r715add_comment(T715* 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 r715to_integer(T715* C){
int R=0;
r715error((((T715*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
/*No:E_RESULT.bracketed_short*/
int r715is_a(T715* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T715*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T715*)C))->_start_position/*12*/);
r715error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
/*No:E_RESULT.is_current*/
void r715make(T715* C,T0* a1){
C->_to_string=((T0*)ms146_473);
C->_start_position=a1;
}
/*No:E_RESULT.to_string*/
/*No:E_RESULT.fz_iinaiv*/
/*No:E_RESULT.start_position*/
/*No:E_RESULT.precedence*/
T0* r715to_runnable(T715* C,T0* a1){
T0* R=NULL;
/*IF*/if (((((T715*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=/*X496*/((T0*)(((T808*)((T808*)(r604top_rf(((T604*)(oBC364small_eiffel)))))))->_result_type/*24*/);
R=(T0*)C;
}
else {
{T715*n=malloc(sizeof(*n));
*n=M715;
r715make(n,(((T715*)C))->_start_position/*12*/);
R=(T0*)n;
}
R=r715to_runnable(((T715*)R),a1);
}
/*FI*/return R;
}
/*No:E_RESULT.result_type*/
/*No:E_RESULT.atomic_precedence*/
/*No:E_RESULT.us_result*/
/*No:E_RESULT.current_type*/
/*No:E_RESULT.is_manifest_string*/
/*No:E_RESULT.is_void*/
void r715error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_RESULT.short_target*/
int r378short(T378* C){
int R=0;
int _i=0;
_i=1;
while (!((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))) {
R=(r583short(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))),R))||(R);
_i=(_i)+(1);
}
return R;
}
/*No:CREATION_CLAUSE_LIST.make*/
T0* r378start_position(T378* C){
T0* R=NULL;
R=(((T583*)((T583*)(r235first(((T235*)((((T378*)C))->_list/*0*/)))))))->_start_position/*0*/;
return R;
}
void r378check_expanded_with(T378* C,T0* a1){
/*IF*/if (((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)>(1)) {
r683add_type(a1,((T0*)ms65_470));
r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1)))))->_start_position/*0*/);
r683add_position((((T583*)((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),2)))))->_start_position/*0*/);
/*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
/*]*/
}
/*FI*/r583check_expanded_with(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
}
T0* r378get_clause(T378* C,T0* a1){
T0* R=NULL;
int _i=0;
_i=1;
while (!(((_i)>((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/))||(r583has(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),_i))),a1)))) {
_i=(_i)+(1);
}
/*IF*/if ((_i)<=((((T235*)((T235*)((((T378*)C))->_list/*0*/))))->_upper/*8*/)) {
R=r235item(((T235*)((((T378*)C))->_list/*0*/)),_i);
}
/*FI*/return R;
}
/*No:CREATION_CLAUSE_LIST.list*/
T0* r378expanded_initializer(T378* C,T0* a1){
T0* R=NULL;
R=r583expanded_initializer(((T583*)(r235item(((T235*)((((T378*)C))->_list/*0*/)),1))),a1);
return R;
}
/*No:CREATION_CLAUSE_LIST.fz_cbe*/
/*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
/*No:CREATION_CLAUSE_LIST.add_last*/
/*No:CREATION_CLAUSE_LIST.fatal_error*/
void r541short(T541* C){
int _i=0;
r343short(((T343*)(r522item(((T522*)((((T541*)C))->_list/*0*/)),1))),((T0*)ms1_541),((T0*)ms2_541));
_i=2;
while (!((_i)>((((T522*)((T522*)((((T541*)C))->_list/*0*/))))->_upper/*8*/))) {
r343short(((T343*)(r522item(((T522*)((((T541*)C))->_list/*0*/)),_i))),((T0*)ms3_541),((T0*)ms4_541));
_i=(_i)+(1);
}
r580hook(((T580*)(oBC364short_print)),((T0*)ms5_541));
}
/*No:RUN_REQUIRE.make*/
/*No:RUN_REQUIRE.list*/

