/*
-- 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:CST_ATT_BIT.arguments*/
T0* r588try_to_undefine(T588* C,T0* a1,T0* a2){
T0* R=NULL;
X776undefine_in(a1,a2);
R=r588try_to_undefine_aux(C,a1,a2);
/*IF*/if ((R)!=((void*)(NULL))) {
/*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T588*)C))->_clients/*20*/);
/*]*/
}
else {
r605fatal_undefine(((T605*)a2),a1);
}
/*FI*/return R;
}
/*No:CST_ATT_BIT.is_deferred*/
void r588pretty_tail(T588* C){
r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_418));
r940pretty_print(((T940*)(/*(IRF4.3value*/(((T588*)C))->_value_mem/*24*//*)*/)));
}
void r588add_into(T588* C,T0* a1){
T0* _fn=NULL;
int _i=0;
C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)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*)((((T588*)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);
}
}
T0* r588try_to_undefine_aux(T588* C,T0* a1,T0* a2){
T0* R=NULL;
r683add_position(r588start_position(C));
r588error(X776start_position(a1),((T0*)ms1_308));
r605fatal_undefine(((T605*)a2),a1);
return R;
}
void r588make(T588* C,T0* a1,T0* a2,T0* a3){
r588make_e_feature(C,a1,a2);
C->_value_mem=a3;
}
/*No:CST_ATT_BIT.nb_errors*/
void r588pretty_print_one_name(T0* a1){
/*IF*/if (X776is_frozen(a1)) {
r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
}
/*FI*/X776definition_pretty_print(a1);
}
/*No:CST_ATT_BIT.set_header_comment*/
T0* r588start_position(T588* C){
T0* R=NULL;
R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
return R;
}
T0* r588to_run_feature(T588* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X291run_class(a1);
R=r368at(((T368*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 808: 
break;
default:
R=NULL;
};/*IF*/if ((R)==((void*)(NULL))) {
{T808*n=malloc(sizeof(*n));
*n=M808;
r808make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:CST_ATT_BIT.ensure_assertion*/
/*No:CST_ATT_BIT.code_require*/
/*No:CST_ATT_BIT.result_type*/
/*No:CST_ATT_BIT.em1*/
void r588pretty_print(T588* C){
r588pretty_print_profile(C);
r588pretty_tail(C);
r238put_character(((T238*)(oBC364fmt)),'\73');
/*IF*/if (((((T588*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
r238indent(((T238*)(oBC364fmt)));
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
/*]*/
r393pretty_print(((T393*)((((T588*)C))->_header_comment/*16*/)));
}
/*FI*/}
/*No:CST_ATT_BIT.set_clients*/
/*No:CST_ATT_BIT.em2*/
/*No:CST_ATT_BIT.require_assertion*/
/*No:CST_ATT_BIT.value*/
/*No:CST_ATT_BIT.names*/
/*No:CST_ATT_BIT.value_mem*/
void r588pretty_print_profile(T588* C){
r588pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
/*]*/
/*[IRF3.1pretty_print_arguments*//*]*/
/*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
/*]*/
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
X291pretty_print((((T588*)C))->_result_type/*12*/);
}
/*FI*/}
void r588pretty_print_names(T588* C){
int _i=0;
_i=1;
r588pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
r588pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
_i=(_i)+(1);
}
}
int r588can_hide(T588* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms5_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms6_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T588*)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*//*AF*//*AE*/
/*FI*/}
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_BIT.header_comment*/
int r588is_merge_with(T588* C,T0* a1,T0* a2){
int R=0;
/*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
/*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms2_359));
}
/*FI*/}
/*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
/*IF*/{/*AT*/r683add_position(X359start_position(a1));
r588error(r588start_position(C),((T0*)ms3_359));
}
/*FI*/}
/*FI*//*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
/*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
}
/*FI*/}
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
return R;
}
/*No:CST_ATT_BIT.fz_dot*/
/*No:CST_ATT_BIT.first_name*/
/*No:CST_ATT_BIT.clients*/
void r588collect_for(int a1){
/*IF*/if ((a1)==(1001)) {
/*IF*//*AF*//*AE*/
/*FI*/}
else {
/*IF*//*AF*//*AE*/
/*FI*/}
/*FI*/}
void r588error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:CST_ATT_BIT.base_class*/
/*No:CST_ATT_BIT.pretty_print_arguments*/
void r588make_e_feature(T588* C,T0* a1,T0* a2){
C->_names=a1;
C->_result_type=a2;
}
int r590debug_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)==(1);
return R;
}
/*No:RUN_CONTROL.level_check_debug*/
int r590all_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(0);
return R;
}
/*No:RUN_CONTROL.level_ensure*/
/*No:RUN_CONTROL.level_require*/
/*No:RUN_CONTROL.make*/
/*No:RUN_CONTROL.level_loop*/
/*No:RUN_CONTROL.level_check_all*/
int r590ensure_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-3);
return R;
}
int r590require_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-4);
return R;
}
/*No:RUN_CONTROL.level*/
int r590loop_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-1);
return R;
}
/*No:RUN_CONTROL.level_invariant*/
int r590invariant_check(T590* C){
int R=0;
R=((((T590*)C))->_level/*0*/)>=(-2);
return R;
}
int r431is_like_argument(T431* C,T0* a1,T0* a2,T0* a3){
int R=0;
T0* _ot=NULL;
T0* _tla=NULL;
_tla=a3;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 239: 
break;
default:
_tla=NULL;
};/*IF*/if ((_tla)!=((void*)(NULL))) {
R=1;
_ot=X662result_type(r431expression(C,/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*16*//*)*/));
/*IF*/if (!(X291is_a(X291run_type(a2),X291run_type(_ot)))) {
r683add_position(X662start_position(a1));
r431error(X291start_position(a3),((T0*)ms12_431));
}
/*FI*/}
/*FI*/return R;
}
void r431match_with(T431* C,T0* a1){
T0* _ft=NULL;
T0* _at=NULL;
T0* _e=NULL;
int _i=0;
T0* _fal=NULL;
_fal=/*X496*/((T0*)(((T808*)((T808*)a1)))->_arguments/*20*/);
/*IF*/if ((_fal)==((void*)(NULL))) {
r683add_position(X496start_position(a1));
r431error(r431start_position(C),((T0*)ms14_431));
}
/*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(r431count(C)))) {
r683add_position((((T31*)((T31*)_fal)))->_start_position/*4*/);
r431error(r431start_position(C),((T0*)ms14_431));
}
/*FI*/_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
_at=X662result_type(_e);
_ft=r31type(((T31*)_fal),_i);
/*IF*/if (X662is_void(_e)) {
/*IF*/if (X291is_expanded(_ft)) {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms2_431));
}
/*FI*/}
 else if (X291is_like_current(_ft)) {
/*IF*/if (X662is_current(_e)) {
}
 else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
/*IF*/if (X291is_expanded(X291run_type(_at))) {
}
 else if (X291is_a(X291run_type(_ft),X291run_type(_at))) {
}
else {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms13_431));
}
/*FI*/}
else {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms13_431));
}
/*FI*/}
 else if (X291is_like_feature(_ft)) {
/*IF*/if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
}
else {
r683add_position(X662start_position(_e));
r431error(X291start_position(_ft),((T0*)ms3_431));
}
/*FI*/}
 else if (r431is_like_argument(C,_e,_at,_ft)) {
}
 else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
}
else {
r683print_as_error(((T683*)(oBC364eh)));
r683add_position(X291start_position(_ft));
r431error(X662start_position(_e),((T0*)ms4_431));
}
/*FI*/_at=X291run_type(_at);
_ft=X291run_type(_ft);
/*IF*/if (X291is_expanded(_ft)) {
/*IF*/if (X291is_expanded(_at)) {
}
else {
X291used_as_reference(_ft);
}
/*FI*/}
 else if (X291is_expanded(_at)) {
X291used_as_reference(_at);
}
/*FI*/_i=(_i)-(1);
}
}
/*No:EFFECTIVE_ARG_LIST.make*/
/*No:EFFECTIVE_ARG_LIST.nb_errors*/
T0* r431expression(T431* C,int a1){
T0* R=NULL;
R=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),a1));
return R;
}
T0* r431start_position(T431* C){
T0* R=NULL;
R=X662start_position(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),1)));
return R;
}
T0* r431to_runnable(T431* C,T0* a1){
T0* R=NULL;
T0* _e2=NULL;
T0* _e1=NULL;
int _i=0;
/*IF*/if (((((T431*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
while (!((_i)==(0))) {
_e1=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
_e2=X662to_runnable(_e1,(((T431*)C))->_current_type/*4*/);
/*IF*/if ((_e2)==((void*)(NULL))) {
r431error(X662start_position(_e1),((T0*)ms5_431));
}
 else if ((_e1)!=((void*)(_e2))) {
/*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T431*)C))->_list/*0*/));
T0* b1=_e2;
int b2=_i;
((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
}/*]*/
}
/*FI*/_i=(_i)-(1);
}
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
R=(T0*)C;
}
/*FI*/}
 else if ((X291run_class(a1))==((void*)(r431run_class(C)))) {
R=(T0*)C;
}
else {
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(X96twin((((T431*)C))->_list/*0*/));
/*]*/
R=(T0*)n;
}
R=r431to_runnable(((T431*)R),a1);
}
/*FI*/return R;
}
/*No:EFFECTIVE_ARG_LIST.em1*/
void r431pretty_print(T431* C){
int _i=0;
r238put_character(((T238*)(oBC364fmt)),'\50');
_i=1;
while (!((_i)>(r431count(C)))) {
X662pretty_print(r431expression(C,_i));
_i=(_i)+(1);
/*IF*/if ((_i)<=(r431count(C))) {
r238put_character(((T238*)(oBC364fmt)),'\54');
}
/*FI*/}
r238put_character(((T238*)(oBC364fmt)),'\51');
}
/*No:EFFECTIVE_ARG_LIST.list*/
/*No:EFFECTIVE_ARG_LIST.em2*/
/*No:EFFECTIVE_ARG_LIST.current_type*/
T0* r431run_class(T431* C){
T0* R=NULL;
R=X291run_class((((T431*)C))->_current_type/*4*/);
return R;
}
void r431error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
int r431count(T431* C){
int R=0;
R=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
return R;
}
T0* r431first(T431* C){
T0* R=NULL;
R=X96first((((T431*)C))->_list/*0*/);
return R;
}
T0* r873add_comment(T873* 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 r873to_integer(T873* C){
int R=0;
r873error((((T873*)C))->_start_position/*12*/,((T0*)ms69_470));
return R;
}
int r873is_a(T873* C,T0* a1){
int R=0;
R=X291is_a(X291run_type((((T873*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
/*IF*/if (!(R)) {
r683add_position((((T873*)C))->_start_position/*12*/);
r873error(X662start_position(a1),((T0*)ms4_662));
}
/*FI*/return R;
}
void r873name_clash(T873* C){
T0* _rc=NULL;
T0* _rf=NULL;
/*IF*/if (r605has_feature(((T605*)(r873base_class_written(C))),(((T873*)C))->_to_string/*8*/)) {
_rc=X291run_class((((T873*)C))->_current_type/*4*/);
_rf=r368get_feature_with(((T368*)_rc),(((T873*)C))->_to_string/*8*/);
/*IF*/if ((_rf)!=((void*)(NULL))) {
r683add_position(X496start_position(_rf));
}
/*FI*/r873error((((T873*)C))->_start_position/*12*/,((T0*)ms1_873));
}
/*FI*/}
/*No:ARGUMENT_NAME1.is_current*/
T0* r873written_in(T873* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(((T873*)C))->_start_position/*12*/;
/*IF*/if ((_sp)!=((void*)(NULL))) {
R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
}
/*FI*/return R;
}
void r873make(T873* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=r902item(a2);
}
void r873print_as_target(T873* C){
r238put_string(((T238*)(oBC364fmt)),(((T873*)C))->_to_string/*8*/);
r238put_character(((T238*)(oBC364fmt)),'\56');
}
/*No:ARGUMENT_NAME1.to_string*/
/*No:ARGUMENT_NAME1.fz_iinaiv*/
/*No:ARGUMENT_NAME1.set_result_type*/
/*No:ARGUMENT_NAME1.start_position*/
/*No:ARGUMENT_NAME1.precedence*/
T0* r873to_runnable(T873* C,T0* a1){
T0* R=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
_t1=(((T873*)C))->_result_type/*20*/;
_t2=X291to_runnable(_t1,a1);
/*IF*/if ((_t2)==((void*)(NULL))) {
r683add_position(X291start_position(_t1));
r873error((((T873*)C))->_start_position/*12*/,((T0*)ms5_361));
}
/*FI*//*IF*/if (((((T873*)C))->_current_type/*4*/)==((void*)(NULL))) {
C->_current_type=a1;
C->_result_type=_t2;
R=(T0*)C;
}
else {
{T873*n=malloc(sizeof(*n));
*n=M873;
r873make_runnable(n,(T0*)C,a1,_t2);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:ARGUMENT_NAME1.set_rank*/
/*No:ARGUMENT_NAME1.bracketed_pretty_print*/
/*No:ARGUMENT_NAME1.rank*/
/*No:ARGUMENT_NAME1.result_type*/
/*No:ARGUMENT_NAME1.atomic_precedence*/
/*No:ARGUMENT_NAME1.pretty_print*/
T0* r873base_class_written(T873* C){
T0* R=NULL;
R=r451base_class(((T451*)(r873written_in(C))));
return R;
}
/*No:ARGUMENT_NAME1.current_type*/
/*No:ARGUMENT_NAME1.is_manifest_string*/
/*No:ARGUMENT_NAME1.is_void*/
void r873error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:ARGUMENT_NAME1.em_ba*/
void r873make_runnable(T873* C,T0* a1,T0* a2,T0* a3){
*((T873*)(C))=*((T873*)(a1));
C->_current_type=a2;
C->_result_type=a3;
}
T0* r292add_comment(T292* 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 {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
R=(T0*)C;
}
else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
void r292make(T292* C,T0* a1,T0* a2,T0* a3){
{T623*n=malloc(sizeof(*n));
*n=M623;
r623make(n,a1,a2,a3);
C->_check_invariant=(T0*)n;
}
}
/*No:E_CHECK.start_position*/
T0* r292to_runnable(T292* C,T0* a1){
T0* R=NULL;
T0* _al=NULL;
/*IF*/if (((((T292*)C))->_run_compound/*4*/)==((void*)(NULL))) {
C->_run_compound=a1;
/*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
_al=r623to_runnable(((T623*)((((T292*)C))->_check_invariant/*8*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
/*IF*/if ((_al)==((void*)(NULL))) {
r292error(/*(IRF4.6start_position*/(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_start_position/*0*//*)*/,((T0*)ms1_292));
}
else {
C->_check_invariant=_al;
R=(T0*)C;
}
/*FI*/}
else {
R=(T0*)C;
}
/*FI*/}
else {
{T292*n=malloc(sizeof(*n));
*n=M292;
r292make(n,/*(IRF4.6start_position*/(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_start_position/*0*//*)*/,NULL,(((T623*)((T623*)((((T292*)C))->_check_invariant/*8*/))))->_list/*8*/);
R=(T0*)n;
}
R=r292to_runnable(((T292*)R),a1);
}
/*FI*/return R;
}
/*No:E_CHECK.check_invariant*/
void r292pretty_print(T292* C){
r623pretty_print(((T623*)((((T292*)C))->_check_invariant/*8*/)));
r238put_string(((T238*)(oBC364fmt)),((T0*)ms2_292));
/*IF*/if (r238print_end_check(((T238*)(oBC364fmt)))) {
r238put_end(((T238*)(oBC364fmt)),((T0*)ms3_292));
}
/*FI*/}
/*No:E_CHECK.run_compound*/
void r292error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:E_CHECK.end_mark_comment*/
/*No:UNIQUE_STRING.us_put*/
/*No:UNIQUE_STRING.us_character_bits*/
/*No:UNIQUE_STRING.us_none*/
/*No:UNIQUE_STRING.us_dictionary*/
/*No:UNIQUE_STRING.us_minimum_integer*/
/*No:UNIQUE_STRING.us_character_ref*/
/*No:UNIQUE_STRING.us_integer*/
/*No:UNIQUE_STRING.us_copy*/
/*No:UNIQUE_STRING.us_generator*/
/*No:UNIQUE_STRING.us_minimum_character_code*/
/*No:UNIQUE_STRING.us_maximum_integer*/
/*No:UNIQUE_STRING.us_standard_copy*/
/*No:UNIQUE_STRING.us_maximum_character_code*/
/*No:UNIQUE_STRING.us_minimum_real*/
/*No:UNIQUE_STRING.us_sprintf_double*/
/*No:UNIQUE_STRING.us_with_capacity*/
void r902key_pfx_ifx(T0* a1){
char _c=0;
int _i=0;
_i=1;
while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
_c=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*IF*/if (r3is_letter(_c)) {
r7extend(((T7*)(oBC902pfx_ifx)),_c);
}
else {
r2append_in(((unsigned char)_c),oBC902pfx_ifx);
}
/*FI*/_i=(_i)+(1);
}
}
/*No:UNIQUE_STRING.us_backslash_backslash*/
/*No:UNIQUE_STRING.us_compile_to_jvm*/
/*No:UNIQUE_STRING.us_maximum_real*/
/*No:UNIQUE_STRING.us_conforms_to*/
/*No:UNIQUE_STRING.us_and*/
/*No:UNIQUE_STRING.us_print*/
/*No:UNIQUE_STRING.us_print_on*/
/*No:UNIQUE_STRING.us_double_ref*/
/*No:UNIQUE_STRING.us_and_then*/
/*No:UNIQUE_STRING.us_put_0*/
/*No:UNIQUE_STRING.us_array*/
/*No:UNIQUE_STRING.us_from_pointer*/
/*No:UNIQUE_STRING.us_lower*/
/*No:UNIQUE_STRING.us_std_neq*/
/*No:UNIQUE_STRING.us_pointer_bits*/
/*No:UNIQUE_STRING.us_slash_slash*/
/*No:UNIQUE_STRING.us_double_floor*/
/*No:UNIQUE_STRING.us_integer_bits*/
/*No:UNIQUE_STRING.us_stdout*/
/*No:UNIQUE_STRING.us_capacity*/
/*No:UNIQUE_STRING.us_put_1*/
/*No:UNIQUE_STRING.make*/
/*No:UNIQUE_STRING.us_current*/
/*No:UNIQUE_STRING.us_item*/
T0* r902read(T0* a1){
T0* R=NULL;
R=r794at(((T794*)(oBC902memory)),a1);
return R;
}
/*No:UNIQUE_STRING.us_pointer*/
/*No:UNIQUE_STRING.us_string*/
/*No:UNIQUE_STRING.us_se_remove*/
/*No:UNIQUE_STRING.us_flush_stream*/
/*No:UNIQUE_STRING.us_realloc*/
/*No:UNIQUE_STRING.us_like_current*/
/*No:UNIQUE_STRING.us_floor*/
/*No:UNIQUE_STRING.us_double_bits*/
/*No:UNIQUE_STRING.us_or_else*/
/*No:UNIQUE_STRING.us_blank*/
/*No:UNIQUE_STRING.us_is_expanded_type*/
/*No:UNIQUE_STRING.us_std_output*/
/*No:UNIQUE_STRING.us_fclose*/
T0* r902item(T0* a1){
T0* R=NULL;
r902initialize();
/*IF*/if (r794has(((T794*)(oBC902memory)),a1)) {
R=r902read(a1);
}
else {
R=r7twin(((T7*)a1));
r902add1(R);
}
/*FI*/return R;
}
/*No:UNIQUE_STRING.us_ge*/
/*No:UNIQUE_STRING.us_neq*/
T0*oBC364eiffel_parser=NULL;
/*No:UNIQUE_STRING.us_stdin*/
/*No:UNIQUE_STRING.us_slash*/
/*No:UNIQUE_STRING.us_compile_to_c*/
/*No:UNIQUE_STRING.us_crash*/
/*No:UNIQUE_STRING.us_c_inline_c*/
/*No:UNIQUE_STRING.us_standard_twin*/
/*No:UNIQUE_STRING.us_truncated_to_integer*/
/*No:UNIQUE_STRING.us_write_byte*/
/*No:UNIQUE_STRING.us_stderr*/
/*No:UNIQUE_STRING.us_se_system*/
/*No:UNIQUE_STRING.us_std_file_read*/
/*No:UNIQUE_STRING.us_sfr_open*/
/*No:UNIQUE_STRING.us_sfw_open*/
/*No:UNIQUE_STRING.us_character*/
/*No:UNIQUE_STRING.us_pointer_ref*/
/*No:UNIQUE_STRING.us_shift_left*/
/*No:UNIQUE_STRING.us_std_error*/
T0*oBC902pfx_ifx=NULL;
/*No:UNIQUE_STRING.us_le*/
/*No:UNIQUE_STRING.us_make*/
/*No:UNIQUE_STRING.us_integer_ref*/
/*No:UNIQUE_STRING.us_bitn*/
/*No:UNIQUE_STRING.us_twin*/
/*No:UNIQUE_STRING.us_bit_n*/
/*No:UNIQUE_STRING.us_real*/
/*No:UNIQUE_STRING.us_die_with_code*/
/*No:UNIQUE_STRING.us_implies*/
/*No:UNIQUE_STRING.us_result*/
/*No:UNIQUE_STRING.us_generating_type*/
/*No:UNIQUE_STRING.us_is_basic_expanded_type*/
T0* r902for_prefix(T0* a1){
T0* R=NULL;
r7copy(((T7*)(oBC902pfx_ifx)),((T0*)ms1_902));
r902key_pfx_ifx(a1);
R=r902item(oBC902pfx_ifx);
return R;
}
T0* r902for_infix(T0* a1){
T0* R=NULL;
r7copy(((T7*)(oBC902pfx_ifx)),((T0*)ms2_902));
r902key_pfx_ifx(a1);
R=r902item(oBC902pfx_ifx);
return R;
}
/*No:UNIQUE_STRING.us_bit*/
/*No:UNIQUE_STRING.us_minus*/
/*No:UNIQUE_STRING.us_shift_right*/
/*No:UNIQUE_STRING.us_count*/
/*No:UNIQUE_STRING.us_se_argc*/
/*No:UNIQUE_STRING.us_storage*/
/*No:UNIQUE_STRING.us_object_size*/
/*No:UNIQUE_STRING.us_se_rename*/
/*No:UNIQUE_STRING.us_memory*/
/*No:UNIQUE_STRING.us_code*/
/*No:UNIQUE_STRING.us_sprintf_pointer*/
/*No:UNIQUE_STRING.us_standard_is_equal*/
/*No:UNIQUE_STRING.us_real_ref*/
/*No:UNIQUE_STRING.us_boolean*/
/*No:UNIQUE_STRING.us_is_not_void*/
/*No:UNIQUE_STRING.us_at*/
/*No:UNIQUE_STRING.us_eq*/
/*No:UNIQUE_STRING.us_double*/
/*No:UNIQUE_STRING.us_pointer_size*/
/*No:UNIQUE_STRING.us_to_double*/
/*No:UNIQUE_STRING.us_xor*/
/*No:UNIQUE_STRING.us_io*/
/*No:UNIQUE_STRING.us_platform*/
/*No:UNIQUE_STRING.us_is_equal*/
/*No:UNIQUE_STRING.us_to_bit*/
/*No:UNIQUE_STRING.us_bit_n_ref*/
/*No:UNIQUE_STRING.us_to_character*/
/*No:UNIQUE_STRING.us_se_string2double*/
/*No:UNIQUE_STRING.us_free*/
/*No:UNIQUE_STRING.us_read_byte*/
/*No:UNIQUE_STRING.us_not*/
/*No:UNIQUE_STRING.us_void*/
/*No:UNIQUE_STRING.us_muls*/
/*No:UNIQUE_STRING.us_trace_switch*/
/*No:UNIQUE_STRING.us_feof*/
/*No:UNIQUE_STRING.us_boolean_bits*/
/*No:UNIQUE_STRING.us_gt*/
/*No:UNIQUE_STRING.us_se_getenv*/
/*No:UNIQUE_STRING.us_to_integer*/
/*No:UNIQUE_STRING.us_native_array_character*/
/*No:UNIQUE_STRING.us_calloc*/
/*No:UNIQUE_STRING.us_to_pointer*/
/*No:UNIQUE_STRING.us_clear_all*/
/*No:UNIQUE_STRING.us_real_bits*/
/*No:UNIQUE_STRING.us_plus*/
/*No:UNIQUE_STRING.us_boolean_ref*/
/*No:UNIQUE_STRING.us_c_inline_h*/
/*No:UNIQUE_STRING.us_element_sizeof*/
/*No:UNIQUE_STRING.us_upper*/
/*No:UNIQUE_STRING.us_native_array*/
void r902add1(T0* a1){
r794put(((T794*)(oBC902memory)),a1,a1);
}
/*No:UNIQUE_STRING.us_pow*/
void r902add2(T0* a1){
/*IF*/if ((((T818*)((T818*)(oBC364eiffel_parser))))->_case_insensitive/*0*/) {
r7to_lower(((T7*)a1));
}
/*FI*/r902add1(a1);
}
T0*oBC902memory=NULL;
/*No:UNIQUE_STRING.us_eof_code*/
/*No:UNIQUE_STRING.us_print_run_time_stack*/
int fBC902initialize=0;
void r902initialize(void){
if (fBC902initialize==0){
fBC902initialize=1;
r902add1(((T0*)ms1_473));
r902add1(((T0*)ms2_473));
r902add1(((T0*)ms3_473));
r902add1(((T0*)ms4_473));
r902add1(((T0*)ms5_473));
r902add1(((T0*)ms6_473));
r902add1(((T0*)ms7_473));
r902add1(((T0*)ms8_473));
r902add1(((T0*)ms9_473));
r902add1(((T0*)ms10_473));
r902add1(((T0*)ms11_473));
r902add1(((T0*)ms12_473));
r902add1(((T0*)ms13_473));
r902add1(((T0*)ms14_473));
r902add1(((T0*)ms15_473));
r902add1(((T0*)ms16_473));
r902add1(((T0*)ms17_473));
r902add1(((T0*)ms18_473));
r902add1(((T0*)ms19_473));
r902add1(((T0*)ms20_473));
r902add1(((T0*)ms21_473));
r902add1(((T0*)ms22_473));
r902add1(((T0*)ms23_473));
r902add1(((T0*)ms24_473));
r902add1(((T0*)ms25_473));
r902add1(((T0*)ms26_473));
r902add1(((T0*)ms27_473));
r902add1(((T0*)ms28_473));
r902add1(((T0*)ms29_473));
r902add1(((T0*)ms30_473));
r902add1(((T0*)ms31_473));
r902add1(((T0*)ms32_473));
r902add1(((T0*)ms33_473));
r902add1(((T0*)ms34_473));
r902add1(((T0*)ms35_473));
r902add1(((T0*)ms36_473));
r902add1(((T0*)ms37_473));
r902add1(((T0*)ms38_473));
r902add1(((T0*)ms39_473));
r902add1(((T0*)ms40_473));
r902add1(((T0*)ms41_473));
r902add1(((T0*)ms42_473));
r902add1(((T0*)ms43_473));
r902add1(((T0*)ms44_473));
r902add1(((T0*)ms45_473));
r902add1(((T0*)ms46_473));
r902add1(((T0*)ms47_473));
r902add1(((T0*)ms48_473));
r902add1(((T0*)ms49_473));
r902add1(((T0*)ms50_473));
r902add1(((T0*)ms51_473));
r902add1(((T0*)ms52_473));
r902add1(((T0*)ms53_473));
r902add1(((T0*)ms54_473));
r902add1(((T0*)ms55_473));
r902add1(((T0*)ms56_473));
r902add1(((T0*)ms57_473));
r902add1(((T0*)ms58_473));
r902add1(((T0*)ms59_473));
r902add1(((T0*)ms60_473));
r902add1(((T0*)ms61_473));
r902add1(((T0*)ms62_473));
r902add1(((T0*)ms63_473));
r902add1(((T0*)ms64_473));
r902add1(((T0*)ms65_473));
r902add1(((T0*)ms66_473));
r902add1(((T0*)ms67_473));
r902add1(((T0*)ms68_473));
r902add1(((T0*)ms69_473));
r902add1(((T0*)ms70_473));
r902add1(((T0*)ms71_473));
r902add1(((T0*)ms72_473));
r902add1(((T0*)ms73_473));
r902add1(((T0*)ms74_473));
r902add1(((T0*)ms75_473));
r902add1(((T0*)ms76_473));
r902add1(((T0*)ms77_473));
r902add1(((T0*)ms78_473));
r902add1(((T0*)ms79_473));
r902add1(((T0*)ms80_473));
r902add1(((T0*)ms81_473));
r902add1(((T0*)ms82_473));
r902add1(((T0*)ms83_473));
r902add1(((T0*)ms84_473));
r902add1(((T0*)ms85_473));
r902add1(((T0*)ms86_473));
r902add1(((T0*)ms87_473));
r902add1(((T0*)ms88_473));
r902add1(((T0*)ms89_473));
r902add2(((T0*)ms90_473));
r902add2(((T0*)ms91_473));
r902add2(((T0*)ms92_473));
r902add2(((T0*)ms93_473));
r902add2(((T0*)ms94_473));
r902add2(((T0*)ms95_473));
r902add2(((T0*)ms96_473));
r902add2(((T0*)ms97_473));
r902add1(((T0*)ms98_473));
r902add1(((T0*)ms99_473));
r902add1(((T0*)ms100_473));
r902add1(((T0*)ms101_473));
r902add1(((T0*)ms102_473));
r902add1(((T0*)ms103_473));
r902add1(((T0*)ms104_473));
r902add1(((T0*)ms105_473));
r902add1(((T0*)ms106_473));
r902add1(((T0*)ms107_473));
r902add1(((T0*)ms108_473));
r902add1(((T0*)ms109_473));
r902add1(((T0*)ms110_473));
r902add1(((T0*)ms111_473));
r902add1(((T0*)ms112_473));
r902add1(((T0*)ms113_473));
r902add1(((T0*)ms114_473));
r902add1(((T0*)ms115_473));
r902add1(((T0*)ms116_473));
r902add1(((T0*)ms117_473));
r902add1(((T0*)ms118_473));
r902add1(((T0*)ms119_473));
r902add1(((T0*)ms120_473));
r902add1(((T0*)ms121_473));
r902add1(((T0*)ms122_473));
r902add1(((T0*)ms123_473));
r902add1(((T0*)ms124_473));
r902add1(((T0*)ms125_473));
r902add1(((T0*)ms126_473));
r902add1(((T0*)ms127_473));
r902add1(((T0*)ms128_473));
r902add1(((T0*)ms129_473));
r902add1(((T0*)ms130_473));
r902add1(((T0*)ms131_473));
r902add1(((T0*)ms132_473));
r902add1(((T0*)ms133_473));
r902add1(((T0*)ms134_473));
r902add1(((T0*)ms135_473));
r902add1(((T0*)ms136_473));
r902add1(((T0*)ms137_473));
r902add1(((T0*)ms138_473));
r902add1(((T0*)ms139_473));
r902add1(((T0*)ms140_473));
r902add1(((T0*)ms141_473));
r902add1(((T0*)ms142_473));
r902add1(((T0*)ms143_473));
r902add1(((T0*)ms144_473));
r902add1(((T0*)ms145_473));
r902add1(((T0*)ms146_473));
r902add1(((T0*)ms147_473));
}}
/*No:UNIQUE_STRING.us_malloc*/
/*No:UNIQUE_STRING.us_fixed_array*/
/*No:UNIQUE_STRING.us_std_input*/
/*No:UNIQUE_STRING.us_lt*/
/*No:UNIQUE_STRING.us_minimum_double*/
/*No:UNIQUE_STRING.us_se_argv*/
/*No:UNIQUE_STRING.us_any*/
/*No:UNIQUE_STRING.us_or*/
/*No:UNIQUE_STRING.us_general*/
/*No:UNIQUE_STRING.us_maximum_double*/
/*No:UNIQUE_STRING.us_to_real*/
/*No:EIFFEL_PARSER.cc*/
/*No:EIFFEL_PARSER.ok*/
void r818a_r5(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_minus=NULL;
T0* _infix_plus=NULL;
/*IF*/if (r818skip1(C,'\53')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e5(C)) {
{T253*n=malloc(sizeof(*n));
*n=M253;
r253make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_plus=(T0*)n;
}
r818a_r5(C,_infix_plus);
}
else {
r818err_exp(_sp,((T0*)ms43_473));
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e5(C)) {
{T574*n=malloc(sizeof(*n));
*n=M574;
r574make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_minus=(T0*)n;
}
r818a_r5(C,_infix_minus);
}
else {
r818err_exp(_sp,((T0*)ms37_473));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e5(T818* C){
int R=0;
R=r818a_e6(C);
r818a_r6(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.arguments*/
/*No:EIFFEL_PARSER.fz_creation*/
/*No:EIFFEL_PARSER.em14*/
int r818a_binary(T818* C,T0* a1){
int R=0;
R=1;
/*IF*/if (r818skip2(C,'\74','\75')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms35_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip2(C,'\76','\75')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms32_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip2(C,'\57','\57')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms45_818),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip2(C,'\134','\134')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms46_818),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\53')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms43_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\55')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms37_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\52')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms38_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\57')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms47_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\76')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms33_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\74')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms36_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\136')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms47_818),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms50_473))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms50_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms34_473))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms34_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms27_473))) {
/*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms28_473),a1);
C->_last_binary=(T0*)n;
}
}
else {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms27_473),a1);
C->_last_binary=(T0*)n;
}
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms41_473))) {
/*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms42_473),a1);
C->_last_binary=(T0*)n;
}
}
else {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms41_473),a1);
C->_last_binary=(T0*)n;
}
}
/*FI*/}
else {
C->_last_binary=NULL;
R=0;
}
/*FI*/return R;
}
void r818a_r6(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_div=NULL;
T0* _infix_int_rem=NULL;
T0* _infix_int_div=NULL;
T0* _infix_times=NULL;
/*IF*/if (r818skip1(C,'\52')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T414*n=malloc(sizeof(*n));
*n=M414;
r414make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_times=(T0*)n;
}
r818a_r6(C,_infix_times);
}
else {
r818err_exp(_sp,((T0*)ms38_473));
}
/*FI*/}
 else if (r818skip2(C,'\57','\57')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T460*n=malloc(sizeof(*n));
*n=M460;
r460make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_int_div=(T0*)n;
}
r818a_r6(C,_infix_int_div);
}
else {
r818err_exp(_sp,((T0*)ms120_818));
}
/*FI*/}
 else if (r818skip2(C,'\134','\134')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T453*n=malloc(sizeof(*n));
*n=M453;
r453make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_int_rem=(T0*)n;
}
r818a_r6(C,_infix_int_rem);
}
else {
r818err_exp(_sp,((T0*)ms121_818));
}
/*FI*/}
 else if (r818skip1unless2(C,'\57','\75')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T520*n=malloc(sizeof(*n));
*n=M520;
r520make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_div=(T0*)n;
}
r818a_r6(C,_infix_div);
}
else {
r818err_exp(_sp,((T0*)ms47_473));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e6(T818* C){
int R=0;
R=r818a_e7(C);
r818a_r7(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.em15*/
/*No:EIFFEL_PARSER.last_parent*/
void r818a_r7(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_power=NULL;
/*IF*/if (r818skip1(C,'\136')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e7(C)) {
{T557*n=malloc(sizeof(*n));
*n=M557;
r557make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_power=(T0*)n;
}
r818a_r7(C,_infix_power);
}
else {
r818err_exp(_sp,((T0*)ms122_818));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e7(T818* C){
int R=0;
R=r818a_e8(C);
r818a_r8(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
int r818a_boolean_constant(T818* C){
int R=0;
/*IF*/if (r818a_keyword(C,((T0*)ms47_470))) {
{T849*n=malloc(sizeof(*n));
*n=M849;
/*[IRF3.3make*/((((T849*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*]*/
C->_last_boolean_constant=(T0*)n;
}
R=1;
}
 else if (r818a_keyword(C,((T0*)ms17_470))) {
{T367*n=malloc(sizeof(*n));
*n=M367;
/*[IRF3.3make*/((((T367*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*]*/
C->_last_boolean_constant=(T0*)n;
}
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_type*/
int r818a_base_type(T818* C){
int R=0;
T0* _sp=NULL;
R=1;
/*IF*/if (r818a_keyword(C,((T0*)ms1_473))) {
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms2_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make(n,_sp,(((T818*)C))->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms40_818));
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms18_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms41_818));
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms42_818))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms43_818));
}
/*FI*/r818warning(_sp,((T0*)ms44_818));
}
 else if (r818a_keyword(C,((T0*)ms6_473))) {
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms8_473))) {
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms11_473))) {
{T388*n=malloc(sizeof(*n));
*n=M388;
r388make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms15_473))) {
{T788*n=malloc(sizeof(*n));
*n=M788;
r788make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms19_473))) {
{T284*n=malloc(sizeof(*n));
*n=M284;
r284make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms21_473))) {
{T900*n=malloc(sizeof(*n));
*n=M900;
r900make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms23_473))) {
{T209*n=malloc(sizeof(*n));
*n=M209;
r209make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms25_473))) {
{T491*n=malloc(sizeof(*n));
*n=M491;
r491make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else {
R=0;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.em16*/
/*No:EIFFEL_PARSER.nb_warnings*/
/*No:EIFFEL_PARSER.last_expression*/
/*No:EIFFEL_PARSER.last_character_constant*/
void r818a_r8(T818* C,T0* a1){
T0* _infix_freeop=NULL;
T0* _infix_name=NULL;
/*IF*/if (r818a_free_operator(C)) {
_infix_name=r511to_infix_name_use(((T511*)(oBC818tmp_name)));
/*IF*/if (r818a_e8(C)) {
{T534*n=malloc(sizeof(*n));
*n=M534;
r534make(n,a1,_infix_name,(((T818*)C))->_last_expression/*97*/);
_infix_freeop=(T0*)n;
}
r818a_r8(C,_infix_freeop);
}
else {
r818err_exp((((T454*)((T454*)_infix_name)))->_start_position/*8*/,(((T454*)((T454*)_infix_name)))->_to_string/*4*/);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e8(T818* C){
int R=0;
T0* _sp=NULL;
T0* _prefix_freeop=NULL;
T0* _op=NULL;
T0* _prefix_moins=NULL;
T0* _prefix_plus=NULL;
T0* _prefix_not=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e8(C)) {
{T180*n=malloc(sizeof(*n));
*n=M180;
r180make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_prefix_not=(T0*)n;
}
C->_last_expression=_prefix_not;
R=1;
}
else {
r818err_exp(_sp,((T0*)ms40_473));
}
/*FI*/}
 else if (r818skip1(C,'\53')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e8(C)) {
{T767*n=malloc(sizeof(*n));
*n=M767;
r767make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_prefix_plus=(T0*)n;
}
C->_last_expression=_prefix_plus;
R=1;
}
else {
r818err_exp(_sp,((T0*)ms73_818));
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e8(C)) {
{T72*n=malloc(sizeof(*n));
*n=M72;
r72make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_prefix_moins=(T0*)n;
}
C->_last_expression=_prefix_moins;
R=1;
}
else {
r818err_exp(_sp,((T0*)ms74_818));
}
/*FI*/}
 else if (r818a_free_operator(C)) {
_op=r511to_prefix_name(((T511*)(oBC818tmp_name)));
/*IF*/if (r818a_e8(C)) {
{T990*n=malloc(sizeof(*n));
*n=M990;
/*[IRF3.6make*/{T990* C1=n;
T0* b1=(((T818*)C))->_last_expression/*97*/;
T0* b2=_op;
r990make_call0(C1,b1,b2);
}/*]*/
_prefix_freeop=(T0*)n;
}
C->_last_expression=_prefix_freeop;
R=1;
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms75_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r818err_exp((((T406*)((T406*)_op)))->_start_position/*8*/,(((T406*)((T406*)_op)))->_to_string/*4*/);
}
/*FI*/}
else {
R=r818a_e9(C);
}
/*FI*/return R;
}
int r818a_feature_declaration(T818* C){
int R=0;
r505initialize(((T505*)(oBC818tmp_feature)));
/*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
/*IF*/if (r818a_feature_name(C)) {
R=1;
X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
else {
r818fcp(C,((T0*)ms140_818));
}
/*FI*/}
 else if (r818a_feature_name(C)) {
R=1;
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
/*FI*/while (!(!(r818skip1(C,'\54')))) {
/*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
/*IF*/if (r818a_feature_name(C)) {
X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
else {
r818fcp(C,((T0*)ms92_818));
}
/*FI*/}
 else if (r818a_feature_name(C)) {
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
else {
/*[IRF3.6ecp*/{T818* C1=C;
T0* b1=((T0*)ms93_818);
r818error(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*IF*/if (R) {
r818a_formal_arg_list(C);
C->_function_type=NULL;
/*IF*/if (r818skip1(C,'\72')) {
/*IF*/if (r818a_type(C)) {
C->_function_type=(((T818*)C))->_last_type/*157*/;
/*[IRF3.3set_type*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_type)=((((T818*)C))->_last_type/*157*/);
/*]*/
}
else {
r818fcp(C,((T0*)ms156_818));
}
/*FI*/}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms27_470))) {
/*IF*/if (r818a_keyword(C,((T0*)ms49_470))) {
C->_last_feature_declaration=r505to_cst_att_unique(((T505*)(oBC818tmp_feature)));
}
 else if (r818a_boolean_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_boolean(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_boolean_constant/*81*/);
}
 else if (r818a_character_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_character(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_character_constant/*85*/);
}
 else if (r818a_manifest_string(C)) {
C->_last_feature_declaration=r505to_cst_att_string(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_manifest_string/*145*/);
}
 else if (r818a_bit_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_bit(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_bit_constant/*77*/);
}
 else if (r818a_real_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_real(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_real_constant/*153*/);
}
 else if (r818a_integer_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_integer(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_integer_constant/*129*/);
}
else {
C->_last_feature_declaration=r818a_routine(C);
}
/*FI*/}
else {
C->_last_feature_declaration=r505to_writable_attribute(((T505*)(oBC818tmp_feature)));
}
/*FI*/C->_function_type=NULL;
C->_arguments=NULL;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_integer*/
/*No:EIFFEL_PARSER.em17*/
int r818a_integer_constant(T818* C){
int R=0;
int _c=0;
int _l=0;
/*IF*/if (r818skip1(C,'\53')) {
_l=(((T818*)C))->_start_line/*169*/;
_c=(((T818*)C))->_start_column/*165*/;
/*IF*/if (r818a_integer(C)) {
r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*8*/)),_l,_c);
R=1;
}
else {
r818fcp(C,((T0*)ms69_470));
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
_l=(((T818*)C))->_start_line/*169*/;
_c=(((T818*)C))->_start_column/*165*/;
/*IF*/if (r818a_integer(C)) {
r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*8*/)),_l,_c);
r342unary_minus(((T342*)((((T818*)C))->_last_integer_constant/*129*/)));
R=1;
}
else {
r818fcp(C,((T0*)ms69_470));
}
/*FI*/}
else {
R=r818a_integer(C);
}
/*FI*/return R;
}
void r818a_creation_clause(T818* C,T0* a1){
T0* _creation_clause=NULL;
T0* _list=NULL;
T0* _comments=NULL;
T0* _clients=NULL;
_clients=r818a_clients(C);
_comments=r818get_comments(C);
/*IF*/if (r818a_feature_list(C)) {
_list=(((T818*)C))->_last_feature_list/*105*/;
}
/*FI*/{T583*n=malloc(sizeof(*n));
*n=M583;
r583make(n,a1,_clients,_comments,_list);
_creation_clause=(T0*)n;
}
r605add_creation_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_creation_clause);
}
int r818a_e9(T818* C){
int R=0;
T0* _e_old=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms34_470))) {
/*IF*/if (!((((T818*)C))->_in_ensure/*37*/)) {
r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms76_818));
}
/*FI*//*IF*/if (r818a_e10(C)) {
{T664*n=malloc(sizeof(*n));
*n=M664;
/*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T818*)C))->_last_expression/*97*/);
/*]*/
_e_old=(T0*)n;
}
C->_last_expression=_e_old;
R=1;
}
else {
r818fcp(C,((T0*)ms77_818));
}
/*FI*/}
else {
R=r818a_e10(C);
}
/*FI*/return R;
}
int r818a_index_value(T818* C){
int R=0;
/*IF*/if (r818a_identifier(C)) {
C->_last_index_value=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
R=1;
}
 else if (r818a_manifest_constant(C)) {
C->_last_index_value=(((T818*)C))->_last_manifest_constant/*141*/;
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.em18*/
void r818a_new_export_list(T818* C){
int _state=0;
T0* _new_export_item=NULL;
T0* _items=NULL;
T0* _clients=NULL;
T0* _sp=NULL;
T0* _export_list=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms15_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\173')) {
_clients=r818a_clients(C);
_state=1;
}
 else if (((((T818*)C))->_cc/*24*/)==('\73')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
else {
/*IF*/if ((_items)!=((void*)(NULL))) {
{T671*n=malloc(sizeof(*n));
*n=M671;
r671make(n,_sp,_items);
_export_list=(T0*)n;
}
/*[IRF3.3set_export*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_export_list)=(_export_list);
/*]*/
}
/*FI*/_state=4;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_keyword(C,((T0*)ms2_470))) {
{T542*n=malloc(sizeof(*n));
*n=M542;
r542make_all(n,_clients);
_new_export_item=(T0*)n;
}
/*IF*/if ((_items)==((void*)(NULL))) {
_items=se_ma587(1,_new_export_item);
}
else {
r587add_last(((T587*)_items),_new_export_item);
}
/*FI*/_state=2;
}
else {
/*IF*/if (r818a_feature_list(C)) {
{T542*n=malloc(sizeof(*n));
*n=M542;
r542make(n,_clients,(((T818*)C))->_last_feature_list/*105*/);
_new_export_item=(T0*)n;
}
/*IF*/if ((_items)==((void*)(NULL))) {
_items=se_ma587(1,_new_export_item);
}
else {
r587add_last(((T587*)_items),_new_export_item);
}
/*FI*/_state=2;
}
else {
_state=3;
}
/*FI*/}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip1(C,'\73')) {
_state=0;
}
 else if (((((T818*)C))->_cc/*24*/)==('\173')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms144_818);
r818warning(r818current_position(C1),b1);
}/*]*/
_state=0;
}
else {
/*IF*/if ((_items)!=((void*)(NULL))) {
{T671*n=malloc(sizeof(*n));
*n=M671;
r671make(n,_sp,_items);
_export_list=(T0*)n;
}
/*[IRF3.3set_export*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_export_list)=(_export_list);
/*]*/
}
/*FI*/_state=4;
}
/*FI*/}
 else{r818fcp(C,((T0*)ms149_818));
_state=4;
}}
}
}
/*FI*/}
/*No:EIFFEL_PARSER.last_manifest_string*/
/*No:EIFFEL_PARSER.last_base_type*/
/*No:EIFFEL_PARSER.em19*/
/*No:EIFFEL_PARSER.last_comments*/
int r818a_retry(T818* C){
int R=0;
/*IF*/if (r818a_keyword(C,((T0*)ms42_470))) {
/*IF*/if (!((((T818*)C))->_in_rescue/*41*/)) {
r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms30_818));
}
/*FI*/{T526*n=malloc(sizeof(*n));
*n=M526;
/*[IRF3.3make*/((((T526*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*]*/
C->_last_instruction=(T0*)n;
}
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.drop_comments*/
int r818a_e10(T818* C){
int R=0;
/*IF*/if (r818a_strip(C)) {
R=1;
}
 else if (r818skip1(C,'\50')) {
R=1;
/*IF*/if (r818a_expression(C)) {
/*IF*/if (r818skip1(C,'\51')) {
r818a_r10(C,0,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
}
else {
r818fcp(C,((T0*)ms78_818));
}
/*FI*/}
else {
r818fcp(C,((T0*)ms79_818));
}
/*FI*/}
 else if (r818a_manifest_constant(C)) {
C->_last_expression=(((T818*)C))->_last_manifest_constant/*141*/;
R=1;
/*IF*/if (r818skip1unless2(C,'\56','\56')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms80_818);
r818warning(r818current_position(C1),b1);
}/*]*/
r818a_after_a_dot(C,0,(((T818*)C))->_last_expression/*97*/);
}
/*FI*/}
 else if (r818a_identifier(C)) {
R=1;
/*IF*/if (((((r818a_result(C))||(r818a_current(C)))||(r818a_void(C)))||(r818a_local_variable(C)))||(r818a_argument(C))) {
r818a_r10(C,0,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
}
else {
r818a_function_call(C);
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_prefix*/
void r818a_r10(T818* C,int a1,T0* a2,T0* a3,T0* a4){
/*IF*/if (r818skip1unless2(C,'\56','\56')) {
r818a_after_a_dot(C,a1,r818to_call(a2,a3,a4));
}
else {
/*IF*/if (a1) {
C->_last_instruction=r818to_proc_call(C,a2,a3,a4);
C->_last_expression=NULL;
}
else {
C->_last_expression=r818to_call(a2,a3,a4);
C->_last_instruction=NULL;
}
/*FI*/}
/*FI*/}
void r818skip_comments(T818* C){
int _state=0;
T0* _sp=NULL;
while (!((_state)==(2))) {
{int z1=_state;

if((0==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((9<=z2)&&(z2<=10))||(32==z2)){
r818next_char(C);
}
 else 
if((45==z2)){
r818next_char(C);
_state=1;
}
 else{_state=2;
}}
}
 else {{int z2=(((T818*)C))->_cc/*24*/;

if((45==z2)){
/*IF*/if ((((T818*)C))->_drop_comments/*4*/) {
}
else {
/*IF*/if (((((T818*)C))->_last_comments/*25*/)==((void*)(NULL))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_line/*16*/,((((T818*)C))->_column/*12*/)-(1));
_sp=(T0*)n;
}
}
/*FI*/}
/*FI*/r818next_char(C);
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC818lcs)))))->_count)=(0);
/*]*/
while (!(((((T818*)C))->_cc/*24*/)==('\n'))) {
r7extend(((T7*)(oBC818lcs)),(((T818*)C))->_cc/*24*/);
r818next_char(C);
}
/*IF*/if ((((T818*)C))->_drop_comments/*4*/) {
}
else {
/*IF*/if (((((T818*)C))->_last_comments/*25*/)==((void*)(NULL))) {
{T393*n=malloc(sizeof(*n));
*n=M393;
r393make(n,_sp,se_ma52(1,r7twin(((T7*)(oBC818lcs)))));
C->_last_comments=(T0*)n;
}
}
else {
/*[IRF3.5add_last*/r52add_last(((T52*)((((T393*)((T393*)((((T818*)C))->_last_comments/*25*/))))->_list/*4*/)),r7twin(((T7*)(oBC818lcs))));
/*]*/
}
/*FI*/}
/*FI*/_state=0;
}
 else{r818prev_char(C);
_state=2;
}}
}}
}
}
/*No:EIFFEL_PARSER.last_class_type*/
/*No:EIFFEL_PARSER.us_array*/
/*No:EIFFEL_PARSER.fz_c_withoutcurrent*/
T0* r818to_proc_call(T818* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if ((a2)==((void*)(NULL))) {
r818fcp(C,((T0*)ms135_818));
}
 else if ((a3)==((void*)(NULL))) {
{T268*n=malloc(sizeof(*n));
*n=M268;
r268make(n,a1,a2);
R=(T0*)n;
}
}
 else if ((r431count(((T431*)a3)))==(1)) {
{T317*n=malloc(sizeof(*n));
*n=M317;
r317make(n,a1,a2,a3);
R=(T0*)n;
}
}
else {
{T568*n=malloc(sizeof(*n));
*n=M568;
r568make(n,a1,a2,a3);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r818a_tag_mark(T818* C){
int R=0;
/*IF*/if (r818a_identifier(C)) {
/*IF*/if (r818skip1unless2(C,'\72','\75')) {
R=1;
C->_last_tag_mark=r511to_tag_name(((T511*)(oBC818tmp_name)));
}
else {
C->_last_tag_mark=NULL;
r818go_back_at(C,(((T511*)((T511*)(oBC818tmp_name))))->_li/*8*/,(((T511*)((T511*)(oBC818tmp_name))))->_co/*4*/);
}
/*FI*/}
else {
C->_last_tag_mark=NULL;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.nb_errors*/
/*No:EIFFEL_PARSER.start_line*/
void r818a_index_list(T818* C){
while (!(!(r818a_index_clause(C)))) {
C->_ok=r818skip1(C,'\73');
}
}
/*No:EIFFEL_PARSER.last_real_constant*/
T0* r818a_external(T818* C){
T0* R=NULL;
T0* _l=NULL;
/*IF*/if (((((T818*)C))->_cc/*24*/)!=('\42')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms157_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
else {
C->_ok=r818skip1(C,'\42');
}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms121_470))) {
{T85*n=malloc(sizeof(*n));
*n=M85;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms98_470))) {
{T893*n=malloc(sizeof(*n));
*n=M893;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms90_470))) {
{T240*n=malloc(sizeof(*n));
*n=M240;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms99_470))) {
{T320*n=malloc(sizeof(*n));
*n=M320;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms91_470))) {
{T680*n=malloc(sizeof(*n));
*n=M680;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms81_818))) {
{T85*n=malloc(sizeof(*n));
*n=M85;
_l=(T0*)n;
}
r818wcpefnc(C,((T0*)ms82_818),((T0*)ms121_470));
}
 else if (r818a_keyword(C,((T0*)ms83_818))) {
{T893*n=malloc(sizeof(*n));
*n=M893;
_l=(T0*)n;
}
r818wcpefnc(C,((T0*)ms84_818),((T0*)ms98_470));
}
 else if (r818a_keyword(C,((T0*)ms85_818))) {
{T240*n=malloc(sizeof(*n));
*n=M240;
_l=(T0*)n;
}
r818wcpefnc(C,((T0*)ms86_818),((T0*)ms90_470));
}
 else if (r818a_keyword(C,((T0*)ms87_818))) {
{T320*n=malloc(sizeof(*n));
*n=M320;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms88_818))) {
{T680*n=malloc(sizeof(*n));
*n=M680;
_l=(T0*)n;
}
r818wcpefnc(C,((T0*)ms89_818),((T0*)ms91_470));
}
 else if (r818a_keyword(C,((T0*)ms28_470))) {
{T300*n=malloc(sizeof(*n));
*n=M300;
_l=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms29_470))) {
{T970*n=malloc(sizeof(*n));
*n=M970;
_l=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms90_818));
}
/*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)!=('\42')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms157_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
else {
C->_ok=r818skip1(C,'\42');
}
/*FI*/R=r505to_external_routine(((T505*)(oBC818tmp_feature)),_l,r818a_alias(C));
return R;
}
/*No:EIFFEL_PARSER.show_nb_errors*/
int r818a_class_type(T818* C){
int R=0;
T0* _generic_list=NULL;
T0* _base_class_name=NULL;
int _state=0;
/*IF*/if (r818a_base_type(C)) {
C->_last_class_type=(((T818*)C))->_last_base_type/*69*/;
R=1;
}
 else if (r818a_base_class_name(C)) {
R=1;
_base_class_name=(((T818*)C))->_last_class_name/*89*/;
while (!((_state)>(2))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818skip1(C,'\133')) {
_state=1;
}
else {
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_base_class_name);
/*]*/
C->_last_class_type=(T0*)n;
}
_state=3;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_type(C)) {
/*IF*/if ((_generic_list)==((void*)(NULL))) {
_generic_list=se_ma701(1,(((T818*)C))->_last_type/*157*/);
}
else {
r701add_last(((T701*)_generic_list),(((T818*)C))->_last_type/*157*/);
}
/*FI*/_state=2;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms150_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
}
 else if (((((T818*)C))->_cc/*24*/)==('\135')) {
_state=2;
}
else {
r818fcp(C,((T0*)ms156_818));
_state=2;
}
/*FI*/}
 else{/*IF*/if (r818skip1(C,'\54')) {
_state=1;
}
 else if (((((T818*)C))->_cc/*24*/)==('\135')) {
/*IF*/if ((_generic_list)==((void*)(NULL))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms54_818);
r818warning(r818current_position(C1),b1);
}/*]*/
{T657*n=malloc(sizeof(*n));
*n=M657;
/*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_base_class_name);
/*]*/
C->_last_class_type=(T0*)n;
}
}
else {
{T720*n=malloc(sizeof(*n));
*n=M720;
r720make(n,_base_class_name,_generic_list);
C->_last_class_type=(T0*)n;
}
}
/*FI*/C->_ok=r818skip1(C,'\135');
_state=3;
}
 else if (r818a_type(C)) {
/*IF*/if ((_generic_list)==((void*)(NULL))) {
_generic_list=se_ma701(1,(((T818*)C))->_last_type/*157*/);
}
else {
r701add_last(((T701*)_generic_list),(((T818*)C))->_last_type/*157*/);
}
/*FI*/r818warning(X291start_position((((T818*)C))->_last_type/*157*/),((T0*)ms143_818));
}
else {
r818fcp(C,((T0*)ms55_818));
_state=3;
}
/*FI*/}}
}
}
/*FI*/return R;
}
T0* r818analyse_class(T818* C,T0* a1){
T0* R=NULL;
T0* _path=NULL;
int _old_nbw=0;
int _old_nbe=0;
_path=(((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/;
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)) {
/*[IRF3.6append*/{T0* b1=((T0*)ms1_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/r306put_integer(((T306*)(oBC364echo)),(/*(IRF4.9base_class_count*/(((T718*)((T718*)(oBC604base_class_dictionary))))->_count/*32*//*)*/)+(1));
r306put_character(((T306*)(oBC364echo)),'\11');
r306put_string(((T306*)(oBC364echo)),_path);
r306put_character(((T306*)(oBC364echo)),'\n');
_old_nbe=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
_old_nbw=/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/;
C->_is_running=1;
C->_function_type=NULL;
C->_in_ensure=0;
C->_last_comments=NULL;
C->_ms_numbering=0;
C->_line=1;
C->_column=1;
C->_current_line=r676item((((T818*)C))->_line/*16*/);
/*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
C->_cc='\n';
}
else {
C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
}
/*FI*/{T605*n=malloc(sizeof(*n));
*n=M605;
r605make(n);
C->_last_base_class=(T0*)n;
}
r818skip_comments(C);
r818a_class_declaration(C);
C->_is_running=0;
/*[IRF3.3unset_is_ready*/((((T676*)(((T676*)(oBC364parser_buffer)))))->_path)=(NULL);
/*]*/
R=(((T818*)C))->_last_base_class/*65*/;
/*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_old_nbe))>(0)) {
/*[IRF3.2show_nb_errors*/r818show_nb(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/,((T0*)ms10_818));
/*]*/
r306w_put_string(((T0*)ms4_818));
r306w_put_string(_path);
r306w_put_string(((T0*)ms5_818));
R=NULL;
}
 else if (((/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/)-(_old_nbw))>(0)) {
/*[IRF3.2show_nb_warnings*/r818show_nb(/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/,((T0*)ms9_818));
/*]*/
}
/*FI*//*IF*/if ((R)!=((void*)(NULL))) {
r604add_class(((T604*)(oBC364small_eiffel)),R);
/*IF*/if (((a1)!=((void*)(NULL)))&&(((((T451*)((T451*)a1)))->_to_string/*0*/)!=((void*)((((T451*)((T451*)((((T605*)((T605*)R)))->_base_class_name/*24*/))))->_to_string/*0*/)))) {
r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms135_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=_path;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms6_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T451*)((T451*)a1)))->_to_string/*0*/;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/r605get_started(((T605*)R));
}
/*FI*/return R;
}
T0*oBC364parser_buffer=NULL;
T0*oBC818tmp_feature=NULL;
int r818a_character_constant(T818* C){
int R=0;
char _value=0;
int _printing_mode=0;
int _state=0;
T0* _sp=NULL;
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\47')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
_sp=(T0*)n;
}
R=1;
while (!((_state)>(2))) {
r818next_char(C);
{int z1=_state;

if((0==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if((37==z2)){
_state=1;
}
 else 
if((39==z2)){
r818fcp(C,((T0*)ms148_818));
_state=2;
}
 else{_value=(((T818*)C))->_cc/*24*/;
_printing_mode=0;
_state=2;
}}
}
 else 
if((1==z1)){
_printing_mode=1;
_state=2;
{int z2=(((T818*)C))->_cc/*24*/;

if((65==z2)){
_value='\100';
}
 else 
if((66==z2)){
_value='\10';
}
 else 
if((67==z2)){
_value='\136';
}
 else 
if((68==z2)){
_value='\44';
}
 else 
if((70==z2)){
_value='\14';
}
 else 
if((72==z2)){
_value='\134';
}
 else 
if((76==z2)){
_value='\176';
}
 else 
if((78==z2)){
_value='\n';
}
 else 
if((81==z2)){
_value='\140';
}
 else 
if((82==z2)){
_value='\15';
}
 else 
if((83==z2)){
_value='\43';
}
 else 
if((84==z2)){
_value='\11';
}
 else 
if((85==z2)){
_value='\0';
}
 else 
if((86==z2)){
_value='\174';
}
 else 
if((37==z2)){
_value='\45';
}
 else 
if((39==z2)){
_value='\47';
}
 else 
if((34==z2)){
_value='\42';
}
 else 
if((40==z2)){
_value='\133';
}
 else 
if((41==z2)){
_value='\135';
}
 else 
if((60==z2)){
_value='\173';
}
 else 
if((62==z2)){
_value='\175';
}
 else 
if((47==z2)){
r818a_ascii_code(C);
_value=((char)((((T818*)C))->_last_ascii_code/*61*/));
_printing_mode=2;
}
 else{r818fcp(C,((T0*)ms24_818));
}}
}
 else{_state=3;
{int z2=(((T818*)C))->_cc/*24*/;

if((39==z2)){
}
 else{r818fcp(C,((T0*)ms148_818));
}}
r818next_char(C);
r818skip_comments(C);
}}
}
{T260*n=malloc(sizeof(*n));
*n=M260;
r260make(n,_sp,_value,_printing_mode);
C->_last_character_constant=(T0*)n;
}
}
/*FI*/return R;
}
int r818a_check(T818* C){
int R=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms4_470))) {
R=1;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
_hc=r818get_comments(C);
_al=r818a_assertion(C);
/*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
{T292*n=malloc(sizeof(*n));
*n=M292;
r292make(n,_sp,_hc,_al);
C->_last_instruction=(T0*)n;
}
}
else {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms48_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
r818fcp(C,((T0*)ms49_818));
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.go_back*/
/*No:EIFFEL_PARSER.current_class*/
/*No:EIFFEL_PARSER.fz_export*/
/*No:EIFFEL_PARSER.fz_invariant*/
/*No:EIFFEL_PARSER.us_or_else*/
/*No:EIFFEL_PARSER.is_running*/
int r818a_result(T818* C){
int R=0;
/*IF*/if (r511is_result()) {
/*IF*/if (((((T818*)C))->_function_type/*29*/)==((void*)(NULL))) {
r818error(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms152_818));
}
/*FI*/C->_last_expression=r511to_e_result(((T511*)(oBC818tmp_name)));
R=1;
}
/*FI*/return R;
}
int r818a_manifest_string(T818* C){
int R=0;
int _state=0;
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
R=1;
C->_ms_numbering=((((T818*)C))->_ms_numbering/*57*/)+(1);
{T805*n=malloc(sizeof(*n));
*n=M805;
r805make(n,r818pos((((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/),(((T818*)C))->_ms_numbering/*57*/);
C->_last_manifest_string=(T0*)n;
}
while (!((_state)>(3))) {
r818next_char(C);
{int z1=_state;

if((0==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if((10==z2)){
r818fcp(C,((T0*)ms146_818));
}
 else 
if((34==z2)){
_state=4;
}
 else 
if((37==z2)){
_state=1;
}
 else{/*[IRF3.5add*/r7extend(((T7*)((((T805*)((T805*)((((T818*)C))->_last_manifest_string/*145*/))))->_to_string/*12*/)),(((T818*)C))->_cc/*24*/);
/*]*/
}}
}
 else 
if((1==z1)){
_state=0;
{int z2=(((T818*)C))->_cc/*24*/;

if((10==z2)){
_state=3;
}
 else 
if((65==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\100');
}
 else 
if((66==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\10');
}
 else 
if((67==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\136');
}
 else 
if((68==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\44');
}
 else 
if((70==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\14');
}
 else 
if((72==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\134');
}
 else 
if((76==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\176');
}
 else 
if((78==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\n');
}
 else 
if((81==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\140');
}
 else 
if((82==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\15');
}
 else 
if((83==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\43');
}
 else 
if((84==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\11');
}
 else 
if((85==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\0');
}
 else 
if((86==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\174');
}
 else 
if((37==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\45');
}
 else 
if((39==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\47');
}
 else 
if((34==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\42');
}
 else 
if((40==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\133');
}
 else 
if((41==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\135');
}
 else 
if((60==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\173');
}
 else 
if((62==z2)){
r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\175');
}
 else 
if((47==z2)){
r818a_ascii_code(C);
r805add_ascii(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),((char)((((T818*)C))->_last_ascii_code/*61*/)));
}
 else 
if((9==z2)||(32==z2)){
_state=2;
}
 else{r818fcp(C,((T0*)ms26_818));
_state=0;
}}
}
 else 
if((2==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if((10==z2)){
_state=3;
}
 else 
if((9==z2)||(32==z2)){
}
 else{r818fcp(C,((T0*)ms27_818));
}}
}
 else{{int z2=(((T818*)C))->_cc/*24*/;

if((9==z2)||(32==z2)){
}
 else 
if((37==z2)){
r805break_line(((T805*)((((T818*)C))->_last_manifest_string/*145*/)));
_state=0;
}
 else 
if((10==z2)){
r818fcp(C,((T0*)ms146_818));
_state=0;
}
 else{r818fcp(C,((T0*)ms28_818));
_state=0;
}}
}}
}
r818next_char(C);
r818skip_comments(C);
}
/*FI*/return R;
}
void r818a_function_call(T818* C){
T0* _e_current=NULL;
T0* _sfn=NULL;
_sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*16*/,0);
_e_current=(T0*)n;
}
r818a_r10(C,0,_e_current,_sfn,r818a_actuals(C));
}
/*No:EIFFEL_PARSER.fz_01*/
int r818a_real_constant(T818* C){
int R=0;
int _c=0;
int _l=0;
_l=(((T818*)C))->_line/*16*/;
_c=(((T818*)C))->_column/*12*/;
/*IF*/if (r818skip1(C,'\53')) {
/*IF*/if (r818a_real(C)) {
r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*8*/)),_l,_c);
R=1;
}
else {
r818go_back_at(C,_l,_c);
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
/*IF*/if (r818a_real(C)) {
r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*8*/)),_l,_c);
/*[IRF3.5unary_minus*/r7add_first(((T7*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_to_string/*12*/)),'\55');
/*]*/
R=1;
}
else {
r818go_back_at(C,_l,_c);
}
/*FI*/}
 else if (r818a_real(C)) {
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_inspect*/
void r818show_nb(int a1,T0* a2){
/*IF*/if ((a1)>(0)) {
r306w_put_string(((T0*)ms75_470));
r306w_put_integer(a1);
r306w_put_string(a2);
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_c_withcurrent*/
/*No:EIFFEL_PARSER.fz_03*/
/*No:EIFFEL_PARSER.fz_rename*/
int r818a_identifier1(T818* C){
int R=0;
int _state=0;
/*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
/*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
while (!((_state)>(0))) {
r818next_char(C);
{int z1=(((T818*)C))->_cc/*24*/;

if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else 
if(((65<=z1)&&(z1<=90))){
/*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else{_state=1;
}}
}
/*IF*/if (r511isa_keyword()) {
_state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
while (!((_state)==(0))) {
_state=(_state)-(1);
r818prev_char(C);
}
}
else {
R=1;
r818skip_comments(C);
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_once*/
/*No:EIFFEL_PARSER.ecp*/
void r818fcp(T818* C,T0* a1){
r683add_position(r818current_position(C));
/*[IRF3.6fatal_error*/{T0* b1=a1;
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
int r818a_conditional(T818* C){
int R=0;
T0* _ifthenelse=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms21_470))) {
R=1;
{T530*n=malloc(sizeof(*n));
*n=M530;
/*[IRF3.3make*/((((T530*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*]*/
_ifthenelse=(T0*)n;
}
r818a_then_part_list(C,_ifthenelse);
/*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
/*[IRF3.3set_else_compound*/((((T530*)(((T530*)_ifthenelse))))->_else_compound)=(r818a_compound2(C,((T0*)ms60_818),((T0*)ms12_470)));
/*]*/
}
else {
/*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms61_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*FI*/C->_last_instruction=_ifthenelse;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_real*/
void r818a_procedure_call(T818* C){
T0* _e_current=NULL;
T0* _sfn=NULL;
_sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*16*/,0);
_e_current=(T0*)n;
}
r818a_r10(C,1,_e_current,_sfn,r818a_actuals(C));
}
/*No:EIFFEL_PARSER.us_implies*/
T0*oBC818tmp_string=NULL;
int r818a_integer(T818* C){
int R=0;
int _value=0;
int _state=0;
/*IF*/if (r3is_digit((((T818*)C))->_cc/*24*/)) {
R=1;
C->_start_line=(((T818*)C))->_line/*16*/;
C->_start_column=(((T818*)C))->_column/*12*/;
_value=r3value((((T818*)C))->_cc/*24*/);
while (!((_state)>(7))) {
r818next_char(C);
{int z1=_state;

if((0==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
_state=1;
}
 else 
if((95==z2)){
_state=4;
}
 else{_state=8;
}}
}
 else 
if((1==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
_state=2;
}
 else 
if((95==z2)){
_state=4;
}
 else{_state=8;
}}
}
 else 
if((2==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
_state=3;
}
 else 
if((95==z2)){
_state=4;
}
 else{_state=8;
}}
}
 else 
if((3==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
}
 else 
if((95==z2)){
r818fcp(C,((T0*)ms147_818));
}
 else{_state=8;
}}
}
 else 
if((4==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
_state=5;
}
 else{r818fcp(C,((T0*)ms147_818));
}}
}
 else 
if((5==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
_state=6;
}
 else{r818fcp(C,((T0*)ms147_818));
}}
}
 else 
if((6==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
_state=7;
}
 else{r818fcp(C,((T0*)ms147_818));
}}
}
 else {{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r818fcp(C,((T0*)ms147_818));
}
 else 
if((95==z2)){
_state=4;
}
 else{_state=8;
}}
}}
}
/*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
r818fcp(C,((T0*)ms158_818));
}
/*FI*/r818skip_comments(C);
{T342*n=malloc(sizeof(*n));
*n=M342;
r342make(n,_value,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_integer_constant=(T0*)n;
}
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_binary*/
int r818a_identifier2(T818* C){
int R=0;
int _do_warning=0;
int _state=0;
/*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
while (!((_state)>(0))) {
r818next_char(C);
{int z1=(((T818*)C))->_cc/*24*/;

if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else 
if(((65<=z1)&&(z1<=90))){
_do_warning=1;
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else{_state=1;
}}
}
/*IF*/if (r511isa_keyword()) {
_state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
while (!((_state)==(0))) {
_state=(_state)-(1);
r818prev_char(C);
}
}
else {
R=1;
r818skip_comments(C);
/*IF*/if (_do_warning) {
r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms159_818));
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_minus*/
/*No:EIFFEL_PARSER.fz_elseif*/
T0*oBC818lcs=NULL;
/*No:EIFFEL_PARSER.end_of_text*/
void r818prev_char(T818* C){
/*IF*/if (((((T818*)C))->_column/*12*/)>(1)) {
C->_column=((((T818*)C))->_column/*12*/)-(1);
C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
}
else {
/*IF*/if (((((T818*)C))->_line/*16*/)>(1)) {
C->_line=((((T818*)C))->_line/*16*/)-(1);
C->_current_line=r676item((((T818*)C))->_line/*16*/);
C->_column=((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)+(1);
C->_cc='\n';
}
else {
C->_column=0;
C->_cc='\0';
}
/*FI*/}
/*FI*/}
void r818a_indexing(T818* C){
/*IF*/if (r818a_keyword(C,((T0*)ms22_470))) {
r818a_index_list(C);
}
/*FI*/}
void r818next_char(T818* C){
/*IF*/if (((((T818*)C))->_column/*12*/)<((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)) {
C->_column=((((T818*)C))->_column/*12*/)+(1);
C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
}
 else if (((((T818*)C))->_column/*12*/)==((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)) {
C->_column=((((T818*)C))->_column/*12*/)+(1);
C->_cc='\n';
}
 else if (((((T818*)C))->_line/*16*/)==((((T676*)((T676*)(oBC364parser_buffer))))->_count/*4*/)) {
C->_cc='\0';
}
else {
C->_column=1;
C->_line=((((T818*)C))->_line/*16*/)+(1);
C->_current_line=r676item((((T818*)C))->_line/*16*/);
/*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
C->_cc='\n';
}
else {
C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
}
/*FI*/}
/*FI*/}
/*No:EIFFEL_PARSER.fz_redefine*/
T0* r818pos(int a1,int a2){
T0* R=NULL;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,a1,a2);
R=(T0*)n;
}
return R;
}
/*No:EIFFEL_PARSER.fz_variant*/
/*No:EIFFEL_PARSER.wcp*/
int r818a_base_class_name(T818* C){
int R=0;
int _do_warning=0;
int _state=0;
/*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
/*IF*/if ((((unsigned)((((T818*)C))->_cc/*24*/))>=((unsigned)('a')))) {
_do_warning=1;
C->_cc=r3to_upper((((T818*)C))->_cc/*24*/);
}
/*FI*/r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
while (!((_state)>(0))) {
r818next_char(C);
{int z1=(((T818*)C))->_cc/*24*/;

if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else 
if(((97<=z1)&&(z1<=122))){
_do_warning=1;
/*[IRF3.6extend*/{char b1=r3to_upper((((T818*)C))->_cc/*24*/);
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else{_state=1;
}}
}
/*IF*/if (r511isa_keyword()) {
_state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
while (!((_state)==(0))) {
_state=(_state)-(1);
r818prev_char(C);
}
}
else {
R=1;
r818skip_comments(C);
/*IF*/if (_do_warning) {
r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms153_818));
}
/*FI*/C->_last_class_name=r511to_class_name(((T511*)(oBC818tmp_name)));
}
/*FI*/}
/*FI*/return R;
}
void r818a_formal_generic_list(T818* C){
int _state=0;
T0* _list=NULL;
T0* _fga=NULL;
T0* _constraint=NULL;
T0* _name=NULL;
T0* _sp=NULL;
C->_formal_generic_list=NULL;
while (!((_state)>(4))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818skip1(C,'\133')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
_state=1;
}
else {
_state=5;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_base_class_name(C)) {
_name=(((T818*)C))->_last_class_name/*89*/;
_state=2;
}
else {
_state=6;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip2(C,'\55','\76')) {
_state=4;
}
 else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\135'))) {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,_name,_constraint);
_fga=(T0*)n;
}
_name=NULL;
_constraint=NULL;
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma681(1,_fga);
}
else {
r681add_last(((T681*)_list),_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (r818skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=r818skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/}
 else 
if((3==z1)){
/*IF*/if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\135'))) {
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,_name,_constraint);
_fga=(T0*)n;
}
_name=NULL;
_constraint=NULL;
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma681(1,_fga);
}
else {
r681add_last(((T681*)_list),_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (r818skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=r818skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/}
 else{/*IF*/if (r818a_class_type(C)) {
_constraint=(((T818*)C))->_last_class_type/*93*/;
_state=3;
}
else {
r818fcp(C,((T0*)ms94_818));
_state=6;
}
/*FI*/}}
}
/*IF*/if ((_state)==(6)) {
}
 else if (((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))) {
r818warning(_sp,((T0*)ms95_818));
}
 else if ((_sp)!=((void*)(NULL))) {
{T881*n=malloc(sizeof(*n));
*n=M881;
r881make(n,_sp,_list);
C->_formal_generic_list=(T0*)n;
}
/*[IRF3.3set_formal_generic_list*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_formal_generic_list)=((((T818*)C))->_formal_generic_list/*33*/);
/*]*/
}
/*FI*/}
int r818a_void(T818* C){
int R=0;
/*IF*/if (r511is_void()) {
C->_last_expression=r511to_e_void(((T511*)(oBC818tmp_name)));
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_like*/
T0* r818a_assertion(T818* C){
T0* R=NULL;
int _state=0;
T0* _assertion=NULL;
T0* _expression=NULL;
T0* _tag=NULL;
while (!((_state)>(3))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
/*IF*/if (((((T818*)C))->_last_comments/*25*/)!=((void*)(NULL))) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,NULL,NULL,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/}
/*FI*/}
 else if (r818a_tag_mark(C)) {
_tag=(((T818*)C))->_last_tag_mark/*161*/;
_state=1;
}
 else if (r818a_expression(C)) {
_expression=(((T818*)C))->_last_expression/*97*/;
_state=2;
}
else {
_state=4;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818skip1(C,'\73')) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,NULL,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_state=0;
}
 else if (r818a_tag_mark(C)) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,NULL,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_tag=(((T818*)C))->_last_tag_mark/*161*/;
}
 else if (r818a_expression(C)) {
_expression=(((T818*)C))->_last_expression/*97*/;
_state=3;
}
else {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,NULL,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_state=4;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip1(C,'\73')) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,NULL,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_state=0;
}
 else if (r818a_tag_mark(C)) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,NULL,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_tag=(((T818*)C))->_last_tag_mark/*161*/;
_state=1;
}
 else if (r818a_expression(C)) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,NULL,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_expression=(((T818*)C))->_last_expression/*97*/;
_state=2;
}
else {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,NULL,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_state=4;
}
/*FI*/}
 else{/*IF*/if (r818skip1(C,'\73')) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_state=0;
}
 else if (r818a_tag_mark(C)) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_tag=(((T818*)C))->_last_tag_mark/*161*/;
_state=1;
}
 else if (r818a_expression(C)) {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_expression=(((T818*)C))->_last_expression/*97*/;
_state=2;
}
else {
{T348*n=malloc(sizeof(*n));
*n=M348;
r348make(n,_tag,_expression,r818get_comments(C));
_assertion=(T0*)n;
}
/*IF*/if ((R)==((void*)(NULL))) {
R=se_ma608(1,_assertion);
}
else {
r608add_last(((T608*)R),_assertion);
}
/*FI*/_state=4;
}
/*FI*/}}
}
return R;
}
void r818wcpefnc(T818* C,T0* a1,T0* a2){
/*[IRF3.6append*/{T0* b1=((T0*)ms136_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms137_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a2;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms138_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*No:EIFFEL_PARSER.us_double*/
T0* r818a_alias(T818* C){
T0* R=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms1_470))) {
/*IF*/if (r818a_manifest_string(C)) {
R=(((T805*)((T805*)((((T818*)C))->_last_manifest_string/*145*/))))->_to_string/*12*/;
}
else {
r818fcp(C,((T0*)ms91_818));
}
/*FI*/}
/*FI*/return R;
}
int r818a_debug(T818* C){
int R=0;
T0* _e_debug=NULL;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms7_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818skip1(C,'\50')) {
while (!(!(r818a_manifest_string(C)))) {
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma381(1,(((T818*)C))->_last_manifest_string/*145*/);
}
else {
r381add_last(((T381*)_list),(((T818*)C))->_last_manifest_string/*145*/);
}
/*FI*/C->_ok=r818skip1(C,'\54');
}
/*IF*/if ((_list)==((void*)(NULL))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms69_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*//*IF*/if (!(r818skip1(C,'\51'))) {
r818fcp(C,((T0*)ms70_818));
}
/*FI*/}
/*FI*/R=1;
{T347*n=malloc(sizeof(*n));
*n=M347;
r347make(n,_sp,_list,r818a_compound2(C,((T0*)ms71_818),((T0*)ms12_470)));
_e_debug=(T0*)n;
}
C->_last_instruction=_e_debug;
}
/*FI*/return R;
}
int r818a_real(T818* C){
int R=0;
int _c=0;
int _l=0;
int _state=0;
/*IF*/if ((r3is_digit((((T818*)C))->_cc/*24*/))||(((((T818*)C))->_cc/*24*/)==('\56'))) {
_l=(((T818*)C))->_line/*16*/;
_c=(((T818*)C))->_column/*12*/;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC818tmp_string)))))->_count)=(0);
/*]*/
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\56')) {
r7append(((T7*)(oBC818tmp_string)),((T0*)ms185_470));
_state=5;
}
else {
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
}
/*FI*/while (!((_state)>(11))) {
r818next_char(C);
{int z1=_state;

if((0==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
}
 else 
if((46==z2)){
r7extend(((T7*)(oBC818tmp_string)),'\56');
_state=4;
}
 else{_state=13;
}}
}
 else 
if((1==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=2;
}
 else{r818fcp(C,((T0*)ms147_818));
}}
}
 else 
