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

This is compile_to_c10.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 "compile_to_c.h"
void rT116mapping_cast(T116 *C){
rT7copy((T7*)oRBC58tmp_string,(T0 *)ms806);
rT2append_in(rT116id(C),oRBC58tmp_string);
/*IF*/if (rT116is_reference(C)) {
rT7extend((T7*)oRBC58tmp_string,'\52');
}
/*FI*/rT7extend((T7*)oRBC58tmp_string,'\51');
rT43put_string((T43*)oRBC27cpp,oRBC58tmp_string);
}
T0* rT116run_class(T116 *C){
T0* R=NULL;
R=((/*UT*/(void)(T52*)oRBC27small_eiffel),
rT52run_class(rT116run_type(C)));
return R;
}
int rT116is_expanded(T116 *C){
int R=0;
T0* _bc=NULL;
_bc=rT116base_class(C);
/*IF*/if (!(_bc)) {
rT116error(rT116start_position(C),(T0 *)ms472);
}
else {
R=((T50*)_bc)->_is_expanded;
}
/*FI*/return R;
}
T0* rT116smallest_ancestor(T116 *C,T0* a1){
T0* R=NULL;
T0* _pl2=NULL;
T0* _pl1=NULL;
T0* _rto=NULL;
_rto=XrT58run_type(a1);
/*IF*/if (XrT58is_none(a1)) {
R=(T0 *)C;
}
 else if (XrT58is_any(_rto)) {
R=a1;
}
 else if (((T0 *)XrT58base_class(a1))==((T0 *)rT116base_class(C))) {
R=(T0 *)C;
}
else {
_pl1=((T50*)rT116base_class(C))->_parent_list;
_pl2=((T50*)XrT58base_class(_rto))->_parent_list;
/*IF*/if ((!(_pl1))&&(!(_pl2))) {
R=rT116type_any();
}
 else if (!(_pl1)) {
/*IF*/if ((rT131count((T131*)_pl2))==(1)) {
R=XrT58smallest_ancestor(((T118*)rT131super((T131*)_pl2))->_type,(T0 *)C);
}
else {
rT116fatal_error((T0 *)ms1488);
}
/*FI*/}
 else if (!(_pl2)) {
/*IF*/if ((rT131count((T131*)_pl1))==(1)) {
R=XrT58smallest_ancestor(((T118*)rT131super((T131*)_pl1))->_type,a1);
}
else {
rT116fatal_error((T0 *)ms1489);
}
/*FI*/}
 else if ((((rT131count((T131*)_pl1))==(1))&&((rT131count((T131*)_pl2))==(1)))) {
R=XrT58smallest_ancestor(((T118*)rT131super((T131*)_pl1))->_type,((T118*)rT131super((T131*)_pl2))->_type);
}
else {
rT116fatal_error((T0 *)ms1490);
}
/*FI*/}
/*FI*/return R;
}
T0* rT116written_mark(T116 *C){
T0* R=NULL;
R=((T48*)(C)->_base_class_name)->_to_string;
return R;
}
T0* rT116base_class(T116 *C){
T0* R=NULL;
R=rT48base_class((T48*)(C)->_base_class_name);
return R;
}
int rT116is_a_in(T116 *C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (rT7is_equal((T7*)rT116written_mark(C),XrT58written_mark(a1))) {
R=1;
}
else {
_ct=((T261*)a2)->_current_type;
_t1=rT116to_runnable(C,_ct);
_t2=XrT58to_runnable(a1,_ct);
/*IF*/if (rT7is_equal((T7*)XrT58run_time_mark(_t1),XrT58run_time_mark(_t2))) {
R=1;
}
else {
R=XrT58is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
void rT116c_struct(T116 *C){
T0* _wa=NULL;
T0* _a=NULL;
int _i=0;
/*(IRF3*/(((T7*)oRBC58tmp_string)->_count)=(0);
/*)*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms767);
rT2append_in(rT116id(C),oRBC58tmp_string);
rT7extend((T7*)oRBC58tmp_string,'\173');
/*IF*/if (rT116is_reference(C)) {
rT7append((T7*)oRBC58tmp_string,(T0 *)ms768);
}
/*FI*/_wa=rT261writable_attributes((T261*)rT116run_class(C));
/*IF*/if (((int)_wa)) {
_i=XrT266lower(_wa);
while (!((_i)>(XrT266upper(_wa)))) {
_a=XrT266item(_wa,_i);
XrT58c_type_in(XrT58run_type(XrT262result_type(_a)),oRBC58tmp_string);
rT7append((T7*)oRBC58tmp_string,(T0 *)ms770);
rT7append((T7*)oRBC58tmp_string,XrT67to_string(XrT262name(_a)));
rT7extend((T7*)oRBC58tmp_string,'\73');
_i=(_i)+(1);
}
}
/*FI*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms771);
rT43put_string((T43*)oRBC27cpp,oRBC58tmp_string);
}
int rT116is_a(T116 *C,T0* a1){
int R=0;
T0* _other_bc=NULL;
_other_bc=XrT58base_class(a1);
/*IF*/if (((T0 *)rT116base_class(C))==((T0 *)_other_bc)) {
R=1;
}
 else if (!(_other_bc)) {
}
 else if (rT50is_subclass_of((T50*)rT116base_class(C),_other_bc)) {
/*IF*/if (XrT58is_generic(a1)) {
R=rT131is_a((T131*)((T50*)rT116base_class(C))->_parent_list,a1);
}
else {
R=1;
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type((T0 *)C,(T0 *)ms1503);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type(a1,(T0 *)ms36);
}
/*FI*/return R;
}
int rT116has_creation(T116 *C,T0* a1){
int R=0;
R=rT50has_creation((T50*)rT116base_class(C),a1);
return R;
}
T0*oRBC116check_memory;
void rT116c_typedef(T116 *C){
int _mem_id=0;
_mem_id=rT116id(C);
/*(IRF3*/(((T7*)oRBC58tmp_string)->_count)=(0);
/*)*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms759);
rT2append_in(rT116id(C),oRBC58tmp_string);
rT7append((T7*)oRBC58tmp_string,(T0 *)ms760);
rT2append_in(rT116id(C),oRBC58tmp_string);
rT7append((T7*)oRBC58tmp_string,(T0 *)ms761);
rT43put_string((T43*)oRBC27cpp,oRBC58tmp_string);
}
void rT116c_type_in(T116 *C,T0* a1){
/*IF*/if (rT116is_reference(C)) {
rT7append((T7*)a1,(T0 *)ms1518);
}
else {
rT7extend((T7*)a1,'T');
rT2append_in(rT116id(C),a1);
}
/*FI*/}
T0* rT117twin(T117 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT117copy((T117*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT117is_run_type(T117 *C){
int R=0;
R=((int)(C)->_run_type);
return R;
}
void rT117fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
T0* rT117run_time_mark(T117 *C){
T0* R=NULL;
R=((T117*)(C)->_run_type)->_written_mark;
return R;
}
T0* rT117to_runnable(T117 *C,T0* a1){
T0* R=NULL;
T0* _rgl=NULL;
T0* _t=NULL;
int _i=0;
/*IF*/if (((T0 *)(C)->_run_type)==((T0 *)C)) {
R=(T0 *)C;
}
 else if (!((C)->_run_type)) {
{T106 *n=((T106*)se_new(106));
rT106make(n,1,rT106count((T106*)(C)->_generic_list));
_rgl=(T0 *)n;}
_i=1;
while (!((_i)>(((T106*)_rgl)->_upper))) {
_t=XrT58to_runnable(rT106item((T106*)(C)->_generic_list,_i),a1);
/*IF*/if ((!(_t))||(!(XrT58is_run_type(_t)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type(rT106item((T106*)(C)->_generic_list,_i),(T0 *)ms1446);
rT45print_as_error((T45*)oRBC27eh);
_i=(((T106*)_rgl)->_upper)+(1);
}
else {
rT106put((T106*)_rgl,XrT58run_type(_t),_i);
_i=(_i)+(1);
}
/*FI*/}
/*IF*/if ((_i)>(((T106*)_rgl)->_upper)) {
{T117 *n=((T117*)se_new(117));
rT117make(n,(C)->_base_class_name,_rgl);
C->_run_type=(T0 *)n;}
R=(T0 *)C;
}
else {
rT117error(rT117start_position(C),(T0 *)ms1474);
}
/*FI*/}
else {
R=rT117to_runnable((T117*)rT117twin(C),a1);
}
/*FI*/return R;
}
void rT117cast_to_ref(T117 *C){
rT117cast_to_ref((T117*)(C)->_run_type);
}
void rT117error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
int rT117id(T117 *C){
int R=0;
R=((T261*)rT117run_class(C))->_id;
return R;
}
T0* rT117start_position(T117 *C){
T0* R=NULL;
R=((T48*)(C)->_base_class_name)->_start_position;
return R;
}
T0* rT117look_up_for(T117 *C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
_bc=rT117base_class(C);
/*IF*/if (((int)_bc)) {
R=rT50look_up_for((T50*)_bc,a1,a2);
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms477);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type((T0 *)C,(T0 *)ms36);
rT45print_as_error((T45*)oRBC27eh);
}
/*FI*/return R;
}
void rT117mapping_c_in(T117 *C,T0* a1){
rT7extend((T7*)a1,'T');
rT2append_in(rT117id(C),a1);
}
void rT117mapping_cast(T117 *C){
rT7copy((T7*)oRBC58tmp_string,(T0 *)ms806);
rT2append_in(rT117id(C),oRBC58tmp_string);
/*IF*/{/*AT*/rT7extend((T7*)oRBC58tmp_string,'\52');
}
/*FI*/rT7extend((T7*)oRBC58tmp_string,'\51');
rT43put_string((T43*)oRBC27cpp,oRBC58tmp_string);
}
T0* rT117run_class(T117 *C){
T0* R=NULL;
R=((/*UT*/(void)(T52*)oRBC27small_eiffel),
rT52run_class((C)->_run_type));
return R;
}
int rT117is_expanded(T117 *C){
int R=0;
T0* _bc=NULL;
_bc=rT117base_class(C);
/*IF*/if (!(_bc)) {
rT117error(rT117start_position(C),(T0 *)ms472);
}
else {
R=((T50*)_bc)->_is_expanded;
}
/*FI*/return R;
}
T0* rT117smallest_ancestor(/*C*/T0* a1){
T0* R=NULL;
rT117fatal_error((T0 *)ms1496);
return R;
}
T0* rT117base_class(T117 *C){
T0* R=NULL;
R=rT48base_class((T48*)(C)->_base_class_name);
return R;
}
int rT117is_a_in(T117 *C,T0* a1,T0* a2){
int R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*IF*/if (rT7is_equal((T7*)(C)->_written_mark,XrT58written_mark(a1))) {
R=1;
}
else {
_ct=((T261*)a2)->_current_type;
_t1=rT117to_runnable(C,_ct);
_t2=XrT58to_runnable(a1,_ct);
/*IF*/if (rT7is_equal((T7*)XrT58run_time_mark(_t1),XrT58run_time_mark(_t2))) {
R=1;
}
else {
R=XrT58is_a(_t1,_t2);
}
/*FI*/}
/*FI*/return R;
}
void rT117c_struct(T117 *C){
T0* _wa=NULL;
T0* _a=NULL;
int _i=0;
/*(IRF3*/(((T7*)oRBC58tmp_string)->_count)=(0);
/*)*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms767);
rT2append_in(rT117id(C),oRBC58tmp_string);
rT7extend((T7*)oRBC58tmp_string,'\173');
/*IF*/{/*AT*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms768);
}
/*FI*/_wa=rT261writable_attributes((T261*)rT117run_class(C));
/*IF*/if (((int)_wa)) {
_i=XrT266lower(_wa);
while (!((_i)>(XrT266upper(_wa)))) {
_a=XrT266item(_wa,_i);
XrT58c_type_in(XrT58run_type(XrT262result_type(_a)),oRBC58tmp_string);
rT7append((T7*)oRBC58tmp_string,(T0 *)ms770);
rT7append((T7*)oRBC58tmp_string,XrT67to_string(XrT262name(_a)));
rT7extend((T7*)oRBC58tmp_string,'\73');
_i=(_i)+(1);
}
}
/*FI*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms771);
rT43put_string((T43*)oRBC27cpp,oRBC58tmp_string);
}
void rT117copy(T117 *C,T0* a1){
C->_base_class_name=((T117*)a1)->_base_class_name;
C->_written_mark=((T117*)a1)->_written_mark;
C->_generic_list=rT106twin((T106*)((T117*)a1)->_generic_list);
}
int rT117is_a(T117 *C,T0* a1){
int R=0;
T0* _t2=NULL;
T0* _t1=NULL;
int _i=0;
/*IF*/if (XrT58is_none(a1)) {
}
 else if (((T0 *)rT117run_class(C))==((T0 *)XrT58run_class(a1))) {
R=1;
}
 else if ((XrT58is_generic(a1))&&(((T0 *)rT117base_class(C))==((T0 *)XrT58base_class(a1)))) {
R=1;
_i=((T106*)(C)->_generic_list)->_upper;
while (!((!(R))||((_i)==(0)))) {
_t1=XrT58run_type(rT106item((T106*)(C)->_generic_list,_i));
_t2=XrT58run_type(rT106item((T106*)XrT58generic_list(a1),_i));
/*IF*/if (XrT58is_a(_t1,_t2)) {
_i=(_i)-(1);
}
else {
R=0;
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1453);
}
/*FI*/}
}
 else if (((XrT58is_generic(a1))&&(rT50is_subclass_of((T50*)rT117base_class(C),XrT58base_class(a1))))&&((rT106count((T106*)XrT58generic_list(a1)))==(rT106count((T106*)(C)->_generic_list)))) {
R=1;
_i=((T106*)(C)->_generic_list)->_upper;
while (!((!(R))||((_i)==(0)))) {
_t1=XrT58run_type(rT106item((T106*)(C)->_generic_list,_i));
_t2=XrT58run_type(rT106item((T106*)XrT58generic_list(a1),_i));
/*IF*/if (XrT58is_a(_t1,_t2)) {
_i=(_i)-(1);
}
else {
R=0;
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms1453);
}
/*FI*/}
}
 else if ((!(XrT58is_generic(a1)))&&(rT50is_subclass_of((T50*)rT117base_class(C),XrT58base_class(a1)))) {
R=1;
}
/*FI*//*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type((T0 *)C,(T0 *)ms1503);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_type(a1,(T0 *)ms1508);
}
/*FI*/return R;
}
int rT117has_creation(T117 *C,T0* a1){
int R=0;
/*IF*/if (((T0 *)C)==((T0 *)(C)->_run_type)) {
R=rT50has_creation((T50*)rT117base_class(C),a1);
}
else {
R=rT117has_creation((T117*)(C)->_run_type,a1);
}
/*FI*/return R;
}
void rT117make(T117 *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,((T48*)a1)->_to_string);
C->_written_mark=(T0 *)n;}
rT7extend((T7*)(C)->_written_mark,'\133');
_i=1;
while (!((_i)>(((T106*)a2)->_upper))) {
_t=rT106item((T106*)(C)->_generic_list,_i);
rT7append((T7*)(C)->_written_mark,XrT58written_mark(_t));
_is_run=((_is_run)&&(((T0 *)XrT58run_type(_t))==((T0 *)_t)));
_i=(_i)+(1);
/*IF*/if ((_i)<=(((T106*)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 rT117c_typedef(T117 *C){
int _mem_id=0;
_mem_id=rT117id(C);
/*(IRF3*/(((T7*)oRBC58tmp_string)->_count)=(0);
/*)*/rT7append((T7*)oRBC58tmp_string,(T0 *)ms759);
rT2append_in(rT117id(C),oRBC58tmp_string);
rT7append((T7*)oRBC58tmp_string,(T0 *)ms760);
rT2append_in(rT117id(C),oRBC58tmp_string);
rT7append((T7*)oRBC58tmp_string,(T0 *)ms761);
rT43put_string((T43*)oRBC27cpp,oRBC58tmp_string);
}
void rT117c_type_in(T117 *C,T0* a1){
/*IF*/{/*AT*/rT7append((T7*)a1,(T0 *)ms1519);
}
/*FI*/}
int rT268use_current(T268 *C){
int R=0;
int _i=0;
_i=1;
while (!((R)||((_i)>(((T269*)(C)->_list)->_upper)))) {
R=rT137use_current((T137*)rT269item((T269*)(C)->_list,_i));
_i=(_i)+(1);
}
return R;
}
void rT268compile_to_c(T268 *C){
int _i=0;
/*IF*/if ((((T269*)(C)->_list)->_upper)==(1)) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms847);
rT137compile_to_c((T137*)rT269first((T269*)(C)->_list));
}
else {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms849);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms850);
rT137compile_to_c((T137*)rT269first((T269*)(C)->_list));
_i=1;
while (!((_i)>(((T269*)(C)->_list)->_upper))) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms851);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms852);
rT137compile_to_c((T137*)rT269item((T269*)(C)->_list,_i));
rT43put_string((T43*)oRBC27cpp,(T0 *)ms853);
_i=(_i)+(1);
/*IF*/if ((_i)==(((T269*)(C)->_list)->_upper)) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms854);
}
/*FI*/}
}
/*FI*/}
void rT60fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
T0*oRBC60storage;
void rT60storage_grow(/*C*/int a1){
int _i=0;
T0* _str=NULL;
_i=((T34*)oRBC60storage)->_upper;
rT34resize((T34*)oRBC60storage,1,(((T34*)oRBC60storage)->_upper)+(a1));
while (!((_i)==(((T34*)oRBC60storage)->_upper))) {
_i=(_i)+(1);
{T7 *n=((T7*)se_new(7));
rT7make(n,80);
_str=(T0 *)n;}
rT34put((T34*)oRBC60storage,_str,_i);
}
}
int ofBC60sfr=0;
T0*oRBC60sfr;
T0* rT60sfr(/*C*/void){
if (ofBC60sfr==0){
T0* R=NULL;
ofBC60sfr=1;
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/R=(T0 *)n;}
oRBC60sfr=R;}
return oRBC60sfr;}
T0* rT60item(/*C*/int a1){
T0* R=NULL;
R=rT34item((T34*)oRBC60storage,a1);
return R;
}
int ofBC60init_storage=0;
void rT60init_storage(/*C*/void){
if (ofBC60init_storage==0){
ofBC60init_storage=1;
rT60storage_grow(3000);
}}
void rT60read(T60 *C,T0* a1){
rT60init_storage();
rT42connect_to((T42*)rT60sfr(),a1);
/*IF*/if (rT42is_connected((T42*)rT60sfr())) {
C->_count=0;
while (!(rT42end_of_input((T42*)rT60sfr()))) {
C->_count=((C)->_count)+(1);
/*IF*/if ((((T34*)oRBC60storage)->_upper)<((C)->_count)) {
rT60storage_grow(1000);
}
/*FI*/rT42read_line_in((T42*)rT60sfr(),rT34item((T34*)oRBC60storage,(C)->_count));
}
rT42disconnect((T42*)rT60sfr());
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms71);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(a1);
rT60fatal_error((T0 *)ms72);
}
/*FI*/}
T0* rT171expression(T171 *C,int a1){
T0* R=NULL;
R=XrT81item((C)->_list,a1);
return R;
}
T0* rT171first(T171 *C){
T0* R=NULL;
R=XrT81item((C)->_list,1);
return R;
}
T0* rT171to_runnable(T171 *C,T0* a1){
T0* R=NULL;
T0* _e2=NULL;
T0* _e1=NULL;
int _i=0;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
_i=XrT81upper((C)->_list);
while (!((_i)==(0))) {
_e1=XrT81item((C)->_list,_i);
_e2=XrT68to_runnable(_e1,(C)->_current_type);
/*IF*/if (!(_e2)) {
rT171error(XrT68start_position(_e1),(T0 *)ms1150);
}
 else if (((T0 *)_e1)!=((T0 *)_e2)) {
XrT81put((C)->_list,_e2,_i);
}
/*FI*/_i=(_i)-(1);
}
/*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
 else if (((T0 *)XrT58run_class(a1))==((T0 *)rT171run_class(C))) {
R=(T0 *)C;
}
else {
{T171 *n=((T171*)se_new(171));
/*(IRF3*/((n)->_list)=(XrT81twin((C)->_list));
/*)*/R=(T0 *)n;}
R=rT171to_runnable((T171*)R,a1);
}
/*FI*/return R;
}
int rT171count(T171 *C){
int R=0;
R=XrT81upper((C)->_list);
return R;
}
void rT171error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
void rT171match_with(T171 *C,T0* a1){
T0* _ot=NULL;
T0* _ft=NULL;
T0* _at=NULL;
T0* _e=NULL;
int _i=0;
T0* _fal=NULL;
_fal=XrT262arguments(a1);
/*IF*/if (!(_fal)) {
rT171error(rT171start_position(C),(T0 *)ms1152);
}
/*FI*//*IF*/if ((((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((rT92count((T92*)_fal))!=(rT171count(C))))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(((T92*)_fal)->_start_position);
rT171error(rT171start_position(C),(T0 *)ms1153);
}
/*FI*/_i=XrT81upper((C)->_list);
while (!(((_i)==(0))||((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(0)))) {
_e=XrT81item((C)->_list,_i);
_at=XrT68result_type(_e);
_ft=rT92type((T92*)_fal,_i);
/*IF*/if (XrT68is_void(_e)) {
/*IF*/if (XrT58is_expanded(_ft)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position(_e));
rT171error(XrT58start_position(_ft),(T0 *)ms1154);
}
/*FI*/}
 else if (XrT58is_like_current(_ft)) {
/*IF*/if (XrT68is_current(_e)) {
}
 else if (XrT58is_a(XrT58run_type(_at),XrT58run_type(_ft))) {
/*IF*/if (XrT58is_expanded(XrT58run_type(_at))) {
}
 else if (XrT58is_a(XrT58run_type(_ft),XrT58run_type(_at))) {
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position(_e));
rT171error(XrT58start_position(_ft),(T0 *)ms1155);
}
/*FI*/}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position(_e));
rT171error(XrT58start_position(_ft),(T0 *)ms1155);
}
/*FI*/}
 else if (XrT58is_like_feature(_ft)) {
/*IF*/if (XrT58is_a(XrT58run_type(_at),XrT58run_type(_ft))) {
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position(_e));
rT171error(XrT58start_position(_ft),(T0 *)ms1156);
}
/*FI*/}
 else if (XrT58is_like_argument(_ft)) {
_ot=XrT68result_type(rT171expression(C,((T88*)XrT58like_argument(_ft))->_rank));
/*IF*/if (!(XrT58is_a(XrT58run_type(_at),XrT58run_type(_ot)))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position(_e));
rT171error(XrT58start_position(_ft),(T0 *)ms1157);
}
/*FI*/}
 else if (XrT58is_a(XrT58run_type(_at),XrT58run_type(_ft))) {
}
else {
rT45print_as_error((T45*)oRBC27eh);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT58start_position(_ft));
rT171error(XrT68start_position(_e),(T0 *)ms1158);
}
/*FI*/_at=XrT58run_type(_at);
_ft=XrT58run_type(_ft);
/*IF*/if (XrT58is_expanded(_ft)) {
/*IF*/if (XrT58is_expanded(_at)) {
}
else {
XrT58used_as_reference(_ft);
}
/*FI*/}
 else if (XrT58is_expanded(_at)) {
XrT58used_as_reference(_at);
}
else {
}
/*FI*/_i=(_i)-(1);
}
}
T0* rT171start_position(T171 *C){
T0* R=NULL;
R=XrT68start_position(XrT81item((C)->_list,1));
return R;
}
int rT171use_current(T171 *C){
int R=0;
int _i=0;
_i=1;
while (!(((_i)>(rT171count(C)))||(R))) {
R=XrT68use_current(rT171expression(C,_i));
_i=(_i)+(1);
}
return R;
}
T0* rT171run_class(T171 *C){
T0* R=NULL;
R=XrT58run_class((C)->_current_type);
return R;
}
void rT171compile_to_c_old(T171 *C){
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=1;
while (!((_i)>(XrT81upper((C)->_list)))) {
XrT68compile_to_c_old(XrT81item((C)->_list,_i));
_i=(_i)+(1);
}
}
/*FI*/}
void rT171compile_to_c(T171 *C,T0* a1){
T0* _ft=NULL;
T0* _at=NULL;
T0* _e=NULL;
int _i=0;
_i=1;
while (!((_i)>(rT171count(C)))) {
_e=rT171expression(C,_i);
_at=XrT58run_type(XrT68result_type(_e));
_ft=XrT58run_type(rT92type((T92*)a1,_i));
/*IF*/if (XrT58is_expanded(_ft)) {
/*IF*/if (XrT58is_expanded(_at)) {
XrT68compile_to_c(_e);
}
else {
XrT58to_expanded(_ft);
rT43put_character((T43*)oRBC27cpp,'\50');
XrT68compile_to_c(_e);
rT43put_character((T43*)oRBC27cpp,'\51');
}
/*FI*/}
else {
/*IF*/if (XrT58is_expanded(_at)) {
XrT58to_reference(_at);
rT43put_character((T43*)oRBC27cpp,'\50');
XrT68compile_to_c(_e);
rT43put_character((T43*)oRBC27cpp,'\51');
}
else {
/*IF*/if ((XrT68is_current(_e))||(XrT68is_manifest_string(_e))) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms1201);
}
/*FI*/XrT68compile_to_c(_e);
}
/*FI*/}
/*FI*/_i=(_i)+(1);
/*IF*/if ((_i)<=(rT171count(C))) {
rT43put_character((T43*)oRBC27cpp,'\54');
}
/*FI*/}
}
int rT94put_into(T94 *C,T0* a1,int a2){
int R=0;
int _rank=0;
_rank=rT96index_of((T96*)a1,(T0 *)C);
/*IF*/if ((_rank)<=(((T96*)a1)->_upper)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT94start_position(C));
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT94start_position((T94*)rT96item((T96*)a1,_rank)));
rT45error((T45*)oRBC27eh,(T0 *)ms1531);
}
/*FI*/rT96put((T96*)a1,(T0 *)C,a2);
R=(a2)+(1);
return R;
}
T0* rT94start_position(T94 *C){
T0* R=NULL;
R=((T97*)(C)->_name)->_start_position;
return R;
}
int rT94is_equal(T94 *C,T0* a1){
int R=0;
R=rT7is_equal((T7*)rT97to_key((T97*)(C)->_name),rT97to_key((T97*)((T94*)a1)->_name));
return R;
}
void rT94make(T94 *C,T0* a1,T0* a2){
C->_name=a1;
C->_type=a2;
}
int rT142put_into(T142 *C,T0* a1,int a2){
int R=0;
T0* _d1=NULL;
int _i=0;
_i=((T141*)(C)->_name_list)->_lower;
R=a2;
while (!((_i)>(((T141*)(C)->_name_list)->_upper))) {
{T94 *n=((T94*)se_new(94));
rT94make(n,rT141item((T141*)(C)->_name_list,_i),(C)->_type);
_d1=(T0 *)n;}
R=rT94put_into((T94*)_d1,a1,R);
_i=(_i)+(1);
}
return R;
}
int rT142count(T142 *C){
int R=0;
R=rT141count((T141*)(C)->_name_list);
return R;
}
void rT142make(T142 *C,T0* a1,T0* a2){
C->_name_list=a1;
C->_type=a2;
}
T0* rT215twin(T215 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT215copy((T215*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
T0* rT215runnable(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
int _i=0;
/*IF*/if (!(rT158empty((T158*)a1))) {
R=rT158twin((T158*)a1);
_i=((T158*)R)->_upper;
while (!((_i)==(0))) {
rT52push((T52*)oRBC27small_eiffel,a3);
_a=rT64to_runnable((T64*)rT158item((T158*)R,_i),a2);
/*IF*/if (!(_a)) {
rT215error(rT64start_position((T64*)rT158item((T158*)R,_i)),(T0 *)ms473);
}
else {
rT158put((T158*)R,_a,_i);
}
/*FI*/rT52pop((T52*)oRBC27small_eiffel);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
T0* rT215to_runnable(T215 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
/*IF*/if (((int)(C)->_list)) {
C->_list=rT215runnable((C)->_list,a1,rT52top_rf((T52*)oRBC27small_eiffel));
}
/*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
R=(T0 *)C;
}
/*FI*/}
else {
R=rT215twin(C);
/*(IRF3*/(((T215*)R)->_current_type)=(NULL);
/*)*/R=rT215to_runnable((T215*)R,a1);
}
/*FI*/return R;
}
void rT215error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
int rT215use_current(T215 *C){
int R=0;
int _i=0;
/*IF*/if (((int)(C)->_list)) {
_i=((T158*)(C)->_list)->_upper;
while (!((R)||((_i)==(0)))) {
R=rT64use_current((T64*)rT158item((T158*)(C)->_list,_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void rT215compile_to_c(T215 *C){
int _i=0;
/*(IRF3*/(((T43*)oRBC27cpp)->_check_assertion_mode)=(/*(IRF4*/(T0 *)ms1300/*)*/);
/*)*//*IF*/if (((int)(C)->_list)) {
rT43put_string((T43*)oRBC27cpp,(T0 *)ms781);
rT43put_string((T43*)oRBC27cpp,/*(IRF4*/(T0 *)ms1300/*)*/);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms782);
rT43put_string((T43*)oRBC27cpp,/*(IRF4*/(T0 *)ms1300/*)*/);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms783);
_i=1;
while (!((_i)>(((T158*)(C)->_list)->_upper))) {
rT64compile_to_c((T64*)rT158item((T158*)(C)->_list,_i));
_i=(_i)+(1);
}
rT43put_string((T43*)oRBC27cpp,(T0 *)ms789);
rT43put_string((T43*)oRBC27cpp,/*(IRF4*/(T0 *)ms1300/*)*/);
rT43put_string((T43*)oRBC27cpp,(T0 *)ms790);
}
/*FI*/}
void rT215copy(T215 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
void rT215make(T215 *C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
T0* rT75twin(T75 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT75copy((T75*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT75is_static(T75 *C){
int R=0;
R=1;
C->_static_value_mem=rT75to_integer(C);
return R;
}
int rT75static_value(T75 *C){
int R=0;
R=(C)->_static_value_mem;
return R;
}
T0* rT75to_runnable(T75 *C,T0* a1){
T0* R=NULL;
/*IF*/if (!((C)->_current_type)) {
C->_current_type=a1;
R=(T0 *)C;
}
else {
R=rT75twin(C);
/*(IRF3*/(((T75*)R)->_current_type)=(a1);
/*)*/}
/*FI*/return R;
}
void rT75error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
T0* rT75add_comment(T75 *C,T0* a1){
T0* R=NULL;
/*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
R=(T0 *)C;
}
else {
{T221 *n=((T221*)se_new(221));
rT221make(n,(T0 *)C,a1);
R=(T0 *)n;}}
/*FI*/return R;
}
int ofBC75result_type=0;
T0*oRBC75result_type;
T0* rT75result_type(/*C*/void){
if (ofBC75result_type==0){
T0* R=NULL;
ofBC75result_type=1;
{T109 *n=((T109*)se_new(109));
rT109make(n,NULL);
R=(T0 *)n;}
oRBC75result_type=R;}
return oRBC75result_type;}
void rT75compile_to_c(T75 *C){
rT43put_character((T43*)oRBC27cpp,'\47');
/*IF*/if ((rT3is_letter((C)->_value))||(rT3is_digit((C)->_value))) {
rT43put_character((T43*)oRBC27cpp,(C)->_value);
}
else {
rT43put_character((T43*)oRBC27cpp,'\134');
rT43put_integer((T43*)oRBC27cpp,rT2to_octal(((unsigned char)(C)->_value)));
}
/*FI*/rT43put_character((T43*)oRBC27cpp,'\47');
}
int rT75to_integer(T75 *C){
int R=0;
R=((unsigned char)(C)->_value);
return R;
}
T0* rT75written_in(T75 *C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position;
/*IF*/if (((int)_sp)) {
R=((T46*)_sp)->_base_class_name;
}
/*FI*/return R;
}
void rT75copy(T75 *C,T0* a1){
/*IF*//*AF*//*AE*/
memcpy(C,a1,s[C->id]);
/*FI*/}
int rT75is_a(T75 *C,T0* a1){
int R=0;
R=XrT58is_a(rT109run_type((T109*)rT75result_type()),XrT58run_type(XrT68result_type(a1)));
/*IF*/if (!(R)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position((C)->_start_position);
rT75error(XrT68start_position(a1),(T0 *)ms1289);
}
/*FI*/return R;
}
void rT75make(T75 *C,T0* a1,char a2,int a3){
C->_start_position=a1;
C->_value=a2;
/*(IRF3*/((C)->_pretty_print_mode)=(a3);
/*)*/}
int rT51a_constant(T51 *C){
int R=0;
T0* _fn=NULL;
T0* _e_current=NULL;
/*IF*/if (rT51a_identifier(C)) {
R=1;
_fn=rT69to_feature_name((T69*)rT51tmp_name());
{T89 *n=((T89*)se_new(89));
rT89make(n,XrT67start_position(_fn),0);
_e_current=(T0 *)n;}
{T163 *n=((T163*)se_new(163));
rT163make(n,_e_current,_fn);
C->_last_expression=(T0 *)n;}}
 else if (rT51a_character_constant(C)) {
R=1;
C->_last_expression=(C)->_last_character_constant;
}
 else if (rT51a_integer_constant(C)) {
R=1;
C->_last_expression=(C)->_last_integer_constant;
}
/*FI*/return R;
}
int rT51a_conditional(T51 *C){
int R=0;
T0* _ifthenelse=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms349)) {
R=1;
{T219 *n=((T219*)se_new(219));
/*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
/*)*/_ifthenelse=(T0 *)n;}
rT51a_then_part_list(C,_ifthenelse);
/*IF*/if (rT51a_keyword(C,(T0 *)ms101)) {
/*(IRF3*/(((T219*)_ifthenelse)->_else_compound)=(rT51a_compound2(C,(T0 *)ms355,(T0 *)ms115));
/*)*/}
else {
/*IF*/if (!(rT51a_keyword(C,(T0 *)ms115))) {
rT51wcp(C,(T0 *)ms356);
}
/*FI*/}
/*FI*/C->_last_instruction=_ifthenelse;
}
/*FI*/return R;
}
int rT51a_boolean_constant(T51 *C){
int R=0;
/*IF*/if (rT51a_keyword(C,(T0 *)ms154)) {
{T73 *n=((T73*)se_new(73));
/*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
/*)*/C->_last_boolean_constant=(T0 *)n;}R=1;
}
 else if (rT51a_keyword(C,(T0 *)ms155)) {
{T74 *n=((T74*)se_new(74));
/*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
/*)*/C->_last_boolean_constant=(T0 *)n;}R=1;
}
/*FI*/return R;
}
int rT51a_then_part(T51 *C,T0* a1){
int R=0;
T0* _expression=NULL;
/*IF*/if (rT51a_expression(C)) {
R=1;
_expression=XrT68add_comment((C)->_last_expression,rT51get_comments(C));
/*IF*/if (!(rT51a_keyword(C,(T0 *)ms98))) {
rT51wcp(C,(T0 *)ms350);
}
/*FI*/rT219add_if_then((T219*)a1,_expression,rT51a_compound1(C,(T0 *)ms351));
}
/*FI*/return R;
}
void rT51a_then_part_list(T51 *C,T0* a1){
/*IF*/if (!(rT51a_then_part(C,a1))) {
rT51fcp(C,(T0 *)ms352);
}
/*FI*/while (!(!(rT51a_keyword(C,(T0 *)ms353)))) {
/*IF*/if (!(rT51a_then_part(C,a1))) {
rT51fcp(C,(T0 *)ms354);
}
/*FI*/}
}
T0* rT51get_comments(T51 *C){
T0* R=NULL;
/*IF*/if (((int)(C)->_last_comments)) {
R=(C)->_last_comments;
C->_last_comments=NULL;
}
/*FI*/return R;
}
int rT51a_parent(T51 *C){
int R=0;
/*IF*/if (rT51a_class_type(C)) {
R=1;
/*IF*/if (rT7is_equal((T7*)((T48*)rT51current_class_name(C))->_to_string,((T48*)XrT58base_class_name((C)->_last_class_type))->_to_string)) {
rT51error(XrT58start_position((C)->_last_class_type),(T0 *)ms219);
}
/*FI*/{T118 *n=((T118*)se_new(118));
rT118make(n,(C)->_last_class_type);
C->_last_parent=(T0 *)n;}
/*IF*/if (rT51a_keyword(C,(T0 *)ms222)) {
rT51a_rename_list(C);
/*IF*/if (((C)->_cc)==('\73')) {
rT51wcp(C,(T0 *)ms226);
C->_ok=rT51skip1(C,'\73');
}
/*FI*/}
/*FI*/rT51a_new_export_list(C);
/*IF*/if (rT51a_keyword(C,(T0 *)ms237)) {
rT51a_undefine_list(C);
}
/*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms238)) {
rT51a_redefine_list(C);
}
/*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms239)) {
rT51a_select_list(C);
}
/*FI*//*IF*/if (((((rT51a_keyword(C,(T0 *)ms240))||(rT51a_keyword(C,(T0 *)ms241)))||(rT51a_keyword(C,(T0 *)ms242)))||(rT51a_keyword(C,(T0 *)ms243)))||(rT51a_keyword(C,(T0 *)ms244))) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT51pos((C)->_start_line,(C)->_start_column));
rT51fatal_error((T0 *)ms245);
}
/*FI*/C->_ok=rT51a_keyword(C,(T0 *)ms115);
}
/*FI*/return R;
}
void rT51a_parent_list(T51 *C,T0* a1,T0* a2){
T0* _list=NULL;
while (!(!(rT51a_parent(C)))) {
/*IF*/if (!(_list)) {
_list=ma(130,0,1,(C)->_last_parent);
}
else {
rT130add_last((T130*)_list,(C)->_last_parent);
}
/*FI*/C->_ok=rT51skip1(C,'\73');
/*(IRF3*/(((T118*)(C)->_last_parent)->_comment)=(rT51get_comments(C));
/*)*/}
/*IF*/if (((((int)a2))||(((int)_list)))) {
rT50set_parent_list((T50*)(C)->_last_base_class,a1,a2,_list);
}
/*FI*/}
int rT51a_when_part(T51 *C,T0* a1){
int R=0;
T0* _constant=NULL;
T0* _e_when=NULL;
int _state=0;
/*IF*/if (rT51a_keyword(C,(T0 *)ms361)) {
R=1;
{T227 *n=((T227*)se_new(227));
rT227make(n,rT51pos((C)->_start_line,(C)->_start_column),rT51get_comments(C));
_e_when=(T0 *)n;}
while (!((_state)>(3))) {
{int iv1=_state;
if (0 == iv1) goto l119;
goto l120;
 l119: ;
/*IF*/if (rT51a_constant(C)) {
_constant=(C)->_last_expression;
_state=1;
}
 else if (rT51a_keyword(C,(T0 *)ms98)) {
/*IF*/if (((int)_constant)) {
rT227add_value((T227*)_e_when,_constant);
}
/*FI*//*(IRF3*/(((T227*)_e_when)->_compound)=(rT51a_compound1(C,(T0 *)ms362));
/*)*/rT226add_when((T226*)a1,_e_when);
_state=4;
}
 else if (((C)->_cc)==('\54')) {
rT51wcp(C,(T0 *)ms228);
C->_ok=rT51skip1(C,'\54');
}
else {
rT51fcp(C,(T0 *)ms363);
_state=4;
}
/*FI*/goto l118;
 l120: ;
if (1 == iv1) goto l121;
goto l122;
 l121: ;
/*IF*/if (rT51a_keyword(C,(T0 *)ms98)) {
/*IF*/if (((int)_constant)) {
rT227add_value((T227*)_e_when,_constant);
}
/*FI*//*(IRF3*/(((T227*)_e_when)->_compound)=(rT51a_compound1(C,(T0 *)ms364));
/*)*/rT226add_when((T226*)a1,_e_when);
_state=4;
}
 else if (rT51skip2(C,'\56','\56')) {
_state=2;
}
 else if (rT51skip1(C,'\54')) {
rT227add_value((T227*)_e_when,_constant);
_constant=NULL;
_state=0;
}
else {
rT51fcp(C,(T0 *)ms363);
_state=4;
}
/*FI*/goto l118;
 l122: ;
if (2 == iv1) goto l123;
goto l124;
 l123: ;
/*IF*/if (rT51a_constant(C)) {
rT227add_slice((T227*)_e_when,_constant,(C)->_last_expression);
_constant=NULL;
_state=3;
}
else {
rT51fcp(C,(T0 *)ms363);
_state=4;
}
/*FI*/goto l118;
 l124: ;
/*IF*/if (rT51skip1(C,'\54')) {
_state=0;
}
 else if (rT51a_keyword(C,(T0 *)ms98)) {
/*(IRF3*/(((T227*)_e_when)->_compound)=(rT51a_compound1(C,(T0 *)ms365));
/*)*/rT226add_when((T226*)a1,_e_when);
_state=4;
}
 else if (rT51a_constant(C)) {
_constant=(C)->_last_expression;
rT51warning(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms211);
_state=1;
}
else {
rT51fcp(C,(T0 *)ms363);
_state=4;
}
/*FI*/ l118: ;
}
}
}
/*FI*/return R;
}
void rT51a_select_list(T51 *C){
/*IF*/if (rT51a_feature_list(C)) {
rT118set_select((T118*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}
int rT51a_unary(T51 *C){
int R=0;
/*IF*/if (rT51a_keyword(C,(T0 *)ms78)) {
{T66 *n=((T66*)se_new(66));
rT66make(n,(T0 *)ms78,rT51pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
 else if (rT51skip1(C,'\53')) {
{T66 *n=((T66*)se_new(66));
rT66make(n,(T0 *)ms80,rT51pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
 else if (rT51skip1(C,'\55')) {
{T66 *n=((T66*)se_new(66));
rT66make(n,(T0 *)ms81,rT51pos((C)->_start_line,(C)->_start_column));
C->_last_prefix=(T0 *)n;}
R=1;
}
/*FI*/return R;
}
int rT51a_rename_pair(T51 *C){
int R=0;
T0* _rename_pair=NULL;
T0* _name1=NULL;
/*IF*/if (rT51a_identifier(C)) {
_name1=rT69to_feature_name((T69*)rT51tmp_name());
/*IF*/if (rT51a_keyword(C,(T0 *)ms223)) {
/*IF*/if (rT51a_identifier(C)) {
R=1;
/*IF*/if (rT7is_equal((T7*)((T69*)rT51tmp_name())->_to_string,XrT67to_string(_name1))) {
rT51warning(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms224);
}
else {
{T119 *n=((T119*)se_new(119));
rT119make(n,_name1,rT69to_feature_name((T69*)rT51tmp_name()));
_rename_pair=(T0 *)n;}
rT118add_rename((T118*)(C)->_last_parent,_rename_pair);
}
/*FI*/}
else {
rT51fcp(C,(T0 *)ms225);
}
/*FI*/}
else {
rT51go_back(C,XrT67start_position(_name1));
}
/*FI*/}
/*FI*/return R;
}
void rT51a_rename_list(T51 *C){
while (!(!(rT51a_rename_pair(C)))) {
C->_ok=rT51skip1(C,'\54');
}
}
T0* rT51to_call(/*C*/T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if (!(a2)) {
R=a1;
}
 else if (!(a3)) {
{T163 *n=((T163*)se_new(163));
rT163make(n,a1,a2);
R=(T0 *)n;}}
 else if ((rT171count((T171*)a3))==(1)) {
{T175 *n=((T175*)se_new(175));
rT175make(n,a1,a2,a3);
R=(T0 *)n;}}
else {
{T176 *n=((T176*)se_new(176));
rT176make(n,a1,a2,a3);
R=(T0 *)n;}}
/*FI*/return R;
}
int rT51a_e10(T51 *C){
int R=0;
/*IF*/if (rT51a_strip(C)) {
R=1;
}
 else if (rT51skip1(C,'\50')) {
R=1;
/*IF*/if (rT51a_expression(C)) {
/*IF*/if (rT51skip1(C,'\51')) {
rT51a_r10(C,0,(C)->_last_expression,NULL,NULL);
}
else {
rT51fcp(C,(T0 *)ms297);
}
/*FI*/}
else {
rT51fcp(C,(T0 *)ms298);
}
/*FI*/}
 else if (rT51a_manifest_constant(C)) {
C->_last_expression=(C)->_last_manifest_constant;
R=1;
/*IF*/if (rT51skip1unless2(C,'\56','\56')) {
rT51wcp(C,(T0 *)ms299);
rT51a_after_a_dot(C,0,(C)->_last_expression);
}
/*FI*/}
 else if (rT51a_identifier(C)) {
R=1;
/*IF*/if (((((rT51a_result(C))||(rT51a_current(C)))||(rT51a_void(C)))||(rT51a_local_variable(C)))||(rT51a_argument(C))) {
rT51a_r10(C,0,(C)->_last_expression,NULL,NULL);
}
else {
rT51a_function_call(C);
}
/*FI*/}
/*FI*/return R;
}
void rT51a_assignment_aux(T51 *C,int a1){
T0* _rhs=NULL;
T0* _writable=NULL;
/*IF*/if (rT51a_current(C)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position((C)->_last_expression));
rT51fatal_error((T0 *)ms387);
}
 else if (rT51a_void(C)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT69start_position((T69*)rT51tmp_name()));
rT51fatal_error((T0 *)ms388);
}
 else if (rT51a_argument(C)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(XrT68start_position((C)->_last_expression));
rT51fatal_error((T0 *)ms389);
}
else {
/*IF*/if (rT7same_as((T7*)(T0 *)ms289,((T69*)rT51tmp_name())->_to_string)) {
/*IF*/if (!((C)->_function_type)) {
rT51error(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms290);
}
/*FI*/_writable=rT69to_e_result((T69*)rT51tmp_name());
}
 else if (rT51a_local_variable(C)) {
_writable=(C)->_last_expression;
}
else {
_writable=rT69to_feature_name((T69*)rT51tmp_name());
}
/*FI*//*IF*/if (rT51a_expression(C)) {
_rhs=(C)->_last_expression;
/*IF*/if (a1) {
{T249 *n=((T249*)se_new(249));
rT249make(n,_writable,_rhs);
C->_last_instruction=(T0 *)n;}}
else {
{T250 *n=((T250*)se_new(250));
rT250make(n,_writable,_rhs);
C->_last_instruction=(T0 *)n;}}
/*FI*/}
else {
rT51fcp(C,(T0 *)ms390);
}
/*FI*/}
/*FI*/}
int rT51a_assignment_or_call(T51 *C){
int R=0;
/*IF*/if ((rT51skip1(C,'\50'))&&(rT51a_expression(C))) {
R=1;
/*IF*/if (rT51skip1(C,'\51')) {
rT51a_r10(C,1,(C)->_last_expression,NULL,NULL);
}
else {
rT51fcp(C,(T0 *)ms386);
}
/*FI*/}
 else if (rT51a_identifier(C)) {
R=1;
/*IF*/if (rT51skip2(C,'\72','\75')) {
rT51a_assignment_aux(C,1);
}
 else if (rT51skip2(C,'\77','\75')) {
rT51a_assignment_aux(C,0);
}
 else if ((((rT51a_current(C))||(rT51a_result(C)))||(rT51a_local_variable(C)))||(rT51a_argument(C))) {
rT51a_r10(C,1,(C)->_last_expression,NULL,NULL);
}
else {
rT51a_procedure_call(C);
}
/*FI*/}
/*FI*/return R;
}
T0* rT51a_assertion(T51 *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')) {
rT51wcp(C,(T0 *)ms232);
C->_ok=rT51skip1(C,'\73');
/*IF*/if (((int)(C)->_last_comments)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,NULL,NULL,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/}
/*FI*/}
 else if (rT51a_tag_mark(C)) {
_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT51a_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 (rT51skip1(C,'\73')) {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,NULL,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT51a_tag_mark(C)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,NULL,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
}
 else if (rT51a_expression(C)) {
_expression=(C)->_last_expression;
_state=3;
}
else {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,NULL,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/goto l125;
 l129: ;
if (2 == iv1) goto l130;
goto l131;
 l130: ;
/*IF*/if (rT51skip1(C,'\73')) {
{T64 *n=((T64*)se_new(64));
rT64make(n,NULL,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT51a_tag_mark(C)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,NULL,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT51a_expression(C)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,NULL,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_expression=(C)->_last_expression;
_state=2;
}
else {
{T64 *n=((T64*)se_new(64));
rT64make(n,NULL,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/goto l125;
 l131: ;
/*IF*/if (rT51skip1(C,'\73')) {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_state=0;
}
 else if (rT51a_tag_mark(C)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_tag=(C)->_last_tag_mark;
_state=1;
}
 else if (rT51a_expression(C)) {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_expression=(C)->_last_expression;
_state=2;
}
else {
{T64 *n=((T64*)se_new(64));
rT64make(n,_tag,_expression,rT51get_comments(C));
_assertion=(T0 *)n;}
/*IF*/if (!(R)) {
R=ma(158,0,1,_assertion);
}
else {
rT158add_last((T158*)R,_assertion);
}
/*FI*/_state=4;
}
/*FI*/ l125: ;
}
}
return R;
}
void rT51a_formal_arg_list(T51 *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 (rT51skip1(C,'\50')) {
{T46 *n=((T46*)se_new(46));
rT46make(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 (rT51a_identifier(C)) {
_name=rT69to_decl_name((T69*)rT51tmp_name());
_state=2;
}
 else if (rT51skip1(C,'\51')) {
_state=6;
}
else {
_state=7;
}
/*FI*/goto l132;
 l136: ;
if (2 == iv1) goto l137;
goto l138;
 l137: ;
/*IF*/if (rT51skip1(C,'\72')) {
/*IF*/if (((int)_name_list)) {
rT141add_last((T141*)_name_list,_name);
_name=NULL;
}
/*FI*/_state=4;
}
else {
C->_ok=rT51skip1(C,'\54');
/*IF*/if (!(_name_list)) {
_name_list=ma(141,0,1,_name);
}
else {
rT141add_last((T141*)_name_list,_name);
}
/*FI*/_name=NULL;
_state=3;
}
/*FI*/goto l132;
 l138: ;
if (3 == iv1) goto l139;
goto l140;
 l139: ;
/*IF*/if (rT51a_identifier(C)) {
_name=rT69to_decl_name((T69*)rT51tmp_name());
_state=2;
}
 else if (((((C)->_cc)==('\54'))||(((C)->_cc)==('\73')))) {
rT51wcp(C,(T0 *)ms252);
C->_ok=(rT51skip1(C,'\54'))||(rT51skip1(C,'\73'));
}
else {
_state=7;
}
/*FI*/goto l132;
 l140: ;
if (4 == iv1) goto l141;
goto l142;
 l141: ;
/*IF*/if (rT51a_type(C)) {
/*IF*/if (((int)_name_list)) {
{T142 *n=((T142*)se_new(142));
rT142make(n,_name_list,(C)->_last_type);
_declaration=(T0 *)n;}_name_list=NULL;
}
else {
{T94 *n=((T94*)se_new(94));
rT94make(n,_name,(C)->_last_type);
_declaration=(T0 *)n;}_name=NULL;
}
/*FI*//*IF*/if (!(_list)) {
_list=ma(143,0,1,_declaration);
}
else {
XrT143add_last(_list,_declaration);
}
/*FI*/_declaration=NULL;
_state=5;
}
else {
_state=7;
}
/*FI*/goto l132;
 l142: ;
/*IF*/if (rT51skip1(C,'\51')) {
_state=6;
}
 else if (((C)->_cc)==('\54')) {
rT51wcp(C,(T0 *)ms253);
C->_ok=rT51skip1(C,'\54');
_state=1;
}
else {
C->_ok=rT51skip1(C,'\73');
_state=1;
}
/*FI*/ l132: ;
}
}
/*IF*/if ((_state)==(7)) {
rT51fcp(C,(T0 *)ms254);
}
 else if ((((int)_sp))&&(!(_list))) {
rT51warning(_sp,(T0 *)ms255);
}
 else if (((int)_sp)) {
{T92 *n=((T92*)se_new(92));
rT92make(n,_sp,_list);
C->_arguments=(T0 *)n;}
/*(IRF3*/(((T136*)oRBC51tmp_feature)->_arguments)=((C)->_arguments);
/*)*/}
/*FI*/}
void rT51a_undefine_list(T51 *C){
/*IF*/if (rT51a_feature_list(C)) {
rT118set_undefine((T118*)(C)->_last_parent,(C)->_last_feature_list);
}
/*FI*/}
int rT51a_prefix(T51 *C){
int R=0;
/*IF*/if (rT51a_keyword(C,(T0 *)ms75)) {
R=1;
/*IF*/if (((C)->_cc)==('\42')) {
rT51next_char(C);
}
else {
rT51wcp(C,(T0 *)ms77);
}
/*FI*//*IF*/if (rT51a_unary(C)) {
}
 else if (rT51a_free_operator(C)) {
C->_last_prefix=rT69to_prefix_name((T69*)rT51tmp_operator());
}
else {
rT51fcp(C,(T0 *)ms82);
}
/*FI*//*IF*/if (!(rT51skip1(C,'\42'))) {
rT51wcp(C,(T0 *)ms83);
}
/*FI*/}
/*FI*/return R;
}
void rT51a_formal_generic_list(T51 *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 (rT51skip1(C,'\133')) {
{T46 *n=((T46*)se_new(46));
rT46make(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 (rT51a_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 (rT51skip2(C,'\55','\76')) {
_state=4;
}
 else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
{T84 *n=((T84*)se_new(84));
rT84make(n,_name,_constraint);
_fga=(T0 *)n;}
_name=NULL;
_constraint=NULL;
/*IF*/if (!(_list)) {
_list=ma(86,0,1,_fga);
}
else {
rT86add_last((T86*)_list,_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (rT51skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=rT51skip1(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'))) {
{T84 *n=((T84*)se_new(84));
rT84make(n,_name,_constraint);
_fga=(T0 *)n;}
_name=NULL;
_constraint=NULL;
/*IF*/if (!(_list)) {
_list=ma(86,0,1,_fga);
}
else {
rT86add_last((T86*)_list,_fga);
}
/*FI*/_fga=NULL;
/*IF*/if (rT51skip1(C,'\54')) {
_state=1;
}
else {
C->_ok=rT51skip1(C,'\135');
_state=5;
}
/*FI*/}
else {
_state=6;
}
/*FI*/goto l143;
 l151: ;
/*IF*/if (rT51a_class_type(C)) {
_constraint=(C)->_last_class_type;
_state=3;
}
else {
rT51fcp(C,(T0 *)ms213);
_state=6;
}
/*FI*/ l143: ;
}
}
/*IF*/if ((_state)==(6)) {
}
 else if ((((int)_sp))&&(!(_list))) {
rT51warning(_sp,(T0 *)ms214);
}
 else if (((int)_sp)) {
{T85 *n=((T85*)se_new(85));
rT85make(n,_sp,_list);
C->_formal_generic_list=(T0 *)n;}
/*(IRF3*/(((T50*)(C)->_last_base_class)->_formal_generic_list)=((C)->_formal_generic_list);
/*)*/}
/*FI*/}
void rT51fatal_error(/*C*/T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45fatal_error(a1);
}
void rT51a_function_call(T51 *C){
T0* _e_current=NULL;
T0* _fn=NULL;
_fn=rT69to_feature_name((T69*)rT51tmp_name());
{T89 *n=((T89*)se_new(89));
rT89make(n,XrT67start_position(_fn),0);
_e_current=(T0 *)n;}
rT51a_r10(C,0,_e_current,_fn,rT51a_actuals(C));
}
int rT51a_keyword(T51 *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);
rT51next_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;
rT51skip_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))) {
rT51prev_char(C);
_i=(_i)-(1);
}
goto l152;
 l156: ;
R=1;
C->_last_keyword=a1;
 l152: ;
}
}
else {
while (!((_i)==(0))) {
rT51prev_char(C);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
int rT51a_loop(T51 *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 (rT51a_keyword(C,(T0 *)ms368)) {
R=1;
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
_i=rT51a_compound1(C,(T0 *)ms369);
/*IF*/if (rT51a_keyword(C,(T0 *)ms370)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp2=(T0 *)n;}
_hc=rT51get_comments(C);
_al=rT51a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T237 *n=((T237*)se_new(237));
rT237make(n,_sp2,_hc,_al);
_ic=(T0 *)n;}
}
/*FI*/}
/*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms371)) {
/*IF*/if ((rT51a_tag_mark(C))&&(rT51a_expression(C))) {
{T239 *n=((T239*)se_new(239));
rT239make(n,(C)->_last_tag_mark,(C)->_last_expression,rT51get_comments(C));
_vc=(T0 *)n;}}
 else if (rT51a_expression(C)) {
{T240 *n=((T240*)se_new(240));
rT240make(n,(C)->_last_expression,rT51get_comments(C));
_vc=(T0 *)n;}}
else {
rT51wcp(C,(T0 *)ms372);
}
/*FI*/}
/*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms373)) {
/*IF*/if (rT51a_expression(C)) {
_ue=XrT68add_comment((C)->_last_expression,rT51get_comments(C));
}
else {
rT51fcp(C,(T0 *)ms374);
_ue=(C)->_last_expression;
}
/*FI*/}
else {
rT51fcp(C,(T0 *)ms375);
_ue=(C)->_last_expression;
}
/*FI*//*IF*/if (((C)->_cc)==('\73')) {
rT51wcp(C,(T0 *)ms232);
C->_ok=rT51skip1(C,'\73');
}
/*FI*//*IF*/if (!(rT51a_keyword(C,(T0 *)ms376))) {
rT51wcp(C,(T0 *)ms377);
}
/*FI*/_lb=rT51a_compound2(C,(T0 *)ms378,(T0 *)ms115);
{T236 *n=((T236*)se_new(236));
rT236make(n,_sp,_i,_ic,_vc,_ue,_lb);
_e_loop=(T0 *)n;}
C->_last_instruction=_e_loop;
}
/*FI*/return R;
}
int rT51a_inspect(T51 *C){
int R=0;
T0* _ec=NULL;
T0* _i=NULL;
T0* _spec=NULL;
T0* _sp=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms359)) {
R=1;
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_expression(C)) {
C->_last_expression=XrT68add_comment((C)->_last_expression,rT51get_comments(C));
}
else {
rT51fcp(C,(T0 *)ms360);
}
/*FI*/{T226 *n=((T226*)se_new(226));
rT226make(n,_sp,(C)->_last_expression);
_i=(T0 *)n;}
while (!(!(rT51a_when_part(C,_i)))) {
}
/*IF*/if (rT51a_keyword(C,(T0 *)ms101)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_spec=(T0 *)n;}
_ec=rT51a_compound2(C,(T0 *)ms366,(T0 *)ms115);
rT226set_else_compound((T226*)_i,_spec,_ec);
}
 else if (!(rT51a_keyword(C,(T0 *)ms115))) {
rT51wcp(C,(T0 *)ms367);
}
/*FI*/C->_last_instruction=_i;
}
/*FI*/return R;
}
int rT51a_instruction(T51 *C){
int R=0;
R=(((((((rT51a_check(C))||(rT51a_debug(C)))||(rT51a_conditional(C)))||(rT51a_retry(C)))||(rT51a_inspect(C)))||(rT51a_loop(C)))||(rT51a_creation(C)))||(rT51a_assignment_or_call(C));
return R;
}
int rT51a_result(T51 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms289,((T69*)rT51tmp_name())->_to_string)) {
/*IF*/if (!((C)->_function_type)) {
rT51error(rT69start_position((T69*)rT51tmp_name()),(T0 *)ms290);
}
/*FI*/C->_last_expression=rT69to_e_result((T69*)rT51tmp_name());
R=1;
}
/*FI*/return R;
}
void rT51a_new_export_list(T51 *C){
int _state=0;
T0* _new_export_item=NULL;
T0* _items=NULL;
T0* _clients=NULL;
T0* _sp=NULL;
T0* _export_list=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms227)) {
{T46 *n=((T46*)se_new(46));
rT46make(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=rT51a_clients(C);
_state=1;
}
 else if (((C)->_cc)==('\73')) {
rT51wcp(C,(T0 *)ms232);
C->_ok=rT51skip1(C,'\73');
}
else {
/*IF*/if (((int)_items)) {
{T122 *n=((T122*)se_new(122));
rT122make(n,_sp,_items);
_export_list=(T0 *)n;}
/*(IRF3*/(((T118*)(C)->_last_parent)->_export_list)=(_export_list);
/*)*/}
/*FI*/_state=4;
}
/*FI*/goto l157;
 l159: ;
if (1 == iv1) goto l160;
goto l161;
 l160: ;
/*IF*/if (rT51a_keyword(C,(T0 *)ms233)) {
{T124 *n=((T124*)se_new(124));
rT124make_all(n,_clients);
_new_export_item=(T0 *)n;}
/*IF*/if (!(_items)) {
_items=ma(127,0,1,_new_export_item);
}
else {
rT127add_last((T127*)_items,_new_export_item);
}
/*FI*/_state=2;
}
else {
/*IF*/if (rT51a_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(127,0,1,_new_export_item);
}
else {
rT127add_last((T127*)_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 (rT51skip1(C,'\73')) {
_state=0;
}
 else if (((C)->_cc)==('\173')) {
rT51wcp(C,(T0 *)ms236);
_state=0;
}
else {
/*IF*/if (((int)_items)) {
{T122 *n=((T122*)se_new(122));
rT122make(n,_sp,_items);
_export_list=(T0 *)n;}
/*(IRF3*/(((T118*)(C)->_last_parent)->_export_list)=(_export_list);
/*)*/}
/*FI*/_state=4;
}
/*FI*/goto l157;
 l163: ;
rT51fcp(C,(T0 *)ms230);
_state=4;
 l157: ;
}
}
}
/*FI*/}
int rT51a_current(T51 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms199,((T69*)rT51tmp_name())->_to_string)) {
C->_last_expression=rT69to_e_current((T69*)rT51tmp_name());
R=1;
}
/*FI*/return R;
}
int rT51a_retry(T51 *C){
int R=0;
/*IF*/if (rT51a_keyword(C,(T0 *)ms357)) {
/*IF*/if (!((C)->_in_rescue)) {
rT51error(rT51pos((C)->_start_line,(C)->_start_column),(T0 *)ms358);
}
/*FI*/{T225 *n=((T225*)se_new(225));
/*(IRF3*/((n)->_start_position)=(rT51pos((C)->_start_line,(C)->_start_column));
/*)*/C->_last_instruction=(T0 *)n;}R=1;
}
/*FI*/return R;
}
int rT51a_integer_constant(T51 *C){
int R=0;
/*IF*/if (rT51skip1(C,'\53')) {
/*IF*/if (!(rT51a_integer(C))) {
rT51fcp(C,(T0 *)ms169);
}
else {
R=1;
}
/*FI*/}
 else if (rT51skip1(C,'\55')) {
/*IF*/if (!(rT51a_integer(C))) {
rT51fcp(C,(T0 *)ms169);
}
else {
C->_last_integer_constant=rT80_px45((T80*)(C)->_last_integer_constant);
R=1;
}
/*FI*/}
else {
R=rT51a_integer(C);
}
/*FI*/return R;
}
int rT51a_integer(T51 *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))) {
rT51next_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: ;
rT51fcp(C,(T0 *)ms165);
 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: ;
rT51fcp(C,(T0 *)ms165);
 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: ;
rT51fcp(C,(T0 *)ms165);
 l182: ;
}
 l164: ;
}
rT51skip_comments(C);
{T80 *n=((T80*)se_new(80));
rT80make(n,_value,rT51pos((C)->_start_line,(C)->_start_column));
C->_last_integer_constant=(T0 *)n;}
}
}
/*FI*/return R;
}
void rT51err_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 *)ms279);
rT7append((T7*)_msg,a2);
rT7append((T7*)_msg,(T0 *)ms280);
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT51fatal_error(_msg);
}
int rT51a_expression(T51 *C){
int R=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (rT51skip2(C,'\74','\74')) {
R=1;
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
while (!(!(rT51a_expression(C)))) {
/*IF*/if (!(_list)) {
_list=ma(81,0,1,(C)->_last_expression);
}
else {
XrT81add_last(_list,(C)->_last_expression);
}
/*FI*/C->_ok=rT51skip1(C,'\54');
}
/*IF*/if (!(rT51skip2(C,'\76','\76'))) {
rT51fcp(C,(T0 *)ms278);
}
/*FI*/{T160 *n=((T160*)se_new(160));
rT160make(n,_sp,_list);
C->_last_expression=(T0 *)n;}}
else {
R=rT51a_e0(C);
}
/*FI*/return R;
}
int rT51a_void(T51 *C){
int R=0;
/*IF*/if (rT7same_as((T7*)(T0 *)ms291,((T69*)rT51tmp_name())->_to_string)) {
C->_last_expression=rT69to_e_void((T69*)rT51tmp_name());
R=1;
}
/*FI*/return R;
}
void rT51a_procedure_call(T51 *C){
T0* _e_current=NULL;
T0* _fn=NULL;
_fn=rT69to_feature_name((T69*)rT51tmp_name());
{T89 *n=((T89*)se_new(89));
rT89make(n,XrT67start_position(_fn),0);
_e_current=(T0 *)n;}
rT51a_r10(C,1,_e_current,_fn,rT51a_actuals(C));
}
T0* rT51a_external_name(T51 *C){
T0* R=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms337)) {
/*IF*/if (!(rT51a_manifest_string(C))) {
rT51fcp(C,(T0 *)ms338);
}
else {
R=((T76*)(C)->_last_manifest_string)->_to_string;
}
/*FI*/}
/*FI*/return R;
}
T0* rT51a_external(T51 *C){
T0* R=NULL;
T0* _external_lgg=NULL;
/*IF*/if (!(rT51a_manifest_string(C))) {
rT51fcp(C,(T0 *)ms331);
_external_lgg=((T0 *)((T208*)se_new(208)));
}
 else if (rT7is_equal(ms332,((T76*)(C)->_last_manifest_string)->_to_string)) {
_external_lgg=((T0 *)((T208*)se_new(208)));
}
 else if (rT7is_equal(ms333,((T76*)(C)->_last_manifest_string)->_to_string)) {
_external_lgg=((T0 *)((T209*)se_new(209)));
}
 else if (rT7is_equal(ms334,((T76*)(C)->_last_manifest_string)->_to_string)) {
_external_lgg=((T0 *)((T210*)se_new(210)));
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms335);
(/*UT*/(void)(T45*)oRBC27eh);
rT45append(((T76*)(C)->_last_manifest_string)->_to_string);
rT51fcp(C,(T0 *)ms336);
_external_lgg=((T0 *)((T208*)se_new(208)));
}
/*FI*/R=rT136to_external_routine((T136*)oRBC51tmp_feature,_external_lgg,rT51a_external_name(C));
return R;
}
T0*oRBC51forbidden_class;
void rT51a_r10(T51 *C,int a1,T0* a2,T0* a3,T0* a4){
/*IF*/if (rT51skip1unless2(C,'\56','\56')) {
rT51a_after_a_dot(C,a1,rT51to_call(a2,a3,a4));
}
else {
/*IF*/if (a1) {
C->_last_instruction=rT51to_proc_call(C,a2,a3,a4);
C->_last_expression=NULL;
}
else {
C->_last_expression=rT51to_call(a2,a3,a4);
C->_last_instruction=NULL;
}
/*FI*/}
/*FI*/}
T0* rT51analyse_class(T51 *C,T0* a1){
T0* R=NULL;
int _old_nbw=0;
int _old_nbe=0;
/*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)>(0)) {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms70);
/*(IRF3*/(/*UT*/(void)(T45*)oRBC27eh);
rT45do_print((T0 *)ms43);
rT45die_with_code(1);
/*)*/}
/*FI*//*IF*/if (/*(IRF4*/(!(/*(IRF4*/(!(/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/))&&(((T52*)oRBC27small_eiffel)->_is_doing_eval_flag)/*)*/))&&(((T52*)oRBC27small_eiffel)->_is_compiling_flag)/*)*/) {
rT41put_integer((T41*)oRBC1std_output,(/*(IRF4*/((/*UT*/(void)(T52*)oRBC27small_eiffel),
((T54*)oRBC52base_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*/((T45*)oRBC27eh)->_nb_errors/*)*/;
_old_nbw=/*(IRF4*/((T45*)oRBC27eh)->_nb_warnings/*)*/;
C->_is_running=1;
C->_function_type=NULL;
C->_in_ensure=0;
C->_last_comments=NULL;
rT60read((T60*)oRBC51text,a1);
C->_line=1;
C->_column=1;
C->_current_line=((/*UT*/(void)(T60*)oRBC51text),
rT60item((C)->_line));
/*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
C->_cc='\12';
}
else {
C->_cc=rT7first((T7*)(C)->_current_line);
}
/*FI*/{T50 *n=((T50*)se_new(50));
rT50make(n,a1);
C->_last_base_class=(T0 *)n;}
rT51skip_comments(C);
rT51a_class_declaration(C);
C->_is_running=0;
R=(C)->_last_base_class;
/*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_old_nbe))>(0)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms406);
rT37put_integer((T37*)oRBC1std_error,/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms407);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms408);
rT37put_string((T37*)oRBC1std_error,a1);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms409);
R=NULL;
}
 else if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_warnings/*)*/)-(_old_nbw))>(0)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms410);
rT37put_integer((T37*)oRBC1std_error,/*(IRF4*/((T45*)oRBC27eh)->_nb_warnings/*)*/);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms411);
}
/*FI*//*IF*/if (((int)R)) {
rT52add_class((T52*)oRBC27small_eiffel,R);
rT50get_started((T50*)R);
}
/*FI*/return R;
}
T0* rT51a_routine_body(T51 *C){
T0* R=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms329)) {
rT50set_is_deferred((T50*)(C)->_last_base_class);
R=rT136to_deferred_routine((T136*)oRBC51tmp_feature);
}
 else if (rT51a_keyword(C,(T0 *)ms330)) {
R=rT51a_external(C);
}
 else if (rT51a_keyword(C,(T0 *)ms339)) {
/*(IRF3*/(((T136*)oRBC51tmp_feature)->_routine_body)=(rT51a_compound1(C,(T0 *)ms391));
/*)*/R=rT136to_procedure_or_function((T136*)oRBC51tmp_feature);
}
 else if (rT51a_keyword(C,(T0 *)ms392)) {
/*(IRF3*/(((T136*)oRBC51tmp_feature)->_routine_body)=(rT51a_compound1(C,(T0 *)ms393));
/*)*/R=rT136to_once_routine((T136*)oRBC51tmp_feature);
}
else {
rT51fcp(C,(T0 *)ms394);
}
/*FI*/return R;
}
T0* rT51a_routine(T51 *C){
T0* R=NULL;
T0* _ea=NULL;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms275)) {
/*IF*/if (rT51a_manifest_string(C)) {
/*(IRF3*/(((T136*)oRBC51tmp_feature)->_obsolete_mark)=((C)->_last_manifest_string);
/*)*/}
else {
rT51fcp(C,(T0 *)ms276);
}
/*FI*/}
/*FI*//*(IRF3*/(((T136*)oRBC51tmp_feature)->_header_comment)=(rT51get_comments(C));
/*)*//*IF*/if (rT51a_keyword(C,(T0 *)ms277)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_keyword(C,(T0 *)ms101)) {
_hc=rT51get_comments(C);
rT136set_require_else((T136*)oRBC51tmp_feature,_sp,_hc,rT51a_assertion(C));
}
else {
_hc=rT51get_comments(C);
rT136set_require((T136*)oRBC51tmp_feature,_sp,_hc,rT51a_assertion(C));
}
/*FI*/}
/*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms323)) {
rT51a_local_var_list(C,rT51pos((C)->_start_line,(C)->_start_column));
}
/*FI*/R=rT51a_routine_body(C);
/*IF*/if (rT51a_keyword(C,(T0 *)ms395)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
C->_in_ensure=1;
/*IF*/if (rT51a_keyword(C,(T0 *)ms98)) {
_hc=rT51get_comments(C);
_al=rT51a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T157 *n=((T157*)se_new(157));
rT157make(n,_sp,_hc,_al);
_ea=(T0 *)n;}
/*(IRF3*/(((T157*)_ea)->_is_ensure_then)=(1);
/*)*/}
/*FI*/XrT156set_ensure_assertion(R,_ea);
}
else {
_hc=rT51get_comments(C);
_al=rT51a_assertion(C);
/*IF*/if ((((int)_hc))||(((int)_al))) {
{T157 *n=((T157*)se_new(157));
rT157make(n,_sp,_hc,_al);
_ea=(T0 *)n;}
}
/*FI*/XrT156set_ensure_assertion(R,_ea);
}
/*FI*/C->_in_ensure=0;
}
/*FI*//*IF*/if (rT51a_keyword(C,(T0 *)ms396)) {
C->_in_rescue=1;
XrT156set_rescue_compound(R,rT51a_compound2(C,(T0 *)ms398,(T0 *)ms115));
C->_in_rescue=0;
}
else {
/*IF*/if (!(rT51a_keyword(C,(T0 *)ms115))) {
rT51wcp(C,(T0 *)ms399);
}
/*FI*/}
/*FI*/C->_local_vars=NULL;
return R;
}
T0*oRBC51tmp_feature;
void rT51skip_comments(T51 *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: ;
rT51next_char(C);
goto l188;
 l190: ;
if (45 == iv2) goto l191;
goto l192;
 l191: ;
rT51next_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)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_line,((C)->_column)-(1));
_sp=(T0 *)n;}
}
/*FI*/rT51next_char(C);
/*(IRF3*/(((T7*)oRBC51lcs)->_count)=(0);
/*)*/while (!(((C)->_cc)==('\12'))) {
rT7extend((T7*)oRBC51lcs,(C)->_cc);
rT51next_char(C);
}
/*IF*/if (!((C)->_last_comments)) {
{T59 *n=((T59*)se_new(59));
rT59make(n,_sp,ma(34,0,1,rT7twin((T7*)oRBC51lcs)));
C->_last_comments=(T0 *)n;}
}
else {
rT59add_last((T59*)(C)->_last_comments,rT7twin((T7*)oRBC51lcs));
}
/*FI*/_state=0;
goto l195;
 l197: ;
