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

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

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.95)    --      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 "pretty.h"
T0* rT110run_type(T110 *C){
T0* R=NULL;
R=(T0 *)C;
return R;
}
T0* rT110start_position(T110 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_start_position;
return R;
}
void rT110make(T110 *C,T0* a1){
{T46 *n=((T46*)se_new(46));
rT46make(n,(T0 *)ms177,a1);
C->_base_class_name=(T0 *)n;}
}
T0* rT111run_type(T111 *C){
T0* R=NULL;
R=(T0 *)C;
return R;
}
T0* rT111start_position(T111 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_start_position;
return R;
}
T0* rT111base_class(T111 *C){
T0* R=NULL;
R=rT46base_class((T46*)(C)->_base_class_name);
return R;
}
void rT111make(T111 *C,T0* a1){
{T46 *n=((T46*)se_new(46));
rT46make(n,(T0 *)ms178,a1);
C->_base_class_name=(T0 *)n;}
}
T0* rT112run_type(T112 *C){
T0* R=NULL;
R=(T0 *)C;
return R;
}
T0* rT112start_position(T112 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_start_position;
return R;
}
T0* rT112base_class(T112 *C){
T0* R=NULL;
R=rT46base_class((T46*)(C)->_base_class_name);
return R;
}
void rT112make(T112 *C,T0* a1){
{T46 *n=((T46*)se_new(46));
rT46make(n,(T0 *)ms189,a1);
C->_base_class_name=(T0 *)n;}
}
T0* rT113run_type(T113 *C){
T0* R=NULL;
R=(T0 *)C;
return R;
}
T0* rT113start_position(T113 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_start_position;
return R;
}
T0* rT113base_class(T113 *C){
T0* R=NULL;
R=rT46base_class((T46*)(C)->_base_class_name);
return R;
}
void rT113make(T113 *C,T0* a1){
{T46 *n=((T46*)se_new(46));
rT46make(n,(T0 *)ms181,a1);
C->_base_class_name=(T0 *)n;}
}
T0* rT114run_type(T114 *C){
T0* R=NULL;
R=(T0 *)C;
return R;
}
T0* rT114start_position(T114 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_start_position;
return R;
}
void rT114pretty_print(T114 *C){
rT260put_string((T260*)oRBC27fmt,rT114written_mark(C));
}
T0* rT114base_class(T114 *C){
T0* R=NULL;
R=rT46base_class((T46*)(C)->_base_class_name);
return R;
}
T0* rT114written_mark(T114 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_to_string;
return R;
}
T0* rT115start_position(T115 *C){
T0* R=NULL;
R=((T46*)(C)->_base_class_name)->_start_position;
return R;
}
void rT115pretty_print(T115 *C){
rT260put_string((T260*)oRBC27fmt,(C)->_written_mark);
}
T0* rT115base_class(T115 *C){
T0* R=NULL;
R=rT46base_class((T46*)(C)->_base_class_name);
return R;
}
void rT115make(T115 *C,T0* a1,T0* a2){
int _is_run=0;
T0* _t=NULL;
int _i=0;
C->_base_class_name=a1;
C->_generic_list=a2;
_is_run=1;
{T7 *n=((T7*)se_new(7));
rT7copy(n,((T46*)a1)->_to_string);
C->_written_mark=(T0 *)n;}
rT7extend((T7*)(C)->_written_mark,'\133');
_i=1;
while (!((_i)>(((T104*)a2)->_upper))) {
_t=rT104item((T104*)(C)->_generic_list,_i);
rT7append((T7*)(C)->_written_mark,XrT56written_mark(_t));
_is_run=((_is_run)&&(((T0 *)XrT56run_type(_t))==((T0 *)_t)));
_i=(_i)+(1);
/*IF*/if ((_i)<=(((T104*)a2)->_upper)) {
rT7extend((T7*)(C)->_written_mark,'\54');
}
/*FI*/}
rT7extend((T7*)(C)->_written_mark,'\135');
/*IF*/if (_is_run) {
C->_run_type=(T0 *)C;
}
/*FI*/}
void rT58fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T43*)oRBC27eh);
rT43fatal_error(a1);
}
T0*oRBC58storage;
void rT58storage_grow(/*C*/int a1){
int _i=0;
T0* _str=NULL;
_i=((T34*)oRBC58storage)->_upper;
rT34resize((T34*)oRBC58storage,1,(((T34*)oRBC58storage)->_upper)+(a1));
while (!((_i)==(((T34*)oRBC58storage)->_upper))) {
_i=(_i)+(1);
{T7 *n=((T7*)se_new(7));
rT7make(n,80);
_str=(T0 *)n;}
rT34put((T34*)oRBC58storage,_str,_i);
}
}
int ofBC58sfr=0;
T0*oRBC58sfr;
T0* rT58sfr(/*C*/void){
if (ofBC58sfr==0){
T0* R=NULL;
ofBC58sfr=1;
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/R=(T0 *)n;}
oRBC58sfr=R;}
return oRBC58sfr;}
T0* rT58item(/*C*/int a1){
T0* R=NULL;
R=rT34item((T34*)oRBC58storage,a1);
return R;
}
int ofBC58init_storage=0;
void rT58init_storage(/*C*/void){
if (ofBC58init_storage==0){
ofBC58init_storage=1;
rT58storage_grow(3000);
}}
void rT58read(T58 *C,T0* a1){
rT58init_storage();
rT42connect_to((T42*)rT58sfr(),a1);
/*IF*/if (rT42is_connected((T42*)rT58sfr())) {
C->_count=0;
while (!(rT42end_of_input((T42*)rT58sfr()))) {
C->_count=((C)->_count)+(1);
/*IF*/if ((((T34*)oRBC58storage)->_upper)<((C)->_count)) {
rT58storage_grow(1000);
}
/*FI*/rT42read_line_in((T42*)rT58sfr(),rT34item((T34*)oRBC58storage,(C)->_count));
}
rT42disconnect((T42*)rT58sfr());
}
else {
(/*UT*/(void)(T43*)oRBC27eh);
rT43append((T0 *)ms69);
(/*UT*/(void)(T43*)oRBC27eh);
rT43append(a1);
rT58fatal_error((T0 *)ms70);
}
/*FI*/}
T0* rT169expression(T169 *C,int a1){
T0* R=NULL;
R=XrT79item((C)->_list,a1);
return R;
}
T0* rT169first(T169 *C){
T0* R=NULL;
R=XrT79item((C)->_list,1);
return R;
}
int rT169count(T169 *C){
int R=0;
R=XrT79upper((C)->_list);
return R;
}
void rT169pretty_print(T169 *C){
int _i=0;
rT260put_character((T260*)oRBC27fmt,'\50');
_i=1;
while (!((_i)>(rT169count(C)))) {
XrT66pretty_print(rT169expression(C,_i));
_i=(_i)+(1);
/*IF*/if ((_i)<=(rT169count(C))) {
rT260put_character((T260*)oRBC27fmt,'\54');
}
/*FI*/}
rT260put_character((T260*)oRBC27fmt,'\51');
}
int rT92put_into(T92 *C,T0* a1,int a2){
int R=0;
int _rank=0;
_rank=rT94index_of((T94*)a1,(T0 *)C);
/*IF*/if ((_rank)<=(((T94*)a1)->_upper)) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(rT92start_position(C));
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(rT92start_position((T92*)rT94item((T94*)a1,_rank)));
rT43error((T43*)oRBC27eh,(T0 *)ms504);
}
/*FI*/rT94put((T94*)a1,(T0 *)C,a2);
R=(a2)+(1);
return R;
}
T0* rT92start_position(T92 *C){
T0* R=NULL;
R=((T95*)(C)->_name)->_start_position;
return R;
}
void rT92pretty_print(T92 *C){
rT95pretty_print((T95*)(C)->_name);
rT260put_string((T260*)oRBC27fmt,(T0 *)ms565);
XrT56pretty_print((C)->_type);
}
int rT92is_equal(T92 *C,T0* a1){
int R=0;
R=rT7is_equal((T7*)rT95to_key((T95*)(C)->_name),rT95to_key((T95*)((T92*)a1)->_name));
return R;
}
void rT92make(T92 *C,T0* a1,T0* a2){
C->_name=a1;
C->_type=a2;
}
int rT140put_into(T140 *C,T0* a1,int a2){
int R=0;
T0* _d1=NULL;
int _i=0;
_i=((T139*)(C)->_name_list)->_lower;
R=a2;
while (!((_i)>(((T139*)(C)->_name_list)->_upper))) {
{T92 *n=((T92*)se_new(92));
rT92make(n,rT139item((T139*)(C)->_name_list,_i),(C)->_type);
_d1=(T0 *)n;}
R=rT92put_into((T92*)_d1,a1,R);
_i=(_i)+(1);
}
return R;
}
int rT140count(T140 *C){
int R=0;
R=rT139count((T139*)(C)->_name_list);
return R;
}
void rT140pretty_print(T140 *C){
int _i=0;
_i=((T139*)(C)->_name_list)->_lower;
rT95pretty_print((T95*)rT139item((T139*)(C)->_name_list,_i));
_i=(_i)+(1);
while (!((_i)>(((T139*)(C)->_name_list)->_upper))) {
rT260put_string((T260*)oRBC27fmt,(T0 *)ms563);
rT95pretty_print((T95*)rT139item((T139*)(C)->_name_list,_i));
_i=(_i)+(1);
}
rT260put_string((T260*)oRBC27fmt,(T0 *)ms564);
XrT56pretty_print((C)->_type);
}
void rT140make(T140 *C,T0* a1,T0* a2){
C->_name_list=a1;
C->_type=a2;
}
void rT213pretty_print(T213 *C){
int _i=0;
rT260indent((T260*)oRBC27fmt);
rT260keyword((T260*)oRBC27fmt,/*(IRF4*/(T0 *)ms106/*)*/);
rT260level_incr((T260*)oRBC27fmt);
/*IF*/if (((int)(C)->_header_comment)) {
rT57pretty_print((T57*)(C)->_header_comment);
}
else {
rT260indent((T260*)oRBC27fmt);
}
/*FI*//*IF*/if (((int)(C)->_list)) {
_i=1;
while (!((_i)>(((T156*)(C)->_list)->_upper))) {
/*IF*/if (((((T260*)oRBC27fmt)->_zen_mode)&&((_i)==(((T156*)(C)->_list)->_upper)))) {
/*(IRF3*/(((T260*)oRBC27fmt)->_semi_colon_flag)=(0);
/*)*/}
else {
/*(IRF3*/(((T260*)oRBC27fmt)->_semi_colon_flag)=(1);
/*)*/}
/*FI*/rT260indent((T260*)oRBC27fmt);
rT62pretty_print((T62*)rT156item((T156*)(C)->_list,_i));
_i=(_i)+(1);
}
}
/*FI*/rT260level_decr((T260*)oRBC27fmt);
rT260indent((T260*)oRBC27fmt);
}
void rT213make(T213 *C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
int rT259all_check(T259 *C){
int R=0;
R=((C)->_level)>=(0);
return R;
}
void rT73bracketed_print(T73 *C){
rT260put_character((T260*)oRBC27fmt,'\50');
rT73pretty_print(C);
rT260put_character((T260*)oRBC27fmt,'\51');
}
T0* rT73to_string(T73 *C){
T0* R=NULL;
{T7 *n=((T7*)se_new(7));
rT7make(n,0);
R=(T0 *)n;}
rT7extend((T7*)R,'\47');
{int iv1=(C)->_pretty_print_mode;
if (0 == iv1) goto l2;
goto l3;
 l2: ;
rT7extend((T7*)R,(C)->_value);
goto l1;
 l3: ;
if (1 == iv1) goto l4;
goto l5;
 l4: ;
rT73character_coding((C)->_value,R);
goto l1;
 l5: ;
if (2 == iv1) goto l6;
goto l7;
 l6: ;
rT7extend((T7*)R,'\45');
rT7extend((T7*)R,'\57');
rT2append_in(((unsigned char)(C)->_value),R);
rT7extend((T7*)R,'\57');
goto l1;
 l7: ;
 l1: ;
}
rT7extend((T7*)R,'\47');
return R;
}
T0* rT73add_comment(T73 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT57count((T57*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T219 *n=((T219*)se_new(219));
rT219make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
void rT73print_as_target(T73 *C){
rT73bracketed_print(C);
rT260put_character((T260*)oRBC27fmt,'\56');
}
void rT73pretty_print(T73 *C){
rT260put_string((T260*)oRBC27fmt,rT73to_string(C));
}
void rT73make(T73 *C,T0* a1,char a2,int a3){
C->_start_position=a1;
C->_value=a2;
/*(IRF3*/((C)->_pretty_print_mode)=(a3);
/*)*/}
void rT73character_coding(/*C*/char a1,T0* a2){
char _special=0;
{int iv1=a1;
if (64 == iv1) goto l9;
goto l10;
 l9: ;
_special='A';
goto l8;
 l10: ;
if (8 == iv1) goto l11;
goto l12;
 l11: ;
_special='B';
goto l8;
 l12: ;
if (94 == iv1) goto l13;
goto l14;
 l13: ;
_special='C';
goto l8;
 l14: ;
if (36 == iv1) goto l15;
goto l16;
 l15: ;
_special='D';
goto l8;
 l16: ;
if (12 == iv1) goto l17;
goto l18;
 l17: ;
_special='F';
goto l8;
 l18: ;
if (92 == iv1) goto l19;
goto l20;
 l19: ;
_special='H';
goto l8;
 l20: ;
if (126 == iv1) goto l21;
goto l22;
 l21: ;
_special='L';
goto l8;
 l22: ;
if (10 == iv1) goto l23;
goto l24;
 l23: ;
_special='N';
goto l8;
 l24: ;
if (96 == iv1) goto l25;
goto l26;
 l25: ;
_special='Q';
goto l8;
 l26: ;
if (13 == iv1) goto l27;
goto l28;
 l27: ;
_special='R';
goto l8;
 l28: ;
if (35 == iv1) goto l29;
goto l30;
 l29: ;
_special='S';
goto l8;
 l30: ;
if (9 == iv1) goto l31;
goto l32;
 l31: ;
_special='T';
goto l8;
 l32: ;
if (0 == iv1) goto l33;
goto l34;
 l33: ;
_special='U';
goto l8;
 l34: ;
if (124 == iv1) goto l35;
goto l36;
 l35: ;
_special='V';
goto l8;
 l36: ;
if (37 == iv1) goto l37;
goto l38;
 l37: ;
_special='\45';
goto l8;
 l38: ;
if (39 == iv1) goto l39;
goto l40;
 l39: ;
_special='\47';
goto l8;
 l40: ;
if (34 == iv1) goto l41;
goto l42;
 l41: ;
_special='\42';
goto l8;
 l42: ;
if (91 == iv1) goto l43;
goto l44;
 l43: ;
_special='\50';
goto l8;
 l44: ;
if (93 == iv1) goto l45;
goto l46;
 l45: ;
_special='\51';
goto l8;
 l46: ;
if (123 == iv1) goto l47;
goto l48;
 l47: ;
_special='\74';
goto l8;
 l48: ;
if (125 == iv1) goto l49;
goto l50;
 l49: ;
_special='\76';
goto l8;
 l50: ;
 l8: ;
}
rT7extend((T7*)a2,'\45');
/*IF*/if ((_special)==('\0')) {
rT7extend((T7*)a2,'\57');
rT2append_in(((unsigned char)a1),a2);
rT7extend((T7*)a2,'\57');
}
else {
rT7extend((T7*)a2,_special);
}
/*FI*/}
int rT49a_constant(T49 *C){
int R=0;
T0* _fn=NULL;
T0* _e_current=NULL;
/*IF*/if (rT49a_identifier(C)) {
R=1;
_fn=rT67to_feature_name((T67*)rT49tmp_name());
{T87 *n=((T87*)se_new(87));
rT87make(n,XrT65start_position(_fn),0);
_e_current=(T0 *)n;}
{T161 *n=((T161*)se_new(161));
rT161make(n,_e_current,_fn);
C->_last_expression=(T0 *)n;}}
 else if (rT49a_character_constant(C)) {
R=1;
C->_last_expression=(C)->_last_character_constant;
}
 else if (rT49a_integer_constant(C)) {
R=1;
C->_last_expression=(C)->_last_integer_constant;
}
/*FI*/return R;
}
int rT49a_conditional(T49 *C){
int R=0;
T0* _ifthenelse=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms347)) {
R=1;
{T217 *n=((T217*)se_new(217));
/*(IRF3*/((n)->_start_position)=(rT49pos((C)->_start_line,(C)->_start_column));
/*)*/_ifthenelse=(T0 *)n;}
rT49a_then_part_list(C,_ifthenelse);
/*IF*/if (rT49a_keyword(C,(T0 *)ms99)) {
/*(IRF3*/(((T217*)_ifthenelse)->_else_compound)=(rT49a_compound2(C,(T0 *)ms353,(T0 *)ms113));
/*)*/}
else {
/*IF*/if (!(rT49a_keyword(C,(T0 *)ms113))) {
rT49wcp(C,(T0 *)ms354);
}
/*FI*/}
/*FI*/C->_last_instruction=_ifthenelse;
}
/*FI*/return R;
}
int rT49a_boolean_constant(T49 *C){
int R=0;
/*IF*/if (rT49a_keyword(C,(T0 *)ms152)) {
{T71 *n=((T71*)se_new(71));
/*(IRF3*/((n)->_start_position)=(rT49pos((C)->_start_line,(C)->_start_column));
/*)*/C->_last_boolean_constant=(T0 *)n;}R=1;
}
 else if (rT49a_keyword(C,(T0 *)ms153)) {
{T72 *n=((T72*)se_new(72));
/*(IRF3*/((n)->_start_position)=(rT49pos((C)->_start_line,(C)->_start_column));
/*)*/C->_last_boolean_constant=(T0 *)n;}R=1;
}
/*FI*/return R;
}
int rT49a_then_part(T49 *C,T0* a1){
int R=0;
T0* _expression=NULL;
/*IF*/if (rT49a_expression(C)) {
R=1;
_expression=XrT66add_comment((C)->_last_expression,rT49get_comments(C));
/*IF*/if (!(rT49a_keyword(C,(T0 *)ms96))) {
rT49wcp(C,(T0 *)ms348);
}
/*FI*/rT217add_if_then((T217*)a1,_expression,rT49a_compound1(C,(T0 *)ms349));
}
/*FI*/return R;
}
void rT49a_then_part_list(T49 *C,T0* a1){
/*IF*/if (!(rT49a_then_part(C,a1))) {
rT49fcp(C,(T0 *)ms350);
}
/*FI*/while (!(!(rT49a_keyword(C,(T0 *)ms351)))) {
/*IF*/if (!(rT49a_then_part(C,a1))) {
rT49fcp(C,(T0 *)ms352);
}
/*FI*/}
}
T0* rT49get_comments(T49 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_last_comments)) {
R=(C)->_last_comments;
C->_last_comments=NULL;
}
/*FI*/return R;
}
int rT49a_parent(T49 *C){
int R=0;
/*IF*/if (rT49a_class_type(C)) {
R=1;
/*IF*/if (rT7is_equal((T7*)((T46*)rT49current_class_name(C))->_to_string,((T46*)XrT56base_class_name((C)->_last_class_type))->_to_string)) {
rT49error(XrT56start_position((C)->_last_class_type),(T0 *)ms217);
}
/*FI*/{T116 *n=((T116*)se_new(116));
rT116make(n,(C)->_last_class_type);
C->_last_parent=(T0 *)n;}
/*IF*/if (rT49a_keyword(C,(T0 *)ms220)) {
rT49a_rename_list(C);
/*IF*/if (((C)->_cc)==('\73')) {
rT49wcp(C,(T0 *)ms224);
C->_ok=rT49skip1(C,'\73');
}
/*FI*/}
/*FI*/rT49a_new_export_list(C);
/*IF*/if (rT49a_keyword(C,(T0 *)ms235)) {
rT49a_undefine_list(C);
}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms236)) {
rT49a_redefine_list(C);
}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms237)) {
rT49a_select_list(C);
}
/*FI*//*IF*/if (((((rT49a_keyword(C,(T0 *)ms238))||(rT49a_keyword(C,(T0 *)ms239)))||(rT49a_keyword(C,(T0 *)ms240)))||(rT49a_keyword(C,(T0 *)ms241)))||(rT49a_keyword(C,(T0 *)ms242))) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(rT49pos((C)->_start_line,(C)->_start_column));
rT49fatal_error((T0 *)ms243);
}
/*FI*/C->_ok=rT49a_keyword(C,(T0 *)ms113);
}
/*FI*/return R;
}
void rT49a_parent_list(T49 *C,T0* a1,T0* a2){
T0* _list=NULL;
while (!(!(rT49a_parent(C)))) {
/*IF*/if (!(_list)) {
_list=ma(128,0,1,(C)->_last_parent);
}
else {
rT128add_last((T128*)_list,(C)->_last_parent);
}
/*FI*/C->_ok=rT49skip1(C,'\73');
/*(IRF3*/(((T116*)(C)->_last_parent)->_comment)=(rT49get_comments(C));
/*)*/}
/*IF*/if (((((int)a2))||(((int)_list)))) {
rT48set_parent_list((T48*)(C)->_last_base_class,a1,a2,_list);
}
/*FI*/}
int rT49a_when_part(T49 *C,T0* a1){
int R=0;
T0* _constant=NULL;
T0* _e_when=NULL;
int _state=0;
/*IF*/if (rT49a_keyword(C,(T0 *)ms359)) {
R=1;
{T225 *n=((T225*)se_new(225));
rT225make(n,rT49pos((C)->_start_line,(C)->_start_column),rT49get_comments(C));
_e_when=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l52;
goto l53;
 l52: ;
/*IF*/if (rT49a_constant(C)) {
_constant=(C)->_last_expression;
_state=1;
}
 else if (rT49a_keyword(C,(T0 *)ms96)) {
/*IF*/if (((int)_constant)) {
rT225add_value((T225*)_e_when,_constant);
}
/*FI*//*(IRF3*/(((T225*)_e_when)->_compound)=(rT49a_compound1(C,(T0 *)ms360));
/*)*/rT224add_when((T224*)a1,_e_when);
_state=4;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms226);
C->_ok=rT49skip1(C,'\54');
}
else {
rT49fcp(C,(T0 *)ms361);
_state=4;
}
/*FI*/goto l51;
 l53: ;
if (1 == iv1) goto l54;
goto l55;
 l54: ;
/*IF*/if (rT49a_keyword(C,(T0 *)ms96)) {
/*IF*/if (((int)_constant)) {
rT225add_value((T225*)_e_when,_constant);
}
/*FI*//*(IRF3*/(((T225*)_e_when)->_compound)=(rT49a_compound1(C,(T0 *)ms362));
/*)*/rT224add_when((T224*)a1,_e_when);
_state=4;
}
 else if (rT49skip2(C,'\56','\56')) {
_state=2;
}
 else if (rT49skip1(C,'\54')) {
rT225add_value((T225*)_e_when,_constant);
_constant=NULL;
_state=0;
}
else {
rT49fcp(C,(T0 *)ms361);
_state=4;
}
/*FI*/goto l51;
 l55: ;
if (2 == iv1) goto l56;
goto l57;
 l56: ;
/*IF*/if (rT49a_constant(C)) {
rT225add_slice((T225*)_e_when,_constant,(C)->_last_expression);
_constant=NULL;
_state=3;
}
else {
rT49fcp(C,(T0 *)ms361);
_state=4;
}
/*FI*/goto l51;
 l57: ;
/*IF*/if (rT49skip1(C,'\54')) {
_state=0;
}
 else if (rT49a_keyword(C,(T0 *)ms96)) {
/*(IRF3*/(((T225*)_e_when)->_compound)=(rT49a_compound1(C,(T0 *)ms363));
/*)*/rT224add_when((T224*)a1,_e_when);
_state=4;
}
 else if (rT49a_constant(C)) {
_constant=(C)->_last_expression;
rT49warning(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms209);
_state=1;
}
else {
rT49fcp(C,(T0 *)ms361);
_state=4;
}
/*FI*/ l51: ;
}
}
}
/*FI*/return R;
}
void rT49a_select_list(T49 *C){
/*IF*/if (rT49a_feature_list(C)) {
rT116set_select((T116*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}
int rT49a_unary(T49 *C){
int R=0;
/*IF*/if (rT49a_keyword(C,(T0 *)ms76)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,(T0 *)ms76,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
 else if (rT49skip1(C,'\53')) {
{T64 *n=((T64*)se_new(64));
rT64make(n,(T0 *)ms78,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
 else if (rT49skip1(C,'\55')) {
{T64 *n=((T64*)se_new(64));
rT64make(n,(T0 *)ms79,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
/*FI*/return R;
}
int rT49a_rename_pair(T49 *C){
int R=0;
T0* _rename_pair=NULL;
T0* _name1=NULL;
/*IF*/if (rT49a_identifier(C)) {
_name1=rT67to_feature_name((T67*)rT49tmp_name());
/*IF*/if (rT49a_keyword(C,(T0 *)ms221)) {
/*IF*/if (rT49a_identifier(C)) {
R=1;
/*IF*/if (rT7is_equal((T7*)((T67*)rT49tmp_name())->_to_string,XrT65to_string(_name1))) {
rT49warning(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms222);
}
else {
{T117 *n=((T117*)se_new(117));
rT117make(n,_name1,rT67to_feature_name((T67*)rT49tmp_name()));
_rename_pair=(T0 *)n;}
rT116add_rename((T116*)(C)->_last_parent,_rename_pair);
}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms223);
}
/*FI*/}
else {
rT49go_back(C,XrT65start_position(_name1));
}
/*FI*/}
/*FI*/return R;
}
void rT49a_rename_list(T49 *C){
while (!(!(rT49a_rename_pair(C)))) {
C->_ok=rT49skip1(C,'\54');
}
}
T0* rT49to_call(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if (!(a2)) {
R=a1;
}
 else if (!(a3)) {
{T161 *n=((T161*)se_new(161));
rT161make(n,a1,a2);
R=(T0 *)n;}}
 else if ((rT169count((T169*)a3))==(1)) {
{T173 *n=((T173*)se_new(173));
rT173make(n,a1,a2,a3);
R=(T0 *)n;}}
else {
{T174 *n=((T174*)se_new(174));
rT174make(n,a1,a2,a3);
R=(T0 *)n;}}
/*FI*/return R;
}
int rT49a_e10(T49 *C){
int R=0;
/*IF*/if (rT49a_strip(C)) {
R=1;
}
 else if (rT49skip1(C,'\50')) {
R=1;
/*IF*/if (rT49a_expression(C)) {
/*IF*/if (rT49skip1(C,'\51')) {
rT49a_r10(C,0,(C)->_last_expression,NULL,NULL);
}
else {
rT49fcp(C,(T0 *)ms295);
}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms296);
}
/*FI*/}
 else if (rT49a_manifest_constant(C)) {
C->_last_expression=(C)->_last_manifest_constant;
R=1;
/*IF*/if (rT49skip1unless2(C,'\56','\56')) {
rT49wcp(C,(T0 *)ms297);
rT49a_after_a_dot(C,0,(C)->_last_expression);
}
/*FI*/}
 else if (rT49a_identifier(C)) {
R=1;
/*IF*/if (((((rT49a_result(C))||(rT49a_current(C)))||(rT49a_void(C)))||(rT49a_local_variable(C)))||(rT49a_argument(C))) {
rT49a_r10(C,0,(C)->_last_expression,NULL,NULL);
}
else {
rT49a_function_call(C);
}
/*FI*/}
/*FI*/return R;
}
void rT49a_assignment_aux(T49 *C,int a1){
T0* _rhs=NULL;
T0* _writable=NULL;
/*IF*/if (rT49a_current(C)) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(XrT66start_position((C)->_last_expression));
rT49fatal_error((T0 *)ms385);
}
 else if (rT49a_void(C)) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(rT67start_position((T67*)rT49tmp_name()));
rT49fatal_error((T0 *)ms386);
}
 else if (rT49a_argument(C)) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(XrT66start_position((C)->_last_expression));
rT49fatal_error((T0 *)ms387);
}
else {
/*IF*/if (rT7same_as((T7*)(T0 *)ms287,((T67*)rT49tmp_name())->_to_string)) {
/*IF*/if (!((C)->_function_type)) {
rT49error(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms288);
}
/*FI*/_writable=rT67to_e_result((T67*)rT49tmp_name());
}
 else if (rT49a_local_variable(C)) {
_writable=(C)->_last_expression;
}
else {
_writable=rT67to_feature_name((T67*)rT49tmp_name());
}
/*FI*//*IF*/if (rT49a_expression(C)) {
_rhs=(C)->_last_expression;
/*IF*/if (a1) {
{T247 *n=((T247*)se_new(247));
rT247make(n,_writable,_rhs);
C->_last_instruction=(T0 *)n;}}
else {
{T248 *n=((T248*)se_new(248));
rT248make(n,_writable,_rhs);
C->_last_instruction=(T0 *)n;}}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms388);
}
/*FI*/}
/*FI*/}
int rT49a_assignment_or_call(T49 *C){
int R=0;
/*IF*/if ((rT49skip1(C,'\50'))&&(rT49a_expression(C))) {
R=1;
/*IF*/if (rT49skip1(C,'\51')) {
rT49a_r10(C,1,(C)->_last_expression,NULL,NULL);
}
else {
rT49fcp(C,(T0 *)ms384);
}
/*FI*/}
 else if (rT49a_identifier(C)) {
R=1;
/*IF*/if (rT49skip2(C,'\72','\75')) {
rT49a_assignment_aux(C,1);
}
 else if (rT49skip2(C,'\77','\75')) {
rT49a_assignment_aux(C,0);
}
 else if ((((rT49a_current(C))||(rT49a_result(C)))||(rT49a_local_variable(C)))||(rT49a_argument(C))) {
rT49a_r10(C,1,(C)->_last_expression,NULL,NULL);
}
else {
rT49a_procedure_call(C);
}
/*FI*/}
/*FI*/return R;
}
T0* rT49a_assertion(T49 *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 l59;
goto l60;
 l59: ;
/*IF*/if (((C)->_cc)==('\73')) {
rT49wcp(C,(T0 *)ms230);
C->_ok=rT49skip1(C,'\73');
/*IF*/if (((int)(C)->_last_comments)) {
{T62 *n=((T62*)se_new(62));
rT62make(n,NULL,NULL,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/}
/*FI*/}
 else if (rT49a_tag_mark(C)) {
_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT49a_expression(C)) {
_expression=(C)->_last_expression;
_state=2;
}
else {
_state=4;
}
/*FI*/goto l58;
 l60: ;
if (1 == iv1) goto l61;
goto l62;
 l61: ;
/*IF*/if (rT49skip1(C,'\73')) {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,NULL,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT49a_tag_mark(C)) {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,NULL,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
}
 else if (rT49a_expression(C)) {
_expression=(C)->_last_expression;
_state=3;
}
else {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,NULL,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/goto l58;
 l62: ;
if (2 == iv1) goto l63;
goto l64;
 l63: ;
/*IF*/if (rT49skip1(C,'\73')) {
{T62 *n=((T62*)se_new(62));
rT62make(n,NULL,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT49a_tag_mark(C)) {
{T62 *n=((T62*)se_new(62));
rT62make(n,NULL,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT49a_expression(C)) {
{T62 *n=((T62*)se_new(62));
rT62make(n,NULL,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_expression=(C)->_last_expression;
_state=2;
}
else {
{T62 *n=((T62*)se_new(62));
rT62make(n,NULL,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/goto l58;
 l64: ;
/*IF*/if (rT49skip1(C,'\73')) {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT49a_tag_mark(C)) {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT49a_expression(C)) {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_expression=(C)->_last_expression;
_state=2;
}
else {
{T62 *n=((T62*)se_new(62));
rT62make(n,_tag,_expression,rT49get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(156,0,1,_assertion);
}
else {
rT156add_last((T156*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/ l58: ;
}
}
return R;
}
void rT49a_formal_arg_list(T49 *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 l66;
goto l67;
 l66: ;
/*IF*/if (rT49skip1(C,'\50')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_state=1;
}
else {
_state=6;
}
/*FI*/goto l65;
 l67: ;
if (1 == iv1) goto l68;
goto l69;
 l68: ;
/*IF*/if (rT49a_identifier(C)) {
_name=rT67to_decl_name((T67*)rT49tmp_name());
_state=2;
}
 else if (rT49skip1(C,'\51')) {
_state=6;
}
else {
_state=7;
}
/*FI*/goto l65;
 l69: ;
if (2 == iv1) goto l70;
goto l71;
 l70: ;
/*IF*/if (rT49skip1(C,'\72')) {
/*IF*/if (((int)_name_list)) {
rT139add_last((T139*)_name_list,_name);
_name=NULL;
}
/*FI*/_state=4;
}
else {
C->_ok=rT49skip1(C,'\54');
/*IF*/if (!(_name_list)) {
_name_list=ma(139,0,1,_name);
}
else {
rT139add_last((T139*)_name_list,_name);
}
/*FI*/_name=NULL;
_state=3;
}
/*FI*/goto l65;
 l71: ;
if (3 == iv1) goto l72;
goto l73;
 l72: ;
/*IF*/if (rT49a_identifier(C)) {
_name=rT67to_decl_name((T67*)rT49tmp_name());
_state=2;
}
 else if (((((C)->_cc)==('\54'))||(((C)->_cc)==('\73')))) {
rT49wcp(C,(T0 *)ms250);
C->_ok=(rT49skip1(C,'\54'))||(rT49skip1(C,'\73'));
}
else {
_state=7;
}
/*FI*/goto l65;
 l73: ;
if (4 == iv1) goto l74;
goto l75;
 l74: ;
/*IF*/if (rT49a_type(C)) {
/*IF*/if (((int)_name_list)) {
{T140 *n=((T140*)se_new(140));
rT140make(n,_name_list,(C)->_last_type);
_declaration=(T0 *)n;}_name_list=NULL;
}
else {
{T92 *n=((T92*)se_new(92));
rT92make(n,_name,(C)->_last_type);
_declaration=(T0 *)n;}_name=NULL;
}
/*FI*//*IF*/if (!(_list)) {
_list=ma(141,0,1,_declaration);
}
else {
XrT141add_last(_list,_declaration);
}
/*FI*/_declaration=NULL;
_state=5;
}
else {
_state=7;
}
/*FI*/goto l65;
 l75: ;
/*IF*/if (rT49skip1(C,'\51')) {
_state=6;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms251);
C->_ok=rT49skip1(C,'\54');
_state=1;
}
else {
C->_ok=rT49skip1(C,'\73');
_state=1;
}
/*FI*/ l65: ;
}
}
/*IF*/if ((_state)==(7)) {
rT49fcp(C,(T0 *)ms252);
}
 else if ((((int)_sp))&&(!(_list))) {
rT49warning(_sp,(T0 *)ms253);
}
 else if (((int)_sp)) {
{T90 *n=((T90*)se_new(90));
rT90make(n,_sp,_list);
C->_arguments=(T0 *)n;}
/*(IRF3*/(((T134*)oRBC49tmp_feature)->_arguments)=((C)->_arguments);
/*)*/}
/*FI*/}
void rT49a_undefine_list(T49 *C){
/*IF*/if (rT49a_feature_list(C)) {
rT116set_undefine((T116*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}
int rT49a_prefix(T49 *C){
int R=0;
/*IF*/if (rT49a_keyword(C,(T0 *)ms73)) {
R=1;
/*IF*/if (((C)->_cc)==('\42')) {
rT49next_char(C);
}
else {
rT49wcp(C,(T0 *)ms75);
}
/*FI*//*IF*/if (rT49a_unary(C)) {
}
 else if (rT49a_free_operator(C)) {
C->_last_prefix=rT67to_prefix_name((T67*)rT49tmp_operator());
}
else {
rT49fcp(C,(T0 *)ms80);
}
/*FI*//*IF*/if (!(rT49skip1(C,'\42'))) {
rT49wcp(C,(T0 *)ms81);
}
/*FI*/}
/*FI*/return R;
}
void rT49a_formal_generic_list(T49 *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 l77;
goto l78;
 l77: ;
/*IF*/if (rT49skip1(C,'\133')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_state=1;
}
else {
_state=5;
}
/*FI*/goto l76;
 l78: ;
if (1 == iv1) goto l79;
goto l80;
 l79: ;
/*IF*/if (rT49a_base_class_name(C)) {
_name=(C)->_last_class_name;
_state=2;
}
else {
_state=6;
}
/*FI*/goto l76;
 l80: ;
if (2 == iv1) goto l81;
goto l82;
 l81: ;
/*IF*/if (rT49skip2(C,'\55','\76')) {
_state=4;
}
 else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
{T82 *n=((T82*)se_new(82));
rT82make(n,_name,_constraint);
_fga=(T0 *)n;}
_name=NULL;
_constraint=NULL;
/*IF*/if (!(_list)) {
_list=ma(84,0,1,_fga);
}
else {
rT84add_last((T84*)_list,_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (rT49skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=rT49skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/goto l76;
 l82: ;
if (3 == iv1) goto l83;
goto l84;
 l83: ;
/*IF*/if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
{T82 *n=((T82*)se_new(82));
rT82make(n,_name,_constraint);
_fga=(T0 *)n;}
_name=NULL;
_constraint=NULL;
/*IF*/if (!(_list)) {
_list=ma(84,0,1,_fga);
}
else {
rT84add_last((T84*)_list,_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (rT49skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=rT49skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/goto l76;
 l84: ;
/*IF*/if (rT49a_class_type(C)) {
_constraint=(C)->_last_class_type;
_state=3;
}
else {
rT49fcp(C,(T0 *)ms211);
_state=6;
}
/*FI*/ l76: ;
}
}
/*IF*/if ((_state)==(6)) {
}
 else if ((((int)_sp))&&(!(_list))) {
rT49warning(_sp,(T0 *)ms212);
}
 else if (((int)_sp)) {
{T83 *n=((T83*)se_new(83));
rT83make(n,_sp,_list);
C->_formal_generic_list=(T0 *)n;}
/*(IRF3*/(((T48*)(C)->_last_base_class)->_formal_generic_list)=((C)->_formal_generic_list);
/*)*/}
/*FI*/}
void rT49fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T43*)oRBC27eh);
rT43fatal_error(a1);
}
void rT49a_function_call(T49 *C){
T0* _e_current=NULL;
T0* _fn=NULL;
_fn=rT67to_feature_name((T67*)rT49tmp_name());
{T87 *n=((T87*)se_new(87));
rT87make(n,XrT65start_position(_fn),0);
_e_current=(T0 *)n;}
rT49a_r10(C,0,_e_current,_fn,rT49a_actuals(C));
}
int rT49a_keyword(T49 *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);
rT49next_char(C);
}
/*IF*/if ((_i)==(((T7*)a1)->_count)) {
{int iv1=(C)->_cc;
if ((9<=iv1)&&(iv1<=10)) goto l86;
if (32 == iv1) goto l86;
if (45 == iv1) goto l86;
goto l87;
 l86: ;
R=1;
C->_last_keyword=a1;
rT49skip_comments(C);
goto l85;
 l87: ;
if ((48<=iv1)&&(iv1<=57)) goto l88;
if ((65<=iv1)&&(iv1<=90)) goto l88;
if (95 == iv1) goto l88;
if ((97<=iv1)&&(iv1<=122)) goto l88;
goto l89;
 l88: ;
while (!((_i)==(0))) {
rT49prev_char(C);
_i=(_i)-(1);
}
goto l85;
 l89: ;
R=1;
C->_last_keyword=a1;
 l85: ;
}
}
else {
while (!((_i)==(0))) {
rT49prev_char(C);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
int rT49a_loop(T49 *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 (rT49a_keyword(C,(T0 *)ms366)) {
R=1;
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_i=rT49a_compound1(C,(T0 *)ms367);
/*IF*/if (rT49a_keyword(C,(T0 *)ms368)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp2=(T0 *)n;}
_hc=rT49get_comments(C);
_al=rT49a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T235 *n=((T235*)se_new(235));
rT235make(n,_sp2,_hc,_al);
_ic=(T0 *)n;}
}
/*FI*/}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms369)) {
/*IF*/if ((rT49a_tag_mark(C))&&(rT49a_expression(C))) {
{T237 *n=((T237*)se_new(237));
rT237make(n,(C)->_last_tag_mark,(C)->_last_expression,rT49get_comments(C));
_vc=(T0 *)n;}}
 else if (rT49a_expression(C)) {
{T238 *n=((T238*)se_new(238));
rT238make(n,(C)->_last_expression,rT49get_comments(C));
_vc=(T0 *)n;}}
else {
rT49wcp(C,(T0 *)ms370);
}
/*FI*/}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms371)) {
/*IF*/if (rT49a_expression(C)) {
_ue=XrT66add_comment((C)->_last_expression,rT49get_comments(C));
}
else {
rT49fcp(C,(T0 *)ms372);
_ue=(C)->_last_expression;
}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms373);
_ue=(C)->_last_expression;
}
/*FI*//*IF*/if (((C)->_cc)==('\73')) {
rT49wcp(C,(T0 *)ms230);
C->_ok=rT49skip1(C,'\73');
}
/*FI*//*IF*/if (!(rT49a_keyword(C,(T0 *)ms374))) {
rT49wcp(C,(T0 *)ms375);
}
/*FI*/_lb=rT49a_compound2(C,(T0 *)ms376,(T0 *)ms113);
{T234 *n=((T234*)se_new(234));
rT234make(n,_sp,_i,_ic,_vc,_ue,_lb);
_e_loop=(T0 *)n;}
C->_last_instruction=_e_loop;
}
/*FI*/return R;
}
int rT49a_inspect(T49 *C){
int R=0;
T0* _ec=NULL;
T0* _i=NULL;
T0* _spec=NULL;
T0* _sp=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms357)) {
R=1;
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_expression(C)) {
C->_last_expression=XrT66add_comment((C)->_last_expression,rT49get_comments(C));
}
else {
rT49fcp(C,(T0 *)ms358);
}
/*FI*/{T224 *n=((T224*)se_new(224));
rT224make(n,_sp,(C)->_last_expression);
_i=(T0 *)n;}
while (!(!(rT49a_when_part(C,_i)))) {
}
/*IF*/if (rT49a_keyword(C,(T0 *)ms99)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_spec=(T0 *)n;}
_ec=rT49a_compound2(C,(T0 *)ms364,(T0 *)ms113);
rT224set_else_compound((T224*)_i,_spec,_ec);
}
 else if (!(rT49a_keyword(C,(T0 *)ms113))) {
rT49wcp(C,(T0 *)ms365);
}
/*FI*/C->_last_instruction=_i;
}
/*FI*/return R;
}
int rT49a_instruction(T49 *C){
int R=0;
R=(((((((rT49a_check(C))||(rT49a_debug(C)))||(rT49a_conditional(C)))||(rT49a_retry(C)))||(rT49a_inspect(C)))||(rT49a_loop(C)))||(rT49a_creation(C)))||(rT49a_assignment_or_call(C));
return R;
}
int rT49a_result(T49 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms287,((T67*)rT49tmp_name())->_to_string)) {
/*IF*/if (!((C)->_function_type)) {
rT49error(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms288);
}
/*FI*/C->_last_expression=rT67to_e_result((T67*)rT49tmp_name());
R=1;
}
/*FI*/return R;
}
void rT49a_new_export_list(T49 *C){
int _state=0;
T0* _new_export_item=NULL;
T0* _items=NULL;
T0* _clients=NULL;
T0* _sp=NULL;
T0* _export_list=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms225)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l91;
goto l92;
 l91: ;
/*IF*/if (((C)->_cc)==('\173')) {
_clients=rT49a_clients(C);
_state=1;
}
 else if (((C)->_cc)==('\73')) {
rT49wcp(C,(T0 *)ms230);
C->_ok=rT49skip1(C,'\73');
}
else {
/*IF*/if (((int)_items)) {
{T120 *n=((T120*)se_new(120));
rT120make(n,_sp,_items);
_export_list=(T0 *)n;}
/*(IRF3*/(((T116*)(C)->_last_parent)->_export_list)=(_export_list);
/*)*/}
/*FI*/_state=4;
}
/*FI*/goto l90;
 l92: ;
if (1 == iv1) goto l93;
goto l94;
 l93: ;
/*IF*/if (rT49a_keyword(C,(T0 *)ms231)) {
{T122 *n=((T122*)se_new(122));
rT122make_all(n,_clients);
_new_export_item=(T0 *)n;}
/*IF*/if (!(_items)) {
_items=ma(125,0,1,_new_export_item);
}
else {
rT125add_last((T125*)_items,_new_export_item);
}
/*FI*/_state=2;
}
else {
/*IF*/if (rT49a_feature_list(C)) {
{T122 *n=((T122*)se_new(122));
rT122make(n,_clients,(C)->_last_feature_list);
_new_export_item=(T0 *)n;}
/*IF*/if (!(_items)) {
_items=ma(125,0,1,_new_export_item);
}
else {
rT125add_last((T125*)_items,_new_export_item);
}
/*FI*/_state=2;
}
else {
_state=3;
}
/*FI*/}
/*FI*/goto l90;
 l94: ;
if (2 == iv1) goto l95;
goto l96;
 l95: ;
/*IF*/if (rT49skip1(C,'\73')) {
_state=0;
}
 else if (((C)->_cc)==('\173')) {
rT49wcp(C,(T0 *)ms234);
_state=0;
}
else {
/*IF*/if (((int)_items)) {
{T120 *n=((T120*)se_new(120));
rT120make(n,_sp,_items);
_export_list=(T0 *)n;}
/*(IRF3*/(((T116*)(C)->_last_parent)->_export_list)=(_export_list);
/*)*/}
/*FI*/_state=4;
}
/*FI*/goto l90;
 l96: ;
rT49fcp(C,(T0 *)ms228);
_state=4;
 l90: ;
}
}
}
/*FI*/}
int rT49a_current(T49 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms197,((T67*)rT49tmp_name())->_to_string)) {
C->_last_expression=rT67to_e_current((T67*)rT49tmp_name());
R=1;
}
/*FI*/return R;
}
int rT49a_retry(T49 *C){
int R=0;
/*IF*/if (rT49a_keyword(C,(T0 *)ms355)) {
/*IF*/if (!((C)->_in_rescue)) {
rT49error(rT49pos((C)->_start_line,(C)->_start_column),(T0 *)ms356);
}
/*FI*/{T223 *n=((T223*)se_new(223));
/*(IRF3*/((n)->_start_position)=(rT49pos((C)->_start_line,(C)->_start_column));
/*)*/C->_last_instruction=(T0 *)n;}R=1;
}
/*FI*/return R;
}
int rT49a_integer_constant(T49 *C){
int R=0;
/*IF*/if (rT49skip1(C,'\53')) {
/*IF*/if (!(rT49a_integer(C))) {
rT49fcp(C,(T0 *)ms167);
}
else {
R=1;
}
/*FI*/}
 else if (rT49skip1(C,'\55')) {
/*IF*/if (!(rT49a_integer(C))) {
rT49fcp(C,(T0 *)ms167);
}
else {
C->_last_integer_constant=rT78_px45((T78*)(C)->_last_integer_constant);
R=1;
}
/*FI*/}
else {
R=rT49a_integer(C);
}
/*FI*/return R;
}
int rT49a_integer(T49 *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))) {
rT49next_char(C);
{int iv1=_state;
if (0 == iv1) goto l98;
goto l99;
 l98: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l101;
goto l102;
 l101: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
goto l100;
 l102: ;
if (95 == iv2) goto l103;
goto l104;
 l103: ;
_state=1;
goto l100;
 l104: ;
_state=4;
 l100: ;
}
goto l97;
 l99: ;
if (1 == iv1) goto l105;
goto l106;
 l105: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l108;
goto l109;
 l108: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
_state=2;
goto l107;
 l109: ;
rT49fcp(C,(T0 *)ms163);
 l107: ;
}
goto l97;
 l106: ;