if((2==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=3;
}
 else{r818fcp(C,((T0*)ms147_818));
}}
}
 else 
if((3==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=0;
}
 else{r818fcp(C,((T0*)ms147_818));
}}
}
 else 
if((4==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=6;
}
 else 
if((69==z2)||(101==z2)){
r7extend(((T7*)(oBC818tmp_string)),'E');
_state=10;
}
 else{_state=12;
}}
}
 else 
if((5==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=6;
}
 else{_state=13;
}}
}
 else 
if((6==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
}
 else 
if((69==z2)||(101==z2)){
r7extend(((T7*)(oBC818tmp_string)),'E');
_state=10;
}
 else 
if((95==z2)){
_state=7;
}
 else{_state=12;
}}
}
 else 
if((7==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=8;
}
 else{r818fcp(C,((T0*)ms139_818));
}}
}
 else 
if((8==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=9;
}
 else{r818fcp(C,((T0*)ms139_818));
}}
}
 else 
if((9==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=6;
}
 else{r818fcp(C,((T0*)ms139_818));
}}
}
 else 
if((10==z1)){
{int z2=(((T818*)C))->_cc/*24*/;

if((43==z2)){
_state=11;
}
 else 
if((45==z2)){
r7extend(((T7*)(oBC818tmp_string)),'\55');
_state=11;
}
 else 
if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
_state=11;
}
 else{r818fcp(C,((T0*)ms29_818));
_state=13;
}}
}
 else{{int z2=(((T818*)C))->_cc/*24*/;

if(((48<=z2)&&(z2<=57))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
}
 else{_state=12;
}}
}}
}
/*IF*/if ((_state)==(12)) {
{T936*n=malloc(sizeof(*n));
*n=M936;
r936make(n,r818pos(_l,_c),r7twin(((T7*)(oBC818tmp_string))));
C->_last_real_constant=(T0*)n;
}
R=1;
r818skip_comments(C);
}
else {
r818go_back_at(C,_l,_c);
}
/*FI*/}
/*FI*/return R;
}
void r818a_redefine_list(T818* C){
/*IF*/if (r818a_feature_list(C)) {
r877set_redefine(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_undefine*/
void r818a_local_var_list(T818* C,T0* a1){
int _state=0;
int _rank=0;
T0* _list=NULL;
T0* _declaration=NULL;
T0* _name_list=NULL;
T0* _name=NULL;
while (!((_state)>(4))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818a_identifier(C)) {
_name=r511to_local_name1(((T511*)(oBC818tmp_name)));
_state=1;
/*IF*/if (((((T818*)C))->_arguments/*45*/)!=((void*)(NULL))) {
_rank=r31rank_of(((T31*)((((T818*)C))->_arguments/*45*/)),(((T39*)((T39*)_name)))->_to_string/*8*/);
/*IF*/if ((_rank)>(0)) {
r683add_position((((T39*)((T39*)_name)))->_start_position/*12*/);
r683add_position((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T818*)C))->_arguments/*45*/))))->_flat_list/*12*/)),_rank)/*)*/))))->_start_position/*12*/);
r683error(((T683*)(oBC364eh)),((T0*)ms16_818));
}
/*FI*/}
/*FI*/}
 else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms151_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
}
else {
_state=5;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818skip1(C,'\72')) {
/*IF*/if ((_name_list)!=((void*)(NULL))) {
r733add_last(((T733*)_name_list),_name);
_name=NULL;
}
/*FI*/_state=3;
}
else {
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms17_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
else {
C->_ok=r818skip1(C,'\54');
}
/*FI*//*IF*/if ((_name_list)==((void*)(NULL))) {
_name_list=se_ma733(1,_name);
}
else {
r733add_last(((T733*)_name_list),_name);
}
/*FI*/_name=NULL;
_state=2;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818a_identifier(C)) {
_name=r511to_local_name1(((T511*)(oBC818tmp_name)));
_state=1;
/*IF*/if (((((T818*)C))->_arguments/*45*/)!=((void*)(NULL))) {
_rank=r31rank_of(((T31*)((((T818*)C))->_arguments/*45*/)),(((T39*)((T39*)_name)))->_to_string/*8*/);
/*IF*/if ((_rank)>(0)) {
r683add_position((((T39*)((T39*)_name)))->_start_position/*12*/);
r683add_position((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T818*)C))->_arguments/*45*/))))->_flat_list/*12*/)),_rank)/*)*/))))->_start_position/*12*/);
r683error(((T683*)(oBC364eh)),((T0*)ms18_818));
}
/*FI*/}
/*FI*/}
 else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms151_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
}
else {
_state=6;
}
/*FI*/}
 else 
