ftp.nice.ch/pub/next/developer/languages/eiffel/SmallEiffel.0.91.N.bs.tar.gz#/SmallEiffel/bin_c/compile_to_c20.c

This is compile_to_c20.c in view mode; [Download] [Up]

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.91)    --      FRANCE
-- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
-- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
-- CRIN (Centre de Recherche en Informatique de Nancy)
-- FRANCE 
*/
#include "compile_to_c.h"
/*DECLARATION_GROUP*/int rT144count(T144 *C){
int R=0;
R=/*XrT*ARRAY[LOCAL_ARGUMENT]*/((T99*)(C)->_name_list)->_upper;
return R;
}
/*DECLARATION_GROUP*/void rT144append_in(T144 *C,T0* a1){
int _i=0;
_i=/*XrT*ARRAY[LOCAL_ARGUMENT]*/((T99*)(C)->_name_list)->_lower;
while (!((_i)>(/*XrT*ARRAY[LOCAL_ARGUMENT]*/((T99*)(C)->_name_list)->_upper))) {
XrT98add_last(a1,/*XrT*ARRAY[LOCAL_ARGUMENT]*/rT99item((T99*)(C)->_name_list,_i));
_i=(_i)+(1);
}
}/*DECLARATION_GROUP*/void rT144make(T144 *C,T0* a1,T0* a2){
int _i=0;
C->_name_list=a1;
_i=/*XrT*ARRAY[LOCAL_ARGUMENT]*/((T99*)(C)->_name_list)->_upper;
while (!((_i)==(0))) {
/*XrT*LOCAL_ARGUMENT*//*[IRF3:set_result_type*//*AW*/((T92*)/*XrT*ARRAY[LOCAL_ARGUMENT]*/rT99item((T99*)(C)->_name_list,_i))->_result_type=(a2);/*]*/
_i=(_i)-(1);
}
}/*DECLARATION_1*/void rT146append_in(T146 *C,T0* a1){
XrT98add_last(a1,(C)->_name);
}/*DECLARATION_1*/void rT146make(T146 *C,T0* a1,T0* a2){
C->_name=a1;
/*XrT*LOCAL_ARGUMENT*//*[IRF3:set_result_type*//*AW*/((T92*)(C)->_name)->_result_type=(a2);/*]*/
}/*CHECK_INVARIANT*/T0* rT222twin(T222 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT222copy((T222*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*CHECK_INVARIANT*/T0* rT222runnable(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(rT162empty((T162*)a1))) {
R=rT162twin((T162*)a1);
_i=((T162*)R)->_upper;
while (!((_i)==(0))) {
rT55push((T55*)oRBC27small_eiffel,a3);
_a=rT68to_runnable((T68*)rT162item((T162*)R,_i),a2);
/*IF*/if (!(_a)) {
rT222error(rT68start_position((T68*)rT162item((T162*)R,_i)),(T0 *)ms97_27);
}
else {
rT162put((T162*)R,_a,_i);
}
/*FI*/rT55pop((T55*)oRBC27small_eiffel);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*CHECK_INVARIANT*/T0* rT222to_runnable(T222 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
/*IF*/if (((int)(C)->_list)) {
C->_list=rT222runnable((C)->_list,a1,rT55top_rf((T55*)oRBC27small_eiffel));
}
/*FI*//*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT222twin(C);
/*[IRF3:set_current_type*//*AW*/((T222*)R)->_current_type=(NULL);/*]*/
R=rT222to_runnable((T222*)R,a1);
}
/*FI*/return R;
}
/*CHECK_INVARIANT*/void rT222error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*CHECK_INVARIANT*/int rT222use_current(T222 *C){
int R=0;
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=((T162*)(C)->_list)->_upper;
while (!((R)||((_i)==(0)))) {
R=rT68use_current((T68*)rT162item((T162*)(C)->_list,_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*CHECK_INVARIANT*/void rT222compile_to_c(T222 *C){
int _i=0;
/*[IRF3:set_check_assertion_mode*//*AW*/((T44*)oRBC27cpp)->_check_assertion_mode=(/*(IRF4*/(T0 *)ms1_222/*)*/);/*]*/
/*IF*/if (((int)(C)->_list)) {
rT44put_string((T44*)oRBC27cpp,(T0 *)ms1_140);
rT44put_string((T44*)oRBC27cpp,/*(IRF4*/(T0 *)ms1_222/*)*/);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms2_140);
rT44put_string((T44*)oRBC27cpp,/*(IRF4*/(T0 *)ms1_222/*)*/);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms3_140);
_i=1;
while (!((_i)>(((T162*)(C)->_list)->_upper))) {
rT68compile_to_c((T68*)rT162item((T162*)(C)->_list,_i));
_i=(_i)+(1);
}
rT44put_string((T44*)oRBC27cpp,(T0 *)ms4_140);
rT44put_string((T44*)oRBC27cpp,/*(IRF4*/(T0 *)ms1_222/*)*/);
rT44put_string((T44*)oRBC27cpp,(T0 *)ms5_140);
}
/*FI*/}/*CHECK_INVARIANT*/void rT222copy(T222 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*CHECK_INVARIANT*/int rT222is_pre_computable(T222 *C){
int R=0;
int _i=0;
/*IF*/if (!((C)->_list)) {
R=1;
}
else {
_i=((T162*)(C)->_list)->_upper;
R=1;
while (!((!(R))||((_i)==(0)))) {
R=rT68is_pre_computable((T68*)rT162item((T162*)(C)->_list,_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*CHECK_INVARIANT*/void rT222make(T222 *C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}/*CHARACTER_CONSTANT*/T0* rT79twin(T79 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);AF_1
rT79copy((T79*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
/*CHARACTER_CONSTANT*/int rT79is_static(T79 *C){
int R=0;
R=1;
C->_static_value_mem=rT79to_integer(C);
return R;
}
/*CHARACTER_CONSTANT*/int rT79static_value(T79 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
/*CHARACTER_CONSTANT*/T0* rT79to_runnable(T79 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT79twin(C);
/*[IRF3:set_current_type*//*AW*/((T79*)R)->_current_type=(a1);/*]*/
}
/*FI*/return R;
}
/*CHARACTER_CONSTANT*/void rT79error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*CHARACTER_CONSTANT*/T0* rT79add_comment(T79 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT63count((T63*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T228 *n=((T228*)se_new(228));
rT228make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
int ofBC79result_type=0;
T0*oRBC79result_type;
/*CHARACTER_CONSTANT*/T0* rT79result_type(/*C*/void){
if (ofBC79result_type==0){
T0* R=NULL;
ofBC79result_type=1;
{T111 *n=((T111*)se_new(111));
rT111make(n,NULL);
R=(T0 *)n;}
oRBC79result_type=R;}
return oRBC79result_type;}
/*CHARACTER_CONSTANT*/void rT79compile_to_c(T79 *C){
rT44put_character((T44*)oRBC27cpp,'\47');
/*IF*/if ((rT3is_letter((C)->_value))||(rT3is_digit((C)->_value))) {
rT44put_character((T44*)oRBC27cpp,(C)->_value);
}
else {
rT44put_character((T44*)oRBC27cpp,'\134');
rT44put_integer((T44*)oRBC27cpp,rT2to_octal(((unsigned char)(C)->_value)));
}
/*FI*/rT44put_character((T44*)oRBC27cpp,'\47');
}/*CHARACTER_CONSTANT*/int rT79to_integer(T79 *C){
int R=0;
R=((unsigned char)(C)->_value);
return R;
}
/*CHARACTER_CONSTANT*/void rT79copy(T79 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}/*CHARACTER_CONSTANT*/int rT79is_a(T79 *C,T0* a1){
int R=0;
R=XrT62is_a(rT111run_type((T111*)rT79result_type()),XrT62run_type(XrT72result_type(a1)));
/*IF*/if (!(R)) {
rT48add_position((C)->_start_position);
rT79error(XrT72start_position(a1),(T0 *)ms2_72);
}
/*FI*/return R;
}
/*CHARACTER_CONSTANT*/void rT79make(T79 *C,T0* a1,char a2,int a3){
C->_start_position=a1;
C->_value=a2;
/*[IRF3:set_pretty_print_mode*//*AW*/(C)->_pretty_print_mode=(a3);/*]*/
}/*EIFFEL_PARSER*/int rT54a_constant(T54 *C){
int R=0;
T0* _fn=NULL;
T0* _e_current=NULL;
/*IF*/if (rT54a_identifier(C)) {
R=1;
_fn=rT73to_feature_name((T73*)rT54tmp_name());
{T94 *n=((T94*)se_new(94));
rT94make(n,/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position,0);
_e_current=(T0 *)n;}
{T167 *n=((T167*)se_new(167));
rT167make(n,_e_current,_fn);
C->_last_expression=(T0 *)n;}}
 else if (rT54a_character_constant(C)) {
R=1;
C->_last_expression=(C)->_last_character_constant;
}
 else if (rT54a_integer_constant(C)) {
R=1;
C->_last_expression=(C)->_last_integer_constant;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_conditional(T54 *C){
int R=0;
T0* _ifthenelse=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms73_54)) {
R=1;
{T226 *n=((T226*)se_new(226));
/*[IRF3:make*//*AW*/(n)->_start_position=(rT54pos((C)->_start_line,(C)->_start_column));/*]*/
_ifthenelse=(T0 *)n;}
rT54a_then_part_list(C,_ifthenelse);
/*IF*/if (rT54a_keyword(C,(T0 *)ms114_27)) {
/*[IRF3:set_else_compound*//*AW*/((T226*)_ifthenelse)->_else_compound=(rT54a_compound2(C,(T0 *)ms74_54,(T0 *)ms115_27));/*]*/
}
else {
/*IF*/if (!(rT54a_keyword(C,(T0 *)ms115_27))) {
rT54wcp(C,(T0 *)ms75_54);
}
/*FI*/}
/*FI*/C->_last_instruction=_ifthenelse;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_boolean_constant(T54 *C){
int R=0;
/*IF*/if (rT54a_keyword(C,(T0 *)ms51_54)) {
{T77 *n=((T77*)se_new(77));
/*[IRF3:make*//*AW*/(n)->_start_position=(rT54pos((C)->_start_line,(C)->_start_column));/*]*/
C->_last_boolean_constant=(T0 *)n;}R=1;
}
 else if (rT54a_keyword(C,(T0 *)ms52_54)) {
{T78 *n=((T78*)se_new(78));
/*[IRF3:make*//*AW*/(n)->_start_position=(rT54pos((C)->_start_line,(C)->_start_column));/*]*/
C->_last_boolean_constant=(T0 *)n;}R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_then_part(T54 *C,T0* a1){
int R=0;
T0* _expression=NULL;
/*IF*/if (rT54a_expression(C)) {
R=1;
_expression=XrT72add_comment((C)->_last_expression,rT54get_comments(C));
/*IF*/if (!(rT54a_keyword(C,(T0 *)ms120_27))) {
rT54wcp(C,(T0 *)ms187_54);
}
/*FI*/rT226add_if_then((T226*)a1,_expression,rT54a_compound1(C,(T0 *)ms188_54));
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_then_part_list(T54 *C,T0* a1){
/*IF*/if (!(rT54a_then_part(C,a1))) {
rT54fcp(C,(T0 *)ms184_54);
}
/*FI*/while (!(!(rT54a_keyword(C,(T0 *)ms185_54)))) {
/*IF*/if (!(rT54a_then_part(C,a1))) {
rT54fcp(C,(T0 *)ms186_54);
}
/*FI*/}
}/*EIFFEL_PARSER*/T0* rT54get_comments(T54 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_last_comments)) {
R=(C)->_last_comments;
C->_last_comments=NULL;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_parent(T54 *C){
int R=0;
/*IF*/if (rT54a_class_type(C)) {
R=1;
/*IF*/if (rT7is_equal((T7*)((T51*)rT54current_class_name(C))->_to_string,((T51*)XrT62base_class_name((C)->_last_class_type))->_to_string)) {
rT54error(XrT62start_position((C)->_last_class_type),(T0 *)ms137_54);
}
/*FI*/{T120 *n=((T120*)se_new(120));
rT120make(n,(C)->_last_class_type);
C->_last_parent=(T0 *)n;}
/*IF*/if (rT54a_keyword(C,(T0 *)ms138_54)) {
rT54a_rename_list(C);
/*IF*/if (((C)->_cc)==('\73')) {
rT54wcp(C,(T0 *)ms139_54);
C->_ok=rT54skip1(C,'\73');
}
/*FI*/}
/*FI*/rT54a_new_export_list(C);
/*IF*/if (rT54a_keyword(C,(T0 *)ms140_54)) {
rT54a_undefine_list(C);
}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms141_54)) {
rT54a_redefine_list(C);
}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms142_54)) {
rT54a_select_list(C);
}
/*FI*//*IF*/if (((((rT54a_keyword(C,(T0 *)ms143_54))||(rT54a_keyword(C,(T0 *)ms144_54)))||(rT54a_keyword(C,(T0 *)ms145_54)))||(rT54a_keyword(C,(T0 *)ms146_54)))||(rT54a_keyword(C,(T0 *)ms147_54))) {
rT48add_position(rT54pos((C)->_start_line,(C)->_start_column));
rT54fatal_error((T0 *)ms148_54);
}
/*FI*/C->_ok=rT54a_keyword(C,(T0 *)ms115_27);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_parent_list(T54 *C,T0* a1,T0* a2){
T0* _list=NULL;
while (!(!(rT54a_parent(C)))) {
/*IF*/if (!(_list)) {
_list=ma(132,0,1,(C)->_last_parent);
}
else {
rT132add_last((T132*)_list,(C)->_last_parent);
}
/*FI*/C->_ok=rT54skip1(C,'\73');
/*[IRF3:set_comment*//*AW*/((T120*)(C)->_last_parent)->_comment=(rT54get_comments(C));/*]*/
}
/*IF*/if (((((int)a2))||(((int)_list)))) {
/*IF*/if (!(_list)) {
/*IF*/if (!(((T53*)(C)->_last_base_class)->_heading_comment2)) {
/*[IRF3:set_heading_comment2*//*AW*/((T53*)(C)->_last_base_class)->_heading_comment2=(a2);/*]*/
}
else {
rT63append((T63*)((T53*)(C)->_last_base_class)->_heading_comment2,a2);
}
/*FI*/}
else {
rT53set_parent_list((T53*)(C)->_last_base_class,a1,a2,_list);
}
/*FI*/}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_when_part(T54 *C,T0* a1){
int R=0;
T0* _constant=NULL;
T0* _e_when=NULL;
int _state=0;
/*IF*/if (rT54a_keyword(C,(T0 *)ms193_54)) {
R=1;
{T234 *n=((T234*)se_new(234));
rT234make(n,rT54pos((C)->_start_line,(C)->_start_column),rT54get_comments(C));
_e_when=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l119;
goto l120;
 l119: ;
/*IF*/if (rT54a_constant(C)) {
_constant=(C)->_last_expression;
_state=1;
}
 else if (rT54a_keyword(C,(T0 *)ms120_27)) {
/*IF*/if (((int)_constant)) {
rT234add_value((T234*)_e_when,_constant);
}
/*FI*//*[IRF3:set_compound*//*AW*/((T234*)_e_when)->_compound=(rT54a_compound1(C,(T0 *)ms194_54));/*]*/
rT233add_when((T233*)a1,_e_when);
_state=4;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms204_54);
C->_ok=rT54skip1(C,'\54');
}
else {
rT54fcp(C,(T0 *)ms201_54);
_state=4;
}
/*FI*/goto l118;
 l120: ;
if (1 == iv1) goto l121;
goto l122;
 l121: ;
/*IF*/if (rT54a_keyword(C,(T0 *)ms120_27)) {
/*IF*/if (((int)_constant)) {
rT234add_value((T234*)_e_when,_constant);
}
/*FI*//*[IRF3:set_compound*//*AW*/((T234*)_e_when)->_compound=(rT54a_compound1(C,(T0 *)ms195_54));/*]*/
rT233add_when((T233*)a1,_e_when);
_state=4;
}
 else if (rT54skip2(C,'\56','\56')) {
_state=2;
}
 else if (rT54skip1(C,'\54')) {
rT234add_value((T234*)_e_when,_constant);
_constant=NULL;
_state=0;
}
else {
rT54fcp(C,(T0 *)ms201_54);
_state=4;
}
/*FI*/goto l118;
 l122: ;
if (2 == iv1) goto l123;
goto l124;
 l123: ;
/*IF*/if (rT54a_constant(C)) {
rT234add_slice((T234*)_e_when,_constant,(C)->_last_expression);
_constant=NULL;
_state=3;
}
else {
rT54fcp(C,(T0 *)ms201_54);
_state=4;
}
/*FI*/goto l118;
 l124: ;
/*IF*/if (rT54skip1(C,'\54')) {
_state=0;
}
 else if (rT54a_keyword(C,(T0 *)ms120_27)) {
/*[IRF3:set_compound*//*AW*/((T234*)_e_when)->_compound=(rT54a_compound1(C,(T0 *)ms196_54));/*]*/
rT233add_when((T233*)a1,_e_when);
_state=4;
}
 else if (rT54a_constant(C)) {
_constant=(C)->_last_expression;
rT54warning(rT73start_position((T73*)rT54tmp_name()),(T0 *)ms202_54);
_state=1;
}
else {
rT54fcp(C,(T0 *)ms201_54);
_state=4;
}
/*FI*/ l118: ;
}
}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_select_list(T54 *C){
/*IF*/if (rT54a_feature_list(C)) {
rT120set_select((T120*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_unary(T54 *C){
int R=0;
/*IF*/if (rT54a_keyword(C,(T0 *)ms118_27)) {
{T70 *n=((T70*)se_new(70));
rT70make(n,(T0 *)ms118_27,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
 else if (rT54skip1(C,'\53')) {
{T70 *n=((T70*)se_new(70));
rT70make(n,(T0 *)ms95_27,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
 else if (rT54skip1(C,'\55')) {
{T70 *n=((T70*)se_new(70));
rT70make(n,(T0 *)ms96_27,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_rename_pair(T54 *C){
int R=0;
T0* _rename_pair=NULL;
T0* _name1=NULL;
/*IF*/if (rT54a_identifier(C)) {
_name1=rT73to_feature_name((T73*)rT54tmp_name());
/*IF*/if (rT54a_keyword(C,(T0 *)ms153_54)) {
/*IF*/if (rT54a_identifier(C)) {
R=1;
/*IF*/if (rT7is_equal((T7*)((T73*)rT54tmp_name())->_to_string,/*XrT*FEATURE_NAME*/((T70*)_name1)->_to_string)) {
rT54warning(rT73start_position((T73*)rT54tmp_name()),(T0 *)ms154_54);
}
else {
{T121 *n=((T121*)se_new(121));
rT121make(n,_name1,rT73to_feature_name((T73*)rT54tmp_name()));
_rename_pair=(T0 *)n;}
rT120add_rename((T120*)(C)->_last_parent,_rename_pair);
}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms155_54);
}
/*FI*/}
else {
rT54go_back(C,/*XrT*FEATURE_NAME*/((T70*)_name1)->_start_position);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_rename_list(T54 *C){
while (!(!(rT54a_rename_pair(C)))) {
C->_ok=rT54skip1(C,'\54');
}
}/*EIFFEL_PARSER*/T0* rT54to_call(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if (!(a2)) {
R=a1;
}
 else if (!(a3)) {
{T167 *n=((T167*)se_new(167));
rT167make(n,a1,a2);
R=(T0 *)n;}}
 else if ((rT175count((T175*)a3))==(1)) {
{T179 *n=((T179*)se_new(179));
rT179make(n,a1,a2,a3);
R=(T0 *)n;}}
else {
{T180 *n=((T180*)se_new(180));
rT180make(n,a1,a2,a3);
R=(T0 *)n;}}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_e10(T54 *C){
int R=0;
/*IF*/if (rT54a_strip(C)) {
R=1;
}
 else if (rT54skip1(C,'\50')) {
R=1;
/*IF*/if (rT54a_expression(C)) {
/*IF*/if (rT54skip1(C,'\51')) {
rT54a_r10(C,0,(C)->_last_expression,NULL,NULL);
}
else {
rT54fcp(C,(T0 *)ms95_54);
}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms96_54);
}
/*FI*/}
 else if (rT54a_manifest_constant(C)) {
C->_last_expression=(C)->_last_manifest_constant;
R=1;
/*IF*/if (rT54skip1unless2(C,'\56','\56')) {
rT54wcp(C,(T0 *)ms97_54);
rT54a_after_a_dot(C,0,(C)->_last_expression);
}
/*FI*/}
 else if (rT54a_identifier(C)) {
R=1;
/*IF*/if (((((rT54a_result(C))||(rT54a_current(C)))||(rT54a_void(C)))||(rT54a_local_variable(C)))||(rT54a_argument(C))) {
rT54a_r10(C,0,(C)->_last_expression,NULL,NULL);
}
else {
rT54a_function_call(C);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_assignment_aux(T54 *C,int a1){
T0* _rhs=NULL;
T0* _writable=NULL;
/*IF*/if (rT54a_current(C)) {
rT48add_position(XrT72start_position((C)->_last_expression));
rT54fatal_error((T0 *)ms38_54);
}
 else if (rT54a_void(C)) {
rT48add_position(rT73start_position((T73*)rT54tmp_name()));
rT54fatal_error((T0 *)ms39_54);
}
 else if (rT54a_argument(C)) {
rT48add_position(XrT72start_position((C)->_last_expression));
rT54fatal_error((T0 *)ms40_54);
}
else {
/*IF*/if (rT7same_as((T7*)(T0 *)ms119_27,((T73*)rT54tmp_name())->_to_string)) {
/*IF*/if (!((C)->_function_type)) {
rT54error(rT73start_position((T73*)rT54tmp_name()),(T0 *)ms211_54);
}
/*FI*/_writable=rT73to_e_result((T73*)rT54tmp_name());
}
 else if (rT54a_local_variable(C)) {
_writable=(C)->_last_expression;
}
else {
_writable=rT73to_feature_name((T73*)rT54tmp_name());
}
/*FI*//*IF*/if (rT54a_expression(C)) {
_rhs=(C)->_last_expression;
/*IF*/if (a1) {
{T256 *n=((T256*)se_new(256));
rT256make(n,_writable,_rhs);
C->_last_instruction=(T0 *)n;}}
else {
{T257 *n=((T257*)se_new(257));
rT257make(n,_writable,_rhs);
C->_last_instruction=(T0 *)n;}}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms41_54);
}
/*FI*/}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_assignment_or_call(T54 *C){
int R=0;
/*IF*/if ((rT54skip1(C,'\50'))&&(rT54a_expression(C))) {
R=1;
/*IF*/if (rT54skip1(C,'\51')) {
rT54a_r10(C,1,(C)->_last_expression,NULL,NULL);
}
else {
rT54fcp(C,(T0 *)ms37_54);
}
/*FI*/}
 else if (rT54a_identifier(C)) {
R=1;
/*IF*/if (rT54skip2(C,'\72','\75')) {
rT54a_assignment_aux(C,1);
}
 else if (rT54skip2(C,'\77','\75')) {
rT54a_assignment_aux(C,0);
}
 else if ((((rT54a_current(C))||(rT54a_result(C)))||(rT54a_local_variable(C)))||(rT54a_argument(C))) {
rT54a_r10(C,1,(C)->_last_expression,NULL,NULL);
}
else {
rT54a_procedure_call(C);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_assertion(T54 *C){
T0* R=NULL;
int _state=0;
T0* _assertion=NULL;
T0* _expression=NULL;
T0* _tag=NULL;
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l126;
goto l127;
 l126: ;
/*IF*/if (((C)->_cc)==('\73')) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
/*IF*/if (((int)(C)->_last_comments)) {
{T68 *n=((T68*)se_new(68));
rT68make(n,NULL,NULL,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/}
/*FI*/}
 else if (rT54a_tag_mark(C)) {
_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT54a_expression(C)) {
_expression=(C)->_last_expression;
_state=2;
}
else {
_state=4;
}
/*FI*/goto l125;
 l127: ;
if (1 == iv1) goto l128;
goto l129;
 l128: ;
/*IF*/if (rT54skip1(C,'\73')) {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,NULL,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT54a_tag_mark(C)) {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,NULL,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
}
 else if (rT54a_expression(C)) {
_expression=(C)->_last_expression;
_state=3;
}
else {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,NULL,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/goto l125;
 l129: ;
if (2 == iv1) goto l130;
goto l131;
 l130: ;
/*IF*/if (rT54skip1(C,'\73')) {
{T68 *n=((T68*)se_new(68));
rT68make(n,NULL,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT54a_tag_mark(C)) {
{T68 *n=((T68*)se_new(68));
rT68make(n,NULL,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT54a_expression(C)) {
{T68 *n=((T68*)se_new(68));
rT68make(n,NULL,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_expression=(C)->_last_expression;
_state=2;
}
else {
{T68 *n=((T68*)se_new(68));
rT68make(n,NULL,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/goto l125;
 l131: ;
/*IF*/if (rT54skip1(C,'\73')) {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT54a_tag_mark(C)) {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT54a_expression(C)) {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_expression=(C)->_last_expression;
_state=2;
}
else {
{T68 *n=((T68*)se_new(68));
rT68make(n,_tag,_expression,rT54get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(162,0,1,_assertion);
}
else {
rT162add_last((T162*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/ l125: ;
}
}
return R;
}
/*EIFFEL_PARSER*/void rT54a_formal_arg_list(T54 *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 iv1=_state;
if (0 == iv1) goto l133;
goto l134;
 l133: ;
/*IF*/if (rT54skip1(C,'\50')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_state=1;
}
else {
_state=6;
}
/*FI*/goto l132;
 l134: ;
if (1 == iv1) goto l135;
goto l136;
 l135: ;
/*IF*/if (rT54a_identifier(C)) {
_name=rT73to_argument_name_declaration((T73*)rT54tmp_name());
_state=2;
}
 else if (rT54skip1(C,'\51')) {
_state=6;
}
else {
_state=7;
}
/*FI*/goto l132;
 l136: ;
if (2 == iv1) goto l137;
goto l138;
 l137: ;
/*IF*/if (rT54skip1(C,'\72')) {
/*IF*/if (((int)_name_list)) {
rT99add_last((T99*)_name_list,_name);
_name=NULL;
}
/*FI*/_state=4;
}
else {
C->_ok=rT54skip1(C,'\54');
/*IF*/if (!(_name_list)) {
_name_list=ma(99,0,1,_name);
}
else {
rT99add_last((T99*)_name_list,_name);
}
/*FI*/_name=NULL;
_state=3;
}
/*FI*/goto l132;
 l138: ;
if (3 == iv1) goto l139;
goto l140;
 l139: ;
/*IF*/if (rT54a_identifier(C)) {
_name=rT73to_argument_name_declaration((T73*)rT54tmp_name());
_state=2;
}
 else if (((((C)->_cc)==('\54'))||(((C)->_cc)==('\73')))) {
rT54wcp(C,(T0 *)ms210_54);
C->_ok=(rT54skip1(C,'\54'))||(rT54skip1(C,'\73'));
}
else {
_state=7;
}
/*FI*/goto l132;
 l140: ;
if (4 == iv1) goto l141;
goto l142;
 l141: ;
/*IF*/if (rT54a_type(C)) {
/*IF*/if (((int)_name_list)) {
{T144 *n=((T144*)se_new(144));
rT144make(n,_name_list,(C)->_last_type);
_declaration=(T0 *)n;}_name_list=NULL;
}
else {
{T146 *n=((T146*)se_new(146));
rT146make(n,_name,(C)->_last_type);
_declaration=(T0 *)n;}_name=NULL;
}
/*FI*//*IF*/if (!(_list)) {
_list=ma(147,0,1,_declaration);
}
else {
rT147add_last((T147*)_list,_declaration);
}
/*FI*/_declaration=NULL;
_state=5;
}
else {
_state=7;
}
/*FI*/goto l132;
 l142: ;
/*IF*/if (rT54skip1(C,'\51')) {
_state=6;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms13_54);
C->_ok=rT54skip1(C,'\54');
_state=1;
}
else {
C->_ok=rT54skip1(C,'\73');
_state=1;
}
/*FI*/ l132: ;
}
}
/*IF*/if ((_state)==(7)) {
rT54fcp(C,(T0 *)ms14_54);
}
 else if ((((int)_sp))&&(!(_list))) {
rT54warning(_sp,(T0 *)ms15_54);
}
 else if (((int)_sp)) {
{T97 *n=((T97*)se_new(97));
rT97make(n,_sp,_list);
C->_arguments=(T0 *)n;}
/*[IRF3:set_arguments*//*AW*/((T138*)oRBC54tmp_feature)->_arguments=((C)->_arguments);/*]*/
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_undefine_list(T54 *C){
/*IF*/if (rT54a_feature_list(C)) {
rT120set_undefine((T120*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_prefix(T54 *C){
int R=0;
/*IF*/if (rT54a_keyword(C,(T0 *)ms149_54)) {
R=1;
/*IF*/if (((C)->_cc)==('\42')) {
rT54next_char(C);
}
else {
rT54wcp(C,(T0 *)ms150_54);
}
/*FI*//*IF*/if (rT54a_unary(C)) {
}
 else if (rT54a_free_operator(C)) {
C->_last_prefix=rT73to_prefix_name((T73*)rT54tmp_operator());
}
else {
rT54fcp(C,(T0 *)ms151_54);
}
/*FI*//*IF*/if (!(rT54skip1(C,'\42'))) {
rT54wcp(C,(T0 *)ms152_54);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_formal_generic_list(T54 *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 iv1=_state;
if (0 == iv1) goto l144;
goto l145;
 l144: ;
/*IF*/if (rT54skip1(C,'\133')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_state=1;
}
else {
_state=5;
}
/*FI*/goto l143;
 l145: ;
if (1 == iv1) goto l146;
goto l147;
 l146: ;
/*IF*/if (rT54a_base_class_name(C)) {
_name=(C)->_last_class_name;
_state=2;
}
else {
_state=6;
}
/*FI*/goto l143;
 l147: ;
if (2 == iv1) goto l148;
goto l149;
 l148: ;
/*IF*/if (rT54skip2(C,'\55','\76')) {
_state=4;
}
 else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
{T88 *n=((T88*)se_new(88));
rT88make(n,_name,_constraint);
_fga=(T0 *)n;}
_name=NULL;
_constraint=NULL;
/*IF*/if (!(_list)) {
_list=ma(90,0,1,_fga);
}
else {
rT90add_last((T90*)_list,_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (rT54skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=rT54skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/goto l143;
 l149: ;
if (3 == iv1) goto l150;
goto l151;
 l150: ;
/*IF*/if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
{T88 *n=((T88*)se_new(88));
rT88make(n,_name,_constraint);
_fga=(T0 *)n;}
_name=NULL;
_constraint=NULL;
/*IF*/if (!(_list)) {
_list=ma(90,0,1,_fga);
}
else {
rT90add_last((T90*)_list,_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (rT54skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=rT54skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/goto l143;
 l151: ;
/*IF*/if (rT54a_class_type(C)) {
_constraint=(C)->_last_class_type;
_state=3;
}
else {
rT54fcp(C,(T0 *)ms113_54);
_state=6;
}
/*FI*/ l143: ;
}
}
/*IF*/if ((_state)==(6)) {
}
 else if ((((int)_sp))&&(!(_list))) {
rT54warning(_sp,(T0 *)ms114_54);
}
 else if (((int)_sp)) {
{T89 *n=((T89*)se_new(89));
rT89make(n,_sp,_list);
C->_formal_generic_list=(T0 *)n;}
/*[IRF3:set_formal_generic_list*//*AW*/((T53*)(C)->_last_base_class)->_formal_generic_list=((C)->_formal_generic_list);/*]*/
}
/*FI*/}/*EIFFEL_PARSER*/void rT54fatal_error(/*C*/T0* a1){
rT48fatal_error(a1);
}/*EIFFEL_PARSER*/void rT54a_function_call(T54 *C){
T0* _e_current=NULL;
T0* _fn=NULL;
_fn=rT73to_feature_name((T73*)rT54tmp_name());
{T94 *n=((T94*)se_new(94));
rT94make(n,/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position,0);
_e_current=(T0 *)n;}
rT54a_r10(C,0,_e_current,_fn,rT54a_actuals(C));
}/*EIFFEL_PARSER*/int rT54a_keyword(T54 *C,T0* a1){
int R=0;
int _i=0;
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
while (!(((_i)==(((T7*)a1)->_count))||(!(rT3same_as((C)->_cc,rT7item((T7*)a1,(_i)+(1))))))) {
_i=(_i)+(1);
rT54next_char(C);
}
/*IF*/if ((_i)==(((T7*)a1)->_count)) {
{int iv1=(C)->_cc;
if ((9<=iv1)&&(iv1<=10)) goto l153;
if (32 == iv1) goto l153;
if (45 == iv1) goto l153;
goto l154;
 l153: ;
R=1;
C->_last_keyword=a1;
rT54skip_comments(C);
goto l152;
 l154: ;
if ((48<=iv1)&&(iv1<=57)) goto l155;
if ((65<=iv1)&&(iv1<=90)) goto l155;
if (95 == iv1) goto l155;
if ((97<=iv1)&&(iv1<=122)) goto l155;
goto l156;
 l155: ;
while (!((_i)==(0))) {
rT54prev_char(C);
_i=(_i)-(1);
}
goto l152;
 l156: ;
R=1;
C->_last_keyword=a1;
 l152: ;
}
}
else {
while (!((_i)==(0))) {
rT54prev_char(C);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_loop(T54 *C){
int R=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _lb=NULL;
T0* _ue=NULL;
T0* _vc=NULL;
T0* _ic=NULL;
T0* _i=NULL;
T0* _e_loop=NULL;
T0* _sp2=NULL;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms124_54)) {
R=1;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_i=rT54a_compound1(C,(T0 *)ms125_54);
/*IF*/if (rT54a_keyword(C,(T0 *)ms126_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp2=(T0 *)n;}
_hc=rT54get_comments(C);
_al=rT54a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T244 *n=((T244*)se_new(244));
rT244make(n,_sp2,_hc,_al);
_ic=(T0 *)n;}
}
/*FI*/}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms127_54)) {
/*IF*/if ((rT54a_tag_mark(C))&&(rT54a_expression(C))) {
{T246 *n=((T246*)se_new(246));
rT246make(n,(C)->_last_tag_mark,(C)->_last_expression,rT54get_comments(C));
_vc=(T0 *)n;}}
 else if (rT54a_expression(C)) {
{T247 *n=((T247*)se_new(247));
rT247make(n,(C)->_last_expression,rT54get_comments(C));
_vc=(T0 *)n;}}
else {
rT54wcp(C,(T0 *)ms128_54);
}
/*FI*/}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms129_54)) {
/*IF*/if (rT54a_expression(C)) {
_ue=XrT72add_comment((C)->_last_expression,rT54get_comments(C));
}
else {
rT54fcp(C,(T0 *)ms130_54);
_ue=(C)->_last_expression;
}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms131_54);
_ue=(C)->_last_expression;
}
/*FI*//*IF*/if (((C)->_cc)==('\73')) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
/*FI*//*IF*/if (!(rT54a_keyword(C,(T0 *)ms132_54))) {
rT54wcp(C,(T0 *)ms133_54);
}
/*FI*/_lb=rT54a_compound2(C,(T0 *)ms134_54,(T0 *)ms115_27);
{T245 *n=((T245*)se_new(245));
rT245make(n,_sp,_i,_ic,_vc,_ue,_lb);
_e_loop=(T0 *)n;}
C->_last_instruction=_e_loop;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_inspect(T54 *C){
int R=0;
T0* _ec=NULL;
T0* _i=NULL;
T0* _spec=NULL;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms120_54)) {
R=1;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_expression(C)) {
C->_last_expression=XrT72add_comment((C)->_last_expression,rT54get_comments(C));
}
else {
rT54fcp(C,(T0 *)ms121_54);
}
/*FI*/{T233 *n=((T233*)se_new(233));
rT233make(n,_sp,(C)->_last_expression);
_i=(T0 *)n;}
while (!(!(rT54a_when_part(C,_i)))) {
}
/*IF*/if (rT54a_keyword(C,(T0 *)ms114_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_spec=(T0 *)n;}
_ec=rT54a_compound2(C,(T0 *)ms122_54,(T0 *)ms115_27);
rT233set_else_compound((T233*)_i,_spec,_ec);
}
 else if (!(rT54a_keyword(C,(T0 *)ms115_27))) {
rT54wcp(C,(T0 *)ms123_54);
}
/*FI*/C->_last_instruction=_i;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_instruction(T54 *C){
int R=0;
R=(((((((rT54a_check(C))||(rT54a_debug(C)))||(rT54a_conditional(C)))||(rT54a_retry(C)))||(rT54a_inspect(C)))||(rT54a_loop(C)))||(rT54a_creation(C)))||(rT54a_assignment_or_call(C));
return R;
}
/*EIFFEL_PARSER*/int rT54a_result(T54 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms119_27,((T73*)rT54tmp_name())->_to_string)) {
/*IF*/if (!((C)->_function_type)) {
rT54error(rT73start_position((T73*)rT54tmp_name()),(T0 *)ms211_54);
}
/*FI*/C->_last_expression=rT73to_e_result((T73*)rT54tmp_name());
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_new_export_list(T54 *C){
int _state=0;
T0* _new_export_item=NULL;
T0* _items=NULL;
T0* _clients=NULL;
T0* _sp=NULL;
T0* _export_list=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms135_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l158;
goto l159;
 l158: ;
/*IF*/if (((C)->_cc)==('\173')) {
_clients=rT54a_clients(C);
_state=1;
}
 else if (((C)->_cc)==('\73')) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
else {
/*IF*/if (((int)_items)) {
{T126 *n=((T126*)se_new(126));
rT126make(n,_sp,_items);
_export_list=(T0 *)n;}
/*[IRF3:set_export*//*AW*/((T120*)(C)->_last_parent)->_export_list=(_export_list);/*]*/
}
/*FI*/_state=4;
}
/*FI*/goto l157;
 l159: ;
if (1 == iv1) goto l160;
goto l161;
 l160: ;
/*IF*/if (rT54a_keyword(C,(T0 *)ms136_54)) {
{T124 *n=((T124*)se_new(124));
rT124make_all(n,_clients);
_new_export_item=(T0 *)n;}
/*IF*/if (!(_items)) {
_items=ma(129,0,1,_new_export_item);
}
else {
rT129add_last((T129*)_items,_new_export_item);
}
/*FI*/_state=2;
}
else {
/*IF*/if (rT54a_feature_list(C)) {
{T124 *n=((T124*)se_new(124));
rT124make(n,_clients,(C)->_last_feature_list);
_new_export_item=(T0 *)n;}
/*IF*/if (!(_items)) {
_items=ma(129,0,1,_new_export_item);
}
else {
rT129add_last((T129*)_items,_new_export_item);
}
/*FI*/_state=2;
}
else {
_state=3;
}
/*FI*/}
/*FI*/goto l157;
 l161: ;
if (2 == iv1) goto l162;
goto l163;
 l162: ;
/*IF*/if (rT54skip1(C,'\73')) {
_state=0;
}
 else if (((C)->_cc)==('\173')) {
rT54wcp(C,(T0 *)ms203_54);
_state=0;
}
else {
/*IF*/if (((int)_items)) {
{T126 *n=((T126*)se_new(126));
rT126make(n,_sp,_items);
_export_list=(T0 *)n;}
/*[IRF3:set_export*//*AW*/((T120*)(C)->_last_parent)->_export_list=(_export_list);/*]*/
}
/*FI*/_state=4;
}
/*FI*/goto l157;
 l163: ;
rT54fcp(C,(T0 *)ms208_54);
_state=4;
 l157: ;
}
}
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_current(T54 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms111_27,((T73*)rT54tmp_name())->_to_string)) {
C->_last_expression=rT73to_e_current((T73*)rT54tmp_name());
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_retry(T54 *C){
int R=0;
/*IF*/if (rT54a_keyword(C,(T0 *)ms31_54)) {
/*IF*/if (!((C)->_in_rescue)) {
rT54error(rT54pos((C)->_start_line,(C)->_start_column),(T0 *)ms32_54);
}
/*FI*/{T232 *n=((T232*)se_new(232));
/*[IRF3:make*//*AW*/(n)->_start_position=(rT54pos((C)->_start_line,(C)->_start_column));/*]*/
C->_last_instruction=(T0 *)n;}R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_integer_constant(T54 *C){
int R=0;
/*IF*/if (rT54skip1(C,'\53')) {
/*IF*/if (!(rT54a_integer(C))) {
rT54fcp(C,(T0 *)ms104_27);
}
else {
R=1;
}
/*FI*/}
 else if (rT54skip1(C,'\55')) {
/*IF*/if (!(rT54a_integer(C))) {
rT54fcp(C,(T0 *)ms104_27);
}
else {
C->_last_integer_constant=rT84_px45((T84*)(C)->_last_integer_constant);
R=1;
}
/*FI*/}
else {
R=rT54a_integer(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_integer(T54 *C){
int R=0;
int _value=0;
int _state=0;
/*IF*/if (rT3is_digit((C)->_cc)) {
R=1;
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
_value=rT3value((C)->_cc);
while (!((_state)>(3))) {
rT54next_char(C);
{int iv1=_state;
if (0 == iv1) goto l165;
goto l166;
 l165: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l168;
goto l169;
 l168: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
goto l167;
 l169: ;
if (95 == iv2) goto l170;
goto l171;
 l170: ;
_state=1;
goto l167;
 l171: ;
_state=4;
 l167: ;
}
goto l164;
 l166: ;
if (1 == iv1) goto l172;
goto l173;
 l172: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l175;
goto l176;
 l175: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
_state=2;
goto l174;
 l176: ;
rT54fcp(C,(T0 *)ms206_54);
 l174: ;
}
goto l164;
 l173: ;
if (2 == iv1) goto l177;
goto l178;
 l177: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l180;
goto l181;
 l180: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
_state=3;
goto l179;
 l181: ;
rT54fcp(C,(T0 *)ms206_54);
 l179: ;
}
goto l164;
 l178: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l183;
goto l184;
 l183: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
_state=0;
goto l182;
 l184: ;
rT54fcp(C,(T0 *)ms206_54);
 l182: ;
}
 l164: ;
}
rT54skip_comments(C);
{T84 *n=((T84*)se_new(84));
rT84make(n,_value,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_integer_constant=(T0 *)n;}
}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54err_exp(/*C*/T0* a1,T0* a2){
T0* _msg=NULL;
{T7 *n=((T7*)se_new(7));
rT7make(n,0);
_msg=(T0 *)n;}
rT7append((T7*)_msg,(T0 *)ms8_54);
rT7append((T7*)_msg,a2);
rT7append((T7*)_msg,(T0 *)ms9_54);
rT48add_position(a1);
rT54fatal_error(_msg);
}/*EIFFEL_PARSER*/int rT54a_expression(T54 *C){
int R=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT54skip2(C,'\74','\74')) {
R=1;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!(!(rT54a_expression(C)))) {
/*IF*/if (!(_list)) {
_list=ma(85,0,1,(C)->_last_expression);
}
else {
XrT85add_last(_list,(C)->_last_expression);
}
/*FI*/C->_ok=rT54skip1(C,'\54');
}
/*IF*/if (!(rT54skip2(C,'\76','\76'))) {
rT54fcp(C,(T0 *)ms88_54);
}
/*FI*/{T164 *n=((T164*)se_new(164));
rT164make(n,_sp,_list);
C->_last_expression=(T0 *)n;}}
else {
R=rT54a_e0(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_void(T54 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms121_27,((T73*)rT54tmp_name())->_to_string)) {
C->_last_expression=rT73to_e_void((T73*)rT54tmp_name());
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_procedure_call(T54 *C){
T0* _e_current=NULL;
T0* _fn=NULL;
_fn=rT73to_feature_name((T73*)rT54tmp_name());
{T94 *n=((T94*)se_new(94));
rT94make(n,/*XrT*FEATURE_NAME*/((T70*)_fn)->_start_position,0);
_e_current=(T0 *)n;}
rT54a_r10(C,1,_e_current,_fn,rT54a_actuals(C));
}/*EIFFEL_PARSER*/T0* rT54a_external(T54 *C){
T0* R=NULL;
T0* _l=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms98_54)) {
_l=((T0 *)((T213*)se_new(213)));
}
 else if (rT54a_keyword(C,(T0 *)ms99_54)) {
_l=((T0 *)((T214*)se_new(214)));
}
 else if (rT54a_keyword(C,(T0 *)ms100_54)) {
_l=((T0 *)((T215*)se_new(215)));
}
 else if (rT54a_keyword(C,(T0 *)ms101_54)) {
_l=((T0 *)((T216*)se_new(216)));
}
 else if (rT54a_keyword(C,(T0 *)ms102_54)) {
_l=((T0 *)((T217*)se_new(217)));
}
else {
rT54fcp(C,(T0 *)ms103_54);
}
/*FI*/R=rT138to_external_routine((T138*)oRBC54tmp_feature,_l,rT54a_alias(C));
return R;
}
T0*oRBC54forbidden_class;
/*EIFFEL_PARSER*/void rT54a_r10(T54 *C,int a1,T0* a2,T0* a3,T0* a4){
/*IF*/if (rT54skip1unless2(C,'\56','\56')) {
rT54a_after_a_dot(C,a1,rT54to_call(a2,a3,a4));
}
else {
/*IF*/if (a1) {
C->_last_instruction=rT54to_proc_call(C,a2,a3,a4);
C->_last_expression=NULL;
}
else {
C->_last_expression=rT54to_call(a2,a3,a4);
C->_last_instruction=NULL;
}
/*FI*/}
/*FI*/}/*EIFFEL_PARSER*/T0* rT54analyse_class(T54 *C,T0* a1){
T0* R=NULL;
int _old_nbw=0;
int _old_nbe=0;
/*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)>(0)) {
rT48append((T0 *)ms1_54);
/*[IRF3:print_as_fatal_error*/rT48do_print((T0 *)ms4_48);
rT48die_with_code(1);
/*]*/
}
/*FI*//*IF*/if (/*(IRF4*/(!(/*(IRF4*/(!(/*(IRF4*/((T54*)oRBC27eiffel_parser)->_is_running/*)*/))&&(((T55*)oRBC27small_eiffel)->_is_doing_eval_flag)/*)*/))&&(((T55*)oRBC27small_eiffel)->_is_compiling_flag)/*)*/) {
rT42put_integer((T42*)oRBC1std_output,(/*(IRF4*/((T57*)oRBC55base_class_dictionary)->_count/*)*/)+(1));
rT42put_character((T42*)oRBC1std_output,'\11');
rT42put_string((T42*)oRBC1std_output,a1);
rT42put_character((T42*)oRBC1std_output,'\12');
}
/*FI*/_old_nbe=/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/;
_old_nbw=/*(IRF4*/((T48*)oRBC27eh)->_nb_warnings/*)*/;
C->_is_running=1;
C->_function_type=NULL;
C->_in_ensure=0;
C->_last_comments=NULL;
C->_ms_numbering=0;
rT64read((T64*)oRBC54text,a1);
C->_line=1;
C->_column=1;
C->_current_line=rT64item((C)->_line);
/*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
C->_cc='\12';
}
else {
C->_cc=rT7first((T7*)(C)->_current_line);
}
/*FI*/{T53 *n=((T53*)se_new(53));
rT53make(n,a1);
C->_last_base_class=(T0 *)n;}
rT54skip_comments(C);
rT54a_class_declaration(C);
C->_is_running=0;
R=(C)->_last_base_class;
/*IF*/if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)-(_old_nbe))>(0)) {
/*[IRF3:show_nb_errors*/rT54show_nb(/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/,(T0 *)ms7_54);
/*]*/
rT38put_string((T38*)oRBC1std_error,(T0 *)ms4_54);
rT38put_string((T38*)oRBC1std_error,a1);
rT38put_string((T38*)oRBC1std_error,(T0 *)ms5_54);
R=NULL;
}
 else if (((/*(IRF4*/((T48*)oRBC27eh)->_nb_warnings/*)*/)-(_old_nbw))>(0)) {
/*[IRF3:show_nb_warnings*/rT54show_nb(/*(IRF4*/((T48*)oRBC27eh)->_nb_warnings/*)*/,(T0 *)ms6_54);
/*]*/
}
/*FI*//*IF*/if (((int)R)) {
rT55add_class((T55*)oRBC27small_eiffel,R);
rT53get_started((T53*)R);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_routine_body(T54 *C){
T0* R=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms113_27)) {
rT53set_is_deferred((T53*)(C)->_last_base_class);
R=rT138to_deferred_routine((T138*)oRBC54tmp_feature);
}
 else if (rT54a_keyword(C,(T0 *)ms164_54)) {
R=rT54a_external(C);
}
 else if (rT54a_keyword(C,(T0 *)ms165_54)) {
/*[IRF3:set_routine_body*//*AW*/((T138*)oRBC54tmp_feature)->_routine_body=(rT54a_compound1(C,(T0 *)ms166_54));/*]*/
R=rT138to_procedure_or_function((T138*)oRBC54tmp_feature);
}
 else if (rT54a_keyword(C,(T0 *)ms167_54)) {
/*[IRF3:set_routine_body*//*AW*/((T138*)oRBC54tmp_feature)->_routine_body=(rT54a_compound1(C,(T0 *)ms168_54));/*]*/
R=rT138to_once_routine((T138*)oRBC54tmp_feature);
}
else {
rT54fcp(C,(T0 *)ms169_54);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_routine(T54 *C){
T0* R=NULL;
T0* _ea=NULL;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms156_54)) {
/*IF*/if (rT54a_manifest_string(C)) {
/*[IRF3:set_obsolete_mark*//*AW*/((T138*)oRBC54tmp_feature)->_obsolete_mark=((C)->_last_manifest_string);/*]*/
}
else {
rT54fcp(C,(T0 *)ms157_54);
}
/*FI*/}
/*FI*//*[IRF3:set_header_comment*//*AW*/((T138*)oRBC54tmp_feature)->_header_comment=(rT54get_comments(C));/*]*/
/*IF*/if (rT54a_keyword(C,(T0 *)ms158_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_keyword(C,(T0 *)ms114_27)) {
_hc=rT54get_comments(C);
rT138set_require_else((T138*)oRBC54tmp_feature,_sp,_hc,rT54a_assertion(C));
}
else {
_hc=rT54get_comments(C);
rT138set_require((T138*)oRBC54tmp_feature,_sp,_hc,rT54a_assertion(C));
}
/*FI*/}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms159_54)) {
rT54a_local_var_list(C,rT54pos((C)->_start_line,(C)->_start_column));
}
/*FI*/R=rT54a_routine_body(C);
/*IF*/if (rT54a_keyword(C,(T0 *)ms160_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
C->_in_ensure=1;
/*IF*/if (rT54a_keyword(C,(T0 *)ms120_27)) {
_hc=rT54get_comments(C);
_al=rT54a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T161 *n=((T161*)se_new(161));
rT161make(n,_sp,_hc,_al);
_ea=(T0 *)n;}
/*[IRF3:set_ensure_then*//*AW*/((T161*)_ea)->_is_ensure_then=(1);/*]*/
}
/*FI*/XrT160set_ensure_assertion(R,_ea);
}
else {
_hc=rT54get_comments(C);
_al=rT54a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T161 *n=((T161*)se_new(161));
rT161make(n,_sp,_hc,_al);
_ea=(T0 *)n;}
}
/*FI*/XrT160set_ensure_assertion(R,_ea);
}
/*FI*/C->_in_ensure=0;
}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms161_54)) {
C->_in_rescue=1;
XrT160set_rescue_compound(R,rT54a_compound2(C,(T0 *)ms162_54,(T0 *)ms115_27));
C->_in_rescue=0;
}
else {
/*IF*/if (!(rT54a_keyword(C,(T0 *)ms115_27))) {
rT54wcp(C,(T0 *)ms163_54);
}
/*FI*/}
/*FI*/C->_local_vars=NULL;
return R;
}
T0*oRBC54tmp_feature;
/*EIFFEL_PARSER*/void rT54skip_comments(T54 *C){
int _state=0;
T0* _sp=NULL;
while (!((_state)==(2))) {
{int iv1=_state;
if (0 == iv1) goto l186;
goto l187;
 l186: ;
{int iv2=(C)->_cc;
if ((9<=iv2)&&(iv2<=10)) goto l189;
if (32 == iv2) goto l189;
goto l190;
 l189: ;
rT54next_char(C);
goto l188;
 l190: ;
if (45 == iv2) goto l191;
goto l192;
 l191: ;
rT54next_char(C);
_state=1;
goto l188;
 l192: ;
_state=2;
 l188: ;
}
goto l185;
 l187: ;
if (1 == iv1) goto l193;
goto l194;
 l193: ;
{int iv2=(C)->_cc;
if (45 == iv2) goto l196;
goto l197;
 l196: ;
/*IF*/if (!((C)->_last_comments)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_line,((C)->_column)-(1));
_sp=(T0 *)n;}
}
/*FI*/rT54next_char(C);
/*[IRF3:clear*//*AW*/((T7*)oRBC54lcs)->_count=(0);/*]*/
while (!(((C)->_cc)==('\12'))) {
rT7extend((T7*)oRBC54lcs,(C)->_cc);
rT54next_char(C);
}
/*IF*/if (!((C)->_last_comments)) {
{T63 *n=((T63*)se_new(63));
rT63make(n,_sp,ma(45,0,1,rT7twin((T7*)oRBC54lcs)));
C->_last_comments=(T0 *)n;}
}
else {
rT63add_last((T63*)(C)->_last_comments,rT7twin((T7*)oRBC54lcs));
}
/*FI*/_state=0;
goto l195;
 l197: ;
rT54prev_char(C);
_state=2;
 l195: ;
}
goto l185;
 l194: ;
 l185: ;
}
}
}/*EIFFEL_PARSER*/int rT54a_strip(T54 *C){
int R=0;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms181_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54skip1(C,'\50')) {
C->_ok=rT54a_feature_list(C);
{T174 *n=((T174*)se_new(174));
rT174make(n,_sp,(C)->_last_feature_list);
C->_last_expression=(T0 *)n;}/*IF*/if (!(rT54skip1(C,'\51'))) {
rT54fcp(C,(T0 *)ms182_54);
}
/*FI*/R=1;
}
else {
rT54fcp(C,(T0 *)ms183_54);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54prev_char(T54 *C){
/*IF*/if (((C)->_column)>(1)) {
C->_column=((C)->_column)-(1);
C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
}
else {
/*IF*/if (((C)->_line)>(1)) {
C->_line=((C)->_line)-(1);
C->_current_line=rT64item((C)->_line);
C->_column=(((T7*)(C)->_current_line)->_count)+(1);
C->_cc='\12';
}
else {
C->_column=0;
C->_cc='\0';
}
/*FI*/}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_type(T54 *C){
int R=0;
T0* _argument_name=NULL;
T0* _sp=NULL;
R=1;
/*IF*/if (rT54a_keyword(C,(T0 *)ms189_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_identifier(C)) {
/*IF*/if (rT54a_current(C)) {
{T95 *n=((T95*)se_new(95));
rT95make(n,_sp,(C)->_last_expression);
C->_last_type=(T0 *)n;}}
 else if (rT54a_argument(C)) {
_argument_name=(C)->_last_expression;
if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
case 92: 
break;
default:
_argument_name = NULL;
};{T100 *n=((T100*)se_new(100));
rT100make(n,_sp,_argument_name);
C->_last_type=(T0 *)n;}}
else {
{T101 *n=((T101*)se_new(101));
rT101make(n,_sp,rT73to_feature_name((T73*)rT54tmp_name()));
C->_last_type=(T0 *)n;}}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms190_54);
}
/*FI*/}
 else if (rT54a_keyword(C,(T0 *)ms116_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_class_type(C)) {
{T102 *n=((T102*)se_new(102));
rT102make(n,_sp,(C)->_last_class_type);
C->_last_type=(T0 *)n;}}
else {
rT54fcp(C,(T0 *)ms191_54);
}
/*FI*/}
 else if (rT54a_keyword(C,(T0 *)ms38_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_integer(C)) {
{T103 *n=((T103*)se_new(103));
rT103make(n,_sp,(C)->_last_integer_constant);
C->_last_type=(T0 *)n;}}
 else if (rT54a_identifier(C)) {
{T105 *n=((T105*)se_new(105));
rT105make(n,_sp,rT73to_feature_name((T73*)rT54tmp_name()));
C->_last_type=(T0 *)n;}}
else {
rT54fcp(C,(T0 *)ms192_54);
}
/*FI*/}
 else if (rT54a_type_formal_generic(C)) {
C->_last_type=(C)->_last_type_formal_generic;
}
 else if (rT54a_class_type(C)) {
C->_last_type=(C)->_last_class_type;
}
else {
R=0;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_type_formal_generic(T54 *C){
int R=0;
int _rank=0;
T0* _cn=NULL;
T0* _fga=NULL;
/*IF*/if (((int)(C)->_formal_generic_list)) {
_rank=1;
while (!((R)||((_rank)>(rT89count((T89*)(C)->_formal_generic_list))))) {
_fga=rT89item((T89*)(C)->_formal_generic_list,_rank);
/*IF*/if (rT54a_keyword(C,((T51*)((T88*)_fga)->_name)->_to_string)) {
{T51 *n=((T51*)se_new(51));
rT51make(n,((T51*)((T88*)_fga)->_name)->_to_string,rT54pos((C)->_start_line,(C)->_start_column));
_cn=(T0 *)n;}
{T106 *n=((T106*)se_new(106));
rT106make(n,_cn,_rank);
C->_last_type_formal_generic=(T0 *)n;}
R=1;
}
/*FI*/_rank=(_rank)+(1);
}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54next_char(T54 *C){
/*IF*/if (((C)->_column)<(((T7*)(C)->_current_line)->_count)) {
C->_column=((C)->_column)+(1);
C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
}
 else if (((C)->_column)==(((T7*)(C)->_current_line)->_count)) {
C->_column=((C)->_column)+(1);
C->_cc='\12';
}
 else if (((C)->_line)==(((T64*)oRBC54text)->_count)) {
C->_cc='\0';
}
else {
C->_column=1;
C->_line=((C)->_line)+(1);
C->_current_line=rT64item((C)->_line);
/*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
C->_cc='\12';
}
else {
C->_cc=rT7first((T7*)(C)->_current_line);
}
/*FI*/}
/*FI*/}int ofBC54tmp_name=0;
T0*oRBC54tmp_name;
/*EIFFEL_PARSER*/T0* rT54tmp_name(/*C*/void){
if (ofBC54tmp_name==0){
T0* R=NULL;
ofBC54tmp_name=1;
{T73 *n=((T73*)se_new(73));
rT73make(n,0,0);
R=(T0 *)n;}
oRBC54tmp_name=R;}
return oRBC54tmp_name;}
int ofBC54tmp_operator=0;
T0*oRBC54tmp_operator;
/*EIFFEL_PARSER*/T0* rT54tmp_operator(/*C*/void){
if (ofBC54tmp_operator==0){
T0* R=NULL;
ofBC54tmp_operator=1;
{T73 *n=((T73*)se_new(73));
rT73make(n,0,0);
R=(T0 *)n;}
oRBC54tmp_operator=R;}
return oRBC54tmp_operator;}
/*EIFFEL_PARSER*/void rT54show_nb(/*C*/int a1,T0* a2){
/*IF*/if ((a1)>(0)) {
rT38put_string((T38*)oRBC1std_error,(T0 *)ms109_27);
rT38put_integer((T38*)oRBC1std_error,a1);
rT38put_string((T38*)oRBC1std_error,a2);
}
/*FI*/}/*EIFFEL_PARSER*/T0* rT54current_position(T54 *C){
T0* R=NULL;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_line,(C)->_column);
R=(T0 *)n;}
return R;
}
/*EIFFEL_PARSER*/void rT54warning(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48warning((T48*)oRBC27eh,a2);
}/*EIFFEL_PARSER*/T0* rT54current_class_name(T54 *C){
T0* R=NULL;
R=((T53*)(C)->_last_base_class)->_base_class_name;
return R;
}
/*EIFFEL_PARSER*/T0* rT54to_proc_call(T54 *C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if (!(a2)) {
rT54fcp(C,(T0 *)ms197_54);
}
 else if (!(a3)) {
{T183 *n=((T183*)se_new(183));
rT183make(n,a1,a2);
R=(T0 *)n;}}
 else if ((rT175count((T175*)a3))==(1)) {
{T184 *n=((T184*)se_new(184));
rT184make(n,a1,a2,a3);
R=(T0 *)n;}}
else {
{T185 *n=((T185*)se_new(185));
rT185make(n,a1,a2,a3);
R=(T0 *)n;}}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54error(/*C*/T0* a1,T0* a2){
rT48add_position(a1);
rT48error((T48*)oRBC27eh,a2);
}/*EIFFEL_PARSER*/void rT54ecp(T54 *C,T0* a1){
rT54error(rT54current_position(C),a1);
}/*EIFFEL_PARSER*/void rT54fcp(T54 *C,T0* a1){
rT48add_position(rT54current_position(C));
rT54fatal_error(a1);
}T0*oRBC54lcs;
T0*oRBC54text;
/*EIFFEL_PARSER*/void rT54wcp(T54 *C,T0* a1){
rT54warning(rT54current_position(C),a1);
}/*EIFFEL_PARSER*/T0* rT54pos(/*C*/int a1,int a2){
T0* R=NULL;
{T49 *n=((T49*)se_new(49));
rT49make(n,a1,a2);
R=(T0 *)n;}
return R;
}
/*EIFFEL_PARSER*/int rT54a_e0(T54 *C){
int R=0;
R=rT54a_e1(C);
rT54a_r1(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e1(T54 *C){
int R=0;
R=rT54a_e2(C);
rT54a_r2(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e2(T54 *C){
int R=0;
R=rT54a_e3(C);
rT54a_r3(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e3(T54 *C){
int R=0;
R=rT54a_e4(C);
rT54a_r4(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e4(T54 *C){
int R=0;
R=rT54a_e5(C);
rT54a_r5(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e5(T54 *C){
int R=0;
R=rT54a_e6(C);
rT54a_r6(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e6(T54 *C){
int R=0;
R=rT54a_e7(C);
rT54a_r7(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e7(T54 *C){
int R=0;
R=rT54a_e8(C);
rT54a_r8(C,(C)->_last_expression);
return R;
}
/*EIFFEL_PARSER*/int rT54a_e8(T54 *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 (rT54a_keyword(C,(T0 *)ms118_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e8(C)) {
{T172 *n=((T172*)se_new(172));
rT172make(n,_sp,(C)->_last_expression);
_prefix_not=(T0 *)n;}
C->_last_expression=_prefix_not;
R=1;
}
else {
rT54err_exp(_sp,(T0 *)ms118_27);
}
/*FI*/}
 else if (rT54skip1(C,'\53')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e8(C)) {
{T171 *n=((T171*)se_new(171));
rT171make(n,_sp,(C)->_last_expression);
_prefix_plus=(T0 *)n;}
C->_last_expression=_prefix_plus;
R=1;
}
else {
rT54err_exp(_sp,(T0 *)ms89_54);
}
/*FI*/}
 else if (rT54skip1(C,'\55')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e8(C)) {
{T170 *n=((T170*)se_new(170));
rT170make(n,_sp,(C)->_last_expression);
_prefix_moins=(T0 *)n;}
C->_last_expression=_prefix_moins;
R=1;
}
else {
rT54err_exp(_sp,(T0 *)ms90_54);
}
/*FI*/}
 else if (rT54a_free_operator(C)) {
_op=rT73to_prefix_name((T73*)rT54tmp_operator());
/*IF*/if (rT54a_e8(C)) {
{T165 *n=((T165*)se_new(165));
rT165make(n,(C)->_last_expression,_op);
_prefix_freeop=(T0 *)n;}
C->_last_expression=_prefix_freeop;
R=1;
}
else {
rT48append((T0 *)ms91_54);
rT54err_exp(((T70*)_op)->_start_position,((T70*)_op)->_to_string);
}
/*FI*/}
else {
R=rT54a_e9(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_e9(T54 *C){
int R=0;
T0* _e_old=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms92_54)) {
/*IF*/if (!((C)->_in_ensure)) {
rT54error(rT54pos((C)->_start_line,(C)->_start_column),(T0 *)ms93_54);
}
/*FI*//*IF*/if (rT54a_e10(C)) {
{T173 *n=((T173*)se_new(173));
/*[IRF3:make*//*AW*/(n)->_expression=((C)->_last_expression);/*]*/
_e_old=(T0 *)n;}
C->_last_expression=_e_old;
R=1;
}
else {
rT54fcp(C,(T0 *)ms94_54);
}
/*FI*/}
else {
R=rT54a_e10(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_r1(T54 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_implies=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms117_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e1(C)) {
{T208 *n=((T208*)se_new(208));
rT208make(n,a1,_sp,(C)->_last_expression);
_infix_implies=(T0 *)n;}
rT54a_r1(C,_infix_implies);
}
else {
rT54error(_sp,(T0 *)ms170_54);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_r2(T54 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_xor=NULL;
T0* _infix_or=NULL;
T0* _infix_or_else=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms81_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_keyword(C,(T0 *)ms114_27)) {
/*IF*/if (rT54a_e2(C)) {
{T207 *n=((T207*)se_new(207));
rT207make(n,a1,_sp,(C)->_last_expression);
_infix_or_else=(T0 *)n;}
rT54a_r2(C,_infix_or_else);
}
else {
rT54err_exp(_sp,(T0 *)ms82_27);
}
/*FI*/}
else {
/*IF*/if (rT54a_e2(C)) {
{T206 *n=((T206*)se_new(206));
rT206make(n,a1,_sp,(C)->_last_expression);
_infix_or=(T0 *)n;}
rT54a_r2(C,_infix_or);
}
else {
rT54err_exp(_sp,(T0 *)ms81_27);
}
/*FI*/}
/*FI*/}
 else if (rT54a_keyword(C,(T0 *)ms122_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e2(C)) {
{T205 *n=((T205*)se_new(205));
rT205make(n,a1,_sp,(C)->_last_expression);
_infix_xor=(T0 *)n;}
rT54a_r2(C,_infix_xor);
}
else {
rT54err_exp(_sp,(T0 *)ms122_27);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_r3(T54 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_and=NULL;
T0* _infix_and_then=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms59_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_keyword(C,(T0 *)ms120_27)) {
/*IF*/if (rT54a_e3(C)) {
{T204 *n=((T204*)se_new(204));
rT204make(n,a1,_sp,(C)->_last_expression);
_infix_and_then=(T0 *)n;}
rT54a_r3(C,_infix_and_then);
}
else {
rT54err_exp(_sp,(T0 *)ms60_27);
}
/*FI*/}
else {
/*IF*/if (rT54a_e3(C)) {
{T203 *n=((T203*)se_new(203));
rT203make(n,a1,_sp,(C)->_last_expression);
_infix_and=(T0 *)n;}
rT54a_r3(C,_infix_and);
}
else {
rT54err_exp(_sp,(T0 *)ms59_27);
}
/*FI*/}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_r4(T54 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_gt=NULL;
T0* _infix_ge=NULL;
T0* _infix_lt=NULL;
T0* _infix_le=NULL;
T0* _infix_not_equal=NULL;
T0* _infix_equal=NULL;
/*IF*/if (rT54skip1(C,'\75')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e4(C)) {
{T202 *n=((T202*)se_new(202));
rT202make(n,a1,_sp,(C)->_last_expression);
_infix_equal=(T0 *)n;}
rT54a_r4(C,_infix_equal);
}
else {
rT54err_exp(_sp,(T0 *)ms171_54);
}
/*FI*/}
 else if (rT54skip2(C,'\57','\75')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e4(C)) {
{T201 *n=((T201*)se_new(201));
rT201make(n,a1,_sp,(C)->_last_expression);
_infix_not_equal=(T0 *)n;}
rT54a_r4(C,_infix_not_equal);
}
else {
rT54err_exp(_sp,(T0 *)ms172_54);
}
/*FI*/}
 else if (rT54skip2(C,'\74','\75')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e4(C)) {
{T200 *n=((T200*)se_new(200));
rT200make(n,a1,_sp,(C)->_last_expression);
_infix_le=(T0 *)n;}
rT54a_r4(C,_infix_le);
}
else {
rT54err_exp(_sp,(T0 *)ms173_54);
}
/*FI*/}
 else if (rT54skip2(C,'\76','\75')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e4(C)) {
{T198 *n=((T198*)se_new(198));
rT198make(n,a1,_sp,(C)->_last_expression);
_infix_ge=(T0 *)n;}
rT54a_r4(C,_infix_ge);
}
else {
rT54err_exp(_sp,(T0 *)ms174_54);
}
/*FI*/}
 else if (rT54skip1(C,'\74')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e4(C)) {
{T199 *n=((T199*)se_new(199));
rT199make(n,a1,_sp,(C)->_last_expression);
_infix_lt=(T0 *)n;}
rT54a_r4(C,_infix_lt);
}
else {
rT54err_exp(_sp,(T0 *)ms175_54);
}
/*FI*/}
 else if (rT54skip1unless2(C,'\76','\76')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e4(C)) {
{T197 *n=((T197*)se_new(197));
rT197make(n,a1,_sp,(C)->_last_expression);
_infix_gt=(T0 *)n;}
rT54a_r4(C,_infix_gt);
}
else {
rT54err_exp(_sp,(T0 *)ms176_54);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_r5(T54 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_minus=NULL;
T0* _infix_plus=NULL;
/*IF*/if (rT54skip1(C,'\53')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e5(C)) {
{T196 *n=((T196*)se_new(196));
rT196make(n,a1,_sp,(C)->_last_expression);
_infix_plus=(T0 *)n;}
rT54a_r5(C,_infix_plus);
}
else {
rT54err_exp(_sp,(T0 *)ms95_27);
}
/*FI*/}
 else if (rT54skip1(C,'\55')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e5(C)) {
{T195 *n=((T195*)se_new(195));
rT195make(n,a1,_sp,(C)->_last_expression);
_infix_minus=(T0 *)n;}
rT54a_r5(C,_infix_minus);
}
else {
rT54err_exp(_sp,(T0 *)ms96_27);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_r6(T54 *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 (rT54skip1(C,'\52')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e6(C)) {
{T194 *n=((T194*)se_new(194));
rT194make(n,a1,_sp,(C)->_last_expression);
_infix_times=(T0 *)n;}
rT54a_r6(C,_infix_times);
}
else {
rT54err_exp(_sp,(T0 *)ms177_54);
}
/*FI*/}
 else if (rT54skip2(C,'\57','\57')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e6(C)) {
{T193 *n=((T193*)se_new(193));
rT193make(n,a1,_sp,(C)->_last_expression);
_infix_int_div=(T0 *)n;}
rT54a_r6(C,_infix_int_div);
}
else {
rT54err_exp(_sp,(T0 *)ms178_54);
}
/*FI*/}
 else if (rT54skip2(C,'\134','\134')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e6(C)) {
{T192 *n=((T192*)se_new(192));
rT192make(n,a1,_sp,(C)->_last_expression);
_infix_int_rem=(T0 *)n;}
rT54a_r6(C,_infix_int_rem);
}
else {
rT54err_exp(_sp,(T0 *)ms179_54);
}
/*FI*/}
 else if (rT54skip1unless2(C,'\57','\75')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e6(C)) {
{T191 *n=((T191*)se_new(191));
rT191make(n,a1,_sp,(C)->_last_expression);
_infix_div=(T0 *)n;}
rT54a_r6(C,_infix_div);
}
else {
rT54err_exp(_sp,(T0 *)ms125_27);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/int rT54skip1unless2(T54 *C,char a1,char a2){
int R=0;
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
/*IF*/if (((C)->_cc)==(a1)) {
rT54next_char(C);
/*IF*/if (((C)->_cc)==(a2)) {
rT54prev_char(C);
}
else {
R=1;
rT54skip_comments(C);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54skip1(T54 *C,char a1){
int R=0;
/*IF*/if ((a1)==((C)->_cc)) {
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
R=1;
rT54next_char(C);
rT54skip_comments(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_r7(T54 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_power=NULL;
/*IF*/if (rT54skip1(C,'\136')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54a_e7(C)) {
{T190 *n=((T190*)se_new(190));
rT190make(n,a1,_sp,(C)->_last_expression);
_infix_power=(T0 *)n;}
rT54a_r7(C,_infix_power);
}
else {
rT54err_exp(_sp,(T0 *)ms180_54);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/int rT54skip2(T54 *C,char a1,char a2){
int R=0;
/*IF*/if ((a1)==((C)->_cc)) {
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
rT54next_char(C);
/*IF*/if ((a2)==((C)->_cc)) {
R=1;
rT54next_char(C);
rT54skip_comments(C);
}
else {
rT54prev_char(C);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_r8(T54 *C,T0* a1){
T0* _infix_freeop=NULL;
T0* _infix_name=NULL;
/*IF*/if (rT54a_free_operator(C)) {
_infix_name=rT73to_infix_name_use((T73*)rT54tmp_operator());
/*IF*/if (rT54a_e8(C)) {
{T188 *n=((T188*)se_new(188));
rT188make(n,a1,_infix_name,(C)->_last_expression);
_infix_freeop=(T0 *)n;}
rT54a_r8(C,_infix_freeop);
}
else {
rT54err_exp(((T74*)_infix_name)->_start_position,((T74*)_infix_name)->_to_string);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_debug(T54 *C){
int R=0;
T0* _e_debug=NULL;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms84_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT54skip1(C,'\50')) {
while (!(!(rT54a_manifest_string(C)))) {
/*IF*/if (!(_list)) {
_list=ma(155,0,1,(C)->_last_manifest_string);
}
else {
rT155add_last((T155*)_list,(C)->_last_manifest_string);
}
/*FI*/C->_ok=rT54skip1(C,'\54');
}
/*IF*/if (!(_list)) {
rT54wcp(C,(T0 *)ms85_54);
}
/*FI*//*IF*/if (!(rT54skip1(C,'\51'))) {
rT54fcp(C,(T0 *)ms86_54);
}
/*FI*/}
/*FI*/R=1;
{T223 *n=((T223*)se_new(223));
rT223make(n,_sp,_list,rT54a_compound2(C,(T0 *)ms87_54,(T0 *)ms115_27));
_e_debug=(T0 *)n;}
C->_last_instruction=_e_debug;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_feature_declaration(T54 *C){
int R=0;
rT138initialize((T138*)oRBC54tmp_feature);
/*IF*/if (rT54a_keyword(C,(T0 *)ms106_54)) {
/*IF*/if (rT54a_feature_name(C)) {
R=1;
/*XrT*FEATURE_NAME*//*[IRF3:set_is_frozen*//*AW*/((T70*)(C)->_last_feature_name)->_is_frozen=(1);/*]*/
rT138add_synonym((C)->_last_feature_name);
}
else {
rT54fcp(C,(T0 *)ms199_54);
}
/*FI*/}
 else if (rT54a_feature_name(C)) {
R=1;
rT138add_synonym((C)->_last_feature_name);
}
/*FI*/while (!(!(rT54skip1(C,'\54')))) {
/*IF*/if (rT54a_keyword(C,(T0 *)ms107_54)) {
/*IF*/if (rT54a_feature_name(C)) {
/*XrT*FEATURE_NAME*//*[IRF3:set_is_frozen*//*AW*/((T70*)(C)->_last_feature_name)->_is_frozen=(1);/*]*/
rT138add_synonym((C)->_last_feature_name);
}
else {
rT54fcp(C,(T0 *)ms108_54);
}
/*FI*/}
 else if (rT54a_feature_name(C)) {
rT138add_synonym((C)->_last_feature_name);
}
else {
rT54ecp(C,(T0 *)ms109_54);
}
/*FI*/}
/*IF*/if (R) {
rT54a_formal_arg_list(C);
C->_function_type=NULL;
/*IF*/if (rT54skip1(C,'\72')) {
/*IF*/if (!(rT54a_type(C))) {
rT54fcp(C,(T0 *)ms110_54);
}
else {
C->_function_type=(C)->_last_type;
/*[IRF3:set_type*//*AW*/((T138*)oRBC54tmp_feature)->_type=((C)->_last_type);/*]*/
}
/*FI*/}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms111_54)) {
/*IF*/if (rT54a_keyword(C,(T0 *)ms112_54)) {
C->_last_feature_declaration=rT138to_cst_att_unique((T138*)oRBC54tmp_feature);
}
 else if (rT54a_boolean_constant(C)) {
C->_last_feature_declaration=rT138to_cst_att_boolean((T138*)oRBC54tmp_feature,(C)->_last_boolean_constant);
}
 else if (rT54a_character_constant(C)) {
C->_last_feature_declaration=rT138to_cst_att_character((T138*)oRBC54tmp_feature,(C)->_last_character_constant);
}
 else if (rT54a_manifest_string(C)) {
C->_last_feature_declaration=rT138to_cst_att_string((T138*)oRBC54tmp_feature,(C)->_last_manifest_string);
}
 else if (rT54a_bit_constant(C)) {
C->_last_feature_declaration=rT138to_cst_att_bit((T138*)oRBC54tmp_feature,(C)->_last_bit_constant);
}
 else if (rT54a_real_constant(C)) {
C->_last_feature_declaration=rT138to_cst_att_real((T138*)oRBC54tmp_feature,(C)->_last_real_constant);
}
 else if (rT54a_integer_constant(C)) {
C->_last_feature_declaration=rT138to_cst_att_integer((T138*)oRBC54tmp_feature,(C)->_last_integer_constant);
}
else {
C->_last_feature_declaration=rT54a_routine(C);
}
/*FI*/}
else {
C->_last_feature_declaration=rT138to_writable_attribute((T138*)oRBC54tmp_feature);
}
/*FI*/C->_function_type=NULL;
C->_arguments=NULL;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_feature_clause(T54 *C){
T0* _aof=NULL;
T0* _comment=NULL;
T0* _clients=NULL;
T0* _feature_clause=NULL;
_clients=rT54a_clients(C);
_comment=rT54get_comments(C);
while (!(!(rT54a_feature_declaration(C)))) {
C->_ok=rT54skip1(C,'\73');
/*IF*/if (((int)(C)->_last_feature_declaration)) {
/*IF*/if (!(_aof)) {
_aof=ma(67,0,1,(C)->_last_feature_declaration);
}
else {
rT67add_last((T67*)_aof,(C)->_last_feature_declaration);
}
/*FI*/XrT66set_header_comment((C)->_last_feature_declaration,rT54get_comments(C));
}
/*FI*/}
/*IF*/if ((((int)_aof))||(((int)_comment))) {
{T137 *n=((T137*)se_new(137));
rT137make(n,_clients,_comment,_aof);
_feature_clause=(T0 *)n;}
rT53add_feature_clause((T53*)(C)->_last_base_class,_feature_clause);
}
/*FI*/C->_last_keyword=NULL;
}/*EIFFEL_PARSER*/int rT54a_feature_list(T54 *C){
int R=0;
int _state=0;
C->_last_feature_list=NULL;
while (!((_state)>=(3))) {
{int iv1=_state;
if (0 == iv1) goto l199;
goto l200;
 l199: ;
/*IF*/if (rT54a_feature_name(C)) {
C->_last_feature_list=ma(131,0,1,(C)->_last_feature_name);
R=1;
_state=1;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms204_54);
C->_ok=rT54skip1(C,'\54');
}
else {
_state=3;
}
/*FI*/goto l198;
 l200: ;
if (1 == iv1) goto l201;
goto l202;
 l201: ;
/*IF*/if (((C)->_cc)==('\54')) {
C->_ok=rT54skip1(C,'\54');
_state=2;
}
 else if (rT54a_feature_name(C)) {
rT54warning(/*XrT*FEATURE_NAME*/((T70*)(C)->_last_feature_name)->_start_position,(T0 *)ms202_54);
rT131add_last((T131*)(C)->_last_feature_list,(C)->_last_feature_name);
}
else {
_state=3;
}
/*FI*/goto l198;
 l202: ;
if (2 == iv1) goto l203;
goto l204;
 l203: ;
/*IF*/if (rT54a_feature_name(C)) {
rT131add_last((T131*)(C)->_last_feature_list,(C)->_last_feature_name);
_state=1;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms209_54);
C->_ok=rT54skip1(C,'\54');
}
else {
rT54ecp(C,(T0 *)ms199_54);
_state=3;
}
/*FI*/goto l198;
 l204: ;
 l198: ;
}
}
return R;
}
/*EIFFEL_PARSER*/int rT54a_feature_name(T54 *C){
int R=0;
/*IF*/if (rT54a_prefix(C)) {
C->_last_feature_name=(C)->_last_prefix;
R=1;
}
 else if (rT54a_infix(C)) {
C->_last_feature_name=(C)->_last_infix;
R=1;
}
 else if (rT54a_identifier(C)) {
C->_last_feature_name=rT73to_feature_name((T73*)rT54tmp_name());
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_character_constant(T54 *C){
int R=0;
char _value=0;
int _printing_mode=0;
int _state=0;
T0* _sp=NULL;
/*IF*/if (((C)->_cc)==('\47')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_line,(C)->_column);
_sp=(T0 *)n;}
R=1;
while (!((_state)>(2))) {
rT54next_char(C);
{int iv1=_state;
if (0 == iv1) goto l206;
goto l207;
 l206: ;
{int iv2=(C)->_cc;
if (37 == iv2) goto l209;
goto l210;
 l209: ;
_state=1;
goto l208;
 l210: ;
if (39 == iv2) goto l211;
goto l212;
 l211: ;
rT54fcp(C,(T0 *)ms207_54);
_state=2;
goto l208;
 l212: ;
_value=(C)->_cc;
_printing_mode=0;
_state=2;
 l208: ;
}
goto l205;
 l207: ;
if (1 == iv1) goto l213;
goto l214;
 l213: ;
_printing_mode=1;
_state=2;
{int iv2=(C)->_cc;
if (65 == iv2) goto l216;
goto l217;
 l216: ;
_value='\100';
goto l215;
 l217: ;
if (66 == iv2) goto l218;
goto l219;
 l218: ;
_value='\10';
goto l215;
 l219: ;
if (67 == iv2) goto l220;
goto l221;
 l220: ;
_value='\136';
goto l215;
 l221: ;
if (68 == iv2) goto l222;
goto l223;
 l222: ;
_value='\44';
goto l215;
 l223: ;
if (70 == iv2) goto l224;
goto l225;
 l224: ;
_value='\14';
goto l215;
 l225: ;
if (72 == iv2) goto l226;
goto l227;
 l226: ;
_value='\134';
goto l215;
 l227: ;
if (76 == iv2) goto l228;
goto l229;
 l228: ;
_value='\176';
goto l215;
 l229: ;
if (78 == iv2) goto l230;
goto l231;
 l230: ;
_value='\12';
goto l215;
 l231: ;
if (81 == iv2) goto l232;
goto l233;
 l232: ;
_value='\140';
goto l215;
 l233: ;
if (82 == iv2) goto l234;
goto l235;
 l234: ;
_value='\15';
goto l215;
 l235: ;
if (83 == iv2) goto l236;
goto l237;
 l236: ;
_value='\43';
goto l215;
 l237: ;
if (84 == iv2) goto l238;
goto l239;
 l238: ;
_value='\11';
goto l215;
 l239: ;
if (85 == iv2) goto l240;
goto l241;
 l240: ;
_value='\0';
goto l215;
 l241: ;
if (86 == iv2) goto l242;
goto l243;
 l242: ;
_value='\174';
goto l215;
 l243: ;
if (37 == iv2) goto l244;
goto l245;
 l244: ;
_value='\45';
goto l215;
 l245: ;
if (39 == iv2) goto l246;
goto l247;
 l246: ;
_value='\47';
goto l215;
 l247: ;
if (34 == iv2) goto l248;
goto l249;
 l248: ;
_value='\42';
goto l215;
 l249: ;
if (40 == iv2) goto l250;
goto l251;
 l250: ;
_value='\133';
goto l215;
 l251: ;
if (41 == iv2) goto l252;
goto l253;
 l252: ;
_value='\135';
goto l215;
 l253: ;
if (60 == iv2) goto l254;
goto l255;
 l254: ;
_value='\173';
goto l215;
 l255: ;
if (62 == iv2) goto l256;
goto l257;
 l256: ;
_value='\175';
goto l215;
 l257: ;
if (47 == iv2) goto l258;
goto l259;
 l258: ;
rT54a_ascii_code(C);
_value=(C)->_last_ascii_code;
_printing_mode=2;
goto l215;
 l259: ;
rT54fcp(C,(T0 *)ms24_54);
 l215: ;
}
goto l205;
 l214: ;
_state=3;
{int iv2=(C)->_cc;
if (39 == iv2) goto l261;
goto l262;
 l261: ;
goto l260;
 l262: ;
rT54fcp(C,(T0 *)ms207_54);
 l260: ;
}
rT54next_char(C);
rT54skip_comments(C);
 l205: ;
}
}
{T79 *n=((T79*)se_new(79));
rT79make(n,_sp,_value,_printing_mode);
C->_last_character_constant=(T0 *)n;}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_check(T54 *C){
int R=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms110_27)) {
R=1;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_hc=rT54get_comments(C);
_al=rT54a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T221 *n=((T221*)se_new(221));
rT221make(n,_sp,_hc,_al);
C->_last_instruction=(T0 *)n;}}
else {
rT54wcp(C,(T0 *)ms53_54);
}
/*FI*//*IF*/if (!(rT54a_keyword(C,(T0 *)ms115_27))) {
rT54fcp(C,(T0 *)ms54_54);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_class_declaration(T54 *C){
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
rT54a_indexing(C);
/*IF*/if (rT54a_keyword(C,(T0 *)ms113_27)) {
rT53set_is_deferred((T53*)(C)->_last_base_class);
}
/*FI*//*IF*/if (rT54a_keyword(C,(T0 *)ms116_27)) {
rT53set_is_expanded((T53*)(C)->_last_base_class);
/*IF*/if (rT54a_keyword(C,(T0 *)ms113_27)) {
rT53set_is_deferred((T53*)(C)->_last_base_class);
}
/*FI*/}
/*FI*//*[IRF3:set_heading_comment1*//*AW*/((T53*)(C)->_last_base_class)->_heading_comment1=(rT54get_comments(C));/*]*/
/*IF*/if (!(rT54a_keyword(C,(T0 *)ms55_54))) {
rT54fcp(C,(T0 *)ms56_54);
}
/*FI*//*IF*/if (rT54a_base_class_name(C)) {
rT51set_with((T51*)rT54current_class_name(C),(C)->_last_class_name);
/*IF*/if (rT45fast_has((T45*)oRBC54forbidden_class,((T51*)(C)->_last_class_name)->_to_string)) {
rT48add_position(((T51*)(C)->_last_class_name)->_start_position);
rT54fatal_error((T0 *)ms57_54);
}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms58_54);
}
/*FI*/rT54a_formal_generic_list(C);
/*IF*/if (rT54a_keyword(C,(T0 *)ms59_54)) {
/*IF*/if (rT54a_manifest_string(C)) {
/*[IRF3:set_obsolete_type_string*//*AW*/((T53*)(C)->_last_base_class)->_obsolete_type_string=((C)->_last_manifest_string);/*]*/
}
else {
rT54fcp(C,(T0 *)ms60_54);
}
/*FI*/}
/*FI*//*[IRF3:set_heading_comment2*//*AW*/((T53*)(C)->_last_base_class)->_heading_comment2=(rT54get_comments(C));/*]*/
/*IF*/if (rT54a_keyword(C,(T0 *)ms61_54)) {
rT54a_parent_list(C,rT54pos((C)->_start_line,(C)->_start_column),rT54get_comments(C));
}
/*FI*/while (!(!(rT54a_keyword(C,(T0 *)ms112_27)))) {
rT54a_creation_clause(C);
}
while (!(!(rT54a_keyword(C,(T0 *)ms62_54)))) {
rT54a_feature_clause(C);
}
/*IF*/if (rT54a_keyword(C,(T0 *)ms63_54)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_hc=rT54get_comments(C);
_al=rT54a_assertion(C);
rT53set_invariant((T53*)(C)->_last_base_class,_sp,_hc,_al);
}
/*FI*//*IF*/if ((rT54a_keyword(C,(T0 *)ms115_27))||(((T0 *)(C)->_last_keyword)==((T0 *)(T0 *)ms115_27))) {
/*IF*/if (((C)->_cc)==('\73')) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
/*FI*//*[IRF3:set_end_comment*//*AW*/((T53*)(C)->_last_base_class)->_end_comment=(rT54get_comments(C));/*]*/
/*IF*/if (((C)->_cc)!=('\0')) {
rT54fcp(C,(T0 *)ms64_54);
}
/*FI*/}
else {
rT54fcp(C,(T0 *)ms65_54);
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_class_type(T54 *C){
int R=0;
T0* _generic_list=NULL;
T0* _base_class_name=NULL;
int _state=0;
/*IF*/if (rT54a_base_type(C)) {
C->_last_class_type=(C)->_last_base_type;
R=1;
}
 else if (rT54a_base_class_name(C)) {
R=1;
_base_class_name=(C)->_last_class_name;
while (!((_state)>(2))) {
{int iv1=_state;
if (0 == iv1) goto l264;
goto l265;
 l264: ;
/*IF*/if (rT54skip1(C,'\133')) {
_state=1;
}
else {
{T118 *n=((T118*)se_new(118));
/*[IRF3:make*//*AW*/(n)->_base_class_name=(_base_class_name);/*]*/
C->_last_class_type=(T0 *)n;}_state=3;
}
/*FI*/goto l263;
 l265: ;
if (1 == iv1) goto l266;
goto l267;
 l266: ;
/*IF*/if (rT54a_type(C)) {
/*IF*/if (!(_generic_list)) {
_generic_list=ma(108,0,1,(C)->_last_type);
}
else {
rT108add_last((T108*)_generic_list,(C)->_last_type);
}
/*FI*/_state=2;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms209_54);
C->_ok=rT54skip1(C,'\54');
}
 else if (((C)->_cc)==('\135')) {
_state=2;
}
else {
rT54fcp(C,(T0 *)ms66_54);
_state=2;
}
/*FI*/goto l263;
 l267: ;
/*IF*/if (rT54skip1(C,'\54')) {
_state=1;
}
 else if (((C)->_cc)==('\135')) {
/*IF*/if (!(_generic_list)) {
rT54wcp(C,(T0 *)ms67_54);
{T118 *n=((T118*)se_new(118));
/*[IRF3:make*//*AW*/(n)->_base_class_name=(_base_class_name);/*]*/
C->_last_class_type=(T0 *)n;}}
else {
{T119 *n=((T119*)se_new(119));
rT119make(n,_base_class_name,_generic_list);
C->_last_class_type=(T0 *)n;}}
/*FI*/C->_ok=rT54skip1(C,'\135');
_state=3;
}
 else if (rT54a_type(C)) {
/*IF*/if (!(_generic_list)) {
_generic_list=ma(108,0,1,(C)->_last_type);
}
else {
rT108add_last((T108*)_generic_list,(C)->_last_type);
}
/*FI*/rT54warning(XrT62start_position((C)->_last_type),(T0 *)ms202_54);
}
else {
rT54fcp(C,(T0 *)ms68_54);
_state=3;
}
/*FI*/ l263: ;
}
}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_identifier(T54 *C){
int R=0;
int _do_warning=0;
int _state=0;
/*IF*/if (rT3is_letter((C)->_cc)) {
rT73make((T73*)rT54tmp_name(),(C)->_line,(C)->_column);
rT73extend((T73*)rT54tmp_name(),(C)->_cc);
while (!((_state)>(0))) {
rT54next_char(C);
{int iv1=(C)->_cc;
if ((48<=iv1)&&(iv1<=57)) goto l269;
if (95 == iv1) goto l269;
if ((97<=iv1)&&(iv1<=122)) goto l269;
goto l270;
 l269: ;
rT73extend((T73*)rT54tmp_name(),(C)->_cc);
goto l268;
 l270: ;
if ((65<=iv1)&&(iv1<=90)) goto l271;
goto l272;
 l271: ;
_do_warning=1;
rT73extend((T73*)rT54tmp_name(),rT3to_lower((C)->_cc));
goto l268;
 l272: ;
_state=1;
 l268: ;
}
}
/*IF*/if (rT73isa_keyword((T73*)rT54tmp_name())) {
_state=rT73count((T73*)rT54tmp_name());
while (!((_state)==(0))) {
_state=(_state)-(1);
rT54prev_char(C);
}
}
else {
R=1;
rT54skip_comments(C);
/*IF*/if (_do_warning) {
rT54warning(rT73start_position((T73*)rT54tmp_name()),(T0 *)ms26_54);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_alias(T54 *C){
T0* R=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms104_54)) {
/*IF*/if (!(rT54a_manifest_string(C))) {
rT54fcp(C,(T0 *)ms105_54);
}
else {
R=((T80*)(C)->_last_manifest_string)->_to_string;
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_base_class_name(T54 *C){
int R=0;
int _do_warning=0;
int _state=0;
/*IF*/if (rT3is_letter((C)->_cc)) {
/*IF*/if (((C)->_cc)>=('a')) {
_do_warning=1;
C->_cc=rT3to_upper((C)->_cc);
}
/*FI*/rT73make((T73*)rT54tmp_name(),(C)->_line,(C)->_column);
rT73extend((T73*)rT54tmp_name(),(C)->_cc);
while (!((_state)>(0))) {
rT54next_char(C);
{int iv1=(C)->_cc;
if ((48<=iv1)&&(iv1<=57)) goto l274;
if ((65<=iv1)&&(iv1<=90)) goto l274;
if (95 == iv1) goto l274;
goto l275;
 l274: ;
rT73extend((T73*)rT54tmp_name(),(C)->_cc);
goto l273;
 l275: ;
if ((97<=iv1)&&(iv1<=122)) goto l276;
goto l277;
 l276: ;
_do_warning=1;
rT73extend((T73*)rT54tmp_name(),rT3to_upper((C)->_cc));
goto l273;
 l277: ;
_state=1;
 l273: ;
}
}
/*IF*/if (rT73isa_keyword((T73*)rT54tmp_name())) {
_state=rT73count((T73*)rT54tmp_name());
while (!((_state)==(0))) {
_state=(_state)-(1);
rT54prev_char(C);
}
}
else {
R=1;
rT54skip_comments(C);
/*IF*/if (_do_warning) {
rT54warning(rT73start_position((T73*)rT54tmp_name()),(T0 *)ms25_54);
}
/*FI*/C->_last_class_name=rT73to_class_name((T73*)rT54tmp_name());
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_base_type(T54 *C){
int R=0;
T0* _sp=NULL;
R=1;
/*IF*/if (rT54a_keyword(C,(T0 *)ms36_27)) {
{T91 *n=((T91*)se_new(91));
rT91make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms37_27)) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (((rT54skip1(C,'\133'))&&(rT54a_type(C)))&&(rT54skip1(C,'\135'))) {
{T107 *n=((T107*)se_new(107));
rT107make(n,_sp,(C)->_last_type);
C->_last_base_type=(T0 *)n;}}
else {
rT54fcp(C,(T0 *)ms42_54);
}
/*FI*/}
 else if (rT54a_keyword(C,(T0 *)ms40_27)) {
{T109 *n=((T109*)se_new(109));
rT109make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms42_27)) {
{T111 *n=((T111*)se_new(111));
rT111make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms45_27)) {
{T112 *n=((T112*)se_new(112));
rT112make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms49_27)) {
{T113 *n=((T113*)se_new(113));
rT113make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms52_27)) {
{T114 *n=((T114*)se_new(114));
rT114make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms53_27)) {
{T115 *n=((T115*)se_new(115));
rT115make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms55_27)) {
{T116 *n=((T116*)se_new(116));
rT116make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT54a_keyword(C,(T0 *)ms57_27)) {
{T117 *n=((T117*)se_new(117));
rT117make(n,rT54pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
else {
R=0;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_ascii_code(T54 *C){
int _counter=0;
rT54next_char(C);
_counter=0;
C->_last_ascii_code=0;
while (!((((_counter)>(3))||(((C)->_cc)==('\57'))))) {
{int iv1=(C)->_cc;
if ((48<=iv1)&&(iv1<=57)) goto l279;
goto l280;
 l279: ;
C->_last_ascii_code=(((C)->_last_ascii_code)*(10))+(rT3value((C)->_cc));
goto l278;
 l280: ;
rT54fcp(C,(T0 *)ms21_54);
 l278: ;
}
_counter=(_counter)+(1);
rT54next_char(C);
}
/*IF*/if ((_counter)==(0)) {
rT54fcp(C,(T0 *)ms22_54);
}
 else if ((_counter)>(3)) {
rT54fcp(C,(T0 *)ms23_54);
}
else {
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_actual(T54 *C){
int R=0;
/*IF*/if (rT54skip1(C,'\44')) {
/*IF*/if (rT54a_identifier(C)) {
{T178 *n=((T178*)se_new(178));
/*[IRF3:make*//*AW*/(n)->_feature_name=(rT73to_feature_name((T73*)rT54tmp_name()));/*]*/
C->_last_expression=(T0 *)n;}R=1;
}
else {
rT54fcp(C,(T0 *)ms199_54);
}
/*FI*/}
 else if (rT54a_expression(C)) {
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_actuals(T54 *C){
T0* R=NULL;
T0* _args=NULL;
/*IF*/if (rT54skip1(C,'\50')) {
while (!(!(rT54a_actual(C)))) {
/*IF*/if (!(_args)) {
_args=ma(85,0,1,(C)->_last_expression);
}
else {
XrT85add_last(_args,(C)->_last_expression);
}
/*FI*/C->_ok=rT54skip1(C,'\54');
}
/*IF*/if (!(_args)) {
rT54wcp(C,(T0 *)ms33_54);
}
else {
{T175 *n=((T175*)se_new(175));
/*[IRF3:make*//*AW*/(n)->_list=(_args);/*]*/
R=(T0 *)n;}
}
/*FI*//*IF*/if (!(rT54skip1(C,'\51'))) {
rT54fcp(C,(T0 *)ms34_54);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_clients(T54 *C){
T0* R=NULL;
int _state=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT54skip1(C,'\173')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l282;
goto l283;
 l282: ;
/*IF*/if (rT54a_base_class_name(C)) {
_list=ma(127,0,1,(C)->_last_class_name);
_state=2;
}
 else if (rT54skip1(C,'\175')) {
_state=4;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms204_54);
C->_ok=rT54skip1(C,'\54');
}
else {
_state=3;
}
/*FI*/goto l281;
 l283: ;
if (1 == iv1) goto l284;
goto l285;
 l284: ;
/*IF*/if (rT54a_base_class_name(C)) {
rT127add_last((T127*)_list,(C)->_last_class_name);
_state=2;
}
 else if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms204_54);
C->_ok=rT54skip1(C,'\54');
}
 else if (((C)->_cc)==('\175')) {
rT54wcp(C,(T0 *)ms69_54);
C->_ok=rT54skip1(C,'\175');
_state=4;
}
else {
_state=3;
}
/*FI*/goto l281;
 l285: ;
if (2 == iv1) goto l286;
goto l287;
 l286: ;
/*IF*/if (rT54skip1(C,'\54')) {
_state=1;
}
 else if (rT54skip1(C,'\175')) {
_state=4;
}
 else if (rT54a_base_class_name(C)) {
rT54warning(((T51*)(C)->_last_class_name)->_start_position,(T0 *)ms202_54);
rT127add_last((T127*)_list,(C)->_last_class_name);
}
else {
_state=3;
}
/*FI*/goto l281;
 l287: ;
rT54fcp(C,(T0 *)ms208_54);
_state=4;
 l281: ;
}
}
{T125 *n=((T125*)se_new(125));
rT125make(n,_sp,_list);
R=(T0 *)n;}
}
else {
{T125 *n=((T125*)se_new(125));
/*[IRF3:omitted*//*]*/
R=(T0 *)n;}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54go_back(T54 *C,T0* a1){
rT54go_back_at(C,((T49*)a1)->_line,((T49*)a1)->_column);
}/*EIFFEL_PARSER*/int rT54a_real_constant(T54 *C){
int R=0;
int _old_column=0;
int _old_line=0;
_old_line=(C)->_line;
_old_column=(C)->_column;
/*IF*/if (rT54skip1(C,'\53')) {
/*IF*/if (rT54a_real(C)) {
R=1;
}
else {
rT54go_back_at(C,_old_line,_old_column);
}
/*FI*/}
 else if (rT54skip1(C,'\55')) {
/*IF*/if (rT54a_real(C)) {
C->_last_real_constant=rT83_px45((T83*)(C)->_last_real_constant);
R=1;
}
else {
rT54go_back_at(C,_old_line,_old_column);
}
/*FI*/}
 else if (rT54a_real(C)) {
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_real(T54 *C){
int R=0;
float _frac_i=0;
float _frac_part=0;
int _integral_part=0;
int _back_count=0;
int _exponent_sign=0;
int _exponent=0;
int _state=0;
T0* _ts=NULL;
T0* _sp=NULL;
/*IF*/if ((rT3is_digit((C)->_cc))||(((C)->_cc)==('\56'))) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_line,(C)->_column);
_sp=(T0 *)n;}
_exponent_sign=1;
_frac_i=((float)1.);
/*IF*/if (((C)->_cc)==('\56')) {
_state=5;
}
else {
_integral_part=rT3value((C)->_cc);
}
/*FI*/while (!((_state)>(11))) {
rT54next_char(C);
_back_count=(_back_count)+(1);
{int iv1=_state;
if (0 == iv1) goto l289;
goto l290;
 l289: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l292;
goto l293;
 l292: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
goto l291;
 l293: ;
if (46 == iv2) goto l294;
goto l295;
 l294: ;
_state=4;
goto l291;
 l295: ;
_state=13;
 l291: ;
}
goto l288;
 l290: ;
if (1 == iv1) goto l296;
goto l297;
 l296: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l299;
goto l300;
 l299: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
_state=2;
goto l298;
 l300: ;
rT54fcp(C,(T0 *)ms206_54);
 l298: ;
}
goto l288;
 l297: ;
if (2 == iv1) goto l301;
goto l302;
 l301: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l304;
goto l305;
 l304: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
_state=3;
goto l303;
 l305: ;
rT54fcp(C,(T0 *)ms206_54);
 l303: ;
}
goto l288;
 l302: ;
if (3 == iv1) goto l306;
goto l307;
 l306: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l309;
goto l310;
 l309: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
_state=0;
goto l308;
 l310: ;
rT54fcp(C,(T0 *)ms206_54);
 l308: ;
}
goto l288;
 l307: ;
if (4 == iv1) goto l311;
goto l312;
 l311: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l314;
goto l315;
 l314: ;
_frac_i=((float)10.);
_frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
_state=6;
goto l313;
 l315: ;
if (69 == iv2) goto l316;
if (101 == iv2) goto l316;
goto l317;
 l316: ;
_state=10;
goto l313;
 l317: ;
_state=12;
 l313: ;
}
goto l288;
 l312: ;
if (5 == iv1) goto l318;
goto l319;
 l318: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l321;
goto l322;
 l321: ;
_frac_i=((float)10.);
_frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
_state=6;
goto l320;
 l322: ;
_state=13;
 l320: ;
}
goto l288;
 l319: ;
if (6 == iv1) goto l323;
goto l324;
 l323: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l326;
goto l327;
 l326: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
goto l325;
 l327: ;
if (69 == iv2) goto l328;
if (101 == iv2) goto l328;
goto l329;
 l328: ;
_state=10;
goto l325;
 l329: ;
if (95 == iv2) goto l330;
goto l331;
 l330: ;
_state=7;
goto l325;
 l331: ;
_state=12;
 l325: ;
}
goto l288;
 l324: ;
if (7 == iv1) goto l332;
goto l333;
 l332: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l335;
goto l336;
 l335: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
_state=8;
goto l334;
 l336: ;
rT54fcp(C,(T0 *)ms198_54);
 l334: ;
}
goto l288;
 l333: ;
if (8 == iv1) goto l337;
goto l338;
 l337: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l340;
goto l341;
 l340: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
_state=9;
goto l339;
 l341: ;
rT54fcp(C,(T0 *)ms198_54);
 l339: ;
}
goto l288;
 l338: ;
if (9 == iv1) goto l342;
goto l343;
 l342: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l345;
goto l346;
 l345: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
_state=6;
goto l344;
 l346: ;
rT54fcp(C,(T0 *)ms198_54);
 l344: ;
}
goto l288;
 l343: ;
if (10 == iv1) goto l347;
goto l348;
 l347: ;
{int iv2=(C)->_cc;
if (43 == iv2) goto l350;
goto l351;
 l350: ;
_state=11;
goto l349;
 l351: ;
if (45 == iv2) goto l352;
goto l353;
 l352: ;
_exponent_sign=-(1);
_state=11;
goto l349;
 l353: ;
if ((48<=iv2)&&(iv2<=57)) goto l354;
goto l355;
 l354: ;
_exponent=rT3value((C)->_cc);
_state=11;
goto l349;
 l355: ;
rT54fcp(C,(T0 *)ms30_54);
_state=13;
 l349: ;
}
goto l288;
 l348: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l357;
goto l358;
 l357: ;
_exponent=((_exponent)*(10))+(rT3value((C)->_cc));
goto l356;
 l358: ;
_state=12;
 l356: ;
}
 l288: ;
}
}
/*IF*/if ((_state)==(12)) {
_ts=rT7substring((T7*)(C)->_current_line,((T49*)_sp)->_column,((C)->_column)-(1));
{T83 *n=((T83*)se_new(83));
rT83make(n,_sp,_ts,_integral_part,_frac_part,(_exponent)*(_exponent_sign));
C->_last_real_constant=(T0 *)n;}
R=1;
rT54skip_comments(C);
}
else {
while (!((_back_count)==(0))) {
_back_count=(_back_count)-(1);
rT54prev_char(C);
}
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54go_back_at(T54 *C,int a1,int a2){
C->_line=a1;
C->_column=a2;
C->_current_line=rT64item((C)->_line);
/*IF*/if (((C)->_column)==((((T7*)(C)->_current_line)->_count)+(1))) {
C->_cc='\12';
}
 else if (((C)->_column)==(0)) {
C->_cc='\0';
}
else {
C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_binary(T54 *C,T0* a1){
int R=0;
R=1;
/*IF*/if (rT54skip2(C,'\74','\75')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms43_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip2(C,'\76','\75')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms44_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip2(C,'\57','\57')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms45_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip2(C,'\134','\134')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms46_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\53')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms95_27,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\55')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms96_27,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\52')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms47_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\57')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms125_27,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\76')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms48_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\74')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms49_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54skip1(C,'\136')) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms50_54,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54a_keyword(C,(T0 *)ms122_27)) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms122_27,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54a_keyword(C,(T0 *)ms117_27)) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms117_27,a1);
C->_last_binary=(T0 *)n;}
}
 else if (rT54a_keyword(C,(T0 *)ms59_27)) {
/*IF*/if (rT54a_keyword(C,(T0 *)ms120_27)) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms60_27,a1);
C->_last_binary=(T0 *)n;}
}
else {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms59_27,a1);
C->_last_binary=(T0 *)n;}
}
/*FI*/}
 else if (rT54a_keyword(C,(T0 *)ms81_27)) {
/*IF*/if (rT54a_keyword(C,(T0 *)ms114_27)) {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms82_27,a1);
C->_last_binary=(T0 *)n;}
}
else {
{T74 *n=((T74*)se_new(74));
rT74make(n,(T0 *)ms81_27,a1);
C->_last_binary=(T0 *)n;}
}
/*FI*/}
else {
C->_last_binary=NULL;
R=0;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_creation(T54 *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 iv1=_state;
if (0 == iv1) goto l360;
goto l361;
 l360: ;
/*IF*/if (rT54skip1(C,'\41')) {
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_state=1;
}
else {
_state=7;
}
/*FI*/goto l359;
 l361: ;
if (1 == iv1) goto l362;
goto l363;
 l362: ;
/*IF*/if (rT54a_type(C)) {
_type=(C)->_last_type;
/*IF*/if (XrT62is_anchored(_type)) {
rT54warning(XrT62start_position(_type),(T0 *)ms76_54);
}
/*FI*/_state=2;
}
 else if (rT54skip1(C,'\41')) {
_state=3;
}
else {
rT54fcp(C,(T0 *)ms77_54);
_state=8;
}
/*FI*/goto l359;
 l363: ;
if (2 == iv1) goto l364;
goto l365;
 l364: ;
/*IF*/if (rT54skip1(C,'\41')) {
_state=3;
}
else {
_state=8;
rT54fcp(C,(T0 *)ms78_54);
}
/*FI*/goto l359;
 l365: ;
if (3 == iv1) goto l366;
goto l367;
 l366: ;
/*IF*/if (rT54a_identifier(C)) {
/*IF*/if (rT54a_current(C)) {
_state=8;
rT54error(XrT72start_position((C)->_last_expression),(T0 *)ms79_54);
}
 else if (rT54a_argument(C)) {
_state=8;
rT54error(XrT72start_position((C)->_last_expression),(T0 *)ms80_54);
}
 else if ((rT54a_result(C))||(rT54a_local_variable(C))) {
_writable=(C)->_last_expression;
_state=4;
}
else {
_writable=rT73to_feature_name((T73*)rT54tmp_name());
_state=4;
}
/*FI*/}
else {
_state=8;
rT54fcp(C,(T0 *)ms81_54);
}
/*FI*/goto l359;
 l367: ;
if (4 == iv1) goto l368;
goto l369;
 l368: ;
/*IF*/if (rT54skip1unless2(C,'\56','\56')) {
_state=5;
}
else {
_state=7;
}
/*FI*/goto l359;
 l369: ;
if (5 == iv1) goto l370;
goto l371;
 l370: ;
/*IF*/if (rT54a_identifier(C)) {
_proc_name=rT73to_feature_name((T73*)rT54tmp_name());
_state=6;
}
else {
_state=8;
rT54fcp(C,(T0 *)ms82_54);
}
/*FI*/goto l359;
 l371: ;
/*IF*/if (((C)->_cc)==('\50')) {
_call=rT54to_proc_call(C,_writable,_proc_name,rT54a_actuals(C));
}
else {
{T183 *n=((T183*)se_new(183));
rT183make(n,_writable,_proc_name);
_call=(T0 *)n;}}
/*FI*/_state=7;
 l359: ;
}
}
/*IF*/if (((_state)==(7))&&(((int)_sp))) {
R=1;
/*IF*/if (((!(_type))&&(!(_call)))) {
{T248 *n=((T248*)se_new(248));
rT248make(n,_sp,_writable);
C->_last_instruction=(T0 *)n;}}
 else if (((((int)_type))&&(!(_call)))) {
{T251 *n=((T251*)se_new(251));
rT251make(n,_sp,_type,_writable);
C->_last_instruction=(T0 *)n;}}
 else if (((!(_type))&&(((int)_call)))) {
{T253 *n=((T253*)se_new(253));
rT253make(n,_sp,_writable,_call);
C->_last_instruction=(T0 *)n;}}
else {
{T255 *n=((T255*)se_new(255));
rT255make(n,_sp,_type,_writable,_call);
C->_last_instruction=(T0 *)n;}}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_creation_clause(T54 *C){
T0* _creation_clause=NULL;
T0* _list=NULL;
T0* _comments=NULL;
T0* _clients=NULL;
_clients=rT54a_clients(C);
_comments=rT54get_comments(C);
/*IF*/if (rT54a_feature_list(C)) {
_list=(C)->_last_feature_list;
{T134 *n=((T134*)se_new(134));
rT134make(n,_clients,_comments,_list);
_creation_clause=(T0 *)n;}
rT53add_creation_clause((T53*)(C)->_last_base_class,_creation_clause);
}
else {
/*IF*/if (((((int)_comments))||(((int)_clients)))) {
/*IF*/if (((int)_comments)) {
rT48add_position(((T63*)_comments)->_start_position);
}
/*FI*//*IF*/if (((int)_clients)) {
rT48add_position(((T125*)_clients)->_start_position);
}
/*FI*/rT48warning((T48*)oRBC27eh,(T0 *)ms83_54);
}
/*FI*/}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_argument(T54 *C){
int R=0;
int _rank=0;
/*IF*/if (((int)(C)->_arguments)) {
_rank=rT97rank_of((T97*)(C)->_arguments,((T73*)rT54tmp_name())->_to_string);
/*IF*/if ((_rank)>(0)) {
C->_last_expression=rT73to_argument_name((T73*)rT54tmp_name(),(C)->_arguments,_rank);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_after_a_dot(T54 *C,int a1,T0* a2){
T0* _eal=NULL;
T0* _fn=NULL;
/*IF*/if (rT54a_identifier(C)) {
/*IF*/if (((rT54a_result(C))||(rT54a_void(C)))||(rT54a_current(C))) {
rT48add_position(XrT72start_position((C)->_last_expression));
rT48error((T48*)oRBC27eh,(T0 *)ms35_54);
}
/*FI*/_fn=rT73to_feature_name((T73*)rT54tmp_name());
_eal=rT54a_actuals(C);
rT54a_r10(C,a1,a2,_fn,_eal);
}
else {
rT54fcp(C,(T0 *)ms36_54);
}
/*FI*/}/*EIFFEL_PARSER*/void rT54a_redefine_list(T54 *C){
/*IF*/if (rT54a_feature_list(C)) {
rT120set_redefine((T120*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_index_clause(T54 *C){
int R=0;
T0* _index_clause=NULL;
/*IF*/if (rT54a_feature_name(C)) {
R=1;
/*IF*/if (rT54skip1(C,'\72')) {
{T69 *n=((T69*)se_new(69));
/*[IRF3:make*//*AW*/(n)->_index=(/*XrT*FEATURE_NAME*/((T70*)(C)->_last_feature_name)->_to_string);/*]*/
_index_clause=(T0 *)n;}
/*IF*/if (rT54a_index_value(C)) {
rT69add_index_value((T69*)_index_clause,(C)->_last_index_value);
}
else {
rT54fcp(C,(T0 *)ms200_54);
}
/*FI*/}
else {
{T69 *n=((T69*)se_new(69));
/*[IRF3:make*//*AW*/(n)->_index=(NULL);/*]*/
_index_clause=(T0 *)n;}
rT69add_index_value((T69*)_index_clause,(C)->_last_feature_name);
}
/*FI*/}
 else if (rT54a_manifest_constant(C)) {
R=1;
{T69 *n=((T69*)se_new(69));
/*[IRF3:make*//*AW*/(n)->_index=(NULL);/*]*/
_index_clause=(T0 *)n;}
rT69add_index_value((T69*)_index_clause,(C)->_last_manifest_constant);
}
/*FI*//*IF*/if (R) {
while (!(!(rT54skip1(C,'\54')))) {
/*IF*/if (rT54a_index_value(C)) {
rT69add_index_value((T69*)_index_clause,(C)->_last_index_value);
}
else {
rT54fcp(C,(T0 *)ms200_54);
}
/*FI*/}
rT53add_index_clause((T53*)(C)->_last_base_class,_index_clause);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_index_list(T54 *C){
while (!(!(rT54a_index_clause(C)))) {
C->_ok=rT54skip1(C,'\73');
}
}/*EIFFEL_PARSER*/void rT54a_indexing(T54 *C){
/*IF*/if (rT54a_keyword(C,(T0 *)ms115_54)) {
rT54a_index_list(C);
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_index_value(T54 *C){
int R=0;
/*IF*/if (rT54a_feature_name(C)) {
C->_last_index_value=(C)->_last_feature_name;
R=1;
}
 else if (rT54a_manifest_constant(C)) {
C->_last_index_value=(C)->_last_manifest_constant;
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_tag_mark(T54 *C){
int R=0;
/*IF*/if (rT54a_identifier(C)) {
/*IF*/if (rT54skip1unless2(C,'\72','\75')) {
R=1;
C->_last_tag_mark=rT73to_tag_name((T73*)rT54tmp_name());
}
else {
C->_last_tag_mark=NULL;
rT54go_back_at(C,((T73*)rT54tmp_name())->_li,((T73*)rT54tmp_name())->_co);
}
/*FI*/}
else {
C->_last_tag_mark=NULL;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_manifest_constant(T54 *C){
int R=0;
/*IF*/if (rT54a_boolean_constant(C)) {
C->_last_manifest_constant=(C)->_last_boolean_constant;
R=1;
}
 else if (rT54a_character_constant(C)) {
C->_last_manifest_constant=(C)->_last_character_constant;
R=1;
}
 else if (rT54a_manifest_string(C)) {
C->_last_manifest_constant=(C)->_last_manifest_string;
R=1;
}
 else if (rT54a_bit_constant(C)) {
C->_last_manifest_constant=(C)->_last_bit_constant;
R=1;
}
 else if (rT54a_real_constant(C)) {
C->_last_manifest_constant=(C)->_last_real_constant;
R=1;
}
 else if (rT54a_integer_constant(C)) {
C->_last_manifest_constant=(C)->_last_integer_constant;
R=1;
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_manifest_string(T54 *C){
int R=0;
int _state=0;
/*IF*/if (((C)->_cc)==('\42')) {
R=1;
C->_ms_numbering=((C)->_ms_numbering)+(1);
{T80 *n=((T80*)se_new(80));
rT80make(n,rT54pos((C)->_line,(C)->_column),(C)->_ms_numbering);
C->_last_manifest_string=(T0 *)n;}
while (!((_state)>(3))) {
rT54next_char(C);
{int iv1=_state;
if (0 == iv1) goto l373;
goto l374;
 l373: ;
{int iv2=(C)->_cc;
if (10 == iv2) goto l376;
goto l377;
 l376: ;
rT54fcp(C,(T0 *)ms205_54);
goto l375;
 l377: ;
if (34 == iv2) goto l378;
goto l379;
 l378: ;
_state=4;
goto l375;
 l379: ;
if (37 == iv2) goto l380;
goto l381;
 l380: ;
_state=1;
goto l375;
 l381: ;
rT80add((T80*)(C)->_last_manifest_string,(C)->_cc);
 l375: ;
}
goto l372;
 l374: ;
if (1 == iv1) goto l382;
goto l383;
 l382: ;
_state=0;
{int iv2=(C)->_cc;
if (10 == iv2) goto l385;
goto l386;
 l385: ;
_state=3;
goto l384;
 l386: ;
if (65 == iv2) goto l387;
goto l388;
 l387: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\100');
goto l384;
 l388: ;
if (66 == iv2) goto l389;
goto l390;
 l389: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\10');
goto l384;
 l390: ;
if (67 == iv2) goto l391;
goto l392;
 l391: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\136');
goto l384;
 l392: ;
if (68 == iv2) goto l393;
goto l394;
 l393: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\44');
goto l384;
 l394: ;
if (70 == iv2) goto l395;
goto l396;
 l395: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\14');
goto l384;
 l396: ;
if (72 == iv2) goto l397;
goto l398;
 l397: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\134');
goto l384;
 l398: ;
if (76 == iv2) goto l399;
goto l400;
 l399: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\176');
goto l384;
 l400: ;
if (78 == iv2) goto l401;
goto l402;
 l401: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\12');
goto l384;
 l402: ;
if (81 == iv2) goto l403;
goto l404;
 l403: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\140');
goto l384;
 l404: ;
if (82 == iv2) goto l405;
goto l406;
 l405: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\15');
goto l384;
 l406: ;
if (83 == iv2) goto l407;
goto l408;
 l407: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\43');
goto l384;
 l408: ;
if (84 == iv2) goto l409;
goto l410;
 l409: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\11');
goto l384;
 l410: ;
if (85 == iv2) goto l411;
goto l412;
 l411: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\0');
goto l384;
 l412: ;
if (86 == iv2) goto l413;
goto l414;
 l413: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\174');
goto l384;
 l414: ;
if (37 == iv2) goto l415;
goto l416;
 l415: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\45');
goto l384;
 l416: ;
if (39 == iv2) goto l417;
goto l418;
 l417: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\47');
goto l384;
 l418: ;
if (34 == iv2) goto l419;
goto l420;
 l419: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\42');
goto l384;
 l420: ;
if (40 == iv2) goto l421;
goto l422;
 l421: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\133');
goto l384;
 l422: ;
if (41 == iv2) goto l423;
goto l424;
 l423: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\135');
goto l384;
 l424: ;
if (60 == iv2) goto l425;
goto l426;
 l425: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\173');
goto l384;
 l426: ;
if (62 == iv2) goto l427;
goto l428;
 l427: ;
rT80add_percent((T80*)(C)->_last_manifest_string,'\175');
goto l384;
 l428: ;
if (47 == iv2) goto l429;
goto l430;
 l429: ;
rT54a_ascii_code(C);
rT80add_ascii((T80*)(C)->_last_manifest_string,(C)->_last_ascii_code);
goto l384;
 l430: ;
if (9 == iv2) goto l431;
if (32 == iv2) goto l431;
goto l432;
 l431: ;
_state=2;
goto l384;
 l432: ;
rT54fcp(C,(T0 *)ms27_54);
_state=0;
 l384: ;
}
goto l372;
 l383: ;
if (2 == iv1) goto l433;
goto l434;
 l433: ;
{int iv2=(C)->_cc;
if (10 == iv2) goto l436;
goto l437;
 l436: ;
_state=3;
goto l435;
 l437: ;
if (9 == iv2) goto l438;
if (32 == iv2) goto l438;
goto l439;
 l438: ;
goto l435;
 l439: ;
rT54fcp(C,(T0 *)ms28_54);
 l435: ;
}
goto l372;
 l434: ;
{int iv2=(C)->_cc;
if (9 == iv2) goto l441;
if (32 == iv2) goto l441;
goto l442;
 l441: ;
goto l440;
 l442: ;
if (37 == iv2) goto l443;
goto l444;
 l443: ;
rT80break_line((T80*)(C)->_last_manifest_string);
_state=0;
goto l440;
 l444: ;
if (10 == iv2) goto l445;
goto l446;
 l445: ;
rT54fcp(C,(T0 *)ms205_54);
_state=0;
goto l440;
 l446: ;
rT54fcp(C,(T0 *)ms29_54);
_state=0;
 l440: ;
}
 l372: ;
}
}
rT54next_char(C);
rT54skip_comments(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_infix(T54 *C){
int R=0;
T0* _sp=NULL;
/*IF*/if (rT54a_keyword(C,(T0 *)ms116_54)) {
R=1;
{T49 *n=((T49*)se_new(49));
rT49make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (((C)->_cc)==('\42')) {
rT54next_char(C);
}
else {
rT54wcp(C,(T0 *)ms117_54);
}
/*FI*//*IF*/if (rT54a_binary(C,_sp)) {
C->_last_infix=(C)->_last_binary;
}
 else if (rT54a_free_operator(C)) {
C->_last_infix=rT73to_infix_name((T73*)rT54tmp_operator(),_sp);
}
else {
rT54fcp(C,(T0 *)ms118_54);
}
/*FI*//*IF*/if (!(rT54skip1(C,'\42'))) {
rT54wcp(C,(T0 *)ms119_54);
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_free_operator(T54 *C){
int R=0;
/*IF*/if ((((((C)->_cc)==('\100'))||(((C)->_cc)==('\43')))||(((C)->_cc)==('\174')))||(((C)->_cc)==('\46'))) {
R=1;
rT73make((T73*)rT54tmp_operator(),(C)->_line,(C)->_column);
rT73extend((T73*)rT54tmp_operator(),(C)->_cc);
rT54next_char(C);
while (!((((((C)->_cc)==('\12'))||(((C)->_cc)==('\40')))||(((C)->_cc)==('\11')))||(((C)->_cc)==('\42')))) {
rT73extend((T73*)rT54tmp_operator(),(C)->_cc);
rT54next_char(C);
}
rT54skip_comments(C);
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/void rT54a_local_var_list(T54 *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 iv1=_state;
if (0 == iv1) goto l448;
goto l449;
 l448: ;
/*IF*/if (rT54a_identifier(C)) {
_name=rT73to_local_name_declaration((T73*)rT54tmp_name());
_state=1;
/*IF*/if (((int)(C)->_arguments)) {
_rank=rT97rank_of((T97*)(C)->_arguments,((T186*)_name)->_to_string);
/*IF*/if ((_rank)>(0)) {
rT48add_position(((T186*)_name)->_start_position);
rT48add_position(((T92*)rT97name((T97*)(C)->_arguments,_rank))->_start_position);
rT48error((T48*)oRBC27eh,(T0 *)ms16_54);
}
/*FI*/}
/*FI*/}
 else if (((((C)->_cc)==('\54'))||(((C)->_cc)==('\73')))) {
rT54wcp(C,(T0 *)ms210_54);
C->_ok=(rT54skip1(C,'\54'))||(rT54skip1(C,'\73'));
}
else {
_state=5;
}
/*FI*/goto l447;
 l449: ;
if (1 == iv1) goto l450;
goto l451;
 l450: ;
/*IF*/if (rT54skip1(C,'\72')) {
/*IF*/if (((int)_name_list)) {
rT187add_last((T187*)_name_list,_name);
_name=NULL;
}
/*FI*/_state=3;
}
else {
/*IF*/if (((C)->_cc)==('\73')) {
rT54wcp(C,(T0 *)ms17_54);
C->_ok=rT54skip1(C,'\73');
}
else {
C->_ok=rT54skip1(C,'\54');
}
/*FI*//*IF*/if (!(_name_list)) {
_name_list=ma(187,0,1,_name);
}
else {
rT187add_last((T187*)_name_list,_name);
}
/*FI*/_name=NULL;
_state=2;
}
/*FI*/goto l447;
 l451: ;
if (2 == iv1) goto l452;
goto l453;
 l452: ;
/*IF*/if (rT54a_identifier(C)) {
_name=rT73to_local_name_declaration((T73*)rT54tmp_name());
_state=1;
/*IF*/if (((int)(C)->_arguments)) {
_rank=rT97rank_of((T97*)(C)->_arguments,((T186*)_name)->_to_string);
/*IF*/if ((_rank)>(0)) {
rT48add_position(((T186*)_name)->_start_position);
rT48add_position(((T92*)rT97name((T97*)(C)->_arguments,_rank))->_start_position);
rT48error((T48*)oRBC27eh,(T0 *)ms18_54);
}
/*FI*/}
/*FI*/}
 else if (((((C)->_cc)==('\54'))||(((C)->_cc)==('\73')))) {
rT54wcp(C,(T0 *)ms210_54);
C->_ok=(rT54skip1(C,'\54'))||(rT54skip1(C,'\73'));
}
else {
_state=6;
}
/*FI*/goto l447;
 l453: ;
if (3 == iv1) goto l454;
goto l455;
 l454: ;
/*IF*/if (rT54a_type(C)) {
/*IF*/if (((int)_name_list)) {
{T144 *n=((T144*)se_new(144));
rT144make(n,_name_list,(C)->_last_type);
_declaration=(T0 *)n;}_name_list=NULL;
}
else {
{T146 *n=((T146*)se_new(146));
rT146make(n,_name,(C)->_last_type);
_declaration=(T0 *)n;}_name=NULL;
}
/*FI*//*IF*/if (!(_list)) {
_list=ma(147,0,1,_declaration);
}
else {
rT147add_last((T147*)_list,_declaration);
}
/*FI*/_state=4;
}
else {
_state=6;
}
/*FI*/goto l447;
 l455: ;
/*IF*/if (((C)->_cc)==('\54')) {
rT54wcp(C,(T0 *)ms19_54);
C->_ok=rT54skip1(C,'\54');
_state=0;
}
else {
C->_ok=rT54skip1(C,'\73');
_state=0;
}
/*FI*/ l447: ;
}
}
/*IF*/if ((_state)==(6)) {
rT54fcp(C,(T0 *)ms20_54);
}
 else if (((int)_list)) {
{T141 *n=((T141*)se_new(141));
rT141make(n,a1,_list);
C->_local_vars=(T0 *)n;}
/*[IRF3:set_local_vars*//*AW*/((T138*)oRBC54tmp_feature)->_local_vars=((C)->_local_vars);/*]*/
}
/*FI*/}/*EIFFEL_PARSER*/int rT54a_local_variable(T54 *C){
int R=0;
int _rank=0;
/*IF*/if (((int)(C)->_local_vars)) {
_rank=rT141rank_of((T141*)(C)->_local_vars,((T73*)rT54tmp_name())->_to_string);
/*IF*/if ((_rank)>(0)) {
C->_last_expression=rT73to_local_name((T73*)rT54tmp_name(),(C)->_local_vars,_rank);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_compound2(T54 *C,T0* a1,T0* a2){
T0* R=NULL;
T0* _instruction=NULL;
T0* _list=NULL;
T0* _hc=NULL;
_hc=rT54get_comments(C);
while (!(((C)->_cc)!=('\73'))) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
while (!(((!(rT54a_instruction(C)))||((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)>(10))))) {
_instruction=(C)->_last_instruction;
/*IF*/if (((C)->_cc)==('\50')) {
rT54wcp(C,(T0 *)ms203_54);
}
/*FI*/C->_ok=rT54skip1(C,'\73');
while (!(((C)->_cc)!=('\73'))) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
/*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (!(_list)) {
_list=ma(225,0,1,XrT181add_comment(_instruction,rT54get_comments(C)));
}
else {
rT225add_last((T225*)_list,XrT181add_comment(_instruction,rT54get_comments(C)));
}
/*FI*/}
/*FI*/}
/*IF*/if (!(rT54a_keyword(C,a2))) {
rT48append((T0 *)ms70_54);
rT48append(a1);
rT48append((T0 *)ms71_54);
rT48append(a2);
rT54fcp(C,(T0 *)ms72_54);
}
/*FI*//*IF*/if ((((int)_hc))||(((int)_list))) {
{T142 *n=((T142*)se_new(142));
rT142make(n,_hc,_list);
R=(T0 *)n;}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/T0* rT54a_compound1(T54 *C,T0* a1){
T0* R=NULL;
T0* _instruction=NULL;
T0* _list=NULL;
T0* _hc=NULL;
_hc=rT54get_comments(C);
while (!(((C)->_cc)!=('\73'))) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
while (!(((!(rT54a_instruction(C)))||((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)>(10))))) {
_instruction=(C)->_last_instruction;
/*IF*/if (((C)->_cc)==('\50')) {
rT54wcp(C,(T0 *)ms203_54);
}
/*FI*/C->_ok=rT54skip1(C,'\73');
while (!(((C)->_cc)!=('\73'))) {
rT54wcp(C,(T0 *)ms103_27);
C->_ok=rT54skip1(C,'\73');
}
/*IF*/if ((/*(IRF4*/((T48*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
/*IF*/if (!(_list)) {
_list=ma(225,0,1,XrT181add_comment(_instruction,rT54get_comments(C)));
}
else {
rT225add_last((T225*)_list,XrT181add_comment(_instruction,rT54get_comments(C)));
}
/*FI*/}
/*FI*/}
/*IF*/if ((((int)_hc))||(((int)_list))) {
{T142 *n=((T142*)se_new(142));
rT142make(n,_hc,_list);
R=(T0 *)n;}
}
/*FI*/return R;
}
/*EIFFEL_PARSER*/int rT54a_bit_constant(T54 *C){
int R=0;
T0* _sequence=NULL;
int _state=0;
/*IF*/if ((((C)->_cc)==('0'))||(((C)->_cc)==('1'))) {
{T7 *n=((T7*)se_new(7));
rT7make(n,16);
_sequence=(T0 *)n;}
rT7extend((T7*)_sequence,(C)->_cc);
while (!((_state)>(0))) {
rT54next_char(C);
{int iv1=(C)->_cc;
if ((48<=iv1)&&(iv1<=49)) goto l457;
goto l458;
 l457: ;
rT7extend((T7*)_sequence,(C)->_cc);
goto l456;
 l458: ;
if (66 == iv1) goto l459;
if (98 == iv1) goto l459;
goto l460;
 l459: ;
{T81 *n=((T81*)se_new(81));
/*[IRF3:from_string*//*AW*/(n)->_value=(_sequence);/*]*/
C->_last_bit_constant=(T0 *)n;}
rT54next_char(C);
rT54skip_comments(C);
_state=1;
R=1;
goto l456;
 l460: ;
_state=((T7*)_sequence)->_count;
while (!((_state)==(0))) {
_state=(_state)-(1);
rT54prev_char(C);
}
_state=2;
 l456: ;
}
}
}
/*FI*/return R;
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.