if (2 == iv1) goto l110;
goto l111;
 l110: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l113;
goto l114;
 l113: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
_state=3;
goto l112;
 l114: ;
rT49fcp(C,(T0 *)ms163);
 l112: ;
}
goto l97;
 l111: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l116;
goto l117;
 l116: ;
_value=((_value)*(10))+(rT3value((C)->_cc));
_state=0;
goto l115;
 l117: ;
rT49fcp(C,(T0 *)ms163);
 l115: ;
}
 l97: ;
}
rT49skip_comments(C);
{T78 *n=((T78*)se_new(78));
rT78make(n,_value,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_integer_constant=(T0 *)n;}
}
}
/*FI*/return R;
}
void rT49err_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 *)ms277);
rT7append((T7*)_msg,a2);
rT7append((T7*)_msg,(T0 *)ms278);
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(a1);
rT49fatal_error(_msg);
}
int rT49a_expression(T49 *C){
int R=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT49skip2(C,'\74','\74')) {
R=1;
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!(!(rT49a_expression(C)))) {
/*IF*/if (!(_list)) {
_list=ma(79,0,1,(C)->_last_expression);
}
else {
XrT79add_last(_list,(C)->_last_expression);
}
/*FI*/C->_ok=rT49skip1(C,'\54');
}
/*IF*/if (!(rT49skip2(C,'\76','\76'))) {
rT49fcp(C,(T0 *)ms276);
}
/*FI*/{T158 *n=((T158*)se_new(158));
rT158make(n,_sp,_list);
C->_last_expression=(T0 *)n;}}
else {
R=rT49a_e0(C);
}
/*FI*/return R;
}
int rT49a_void(T49 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms289,((T67*)rT49tmp_name())->_to_string)) {
C->_last_expression=rT67to_e_void((T67*)rT49tmp_name());
R=1;
}
/*FI*/return R;
}
void rT49a_procedure_call(T49 *C){
T0* _e_current=NULL;
T0* _fn=NULL;
_fn=rT67to_feature_name((T67*)rT49tmp_name());
{T87 *n=((T87*)se_new(87));
rT87make(n,XrT65start_position(_fn),0);
_e_current=(T0 *)n;}
rT49a_r10(C,1,_e_current,_fn,rT49a_actuals(C));
}
T0* rT49a_external_name(T49 *C){
T0* R=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms335)) {
/*IF*/if (!(rT49a_manifest_string(C))) {
rT49fcp(C,(T0 *)ms336);
}
else {
R=((T74*)(C)->_last_manifest_string)->_to_string;
}
/*FI*/}
/*FI*/return R;
}
T0* rT49a_external(T49 *C){
T0* R=NULL;
T0* _external_lgg=NULL;
/*IF*/if (!(rT49a_manifest_string(C))) {
rT49fcp(C,(T0 *)ms329);
_external_lgg=((T0 *)((T206*)se_new(206)));
}
 else if (rT7is_equal(ms330,((T74*)(C)->_last_manifest_string)->_to_string)) {
_external_lgg=((T0 *)((T206*)se_new(206)));
}
 else if (rT7is_equal(ms331,((T74*)(C)->_last_manifest_string)->_to_string)) {
_external_lgg=((T0 *)((T207*)se_new(207)));
}
 else if (rT7is_equal(ms332,((T74*)(C)->_last_manifest_string)->_to_string)) {
_external_lgg=((T0 *)((T208*)se_new(208)));
}
else {
(/*UT*/(void)(T43*)oRBC27eh);
rT43append((T0 *)ms333);
(/*UT*/(void)(T43*)oRBC27eh);
rT43append(((T74*)(C)->_last_manifest_string)->_to_string);
rT49fcp(C,(T0 *)ms334);
_external_lgg=((T0 *)((T206*)se_new(206)));
}
/*FI*/R=rT134to_external_routine((T134*)oRBC49tmp_feature,_external_lgg,rT49a_external_name(C));
return R;
}
T0*oRBC49forbidden_class;
void rT49a_r10(T49 *C,int a1,T0* a2,T0* a3,T0* a4){
/*IF*/if (rT49skip1unless2(C,'\56','\56')) {
rT49a_after_a_dot(C,a1,rT49to_call(a2,a3,a4));
}
else {
/*IF*/if (a1) {
C->_last_instruction=rT49to_proc_call(C,a2,a3,a4);
C->_last_expression=NULL;
}
else {
C->_last_expression=rT49to_call(a2,a3,a4);
C->_last_instruction=NULL;
}
/*FI*/}
/*FI*/}
T0* rT49analyse_class(T49 *C,T0* a1){
T0* R=NULL;
int _old_nbw=0;
int _old_nbe=0;
/*IF*/if ((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)>(0)) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43append((T0 *)ms68);
/*(IRF3*/(/*UT*/(void)(T43*)oRBC27eh);
rT43do_print((T0 *)ms41);
rT43die_with_code(1);
/*)*/}
/*FI*//*IF*/if (/*(IRF4*/(!(/*(IRF4*/(!(/*(IRF4*/((T49*)oRBC27eiffel_parser)->_is_running/*)*/))&&(((T50*)oRBC27small_eiffel)->_is_doing_eval_flag)/*)*/))&&(((T50*)oRBC27small_eiffel)->_is_compiling_flag)/*)*/) {
rT41put_integer((T41*)oRBC1std_output,(/*(IRF4*/((/*UT*/(void)(T50*)oRBC27small_eiffel),
((T52*)oRBC50base_class_dictionary)->_count/*)*/))+(1));
rT41put_character((T41*)oRBC1std_output,'\11');
rT41put_string((T41*)oRBC1std_output,a1);
rT41put_character((T41*)oRBC1std_output,'\12');
}
/*FI*/_old_nbe=/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/;
_old_nbw=/*(IRF4*/((T43*)oRBC27eh)->_nb_warnings/*)*/;
C->_is_running=1;
C->_function_type=NULL;
C->_in_ensure=0;
C->_last_comments=NULL;
rT58read((T58*)oRBC49text,a1);
C->_line=1;
C->_column=1;
C->_current_line=((/*UT*/(void)(T58*)oRBC49text),
rT58item((C)->_line));
/*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
C->_cc='\12';
}
else {
C->_cc=rT7first((T7*)(C)->_current_line);
}
/*FI*/{T48 *n=((T48*)se_new(48));
rT48make(n,a1);
C->_last_base_class=(T0 *)n;}
rT49skip_comments(C);
rT49a_class_declaration(C);
C->_is_running=0;
R=(C)->_last_base_class;
/*IF*/if (((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)-(_old_nbe))>(0)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms404);
rT37put_integer((T37*)oRBC1std_error,/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms405);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms406);
rT37put_string((T37*)oRBC1std_error,a1);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms407);
R=NULL;
}
 else if (((/*(IRF4*/((T43*)oRBC27eh)->_nb_warnings/*)*/)-(_old_nbw))>(0)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms408);