rT51prev_char(C);
_state=2;
 l195: ;
}
goto l185;
 l194: ;
 l185: ;
}
}
}
int rT51a_strip(T51 *C){
int R=0;
T0* _sp=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms286)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51skip1(C,'\50')) {
C->_ok=rT51a_feature_list(C);
{T170 *n=((T170*)se_new(170));
rT170make(n,_sp,(C)->_last_feature_list);
C->_last_expression=(T0 *)n;}/*IF*/if (!(rT51skip1(C,'\51'))) {
rT51fcp(C,(T0 *)ms287);
}
/*FI*/R=1;
}
else {
rT51fcp(C,(T0 *)ms288);
}
/*FI*/}
/*FI*/return R;
}
void rT51prev_char(T51 *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)(T60*)oRBC51text),
rT60item((C)->_line));
C->_column=(((T7*)(C)->_current_line)->_count)+(1);
C->_cc='\12';
}
else {
C->_column=0;
C->_cc='\0';
}
/*FI*/}
/*FI*/}
int rT51a_type(T51 *C){
int R=0;
T0* _argument_name=NULL;
T0* _sp=NULL;
R=1;
/*IF*/if (rT51a_keyword(C,(T0 *)ms198)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_identifier(C)) {
/*IF*/if (rT51a_current(C)) {
{T90 *n=((T90*)se_new(90));
rT90make(n,_sp,(C)->_last_expression);
C->_last_type=(T0 *)n;}}
 else if (rT51a_argument(C)) {
_argument_name=(C)->_last_expression;
if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
case 88: 
break;
default:
_argument_name = NULL;
};{T98 *n=((T98*)se_new(98));
rT98make(n,_sp,_argument_name);
C->_last_type=(T0 *)n;}}
else {
{T99 *n=((T99*)se_new(99));
rT99make(n,_sp,rT69to_feature_name((T69*)rT51tmp_name()));
C->_last_type=(T0 *)n;}}
/*FI*/}
else {
rT51fcp(C,(T0 *)ms202);
}
/*FI*/}
 else if (rT51a_keyword(C,(T0 *)ms117)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_class_type(C)) {
{T100 *n=((T100*)se_new(100));
rT100make(n,_sp,(C)->_last_class_type);
C->_last_type=(T0 *)n;}}
else {
rT51fcp(C,(T0 *)ms204);
}
/*FI*/}
 else if (rT51a_keyword(C,(T0 *)ms195)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_integer(C)) {
{T101 *n=((T101*)se_new(101));
rT101make(n,_sp,(C)->_last_integer_constant);
C->_last_type=(T0 *)n;}}
 else if (rT51a_identifier(C)) {
{T103 *n=((T103*)se_new(103));
rT103make(n,_sp,rT69to_feature_name((T69*)rT51tmp_name()));
C->_last_type=(T0 *)n;}}
else {
rT51fcp(C,(T0 *)ms205);
}
/*FI*/}
 else if (rT51a_type_formal_generic(C)) {
C->_last_type=(C)->_last_type_formal_generic;
}
 else if (rT51a_class_type(C)) {
C->_last_type=(C)->_last_class_type;
}
else {
R=0;
}
/*FI*/return R;
}
int rT51a_type_formal_generic(T51 *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)>(rT85count((T85*)(C)->_formal_generic_list))))) {
_fga=rT85item((T85*)(C)->_formal_generic_list,_rank);
/*IF*/if (rT51a_keyword(C,((T48*)((T84*)_fga)->_name)->_to_string)) {
{T48 *n=((T48*)se_new(48));
rT48make(n,((T48*)((T84*)_fga)->_name)->_to_string,rT51pos((C)->_start_line,(C)->_start_column));
_cn=(T0 *)n;}
{T104 *n=((T104*)se_new(104));
rT104make(n,_cn,_rank);
C->_last_type_formal_generic=(T0 *)n;}
R=1;
}
/*FI*/_rank=(_rank)+(1);
}
}
/*FI*/return R;
}
void rT51next_char(T51 *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)==(((T60*)oRBC51text)->_count)) {
C->_cc='\0';
}
else {
C->_column=1;
C->_line=((C)->_line)+(1);
C->_current_line=((/*UT*/(void)(T60*)oRBC51text),
rT60item((C)->_line));
/*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
C->_cc='\12';
}
else {
C->_cc=rT7first((T7*)(C)->_current_line);
}
/*FI*/}
/*FI*/}
int ofBC51tmp_name=0;
T0*oRBC51tmp_name;
T0* rT51tmp_name(/*C*/void){
if (ofBC51tmp_name==0){
T0* R=NULL;
ofBC51tmp_name=1;
{T69 *n=((T69*)se_new(69));
rT69make(n,0,0);
R=(T0 *)n;}
oRBC51tmp_name=R;}
return oRBC51tmp_name;}
int ofBC51tmp_operator=0;
T0*oRBC51tmp_operator;
T0* rT51tmp_operator(/*C*/void){
if (ofBC51tmp_operator==0){
T0* R=NULL;
ofBC51tmp_operator=1;
{T69 *n=((T69*)se_new(69));
rT69make(n,0,0);
R=(T0 *)n;}
oRBC51tmp_operator=R;}
return oRBC51tmp_operator;}
T0* rT51current_position(T51 *C){
T0* R=NULL;
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_line,(C)->_column);
R=(T0 *)n;}
return R;
}
void rT51warning(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45warning((T45*)oRBC27eh,a2);
}
T0* rT51current_class_name(T51 *C){
T0* R=NULL;
R=((T50*)(C)->_last_base_class)->_base_class_name;
return R;
}
T0* rT51to_proc_call(T51 *C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*IF*/if (!(a2)) {
rT51fcp(C,(T0 *)ms296);
}
 else if (!(a3)) {
{T179 *n=((T179*)se_new(179));
rT179make(n,a1,a2);
R=(T0 *)n;}}
 else if ((rT171count((T171*)a3))==(1)) {
{T180 *n=((T180*)se_new(180));
rT180make(n,a1,a2,a3);
R=(T0 *)n;}}
else {
{T181 *n=((T181*)se_new(181));
rT181make(n,a1,a2,a3);
R=(T0 *)n;}}
/*FI*/return R;
}
void rT51error(/*C*/T0* a1,T0* a2){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(a1);
rT45error((T45*)oRBC27eh,a2);
}
void rT51ecp(T51 *C,T0* a1){
rT51error(rT51current_position(C),a1);
}
void rT51fcp(T51 *C,T0* a1){
(/*UT*/(void)(T45*)oRBC27eh);
rT45add_position(rT51current_position(C));
rT51fatal_error(a1);
}
T0*oRBC51lcs;
T0*oRBC51text;
void rT51wcp(T51 *C,T0* a1){
rT51warning(rT51current_position(C),a1);
}
T0* rT51pos(/*C*/int a1,int a2){
T0* R=NULL;
{T46 *n=((T46*)se_new(46));
rT46make(n,a1,a2);
R=(T0 *)n;}
return R;
}
int rT51a_e0(T51 *C){
int R=0;
R=rT51a_e1(C);
rT51a_r1(C,(C)->_last_expression);
return R;
}
int rT51a_e1(T51 *C){
int R=0;
R=rT51a_e2(C);
rT51a_r2(C,(C)->_last_expression);
return R;
}
int rT51a_e2(T51 *C){
int R=0;
R=rT51a_e3(C);
rT51a_r3(C,(C)->_last_expression);
return R;
}
int rT51a_e3(T51 *C){
int R=0;
R=rT51a_e4(C);
rT51a_r4(C,(C)->_last_expression);
return R;
}
int rT51a_e4(T51 *C){
int R=0;
R=rT51a_e5(C);
rT51a_r5(C,(C)->_last_expression);
return R;
}
int rT51a_e5(T51 *C){
int R=0;
R=rT51a_e6(C);
rT51a_r6(C,(C)->_last_expression);
return R;
}
int rT51a_e6(T51 *C){
int R=0;
R=rT51a_e7(C);
rT51a_r7(C,(C)->_last_expression);
return R;
}
int rT51a_e7(T51 *C){
int R=0;
R=rT51a_e8(C);
rT51a_r8(C,(C)->_last_expression);
return R;
}
int rT51a_e8(T51 *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 (rT51a_keyword(C,(T0 *)ms78)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_e8(C)) {
{T161 *n=((T161*)se_new(161));
rT161make(n,_sp,(C)->_last_expression);
_prefix_not=(T0 *)n;}
C->_last_expression=_prefix_not;
R=1;
}
else {
rT51err_exp(_sp,(T0 *)ms78);
}
/*FI*/}
 else if (rT51skip1(C,'\53')) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_e8(C)) {
{T166 *n=((T166*)se_new(166));
rT166make(n,_sp,(C)->_last_expression);
_prefix_plus=(T0 *)n;}
C->_last_expression=_prefix_plus;
R=1;
}
else {
rT51err_exp(_sp,(T0 *)ms281);
}
/*FI*/}
 else if (rT51skip1(C,'\55')) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_e8(C)) {
{T167 *n=((T167*)se_new(167));
rT167make(n,_sp,(C)->_last_expression);
_prefix_moins=(T0 *)n;}
C->_last_expression=_prefix_moins;
R=1;
}
else {
rT51err_exp(_sp,(T0 *)ms282);
}
/*FI*/}
 else if (rT51a_free_operator(C)) {
_op=rT69to_prefix_name((T69*)rT51tmp_operator());
/*IF*/if (rT51a_e8(C)) {
{T168 *n=((T168*)se_new(168));
rT168make(n,(C)->_last_expression,_op);
_prefix_freeop=(T0 *)n;}
C->_last_expression=_prefix_freeop;
R=1;
}
else {
(/*UT*/(void)(T45*)oRBC27eh);
rT45append((T0 *)ms283);
rT51err_exp(((T66*)_op)->_start_position,((T66*)_op)->_to_string);
}
/*FI*/}
else {
R=rT51a_e9(C);
}
/*FI*/return R;
}
int rT51a_e9(T51 *C){
int R=0;
T0* _e_old=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms284)) {
/*IF*/if (!((C)->_in_ensure)) {
rT51error(rT51pos((C)->_start_line,(C)->_start_column),(T0 *)ms285);
}
/*FI*//*IF*/if (rT51a_e10(C)) {
{T169 *n=((T169*)se_new(169));
/*(IRF3*/((n)->_expression)=((C)->_last_expression);
/*)*/_e_old=(T0 *)n;}
C->_last_expression=_e_old;
R=1;
}
else {
rT51fcp(C,(T0 *)ms300);
}
/*FI*/}
else {
R=rT51a_e10(C);
}
/*FI*/return R;
}
void rT51a_r1(T51 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_implies=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms96)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_e1(C)) {
{T203 *n=((T203*)se_new(203));
rT203make(n,a1,_sp,(C)->_last_expression);
_infix_implies=(T0 *)n;}
rT51a_r1(C,_infix_implies);
}
else {
rT51error(_sp,(T0 *)ms322);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
void rT51a_r2(T51 *C,T0* a1){
T0* _sp=NULL;
T0* _infix_xor=NULL;
T0* _infix_or=NULL;
T0* _infix_or_else=NULL;
/*IF*/if (rT51a_keyword(C,(T0 *)ms100)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_keyword(C,(T0 *)ms101)) {
/*IF*/if (rT51a_e2(C)) {
{T200 *n=((T200*)se_new(200));
rT200make(n,a1,_sp,(C)->_last_expression);
_infix_or_else=(T0 *)n;}
rT51a_r2(C,_infix_or_else);
}
else {
rT51err_exp(_sp,(T0 *)ms102);
}
/*FI*/}
else {
/*IF*/if (rT51a_e2(C)) {
{T201 *n=((T201*)se_new(201));
rT201make(n,a1,_sp,(C)->_last_expression);
_infix_or=(T0 *)n;}
rT51a_r2(C,_infix_or);
}
else {
rT51err_exp(_sp,(T0 *)ms100);
}
/*FI*/}
/*FI*/}
 else if (rT51a_keyword(C,(T0 *)ms95)) {
{T46 *n=((T46*)se_new(46));
rT46make(n,(C)->_start_line,(C)->_start_column);
_sp=(T0 *)n;}
/*IF*/if (rT51a_e2(C)) {
{T202 *n=((T202*)se_new(202));
rT202make(n,a1,_sp,(C)->_last_expression);
_infix_xor=(T0 *)n;}
rT51a_r2(C,_infix_xor);
}
else {
rT51err_exp(_sp,(T0 *)ms95);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}

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