if((3==z1)){
/*IF*/if (r818a_type(C)) {
/*IF*/if ((_name_list)!=((void*)(NULL))) {
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,_name_list,(((T818*)C))->_last_type/*157*/);
_declaration=(T0*)n;
}
_name_list=NULL;
}
else {
{T723*n=malloc(sizeof(*n));
*n=M723;
r723make(n,_name,(((T818*)C))->_last_type/*157*/);
_declaration=(T0*)n;
}
_name=NULL;
}
/*FI*//*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma382(1,_declaration);
}
else {
r382add_last(((T382*)_list),_declaration);
}
/*FI*/_state=4;
}
else {
_state=6;
}
/*FI*/}
 else{/*IF*/if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms19_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
_state=0;
}
else {
C->_ok=r818skip1(C,'\73');
_state=0;
}
/*FI*/}}
}
/*IF*/if ((_state)==(6)) {
r818fcp(C,((T0*)ms20_818));
}
 else if ((_list)!=((void*)(NULL))) {
{T620*n=malloc(sizeof(*n));
*n=M620;
r620make(n,a1,_list);
C->_local_vars=(T0*)n;
}
/*[IRF3.3set_local_vars*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_local_vars)=((((T818*)C))->_local_vars/*49*/);
/*]*/
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_59*/
/*No:EIFFEL_PARSER.fz_desc*/
void r818a_rename_list(T818* C){
while (!(!(r818a_rename_pair(C)))) {
C->_ok=r818skip1(C,'\54');
}
}
int r818a_argument(T818* C){
int R=0;
int _rank=0;
/*IF*/if (((((T818*)C))->_arguments/*45*/)!=((void*)(NULL))) {
_rank=r31rank_of(((T31*)((((T818*)C))->_arguments/*45*/)),r511to_string(((T511*)(oBC818tmp_name))));
/*IF*/if ((_rank)>(0)) {
C->_last_expression=r511to_argument_name2(((T511*)(oBC818tmp_name)),(((T818*)C))->_arguments/*45*/,_rank);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_local*/
/*No:EIFFEL_PARSER.formal_generic_list*/
T0* r818to_call(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if ((a2)==((void*)(NULL))) {
R=a1;
}
 else if ((a3)==((void*)(NULL))) {
{T487*n=malloc(sizeof(*n));
*n=M487;
r487make(n,a1,a2);
R=(T0*)n;
}
}
 else if ((r431count(((T431*)a3)))==(1)) {
{T492*n=malloc(sizeof(*n));
*n=M492;
r492make(n,a1,a2,a3);
R=(T0*)n;
}
}
else {
{T915*n=malloc(sizeof(*n));
*n=M915;
r915make(n,a1,a2,a3);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_require*/
/*No:EIFFEL_PARSER.fz_then*/
/*No:EIFFEL_PARSER.fz_when*/
/*No:EIFFEL_PARSER.fz_error_stars*/
void r818a_undefine_list(T818* C){
/*IF*/if (r818a_feature_list(C)) {
r877set_undefine(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
}
/*FI*/}
/*No:EIFFEL_PARSER.current_line*/
/*No:EIFFEL_PARSER.fatal_error*/
/*No:EIFFEL_PARSER.us_native_array*/
void r818a_after_a_dot(T818* C,int a1,T0* a2){
T0* _eal=NULL;
T0* _sfn=NULL;
/*IF*/if (r818a_identifier(C)) {
/*IF*/if (((r818a_result(C))||(r818a_void(C)))||(r818a_current(C))) {
r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
r683error(((T683*)(oBC364eh)),((T0*)ms33_818));
}
/*FI*/_sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
_eal=r818a_actuals(C);
r818a_r10(C,a1,a2,_sfn,_eal);
}
else {
r818fcp(C,((T0*)ms34_818));
}
/*FI*/}
int r818a_constant(T818* C){
int R=0;
T0* _sfn=NULL;
T0* _e_current=NULL;
/*IF*/if (r818a_identifier(C)) {
R=1;
_sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*16*/,0);
_e_current=(T0*)n;
}
{T487*n=malloc(sizeof(*n));
*n=M487;
r487make(n,_e_current,_sfn);
C->_last_expression=(T0*)n;
}
}
 else if (r818a_character_constant(C)) {
R=1;
C->_last_expression=(((T818*)C))->_last_character_constant/*85*/;
}
 else if (r818a_integer_constant(C)) {
R=1;
C->_last_expression=(((T818*)C))->_last_integer_constant/*129*/;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_bit_constant*/
/*No:EIFFEL_PARSER.fz_check*/
T0* r818a_routine_body(T818* C){
T0* R=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
R=r505to_deferred_routine(((T505*)(oBC818tmp_feature)));
}
 else if (r818a_keyword(C,((T0*)ms16_470))) {
R=r818a_external(C);
}
 else if (r818a_keyword(C,((T0*)ms9_470))) {
/*[IRF3.3set_routine_body*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_routine_body)=(r818a_compound1(C,((T0*)ms116_818)));
/*]*/
R=r505to_procedure_or_function(((T505*)(oBC818tmp_feature)));
}
 else if (r818a_keyword(C,((T0*)ms35_470))) {
/*[IRF3.3set_routine_body*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_routine_body)=(r818a_compound1(C,((T0*)ms117_818)));
/*]*/
R=r505to_once_routine(((T505*)(oBC818tmp_feature)));
}
else {
r818fcp(C,((T0*)ms118_818));
}
/*FI*/return R;
}
int r818a_type(T818* C){
int R=0;
T0* _argument_name2=NULL;
T0* _sp=NULL;
R=1;
/*IF*/if (r818a_keyword(C,((T0*)ms30_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_identifier(C)) {
/*IF*/if (r818a_current(C)) {
{T958*n=malloc(sizeof(*n));
*n=M958;
r958make(n,_sp,(((T818*)C))->_last_expression/*97*/);
C->_last_type=(T0*)n;
}
}
 else if (r818a_argument(C)) {
_argument_name2=(((T818*)C))->_last_expression/*97*/;
if(NULL!=(_argument_name2))switch(((T0*)_argument_name2)->id) {
case 886: 
break;
default:
_argument_name2=NULL;
};{T239*n=malloc(sizeof(*n));
*n=M239;
r239make(n,_sp,_argument_name2);
C->_last_type=(T0*)n;
}
}
else {
{T648*n=malloc(sizeof(*n));
*n=M648;
r648make(n,_sp,r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
C->_last_type=(T0*)n;
}
}
/*FI*/}
else {
r818fcp(C,((T0*)ms129_818));
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms14_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_class_type(C)) {
{T523*n=malloc(sizeof(*n));
*n=M523;
r523make(n,_sp,(((T818*)C))->_last_class_type/*93*/);
C->_last_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms130_818));
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms3_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_integer(C)) {
{T549*n=malloc(sizeof(*n));
*n=M549;
r549make(n,_sp,(((T818*)C))->_last_integer_constant/*129*/);
C->_last_type=(T0*)n;
}
}
 else if (r818a_identifier(C)) {
{T558*n=malloc(sizeof(*n));
*n=M558;
r558make(n,_sp,r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
C->_last_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms131_818));
}
/*FI*/}
 else if (r818a_type_formal_generic(C)) {
C->_last_type=(((T818*)C))->_last_type_formal_generic/*117*/;
}
 else if (r818a_class_type(C)) {
C->_last_type=(((T818*)C))->_last_class_type/*93*/;
}
else {
R=0;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_manifest_constant*/
int r818a_inspect(T818* C){
int R=0;
T0* _ec=NULL;
T0* _i=NULL;
T0* _spec=NULL;
T0* _sp=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms25_470))) {
R=1;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_expression(C)) {
C->_last_expression=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
}
else {
r818fcp(C,((T0*)ms99_818));
}
/*FI*/{T270*n=malloc(sizeof(*n));
*n=M270;
r270make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_i=(T0*)n;
}
while (!(!(r818a_when_part(C,_i)))) {
}
/*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_spec=(T0*)n;
}
_ec=r818a_compound2(C,((T0*)ms100_818),((T0*)ms12_470));
r270set_else_compound(((T270*)_i),_spec,_ec);
}
 else if (!(r818a_keyword(C,((T0*)ms12_470)))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms101_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/C->_last_instruction=_i;
}
/*FI*/return R;
}
int r818a_assignment_or_call(T818* C){
int R=0;
/*IF*/if ((r818skip1(C,'\50'))&&(r818a_expression(C))) {
R=1;
/*IF*/if (r818skip1(C,'\51')) {
r818a_r10(C,1,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
}
else {
r818fcp(C,((T0*)ms35_818));
}
/*FI*/}
 else if (r818a_identifier(C)) {
R=1;
/*IF*/if (r818skip2(C,'\72','\75')) {
r818a_assignment_aux(C,1);
}
 else if (r818skip2(C,'\77','\75')) {
r818a_assignment_aux(C,0);
}
 else if ((((r818a_current(C))||(r818a_result(C)))||(r818a_local_variable(C)))||(r818a_argument(C))) {
r818a_r10(C,1,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
}
else {
r818a_procedure_call(C);
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_feature_list*/
T0* r818get_comments(T818* C){
T0* R=NULL;
R=(((T818*)C))->_last_comments/*25*/;
C->_last_comments=NULL;
return R;
}
void r818warning(T0* a1,T0* a2){
r683add_position(a1);
r683warning(((T683*)(oBC364eh)),a2);
}
/*No:EIFFEL_PARSER.fz_retry*/
/*No:EIFFEL_PARSER.fz_inherit*/
/*No:EIFFEL_PARSER.fz_select*/
int r818a_creation(T818* C){
int R=0;
int _state=0;
T0* _call=NULL;
T0* _proc_name=NULL;
T0* _writable=NULL;
T0* _type=NULL;
T0* _sp=NULL;
while (!((_state)>(6))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818skip1(C,'\41')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
_state=1;
}
else {
_state=7;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_type(C)) {
_type=(((T818*)C))->_last_type/*157*/;
/*IF*/if (X291is_anchored(_type)) {
r818warning(X291start_position(_type),((T0*)ms62_818));
}
/*FI*/_state=2;
}
 else if (r818skip1(C,'\41')) {
_state=3;
}
else {
r818fcp(C,((T0*)ms63_818));
_state=8;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip1(C,'\41')) {
_state=3;
}
else {
_state=8;
r818fcp(C,((T0*)ms64_818));
}
/*FI*/}
 else 
if((3==z1)){
/*IF*/if (r818a_identifier(C)) {
/*IF*/if (r818a_current(C)) {
_state=8;
r818error(X662start_position((((T818*)C))->_last_expression/*97*/),((T0*)ms65_818));
}
 else if (r818a_argument(C)) {
_state=8;
r818error(X662start_position((((T818*)C))->_last_expression/*97*/),((T0*)ms66_818));
}
 else if ((r818a_result(C))||(r818a_local_variable(C))) {
_writable=(((T818*)C))->_last_expression/*97*/;
_state=4;
}
else {
_writable=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
_state=4;
}
/*FI*/}
else {
_state=8;
r818fcp(C,((T0*)ms67_818));
}
/*FI*/}
 else 
if((4==z1)){
/*IF*/if (r818skip1unless2(C,'\56','\56')) {
_state=5;
}
else {
_state=7;
}
/*FI*/}
 else 
if((5==z1)){
/*IF*/if (r818a_identifier(C)) {
_proc_name=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
_state=6;
}
else {
_state=8;
r818fcp(C,((T0*)ms68_818));
}
/*FI*/}
 else{/*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
_call=r818to_proc_call(C,_writable,_proc_name,r818a_actuals(C));
}
else {
{T268*n=malloc(sizeof(*n));
*n=M268;
r268make(n,_writable,_proc_name);
_call=(T0*)n;
}
}
/*FI*/_state=7;
}}
}
/*IF*/if (((_state)==(7))&&((_sp)!=((void*)(NULL)))) {
R=1;
/*IF*/if (((_type)==((void*)(NULL)))&&((_call)==((void*)(NULL)))) {
{T362*n=malloc(sizeof(*n));
*n=M362;
r362make(n,_sp,_writable);
C->_last_instruction=(T0*)n;
}
}
 else if (((_type)!=((void*)(NULL)))&&((_call)==((void*)(NULL)))) {
{T376*n=malloc(sizeof(*n));
*n=M376;
r376make(n,_sp,_type,_writable);
C->_last_instruction=(T0*)n;
}
}
 else if (((_type)==((void*)(NULL)))&&((_call)!=((void*)(NULL)))) {
{T390*n=malloc(sizeof(*n));
*n=M390;
r390make(n,_sp,_writable,_call);
C->_last_instruction=(T0*)n;
}
}
else {
{T404*n=malloc(sizeof(*n));
*n=M404;
r404make(n,_sp,_type,_writable,_call);
C->_last_instruction=(T0*)n;
}
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_old*/
T0* r818a_routine(T818* C){
T0* R=NULL;
T0* _ea=NULL;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms33_470))) {
/*IF*/if (r818a_manifest_string(C)) {
/*[IRF3.3set_obsolete_mark*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_obsolete_mark)=((((T818*)C))->_last_manifest_string/*145*/);
/*]*/
}
else {
r818fcp(C,((T0*)ms114_818));
}
/*FI*/}
/*FI*//*[IRF3.3set_header_comment*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_header_comment)=(r818get_comments(C));
/*]*/
/*IF*/if (r818a_keyword(C,((T0*)ms40_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
_hc=r818get_comments(C);
r505set_require_else(((T505*)(oBC818tmp_feature)),_sp,_hc,r818a_assertion(C));
}
else {
_hc=r818get_comments(C);
r505set_require(((T505*)(oBC818tmp_feature)),_sp,_hc,r818a_assertion(C));
}
/*FI*/}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms31_470))) {
r818a_local_var_list(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
}
/*FI*/R=r818a_routine_body(C);
/*IF*/if (r818a_keyword(C,((T0*)ms13_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
C->_in_ensure=1;
/*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
_hc=r818get_comments(C);
_al=r818a_assertion(C);
/*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633make(n,_sp,_hc,_al);
_ea=(T0*)n;
}
/*[IRF3.3set_ensure_then*/((((T633*)(((T633*)_ea))))->_is_ensure_then)=(1);
/*]*/
}
/*FI*/X355set_ensure_assertion(R,_ea);
}
else {
_hc=r818get_comments(C);
_al=r818a_assertion(C);
/*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
{T633*n=malloc(sizeof(*n));
*n=M633;
r633make(n,_sp,_hc,_al);
_ea=(T0*)n;
}
}
/*FI*/X355set_ensure_assertion(R,_ea);
}
/*FI*/C->_in_ensure=0;
}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms41_470))) {
C->_in_rescue=1;
X355set_rescue_compound(R,r818a_compound2(C,((T0*)ms41_470),((T0*)ms12_470)));
C->_in_rescue=0;
}
else {
/*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms115_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*FI*/C->_local_vars=NULL;
return R;
}
T0*oBC818tmp_name=NULL;
void r818a_then_part_list(T818* C,T0* a1){
/*IF*/if (!(r818a_then_part(C,a1))) {
r818fcp(C,((T0*)ms125_818));
}
/*FI*/while (!(!(r818a_keyword(C,((T0*)ms11_470))))) {
/*IF*/if (!(r818a_then_part(C,a1))) {
r818fcp(C,((T0*)ms126_818));
}
/*FI*/}
}
/*No:EIFFEL_PARSER.us_none*/
void r818a_assignment_aux(T818* C,int a1){
T0* _rhs=NULL;
T0* _writable=NULL;
/*IF*/if (r818a_current(C)) {
r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if (r818a_void(C)) {
r683add_position(r511start_position(((T511*)(oBC818tmp_name))));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms37_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
 else if (r818a_argument(C)) {
r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms38_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
/*IF*/if (r511is_result()) {
/*IF*/if (((((T818*)C))->_function_type/*29*/)==((void*)(NULL))) {
r818error(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms152_818));
}
/*FI*/_writable=r511to_e_result(((T511*)(oBC818tmp_name)));
}
 else if (r818a_local_variable(C)) {
_writable=(((T818*)C))->_last_expression/*97*/;
}
else {
_writable=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
}
/*FI*//*IF*/if (r818a_expression(C)) {
_rhs=(((T818*)C))->_last_expression/*97*/;
/*IF*/if (a1) {
{T629*n=malloc(sizeof(*n));
*n=M629;
r629make(n,_writable,_rhs);
C->_last_instruction=(T0*)n;
}
}
else {
{T126*n=malloc(sizeof(*n));
*n=M126;
r126make(n,_writable,_rhs);
C->_last_instruction=(T0*)n;
}
}
/*FI*/}
else {
r818fcp(C,((T0*)ms39_818));
}
/*FI*/}
/*FI*/}
/*No:EIFFEL_PARSER.case_insensitive*/
/*No:EIFFEL_PARSER.fz_deferred*/
int r818a_identifier(T818* C){
int R=0;
/*IF*/if ((((T818*)C))->_case_insensitive/*0*/) {
R=r818a_identifier1(C);
}
else {
R=r818a_identifier2(C);
}
/*FI*/return R;
}
int r818a_expression(T818* C){
int R=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (r818skip2(C,'\74','\74')) {
R=1;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
while (!(!(r818a_expression(C)))) {
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma96(1,(((T818*)C))->_last_expression/*97*/);
}
else {
X96add_last(_list,(((T818*)C))->_last_expression/*97*/);
}
/*FI*/C->_ok=r818skip1(C,'\54');
}
/*IF*/if (!(r818skip2(C,'\76','\76'))) {
r818fcp(C,((T0*)ms72_818));
}
/*FI*/{T436*n=malloc(sizeof(*n));
*n=M436;
r436make(n,_sp,_list);
C->_last_expression=(T0*)n;
}
}
else {
R=r818a_e0(C);
}
/*FI*/return R;
}
void r818a_formal_arg_list(T818* C){
int _state=0;
T0* _list=NULL;
T0* _declaration=NULL;
T0* _name_list=NULL;
T0* _name=NULL;
T0* _sp=NULL;
C->_arguments=NULL;
while (!((_state)>(5))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818skip1(C,'\50')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
_state=1;
}
else {
_state=6;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_identifier(C)) {
_name=r511to_argument_name1(((T511*)(oBC818tmp_name)));
_state=2;
}
 else if (r818skip1(C,'\51')) {
_state=6;
}
else {
_state=7;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip1(C,'\72')) {
/*IF*/if ((_name_list)!=((void*)(NULL))) {
r65add_last(((T65*)_name_list),_name);
_name=NULL;
}
/*FI*/_state=4;
}
else {
C->_ok=r818skip1(C,'\54');
/*IF*/if ((_name_list)==((void*)(NULL))) {
_name_list=se_ma65(1,_name);
}
else {
r65add_last(((T65*)_name_list),_name);
}
/*FI*/_name=NULL;
_state=3;
}
/*FI*/}
 else 
if((3==z1)){
/*IF*/if (r818a_identifier(C)) {
_name=r511to_argument_name1(((T511*)(oBC818tmp_name)));
_state=2;
}
 else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms151_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
}
else {
_state=7;
}
/*FI*/}
 else 
if((4==z1)){
/*IF*/if (r818a_type(C)) {
/*IF*/if ((_name_list)!=((void*)(NULL))) {
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,_name_list,(((T818*)C))->_last_type/*157*/);
_declaration=(T0*)n;
}
_name_list=NULL;
}
else {
{T723*n=malloc(sizeof(*n));
*n=M723;
r723make(n,_name,(((T818*)C))->_last_type/*157*/);
_declaration=(T0*)n;
}
_name=NULL;
}
/*FI*//*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma382(1,_declaration);
}
else {
r382add_last(((T382*)_list),_declaration);
}
/*FI*/_declaration=NULL;
_state=5;
}
else {
_state=7;
}
/*FI*/}
 else{/*IF*/if (r818skip1(C,'\51')) {
_state=6;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms13_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
_state=1;
}
else {
C->_ok=r818skip1(C,'\73');
_state=1;
}
/*FI*/}}
}
/*IF*/if ((_state)==(7)) {
r818fcp(C,((T0*)ms14_818));
}
 else if (((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))) {
r818warning(_sp,((T0*)ms15_818));
}
 else if ((_sp)!=((void*)(NULL))) {
{T31*n=malloc(sizeof(*n));
*n=M31;
r31make(n,_sp,_list);
C->_arguments=(T0*)n;
}
/*[IRF3.3set_arguments*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_arguments)=((((T818*)C))->_arguments/*45*/);
/*]*/
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_end*/
/*No:EIFFEL_PARSER.fz_else*/
/*No:EIFFEL_PARSER.last_class_name*/
int r818a_type_formal_generic(T818* C){
int R=0;
int _rank=0;
T0* _cn=NULL;
T0* _fga=NULL;
/*IF*/if (((((T818*)C))->_formal_generic_list/*33*/)!=((void*)(NULL))) {
_rank=1;
while (!((R)||((_rank)>(/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)((((T818*)C))->_formal_generic_list/*33*/))))->_list/*4*/))))->_upper/*8*//*)*/)))) {
_fga=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)((((T818*)C))->_formal_generic_list/*33*/))))->_list/*4*/)),_rank)/*)*/;
/*IF*/if (r818a_keyword(C,(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_to_string/*0*/)) {
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_to_string/*0*/,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
_cn=(T0*)n;
}
{T283*n=malloc(sizeof(*n));
*n=M283;
r283make(n,_cn,_rank);
C->_last_type_formal_generic=(T0*)n;
}
R=1;
}
/*FI*/_rank=(_rank)+(1);
}
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_infix*/