rT37put_integer((T37*)oRBC1std_error,/*(IRF4*/((T43*)oRBC27eh)->_nb_warnings/*)*/);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms409);
}
/*FI*//*IF*/if (((int)R)) {
rT50add_class((T50*)oRBC27small_eiffel,R);
rT48get_started((T48*)R);
}
/*FI*/return R;
}
T0* rT49a_routine_body(T49 *C){
T0* R=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms327)) {
rT48set_is_deferred((T48*)(C)->_last_base_class);
R=rT134to_deferred_routine((T134*)oRBC49tmp_feature);
}
 else if (rT49a_keyword(C,(T0 *)ms328)) {
R=rT49a_external(C);
}
 else if (rT49a_keyword(C,(T0 *)ms337)) {
/*(IRF3*/(((T134*)oRBC49tmp_feature)->_routine_body)=(rT49a_compound1(C,(T0 *)ms389));
/*)*/R=rT134to_procedure_or_function((T134*)oRBC49tmp_feature);
}
 else if (rT49a_keyword(C,(T0 *)ms390)) {
/*(IRF3*/(((T134*)oRBC49tmp_feature)->_routine_body)=(rT49a_compound1(C,(T0 *)ms391));
/*)*/R=rT134to_once_routine((T134*)oRBC49tmp_feature);
}
else {
rT49fcp(C,(T0 *)ms392);
}
/*FI*/return R;
}
T0* rT49a_routine(T49 *C){
T0* R=NULL;
T0* _ea=NULL;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms273)) {
/*IF*/if (rT49a_manifest_string(C)) {
/*(IRF3*/(((T134*)oRBC49tmp_feature)->_obsolete_mark)=((C)->_last_manifest_string);
/*)*/}
else {
rT49fcp(C,(T0 *)ms274);
}
/*FI*/}
/*FI*//*(IRF3*/(((T134*)oRBC49tmp_feature)->_header_comment)=(rT49get_comments(C));
/*)*//*IF*/if (rT49a_keyword(C,(T0 *)ms275)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_keyword(C,(T0 *)ms99)) {
_hc=rT49get_comments(C);
rT134set_require_else((T134*)oRBC49tmp_feature,_sp,_hc,rT49a_assertion(C));
}
else {
_hc=rT49get_comments(C);
rT134set_require((T134*)oRBC49tmp_feature,_sp,_hc,rT49a_assertion(C));
}
/*FI*/}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms321)) {
rT49a_local_var_list(C,rT49pos((C)->_start_line,(C)->_start_column));
}
/*FI*/R=rT49a_routine_body(C);
/*IF*/if (rT49a_keyword(C,(T0 *)ms393)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
C->_in_ensure=1;
/*IF*/if (rT49a_keyword(C,(T0 *)ms96)) {
_hc=rT49get_comments(C);
_al=rT49a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T155 *n=((T155*)se_new(155));
rT155make(n,_sp,_hc,_al);
_ea=(T0 *)n;}
/*(IRF3*/(((T155*)_ea)->_is_ensure_then)=(1);
/*)*/}
/*FI*/XrT154set_ensure_assertion(R,_ea);
}
else {
_hc=rT49get_comments(C);
_al=rT49a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T155 *n=((T155*)se_new(155));
rT155make(n,_sp,_hc,_al);
_ea=(T0 *)n;}
}
/*FI*/XrT154set_ensure_assertion(R,_ea);
}
/*FI*/C->_in_ensure=0;
}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms394)) {
C->_in_rescue=1;
XrT154set_rescue_compound(R,rT49a_compound2(C,(T0 *)ms396,(T0 *)ms113));
C->_in_rescue=0;
}
else {
/*IF*/if (!(rT49a_keyword(C,(T0 *)ms113))) {
rT49wcp(C,(T0 *)ms397);
}
/*FI*/}
/*FI*/C->_local_vars=NULL;
return R;
}
T0*oRBC49tmp_feature;
void rT49skip_comments(T49 *C){
int _state=0;
T0* _sp=NULL;
while (!((_state)==(2))) {
{int iv1=_state;
if (0 == iv1) goto l119;
goto l120;
 l119: ;
{int iv2=(C)->_cc;
if ((9<=iv2)&&(iv2<=10)) goto l122;
if (32 == iv2) goto l122;
goto l123;
 l122: ;
rT49next_char(C);
goto l121;
 l123: ;
if (45 == iv2) goto l124;
goto l125;
 l124: ;
rT49next_char(C);
_state=1;
goto l121;
 l125: ;
_state=2;
 l121: ;
}
goto l118;
 l120: ;
if (1 == iv1) goto l126;
goto l127;
 l126: ;
{int iv2=(C)->_cc;
if (45 == iv2) goto l129;
goto l130;
 l129: ;
/*IF*/if (!((C)->_last_comments)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_line,((C)->_column)-(1));
_sp=(T0 *)n;}
}
/*FI*/rT49next_char(C);
/*(IRF3*/(((T7*)oRBC49lcs)->_count)=(0);
/*)*/while (!(((C)->_cc)==('\12'))) {
rT7extend((T7*)oRBC49lcs,(C)->_cc);
rT49next_char(C);
}
/*IF*/if (!((C)->_last_comments)) {
{T57 *n=((T57*)se_new(57));
rT57make(n,_sp,ma(34,0,1,rT7twin((T7*)oRBC49lcs)));
C->_last_comments=(T0 *)n;}
}
else {
rT57add_last((T57*)(C)->_last_comments,rT7twin((T7*)oRBC49lcs));
}
/*FI*/_state=0;
goto l128;
 l130: ;
rT49prev_char(C);
_state=2;
 l128: ;
}
goto l118;
 l127: ;
 l118: ;
}
}
}
int rT49a_strip(T49 *C){
int R=0;
T0* _sp=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms284)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49skip1(C,'\50')) {
C->_ok=rT49a_feature_list(C);
{T168 *n=((T168*)se_new(168));
rT168make(n,_sp,(C)->_last_feature_list);
C->_last_expression=(T0 *)n;}/*IF*/if (!(rT49skip1(C,'\51'))) {
rT49fcp(C,(T0 *)ms285);
}
/*FI*/R=1;
}
else {
rT49fcp(C,(T0 *)ms286);
}
/*FI*/}
/*FI*/return R;
}
void rT49prev_char(T49 *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=((/*UT*/(void)(T58*)oRBC49text),
rT58item((C)->_line));
C->_column=(((T7*)(C)->_current_line)->_count)+(1);
C->_cc='\12';
}
else {
C->_column=0;
C->_cc='\0';
}
/*FI*/}
/*FI*/}
int rT49a_type(T49 *C){
int R=0;
T0* _argument_name=NULL;
T0* _sp=NULL;
R=1;
/*IF*/if (rT49a_keyword(C,(T0 *)ms196)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_identifier(C)) {
/*IF*/if (rT49a_current(C)) {
{T88 *n=((T88*)se_new(88));
rT88make(n,_sp,(C)->_last_expression);
C->_last_type=(T0 *)n;}}
 else if (rT49a_argument(C)) {
_argument_name=(C)->_last_expression;
if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
case 86: 
break;
default:
_argument_name = NULL;
};{T96 *n=((T96*)se_new(96));
rT96make(n,_sp,_argument_name);
C->_last_type=(T0 *)n;}}
else {
{T97 *n=((T97*)se_new(97));
rT97make(n,_sp,rT67to_feature_name((T67*)rT49tmp_name()));
C->_last_type=(T0 *)n;}}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms200);
}
/*FI*/}
 else if (rT49a_keyword(C,(T0 *)ms115)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_class_type(C)) {
{T98 *n=((T98*)se_new(98));
rT98make(n,_sp,(C)->_last_class_type);
C->_last_type=(T0 *)n;}}
else {
rT49fcp(C,(T0 *)ms202);
}
/*FI*/}
 else if (rT49a_keyword(C,(T0 *)ms193)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_integer(C)) {
{T99 *n=((T99*)se_new(99));
rT99make(n,_sp,(C)->_last_integer_constant);
C->_last_type=(T0 *)n;}}
 else if (rT49a_identifier(C)) {
{T101 *n=((T101*)se_new(101));
rT101make(n,_sp,rT67to_feature_name((T67*)rT49tmp_name()));
C->_last_type=(T0 *)n;}}
else {
rT49fcp(C,(T0 *)ms203);
}
/*FI*/}
 else if (rT49a_type_formal_generic(C)) {
C->_last_type=(C)->_last_type_formal_generic;
}
 else if (rT49a_class_type(C)) {
C->_last_type=(C)->_last_class_type;
}
else {
R=0;
}
/*FI*/return R;
}
int rT49a_type_formal_generic(T49 *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)>(rT83count((T83*)(C)->_formal_generic_list))))) {
_fga=rT83item((T83*)(C)->_formal_generic_list,_rank);
/*IF*/if (rT49a_keyword(C,((T46*)((T82*)_fga)->_name)->_to_string)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,((T46*)((T82*)_fga)->_name)->_to_string,rT49pos((C)->_start_line,(C)->_start_column));
_cn=(T0 *)n;}
{T102 *n=((T102*)se_new(102));
rT102make(n,_cn,_rank);
C->_last_type_formal_generic=(T0 *)n;}
R=1;
}
/*FI*/_rank=(_rank)+(1);
}
}
/*FI*/return R;
}
void rT49next_char(T49 *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)==(((T58*)oRBC49text)->_count)) {
C->_cc='\0';
}
else {
C->_column=1;
C->_line=((C)->_line)+(1);
C->_current_line=((/*UT*/(void)(T58*)oRBC49text),
rT58item((C)->_line));
/*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
C->_cc='\12';
}
else {
C->_cc=rT7first((T7*)(C)->_current_line);
}
/*FI*/}
/*FI*/}
int ofBC49tmp_name=0;
T0*oRBC49tmp_name;
T0* rT49tmp_name(/*C*/void){
if (ofBC49tmp_name==0){
T0* R=NULL;
ofBC49tmp_name=1;
{T67 *n=((T67*)se_new(67));
rT67make(n,0,0);
R=(T0 *)n;}
oRBC49tmp_name=R;}
return oRBC49tmp_name;}
int ofBC49tmp_operator=0;
T0*oRBC49tmp_operator;
T0* rT49tmp_operator(/*C*/void){
if (ofBC49tmp_operator==0){
T0* R=NULL;
ofBC49tmp_operator=1;
{T67 *n=((T67*)se_new(67));
rT67make(n,0,0);
R=(T0 *)n;}
oRBC49tmp_operator=R;}
return oRBC49tmp_operator;}
T0* rT49current_position(T49 *C){
T0* R=NULL;
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_line,(C)->_column);
R=(T0 *)n;}
return R;
}
void rT49warning(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(a1);
rT43warning((T43*)oRBC27eh,a2);
}
T0* rT49current_class_name(T49 *C){
T0* R=NULL;
R=((T48*)(C)->_last_base_class)->_base_class_name;
return R;
}
T0* rT49to_proc_call(T49 *C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if (!(a2)) {
rT49fcp(C,(T0 *)ms294);
}
 else if (!(a3)) {
{T177 *n=((T177*)se_new(177));
rT177make(n,a1,a2);
R=(T0 *)n;}}
 else if ((rT169count((T169*)a3))==(1)) {
{T178 *n=((T178*)se_new(178));
rT178make(n,a1,a2,a3);
R=(T0 *)n;}}
else {
{T179 *n=((T179*)se_new(179));
rT179make(n,a1,a2,a3);
R=(T0 *)n;}}
/*FI*/return R;
}
void rT49error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(a1);
rT43error((T43*)oRBC27eh,a2);
}
void rT49ecp(T49 *C,T0* a1){
rT49error(rT49current_position(C),a1);
}
void rT49fcp(T49 *C,T0* a1){
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(rT49current_position(C));
rT49fatal_error(a1);
}
T0*oRBC49lcs;
T0*oRBC49text;
void rT49wcp(T49 *C,T0* a1){
rT49warning(rT49current_position(C),a1);
}
T0* rT49pos(/*C*/int a1,int a2){
T0* R=NULL;
{T44 *n=((T44*)se_new(44));
rT44make(n,a1,a2);
R=(T0 *)n;}
return R;
}
int rT49a_e0(T49 *C){
int R=0;
R=rT49a_e1(C);
rT49a_r1(C,(C)->_last_expression);
return R;
}
int rT49a_e1(T49 *C){
int R=0;
R=rT49a_e2(C);
rT49a_r2(C,(C)->_last_expression);
return R;
}
int rT49a_e2(T49 *C){
int R=0;
R=rT49a_e3(C);
rT49a_r3(C,(C)->_last_expression);
return R;
}
int rT49a_e3(T49 *C){
int R=0;
R=rT49a_e4(C);
rT49a_r4(C,(C)->_last_expression);
return R;
}
int rT49a_e4(T49 *C){
int R=0;
R=rT49a_e5(C);
rT49a_r5(C,(C)->_last_expression);
return R;
}
int rT49a_e5(T49 *C){
int R=0;
R=rT49a_e6(C);
rT49a_r6(C,(C)->_last_expression);
return R;
}
int rT49a_e6(T49 *C){
int R=0;
R=rT49a_e7(C);
rT49a_r7(C,(C)->_last_expression);
return R;
}
int rT49a_e7(T49 *C){
int R=0;
R=rT49a_e8(C);
rT49a_r8(C,(C)->_last_expression);
return R;
}
int rT49a_e8(T49 *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 (rT49a_keyword(C,(T0 *)ms76)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e8(C)) {
{T159 *n=((T159*)se_new(159));
rT159make(n,_sp,(C)->_last_expression);
_prefix_not=(T0 *)n;}
C->_last_expression=_prefix_not;
R=1;
}
else {
rT49err_exp(_sp,(T0 *)ms76);
}
/*FI*/}
 else if (rT49skip1(C,'\53')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e8(C)) {
{T164 *n=((T164*)se_new(164));
rT164make(n,_sp,(C)->_last_expression);
_prefix_plus=(T0 *)n;}
C->_last_expression=_prefix_plus;
R=1;
}
else {
rT49err_exp(_sp,(T0 *)ms279);
}
/*FI*/}
 else if (rT49skip1(C,'\55')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e8(C)) {
{T165 *n=((T165*)se_new(165));
rT165make(n,_sp,(C)->_last_expression);
_prefix_moins=(T0 *)n;}
C->_last_expression=_prefix_moins;
R=1;
}
else {
rT49err_exp(_sp,(T0 *)ms280);
}
/*FI*/}
 else if (rT49a_free_operator(C)) {
_op=rT67to_prefix_name((T67*)rT49tmp_operator());
/*IF*/if (rT49a_e8(C)) {
{T166 *n=((T166*)se_new(166));
rT166make(n,(C)->_last_expression,_op);
_prefix_freeop=(T0 *)n;}
C->_last_expression=_prefix_freeop;
R=1;
}
else {
(/*UT*/(void)(T43*)oRBC27eh);
rT43append((T0 *)ms281);
rT49err_exp(((T64*)_op)->_start_position,((T64*)_op)->_to_string);
}
/*FI*/}
else {
R=rT49a_e9(C);
}
/*FI*/return R;
}
int rT49a_e9(T49 *C){
int R=0;
T0* _e_old=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms282)) {
/*IF*/if (!((C)->_in_ensure)) {
rT49error(rT49pos((C)->_start_line,(C)->_start_column),(T0 *)ms283);
}
/*FI*//*IF*/if (rT49a_e10(C)) {
{T167 *n=((T167*)se_new(167));
/*(IRF3*/((n)->_expression)=((C)->_last_expression);
/*)*/_e_old=(T0 *)n;}
C->_last_expression=_e_old;
R=1;
}
else {
rT49fcp(C,(T0 *)ms298);
}
/*FI*/}
else {
R=rT49a_e10(C);
}
/*FI*/return R;
}
void rT49a_r1(T49 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_implies=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms94)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e1(C)) {
{T201 *n=((T201*)se_new(201));
rT201make(n,a1,_sp,(C)->_last_expression);
_infix_implies=(T0 *)n;}
rT49a_r1(C,_infix_implies);
}
else {
rT49error(_sp,(T0 *)ms320);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
void rT49a_r2(T49 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_xor=NULL;
T0* _infix_or=NULL;
T0* _infix_or_else=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms98)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_keyword(C,(T0 *)ms99)) {
/*IF*/if (rT49a_e2(C)) {
{T198 *n=((T198*)se_new(198));
rT198make(n,a1,_sp,(C)->_last_expression);
_infix_or_else=(T0 *)n;}
rT49a_r2(C,_infix_or_else);
}
else {
rT49err_exp(_sp,(T0 *)ms100);
}
/*FI*/}
else {
/*IF*/if (rT49a_e2(C)) {
{T199 *n=((T199*)se_new(199));
rT199make(n,a1,_sp,(C)->_last_expression);
_infix_or=(T0 *)n;}
rT49a_r2(C,_infix_or);
}
else {
rT49err_exp(_sp,(T0 *)ms98);
}
/*FI*/}
/*FI*/}
 else if (rT49a_keyword(C,(T0 *)ms93)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e2(C)) {
{T200 *n=((T200*)se_new(200));
rT200make(n,a1,_sp,(C)->_last_expression);
_infix_xor=(T0 *)n;}
rT49a_r2(C,_infix_xor);
}
else {
rT49err_exp(_sp,(T0 *)ms93);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
void rT49a_r3(T49 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_and=NULL;
T0* _infix_and_then=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms95)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_keyword(C,(T0 *)ms96)) {
/*IF*/if (rT49a_e3(C)) {
{T196 *n=((T196*)se_new(196));
rT196make(n,a1,_sp,(C)->_last_expression);
_infix_and_then=(T0 *)n;}
rT49a_r3(C,_infix_and_then);
}
else {
rT49err_exp(_sp,(T0 *)ms97);
}
/*FI*/}
else {
/*IF*/if (rT49a_e3(C)) {
{T197 *n=((T197*)se_new(197));
rT197make(n,a1,_sp,(C)->_last_expression);
_infix_and=(T0 *)n;}
rT49a_r3(C,_infix_and);
}
else {
rT49err_exp(_sp,(T0 *)ms95);
}
/*FI*/}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
void rT49a_r4(T49 *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 (rT49skip1(C,'\75')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e4(C)) {
{T190 *n=((T190*)se_new(190));
rT190make(n,a1,_sp,(C)->_last_expression);
_infix_equal=(T0 *)n;}
rT49a_r4(C,_infix_equal);
}
else {
rT49err_exp(_sp,(T0 *)ms309);
}
/*FI*/}
 else if (rT49skip2(C,'\57','\75')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e4(C)) {
{T191 *n=((T191*)se_new(191));
rT191make(n,a1,_sp,(C)->_last_expression);
_infix_not_equal=(T0 *)n;}
rT49a_r4(C,_infix_not_equal);
}
else {
rT49err_exp(_sp,(T0 *)ms311);
}
/*FI*/}
 else if (rT49skip2(C,'\74','\75')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e4(C)) {
{T192 *n=((T192*)se_new(192));
rT192make(n,a1,_sp,(C)->_last_expression);
_infix_le=(T0 *)n;}
rT49a_r4(C,_infix_le);
}
else {
rT49err_exp(_sp,(T0 *)ms313);
}
/*FI*/}
 else if (rT49skip2(C,'\76','\75')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e4(C)) {
{T194 *n=((T194*)se_new(194));
rT194make(n,a1,_sp,(C)->_last_expression);
_infix_ge=(T0 *)n;}
rT49a_r4(C,_infix_ge);
}
else {
rT49err_exp(_sp,(T0 *)ms315);
}
/*FI*/}
 else if (rT49skip1(C,'\74')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e4(C)) {
{T193 *n=((T193*)se_new(193));
rT193make(n,a1,_sp,(C)->_last_expression);
_infix_lt=(T0 *)n;}
rT49a_r4(C,_infix_lt);
}
else {
rT49err_exp(_sp,(T0 *)ms317);
}
/*FI*/}
 else if (rT49skip1unless2(C,'\76','\76')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e4(C)) {
{T195 *n=((T195*)se_new(195));
rT195make(n,a1,_sp,(C)->_last_expression);
_infix_gt=(T0 *)n;}
rT49a_r4(C,_infix_gt);
}
else {
rT49err_exp(_sp,(T0 *)ms319);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
void rT49a_r5(T49 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_minus=NULL;
T0* _infix_plus=NULL;
/*IF*/if (rT49skip1(C,'\53')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e5(C)) {
{T188 *n=((T188*)se_new(188));
rT188make(n,a1,_sp,(C)->_last_expression);
_infix_plus=(T0 *)n;}
rT49a_r5(C,_infix_plus);
}
else {
rT49err_exp(_sp,(T0 *)ms78);
}
/*FI*/}
 else if (rT49skip1(C,'\55')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e5(C)) {
{T189 *n=((T189*)se_new(189));
rT189make(n,a1,_sp,(C)->_last_expression);
_infix_minus=(T0 *)n;}
rT49a_r5(C,_infix_minus);
}
else {
rT49err_exp(_sp,(T0 *)ms79);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
void rT49a_r6(T49 *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 (rT49skip1(C,'\52')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e6(C)) {
{T184 *n=((T184*)se_new(184));
rT184make(n,a1,_sp,(C)->_last_expression);
_infix_times=(T0 *)n;}
rT49a_r6(C,_infix_times);
}
else {
rT49err_exp(_sp,(T0 *)ms303);
}
/*FI*/}
 else if (rT49skip2(C,'\57','\57')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e6(C)) {
{T185 *n=((T185*)se_new(185));
rT185make(n,a1,_sp,(C)->_last_expression);
_infix_int_div=(T0 *)n;}
rT49a_r6(C,_infix_int_div);
}
else {
rT49err_exp(_sp,(T0 *)ms305);
}
/*FI*/}
 else if (rT49skip2(C,'\134','\134')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e6(C)) {
{T186 *n=((T186*)se_new(186));
rT186make(n,a1,_sp,(C)->_last_expression);
_infix_int_rem=(T0 *)n;}
rT49a_r6(C,_infix_int_rem);
}
else {
rT49err_exp(_sp,(T0 *)ms307);
}
/*FI*/}
 else if (rT49skip1unless2(C,'\57','\75')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e6(C)) {
{T187 *n=((T187*)se_new(187));
rT187make(n,a1,_sp,(C)->_last_expression);
_infix_div=(T0 *)n;}
rT49a_r6(C,_infix_div);
}
else {
rT49err_exp(_sp,(T0 *)ms89);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int rT49skip1unless2(T49 *C,char a1,char a2){
int R=0;
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
/*IF*/if (((C)->_cc)==(a1)) {
rT49next_char(C);
/*IF*/if (((C)->_cc)==(a2)) {
rT49prev_char(C);
}
else {
R=1;
rT49skip_comments(C);
}
/*FI*/}
/*FI*/return R;
}
int rT49skip1(T49 *C,char a1){
int R=0;
/*IF*/if ((a1)==((C)->_cc)) {
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
R=1;
rT49next_char(C);
rT49skip_comments(C);
}
/*FI*/return R;
}
void rT49a_r7(T49 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_power=NULL;
/*IF*/if (rT49skip1(C,'\136')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49a_e7(C)) {
{T183 *n=((T183*)se_new(183));
rT183make(n,a1,_sp,(C)->_last_expression);
_infix_power=(T0 *)n;}
rT49a_r7(C,_infix_power);
}
else {
rT49err_exp(_sp,(T0 *)ms301);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int rT49skip2(T49 *C,char a1,char a2){
int R=0;
/*IF*/if ((a1)==((C)->_cc)) {
C->_start_line=(C)->_line;
C->_start_column=(C)->_column;
rT49next_char(C);
/*IF*/if ((a2)==((C)->_cc)) {
R=1;
rT49next_char(C);
rT49skip_comments(C);
}
else {
rT49prev_char(C);
}
/*FI*/}
/*FI*/return R;
}
void rT49a_r8(T49 *C,T0* a1){
T0* _infix_freeop=NULL;
T0* _infix_name=NULL;
/*IF*/if (rT49a_free_operator(C)) {
_infix_name=rT67to_infix_name_use((T67*)rT49tmp_operator());
/*IF*/if (rT49a_e8(C)) {
{T181 *n=((T181*)se_new(181));
rT181make(n,a1,_infix_name,(C)->_last_expression);
_infix_freeop=(T0 *)n;}
rT49a_r8(C,_infix_freeop);
}
else {
rT49err_exp(((T68*)_infix_name)->_start_position,((T68*)_infix_name)->_to_string);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int rT49a_debug(T49 *C){
int R=0;
T0* _e_debug=NULL;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms340)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT49skip1(C,'\50')) {
while (!(!(rT49a_manifest_string(C)))) {
/*IF*/if (!(_list)) {
_list=ma(149,0,1,(C)->_last_manifest_string);
}
else {
rT149add_last((T149*)_list,(C)->_last_manifest_string);
}
/*FI*/C->_ok=rT49skip1(C,'\54');
}
/*IF*/if (!(_list)) {
rT49wcp(C,(T0 *)ms341);
}
/*FI*//*IF*/if (!(rT49skip1(C,'\51'))) {
rT49fcp(C,(T0 *)ms342);
}
/*FI*/}
/*FI*/R=1;
{T214 *n=((T214*)se_new(214));
rT214make(n,_sp,_list,rT49a_compound2(C,(T0 *)ms346,(T0 *)ms113));
_e_debug=(T0 *)n;}
C->_last_instruction=_e_debug;
}
/*FI*/return R;
}
int rT49a_feature_declaration(T49 *C){
int R=0;
rT134initialize((T134*)oRBC49tmp_feature);
/*IF*/if (rT49a_keyword(C,(T0 *)ms246)) {
/*IF*/if (rT49a_feature_name(C)) {
R=1;
XrT65set_is_frozen((C)->_last_feature_name,1);
(/*UT*/(void)(T134*)oRBC49tmp_feature);
rT134add_synonym((C)->_last_feature_name);
}
else {
rT49fcp(C,(T0 *)ms232);
}
/*FI*/}
 else if (rT49a_feature_name(C)) {
R=1;
(/*UT*/(void)(T134*)oRBC49tmp_feature);
rT134add_synonym((C)->_last_feature_name);
}
/*FI*/while (!(!(rT49skip1(C,'\54')))) {
/*IF*/if (rT49a_keyword(C,(T0 *)ms247)) {
/*IF*/if (rT49a_feature_name(C)) {
XrT65set_is_frozen((C)->_last_feature_name,1);
(/*UT*/(void)(T134*)oRBC49tmp_feature);
rT134add_synonym((C)->_last_feature_name);
}
else {
rT49fcp(C,(T0 *)ms248);
}
/*FI*/}
 else if (rT49a_feature_name(C)) {
(/*UT*/(void)(T134*)oRBC49tmp_feature);
rT134add_synonym((C)->_last_feature_name);
}
else {
rT49ecp(C,(T0 *)ms249);
}
/*FI*/}
/*IF*/if (R) {
rT49a_formal_arg_list(C);
C->_function_type=NULL;
/*IF*/if (rT49skip1(C,'\72')) {
/*IF*/if (!(rT49a_type(C))) {
rT49fcp(C,(T0 *)ms255);
}
else {
C->_function_type=(C)->_last_type;
/*(IRF3*/(((T134*)oRBC49tmp_feature)->_type)=((C)->_last_type);
/*)*/}
/*FI*/}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms256)) {
/*IF*/if (rT49a_keyword(C,(T0 *)ms257)) {
C->_last_feature_declaration=rT134to_cst_att_unique((T134*)oRBC49tmp_feature);
}
 else if (rT49a_boolean_constant(C)) {
C->_last_feature_declaration=rT134to_cst_att_boolean((T134*)oRBC49tmp_feature,(C)->_last_boolean_constant);
}
 else if (rT49a_character_constant(C)) {
C->_last_feature_declaration=rT134to_cst_att_character((T134*)oRBC49tmp_feature,(C)->_last_character_constant);
}
 else if (rT49a_manifest_string(C)) {
C->_last_feature_declaration=rT134to_cst_att_string((T134*)oRBC49tmp_feature,(C)->_last_manifest_string);
}
 else if (rT49a_bit_constant(C)) {
C->_last_feature_declaration=rT134to_cst_att_bit((T134*)oRBC49tmp_feature,(C)->_last_bit_constant);
}
 else if (rT49a_real_constant(C)) {
C->_last_feature_declaration=rT134to_cst_att_real((T134*)oRBC49tmp_feature,(C)->_last_real_constant);
}
 else if (rT49a_integer_constant(C)) {
C->_last_feature_declaration=rT134to_cst_att_integer((T134*)oRBC49tmp_feature,(C)->_last_integer_constant);
}
else {
C->_last_feature_declaration=rT49a_routine(C);
}
/*FI*/}
else {
C->_last_feature_declaration=rT134to_writable_attribute((T134*)oRBC49tmp_feature);
}
/*FI*/C->_function_type=NULL;
C->_arguments=NULL;
}
/*FI*/return R;
}
void rT49a_feature_clause(T49 *C){
T0* _aof=NULL;
T0* _comment=NULL;
T0* _clients=NULL;
T0* _feature_clause=NULL;
_clients=rT49a_clients(C);
_comment=rT49get_comments(C);
while (!(!(rT49a_feature_declaration(C)))) {
C->_ok=rT49skip1(C,'\73');
/*IF*/if (((int)(C)->_last_feature_declaration)) {
/*IF*/if (!(_aof)) {
_aof=ma(61,0,1,(C)->_last_feature_declaration);
}
else {
rT61add_last((T61*)_aof,(C)->_last_feature_declaration);
}
/*FI*/XrT60set_header_comment((C)->_last_feature_declaration,rT49get_comments(C));
}
/*FI*/}
/*IF*/if ((((int)_aof))||(((int)_comment))) {
{T133 *n=((T133*)se_new(133));
rT133make(n,_clients,_comment,_aof);
_feature_clause=(T0 *)n;}
rT48add_feature_clause((T48*)(C)->_last_base_class,_feature_clause);
}
/*FI*/}
int rT49a_feature_list(T49 *C){
int R=0;
int _state=0;
C->_last_feature_list=NULL;
while (!((_state)>=(3))) {
{int iv1=_state;
if (0 == iv1) goto l132;
goto l133;
 l132: ;
/*IF*/if (rT49a_feature_name(C)) {
C->_last_feature_list=ma(127,0,1,(C)->_last_feature_name);
R=1;
_state=1;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms226);
C->_ok=rT49skip1(C,'\54');
}
else {
_state=3;
}
/*FI*/goto l131;
 l133: ;
if (1 == iv1) goto l134;
goto l135;
 l134: ;
/*IF*/if (((C)->_cc)==('\54')) {
C->_ok=rT49skip1(C,'\54');
_state=2;
}
 else if (rT49a_feature_name(C)) {
rT49warning(XrT65start_position((C)->_last_feature_name),(T0 *)ms209);
rT127add_last((T127*)(C)->_last_feature_list,(C)->_last_feature_name);
}
else {
_state=3;
}
/*FI*/goto l131;
 l135: ;
if (2 == iv1) goto l136;
goto l137;
 l136: ;
/*IF*/if (rT49a_feature_name(C)) {
rT127add_last((T127*)(C)->_last_feature_list,(C)->_last_feature_name);
_state=1;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms206);
C->_ok=rT49skip1(C,'\54');
}
else {
rT49ecp(C,(T0 *)ms232);
_state=3;
}
/*FI*/goto l131;
 l137: ;
 l131: ;
}
}
return R;
}
int rT49a_feature_name(T49 *C){
int R=0;
/*IF*/if (rT49a_prefix(C)) {
C->_last_feature_name=(C)->_last_prefix;
R=1;
}
 else if (rT49a_infix(C)) {
C->_last_feature_name=(C)->_last_infix;
R=1;
}
 else if (rT49a_identifier(C)) {
C->_last_feature_name=rT67to_feature_name((T67*)rT49tmp_name());
R=1;
}
/*FI*/return R;
}
int rT49a_character_constant(T49 *C){
int R=0;
char _value=0;
int _printing_mode=0;
int _state=0;
T0* _sp=NULL;
/*IF*/if (((C)->_cc)==('\47')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_line,(C)->_column);
_sp=(T0 *)n;}
R=1;
while (!((_state)>(2))) {
rT49next_char(C);
{int iv1=_state;
if (0 == iv1) goto l139;
goto l140;
 l139: ;
{int iv2=(C)->_cc;
if (37 == iv2) goto l142;
goto l143;
 l142: ;
_state=1;
goto l141;
 l143: ;
if (39 == iv2) goto l144;
goto l145;
 l144: ;
rT49fcp(C,(T0 *)ms154);
_state=2;
goto l141;
 l145: ;
_value=(C)->_cc;
_printing_mode=0;
_state=2;
 l141: ;
}
goto l138;
 l140: ;
if (1 == iv1) goto l146;
goto l147;
 l146: ;
_printing_mode=1;
_state=2;
{int iv2=(C)->_cc;
if (65 == iv2) goto l149;
goto l150;
 l149: ;
_value='\100';
goto l148;
 l150: ;
if (66 == iv2) goto l151;
goto l152;
 l151: ;
_value='\10';
goto l148;
 l152: ;
if (67 == iv2) goto l153;
goto l154;
 l153: ;
_value='\136';
goto l148;
 l154: ;
if (68 == iv2) goto l155;
goto l156;
 l155: ;
_value='\44';
goto l148;
 l156: ;
if (70 == iv2) goto l157;
goto l158;
 l157: ;
_value='\14';
goto l148;
 l158: ;
if (72 == iv2) goto l159;
goto l160;
 l159: ;
_value='\134';
goto l148;
 l160: ;
if (76 == iv2) goto l161;
goto l162;
 l161: ;
_value='\176';
goto l148;
 l162: ;
if (78 == iv2) goto l163;
goto l164;
 l163: ;
_value='\12';
goto l148;
 l164: ;
if (81 == iv2) goto l165;
goto l166;
 l165: ;
_value='\140';
goto l148;
 l166: ;
if (82 == iv2) goto l167;
goto l168;
 l167: ;
_value='\15';
goto l148;
 l168: ;
if (83 == iv2) goto l169;
goto l170;
 l169: ;
_value='\43';
goto l148;
 l170: ;
if (84 == iv2) goto l171;
goto l172;
 l171: ;
_value='\11';
goto l148;
 l172: ;
if (85 == iv2) goto l173;
goto l174;
 l173: ;
_value='\0';
goto l148;
 l174: ;
if (86 == iv2) goto l175;
goto l176;
 l175: ;
_value='\174';
goto l148;
 l176: ;
if (37 == iv2) goto l177;
goto l178;
 l177: ;
_value='\45';
goto l148;
 l178: ;
if (39 == iv2) goto l179;
goto l180;
 l179: ;
_value='\47';
goto l148;
 l180: ;
if (34 == iv2) goto l181;
goto l182;
 l181: ;
_value='\42';
goto l148;
 l182: ;
if (40 == iv2) goto l183;
goto l184;
 l183: ;
_value='\133';
goto l148;
 l184: ;
if (41 == iv2) goto l185;
goto l186;
 l185: ;
_value='\135';
goto l148;
 l186: ;
if (60 == iv2) goto l187;
goto l188;
 l187: ;
_value='\173';
goto l148;
 l188: ;
if (62 == iv2) goto l189;
goto l190;
 l189: ;
_value='\175';
goto l148;
 l190: ;
if (47 == iv2) goto l191;
goto l192;
 l191: ;
rT49a_ascii_code(C);
_value=(C)->_last_ascii_code;
_printing_mode=2;
goto l148;
 l192: ;
rT49fcp(C,(T0 *)ms158);
 l148: ;
}
goto l138;
 l147: ;
_state=3;
{int iv2=(C)->_cc;
if (39 == iv2) goto l194;
goto l195;
 l194: ;
goto l193;
 l195: ;
rT49fcp(C,(T0 *)ms154);
 l193: ;
}
rT49next_char(C);
rT49skip_comments(C);
 l138: ;
}
}
{T73 *n=((T73*)se_new(73));
rT73make(n,_sp,_value,_printing_mode);
C->_last_character_constant=(T0 *)n;}
}
/*FI*/return R;
}
int rT49a_check(T49 *C){
int R=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (rT49a_keyword(C,(T0 *)ms106)) {
R=1;
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_hc=rT49get_comments(C);
_al=rT49a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T212 *n=((T212*)se_new(212));
rT212make(n,_sp,_hc,_al);
C->_last_instruction=(T0 *)n;}}
else {
rT49wcp(C,(T0 *)ms338);
}
/*FI*//*IF*/if (!(rT49a_keyword(C,(T0 *)ms113))) {
rT49fcp(C,(T0 *)ms339);
}
/*FI*/}
/*FI*/return R;
}
void rT49a_class_declaration(T49 *C){
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
rT49a_indexing(C);
/*IF*/if (rT49a_keyword(C,(T0 *)ms169)) {
rT48set_is_deferred((T48*)(C)->_last_base_class);
}
/*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms115)) {
rT48set_is_expanded((T48*)(C)->_last_base_class);
/*IF*/if (rT49a_keyword(C,(T0 *)ms171)) {
rT48set_is_deferred((T48*)(C)->_last_base_class);
}
/*FI*/}
/*FI*//*(IRF3*/(((T48*)(C)->_last_base_class)->_heading_comment1)=(rT49get_comments(C));
/*)*//*IF*/if (!(rT49a_keyword(C,(T0 *)ms172))) {
rT49fcp(C,(T0 *)ms173);
}
/*FI*//*IF*/if (rT49a_base_class_name(C)) {
rT46set_with((T46*)rT49current_class_name(C),(C)->_last_class_name);
/*IF*/if (rT34fast_has((T34*)oRBC49forbidden_class,((T46*)(C)->_last_class_name)->_to_string)) {
(/*UT*/(void)(T43*)oRBC27eh);
rT43add_position(((T46*)(C)->_last_class_name)->_start_position);
rT49fatal_error((T0 *)ms194);
}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms195);
}
/*FI*/rT49a_formal_generic_list(C);
/*IF*/if (rT49a_keyword(C,(T0 *)ms214)) {
/*IF*/if (rT49a_manifest_string(C)) {
/*(IRF3*/(((T48*)(C)->_last_base_class)->_obsolete_type_string)=((C)->_last_manifest_string);
/*)*/}
else {
rT49fcp(C,(T0 *)ms215);
}
/*FI*/}
/*FI*//*(IRF3*/(((T48*)(C)->_last_base_class)->_heading_comment2)=(rT49get_comments(C));
/*)*//*IF*/if (rT49a_keyword(C,(T0 *)ms216)) {
rT49a_parent_list(C,rT49pos((C)->_start_line,(C)->_start_column),rT49get_comments(C));
}
/*FI*/while (!(!(rT49a_keyword(C,(T0 *)ms108)))) {
rT49a_creation_clause(C);
}
while (!(!(rT49a_keyword(C,(T0 *)ms245)))) {
rT49a_feature_clause(C);
}
/*IF*/if (rT49a_keyword(C,(T0 *)ms400)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_hc=rT49get_comments(C);
_al=rT49a_assertion(C);
rT48set_invariant((T48*)(C)->_last_base_class,_sp,_hc,_al);
}
/*FI*//*(IRF3*/(((T48*)(C)->_last_base_class)->_end_comment)=(rT49get_comments(C));
/*)*//*IF*/if ((rT49a_keyword(C,(T0 *)ms113))||(((T0 *)(C)->_last_keyword)==((T0 *)(T0 *)ms113))) {
/*IF*/if (((C)->_cc)==('\73')) {
rT49wcp(C,(T0 *)ms230);
C->_ok=rT49skip1(C,'\73');
}
/*FI*//*IF*/if (((C)->_cc)!=('\0')) {
rT49fcp(C,(T0 *)ms401);
}
/*FI*//*IF*/if ((((int)(C)->_last_comments))&&((rT57count((T57*)(C)->_last_comments))>(1))) {
rT49fcp(C,(T0 *)ms402);
}
/*FI*/}
else {
rT49fcp(C,(T0 *)ms403);
}
/*FI*/}
int rT49a_class_type(T49 *C){
int R=0;
T0* _generic_list=NULL;
T0* _base_class_name=NULL;
int _state=0;
/*IF*/if (rT49a_base_type(C)) {
C->_last_class_type=(C)->_last_base_type;
R=1;
}
 else if (rT49a_base_class_name(C)) {
R=1;
_base_class_name=(C)->_last_class_name;
while (!((_state)>(2))) {
{int iv1=_state;
if (0 == iv1) goto l197;
goto l198;
 l197: ;
/*IF*/if (rT49skip1(C,'\133')) {
_state=1;
}
else {
{T114 *n=((T114*)se_new(114));
/*(IRF3*/((n)->_base_class_name)=(_base_class_name);
/*)*/C->_last_class_type=(T0 *)n;}_state=3;
}
/*FI*/goto l196;
 l198: ;
if (1 == iv1) goto l199;
goto l200;
 l199: ;
/*IF*/if (rT49a_type(C)) {
/*IF*/if (!(_generic_list)) {
_generic_list=ma(104,0,1,(C)->_last_type);
}
else {
rT104add_last((T104*)_generic_list,(C)->_last_type);
}
/*FI*/_state=2;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms206);
C->_ok=rT49skip1(C,'\54');
}
 else if (((C)->_cc)==('\135')) {
_state=2;
}
else {
rT49fcp(C,(T0 *)ms207);
_state=2;
}
/*FI*/goto l196;
 l200: ;
/*IF*/if (rT49skip1(C,'\54')) {
_state=1;
}
 else if (((C)->_cc)==('\135')) {
/*IF*/if (!(_generic_list)) {
rT49wcp(C,(T0 *)ms208);
{T114 *n=((T114*)se_new(114));
/*(IRF3*/((n)->_base_class_name)=(_base_class_name);
/*)*/C->_last_class_type=(T0 *)n;}}
else {
{T115 *n=((T115*)se_new(115));
rT115make(n,_base_class_name,_generic_list);
C->_last_class_type=(T0 *)n;}}
/*FI*/C->_ok=rT49skip1(C,'\135');
_state=3;
}
 else if (rT49a_type(C)) {
/*IF*/if (!(_generic_list)) {
_generic_list=ma(104,0,1,(C)->_last_type);
}
else {
rT104add_last((T104*)_generic_list,(C)->_last_type);
}
/*FI*/rT49warning(XrT56start_position((C)->_last_type),(T0 *)ms209);
}
else {
rT49fcp(C,(T0 *)ms210);
_state=3;
}
/*FI*/ l196: ;
}
}
}
/*FI*/return R;
}
int rT49a_identifier(T49 *C){
int R=0;
int _do_warning=0;
int _state=0;
/*IF*/if (rT3is_letter((C)->_cc)) {
rT67make((T67*)rT49tmp_name(),(C)->_line,(C)->_column);
rT67extend((T67*)rT49tmp_name(),(C)->_cc);
while (!((_state)>(0))) {
rT49next_char(C);
{int iv1=(C)->_cc;
if ((48<=iv1)&&(iv1<=57)) goto l202;
if (95 == iv1) goto l202;
if ((97<=iv1)&&(iv1<=122)) goto l202;
goto l203;
 l202: ;
rT67extend((T67*)rT49tmp_name(),(C)->_cc);
goto l201;
 l203: ;
if ((65<=iv1)&&(iv1<=90)) goto l204;
goto l205;
 l204: ;
_do_warning=1;
rT67extend((T67*)rT49tmp_name(),rT3to_lower((C)->_cc));
goto l201;
 l205: ;
_state=1;
 l201: ;
}
}
/*IF*/if (rT67isa_keyword((T67*)rT49tmp_name())) {
_state=rT67count((T67*)rT49tmp_name());
while (!((_state)==(0))) {
_state=(_state)-(1);
rT49prev_char(C);
}
}
else {
R=1;
rT49skip_comments(C);
/*IF*/if (_do_warning) {
rT49warning(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms151);
}
/*FI*/}
/*FI*/}
/*FI*/return R;
}
int rT49a_base_class_name(T49 *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*/rT67make((T67*)rT49tmp_name(),(C)->_line,(C)->_column);
rT67extend((T67*)rT49tmp_name(),(C)->_cc);
while (!((_state)>(0))) {
rT49next_char(C);
{int iv1=(C)->_cc;
if ((48<=iv1)&&(iv1<=57)) goto l207;
if ((65<=iv1)&&(iv1<=90)) goto l207;
if (95 == iv1) goto l207;
goto l208;
 l207: ;
rT67extend((T67*)rT49tmp_name(),(C)->_cc);
goto l206;
 l208: ;
if ((97<=iv1)&&(iv1<=122)) goto l209;
goto l210;
 l209: ;
_do_warning=1;
rT67extend((T67*)rT49tmp_name(),rT3to_upper((C)->_cc));
goto l206;
 l210: ;
_state=1;
 l206: ;
}
}
/*IF*/if (rT67isa_keyword((T67*)rT49tmp_name())) {
_state=rT67count((T67*)rT49tmp_name());
while (!((_state)==(0))) {
_state=(_state)-(1);
rT49prev_char(C);
}
}
else {
R=1;
rT49skip_comments(C);
/*IF*/if (_do_warning) {
rT49warning(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms174);
}
/*FI*/C->_last_class_name=rT67to_class_name((T67*)rT49tmp_name());
}
/*FI*/}
/*FI*/return R;
}
int rT49a_base_type(T49 *C){
int R=0;
T0* _sp=NULL;
R=1;
/*IF*/if (rT49a_keyword(C,(T0 *)ms175)) {
{T85 *n=((T85*)se_new(85));
rT85make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms180)) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (((rT49skip1(C,'\133'))&&(rT49a_type(C)))&&(rT49skip1(C,'\135'))) {
{T103 *n=((T103*)se_new(103));
rT103make(n,_sp,(C)->_last_type);
C->_last_base_type=(T0 *)n;}}
else {
rT49fcp(C,(T0 *)ms205);
}
/*FI*/}
 else if (rT49a_keyword(C,(T0 *)ms182)) {
{T105 *n=((T105*)se_new(105));
rT105make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms184)) {
{T107 *n=((T107*)se_new(107));
rT107make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms191)) {
{T108 *n=((T108*)se_new(108));
rT108make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms187)) {
{T109 *n=((T109*)se_new(109));
rT109make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms177)) {
{T110 *n=((T110*)se_new(110));
rT110make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms178)) {
{T111 *n=((T111*)se_new(111));
rT111make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms189)) {
{T112 *n=((T112*)se_new(112));
rT112make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
 else if (rT49a_keyword(C,(T0 *)ms181)) {
{T113 *n=((T113*)se_new(113));
rT113make(n,rT49pos((C)->_start_line,(C)->_start_column));
C->_last_base_type=(T0 *)n;}}
else {
R=0;
}
/*FI*/return R;
}
void rT49a_ascii_code(T49 *C){
int _counter=0;
rT49next_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 l212;
goto l213;
 l212: ;
C->_last_ascii_code=(((C)->_last_ascii_code)*(10))+(rT3value((C)->_cc));
goto l211;
 l213: ;
rT49fcp(C,(T0 *)ms155);
 l211: ;
}
_counter=(_counter)+(1);
rT49next_char(C);
}
/*IF*/if ((_counter)==(0)) {
rT49fcp(C,(T0 *)ms156);
}
 else if ((_counter)>(3)) {
rT49fcp(C,(T0 *)ms157);
}
else {
}
/*FI*/}
int rT49a_actual(T49 *C){
int R=0;
/*IF*/if (rT49skip1(C,'\44')) {
/*IF*/if (rT49a_identifier(C)) {
{T172 *n=((T172*)se_new(172));
/*(IRF3*/((n)->_feature_name)=(rT67to_feature_name((T67*)rT49tmp_name()));
/*)*/C->_last_expression=(T0 *)n;}R=1;
}
else {
rT49fcp(C,(T0 *)ms232);
}
/*FI*/}
 else if (rT49a_expression(C)) {
R=1;
}
/*FI*/return R;
}
T0* rT49a_actuals(T49 *C){
T0* R=NULL;
T0* _args=NULL;
/*IF*/if (rT49skip1(C,'\50')) {
while (!(!(rT49a_actual(C)))) {
/*IF*/if (!(_args)) {
_args=ma(79,0,1,(C)->_last_expression);
}
else {
XrT79add_last(_args,(C)->_last_expression);
}
/*FI*/C->_ok=rT49skip1(C,'\54');
}
/*IF*/if (!(_args)) {
rT49wcp(C,(T0 *)ms291);
}
else {
{T169 *n=((T169*)se_new(169));
/*(IRF3*/((n)->_list)=(_args);
/*)*/R=(T0 *)n;}
}
/*FI*//*IF*/if (!(rT49skip1(C,'\51'))) {
rT49fcp(C,(T0 *)ms292);
}
/*FI*/}
/*FI*/return R;
}
T0* rT49a_clients(T49 *C){
T0* R=NULL;
int _state=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT49skip1(C,'\173')) {
{T44 *n=((T44*)se_new(44));
rT44make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l215;
goto l216;
 l215: ;
/*IF*/if (rT49a_base_class_name(C)) {
_list=ma(123,0,1,(C)->_last_class_name);
_state=2;
}
 else if (rT49skip1(C,'\175')) {
_state=4;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms226);
C->_ok=rT49skip1(C,'\54');
}
else {
_state=3;
}
/*FI*/goto l214;
 l216: ;
if (1 == iv1) goto l217;
goto l218;
 l217: ;
/*IF*/if (rT49a_base_class_name(C)) {
rT123add_last((T123*)_list,(C)->_last_class_name);
_state=2;
}
 else if (((C)->_cc)==('\54')) {
rT49wcp(C,(T0 *)ms226);
C->_ok=rT49skip1(C,'\54');
}
 else if (((C)->_cc)==('\175')) {
rT49wcp(C,(T0 *)ms227);
C->_ok=rT49skip1(C,'\175');
_state=4;
}
else {
_state=3;
}
/*FI*/goto l214;
 l218: ;
if (2 == iv1) goto l219;
goto l220;
 l219: ;
/*IF*/if (rT49skip1(C,'\54')) {
_state=1;
}
 else if (rT49skip1(C,'\175')) {
_state=4;
}
 else if (rT49a_base_class_name(C)) {
rT49warning(((T46*)(C)->_last_class_name)->_start_position,(T0 *)ms209);
rT123add_last((T123*)_list,(C)->_last_class_name);
}
else {
_state=3;
}
/*FI*/goto l214;
 l220: ;
rT49fcp(C,(T0 *)ms228);
_state=4;
 l214: ;
}
}
{T121 *n=((T121*)se_new(121));
rT121make(n,_sp,_list);
R=(T0 *)n;}
}
else {
{T121 *n=((T121*)se_new(121));
/*(IRF3*//*)*/R=(T0 *)n;}
}
/*FI*/return R;
}
void rT49go_back(T49 *C,T0* a1){
rT49go_back_at(C,((T44*)a1)->_line,((T44*)a1)->_column);
}
int rT49a_real_constant(T49 *C){
int R=0;
int _old_column=0;
int _old_line=0;
_old_line=(C)->_line;
_old_column=(C)->_column;
/*IF*/if (rT49skip1(C,'\53')) {
/*IF*/if (rT49a_real(C)) {
R=1;
}
else {
rT49go_back_at(C,_old_line,_old_column);
}
/*FI*/}
 else if (rT49skip1(C,'\55')) {
/*IF*/if (rT49a_real(C)) {
C->_last_real_constant=rT77_px45((T77*)(C)->_last_real_constant);
R=1;
}
else {
rT49go_back_at(C,_old_line,_old_column);
}
/*FI*/}
 else if (rT49a_real(C)) {
R=1;
}
/*FI*/return R;
}
int rT49a_real(T49 *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'))) {
{T44 *n=((T44*)se_new(44));
rT44make(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))) {
rT49next_char(C);
_back_count=(_back_count)+(1);
{int iv1=_state;
if (0 == iv1) goto l222;
goto l223;
 l222: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l225;
goto l226;
 l225: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
goto l224;
 l226: ;
if (46 == iv2) goto l227;
goto l228;
 l227: ;
_state=4;
goto l224;
 l228: ;
_state=13;
 l224: ;
}
goto l221;
 l223: ;
if (1 == iv1) goto l229;
goto l230;
 l229: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l232;
goto l233;
 l232: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
_state=2;
goto l231;
 l233: ;
rT49fcp(C,(T0 *)ms163);
 l231: ;
}
goto l221;
 l230: ;
if (2 == iv1) goto l234;
goto l235;
 l234: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l237;
goto l238;
 l237: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
_state=3;
goto l236;
 l238: ;
rT49fcp(C,(T0 *)ms163);
 l236: ;
}
goto l221;
 l235: ;
if (3 == iv1) goto l239;
goto l240;
 l239: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l242;
goto l243;
 l242: ;
_integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
_state=0;
goto l241;
 l243: ;
rT49fcp(C,(T0 *)ms163);
 l241: ;
}
goto l221;
 l240: ;
if (4 == iv1) goto l244;
goto l245;
 l244: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l247;
goto l248;
 l247: ;
_frac_i=((float)10.);
_frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
_state=6;
goto l246;
 l248: ;
if (69 == iv2) goto l249;
if (101 == iv2) goto l249;
goto l250;
 l249: ;
_state=10;
goto l246;
 l250: ;
_state=12;
 l246: ;
}
goto l221;
 l245: ;
if (5 == iv1) goto l251;
goto l252;
 l251: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l254;
goto l255;
 l254: ;
_frac_i=((float)10.);
_frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
_state=6;
goto l253;
 l255: ;
_state=13;
 l253: ;
}
goto l221;
 l252: ;
if (6 == iv1) goto l256;
goto l257;
 l256: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l259;
goto l260;
 l259: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
goto l258;
 l260: ;
if (69 == iv2) goto l261;
if (101 == iv2) goto l261;
goto l262;
 l261: ;
_state=10;
goto l258;
 l262: ;
if (95 == iv2) goto l263;
goto l264;
 l263: ;
_state=7;
goto l258;
 l264: ;
_state=12;
 l258: ;
}
goto l221;
 l257: ;
if (7 == iv1) goto l265;
goto l266;
 l265: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l268;
goto l269;
 l268: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
_state=8;
goto l267;
 l269: ;
rT49fcp(C,(T0 *)ms164);
 l267: ;
}
goto l221;
 l266: ;
if (8 == iv1) goto l270;
goto l271;
 l270: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l273;
goto l274;
 l273: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
_state=9;
goto l272;
 l274: ;
rT49fcp(C,(T0 *)ms164);
 l272: ;
}
goto l221;
 l271: ;
if (9 == iv1) goto l275;
goto l276;
 l275: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l278;
goto l279;
 l278: ;
_frac_i=(_frac_i)*(((float)10.));
_frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
_state=6;
goto l277;
 l279: ;
rT49fcp(C,(T0 *)ms164);
 l277: ;
}
goto l221;
 l276: ;
if (10 == iv1) goto l280;
goto l281;
 l280: ;
{int iv2=(C)->_cc;
if (43 == iv2) goto l283;
goto l284;
 l283: ;
_state=11;
goto l282;
 l284: ;
if (45 == iv2) goto l285;
goto l286;
 l285: ;
_exponent_sign=-(1);
_state=11;
goto l282;
 l286: ;
if ((48<=iv2)&&(iv2<=57)) goto l287;
goto l288;
 l287: ;
_exponent=rT3value((C)->_cc);
_state=11;
goto l282;
 l288: ;
rT49fcp(C,(T0 *)ms165);
_state=13;
 l282: ;
}
goto l221;
 l281: ;
{int iv2=(C)->_cc;
if ((48<=iv2)&&(iv2<=57)) goto l290;
goto l291;
 l290: ;
_exponent=((_exponent)*(10))+(rT3value((C)->_cc));
goto l289;
 l291: ;
_state=12;
 l289: ;
}
 l221: ;
}
}
/*IF*/if ((_state)==(12)) {
_ts=rT7substring((T7*)(C)->_current_line,((T44*)_sp)->_column,((C)->_column)-(1));
{T77 *n=((T77*)se_new(77));
rT77make(n,_sp,_ts,_integral_part,_frac_part,(_exponent)*(_exponent_sign));
C->_last_real_constant=(T0 *)n;}
R=1;
rT49skip_comments(C);
}
else {
while (!((_back_count)==(0))) {
_back_count=(_back_count)-(1);
rT49prev_char(C);
}
}
/*FI*/}
/*FI*/return R;
}
void rT49go_back_at(T49 *C,int a1,int a2){
C->_line=a1;
C->_column=a2;
C->_current_line=((/*UT*/(void)(T58*)oRBC49text),
rT58item((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*/}

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