/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "compile_to_jvm.h"
/*No:EIFFEL_PARSER.cc*/
/*No:EIFFEL_PARSER.ok*/
void r818a_r5(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_minus=NULL;
T0* _infix_plus=NULL;
/*IF*/if (r818skip1(C,'\53')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e5(C)) {
{T253*n=malloc(sizeof(*n));
*n=M253;
r253make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_plus=(T0*)n;
}
r818a_r5(C,_infix_plus);
}
else {
r818err_exp(_sp,((T0*)ms43_473));
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e5(C)) {
{T574*n=malloc(sizeof(*n));
*n=M574;
r574make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_minus=(T0*)n;
}
r818a_r5(C,_infix_minus);
}
else {
r818err_exp(_sp,((T0*)ms37_473));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e5(T818* C){
int R=0;
R=r818a_e6(C);
r818a_r6(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.arguments*/
/*No:EIFFEL_PARSER.fz_creation*/
/*No:EIFFEL_PARSER.em14*/
int r818a_binary(T818* C,T0* a1){
int R=0;
R=1;
/*IF*/if (r818skip2(C,'\74','\75')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms35_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip2(C,'\76','\75')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms32_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip2(C,'\57','\57')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms45_818),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip2(C,'\134','\134')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms46_818),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\53')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms43_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\55')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms37_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\52')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms38_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\57')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms47_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\76')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms33_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\74')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms36_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818skip1(C,'\136')) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms47_818),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms50_473))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms50_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms34_473))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms34_473),a1);
C->_last_binary=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms27_473))) {
/*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms28_473),a1);
C->_last_binary=(T0*)n;
}
}
else {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms27_473),a1);
C->_last_binary=(T0*)n;
}
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms41_473))) {
/*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms42_473),a1);
C->_last_binary=(T0*)n;
}
}
else {
{T454*n=malloc(sizeof(*n));
*n=M454;
r454make(n,((T0*)ms41_473),a1);
C->_last_binary=(T0*)n;
}
}
/*FI*/}
else {
C->_last_binary=NULL;
R=0;
}
/*FI*/return R;
}
void r818a_r6(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_div=NULL;
T0* _infix_int_rem=NULL;
T0* _infix_int_div=NULL;
T0* _infix_times=NULL;
/*IF*/if (r818skip1(C,'\52')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T414*n=malloc(sizeof(*n));
*n=M414;
r414make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_times=(T0*)n;
}
r818a_r6(C,_infix_times);
}
else {
r818err_exp(_sp,((T0*)ms38_473));
}
/*FI*/}
 else if (r818skip2(C,'\57','\57')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T460*n=malloc(sizeof(*n));
*n=M460;
r460make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_int_div=(T0*)n;
}
r818a_r6(C,_infix_int_div);
}
else {
r818err_exp(_sp,((T0*)ms120_818));
}
/*FI*/}
 else if (r818skip2(C,'\134','\134')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T453*n=malloc(sizeof(*n));
*n=M453;
r453make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_int_rem=(T0*)n;
}
r818a_r6(C,_infix_int_rem);
}
else {
r818err_exp(_sp,((T0*)ms121_818));
}
/*FI*/}
 else if (r818skip1unless2(C,'\57','\75')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e6(C)) {
{T520*n=malloc(sizeof(*n));
*n=M520;
r520make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_div=(T0*)n;
}
r818a_r6(C,_infix_div);
}
else {
r818err_exp(_sp,((T0*)ms47_473));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e6(T818* C){
int R=0;
R=r818a_e7(C);
r818a_r7(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.em15*/
/*No:EIFFEL_PARSER.last_parent*/
void r818a_r7(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_power=NULL;
/*IF*/if (r818skip1(C,'\136')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e7(C)) {
{T557*n=malloc(sizeof(*n));
*n=M557;
r557make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_power=(T0*)n;
}
r818a_r7(C,_infix_power);
}
else {
r818err_exp(_sp,((T0*)ms122_818));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e7(T818* C){
int R=0;
R=r818a_e8(C);
r818a_r8(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
int r818a_boolean_constant(T818* C){
int R=0;
/*IF*/if (r818a_keyword(C,((T0*)ms47_470))) {
{T849*n=malloc(sizeof(*n));
*n=M849;
/*[IRF3.3make*/((((T849*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*]*/
C->_last_boolean_constant=(T0*)n;
}
R=1;
}
 else if (r818a_keyword(C,((T0*)ms17_470))) {
{T367*n=malloc(sizeof(*n));
*n=M367;
/*[IRF3.3make*/((((T367*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*]*/
C->_last_boolean_constant=(T0*)n;
}
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_type*/
int r818a_base_type(T818* C){
int R=0;
T0* _sp=NULL;
R=1;
/*IF*/if (r818a_keyword(C,((T0*)ms1_473))) {
{T669*n=malloc(sizeof(*n));
*n=M669;
r669make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms2_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
{T709*n=malloc(sizeof(*n));
*n=M709;
r709make(n,_sp,(((T818*)C))->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms40_818));
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms18_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms41_818));
}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms42_818))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
{T933*n=malloc(sizeof(*n));
*n=M933;
r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else {
r818fcp(C,((T0*)ms43_818));
}
/*FI*/r818warning(_sp,((T0*)ms44_818));
}
 else if (r818a_keyword(C,((T0*)ms6_473))) {
{T707*n=malloc(sizeof(*n));
*n=M707;
r707make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms8_473))) {
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms11_473))) {
{T388*n=malloc(sizeof(*n));
*n=M388;
r388make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms15_473))) {
{T788*n=malloc(sizeof(*n));
*n=M788;
r788make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms19_473))) {
{T284*n=malloc(sizeof(*n));
*n=M284;
r284make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms21_473))) {
{T900*n=malloc(sizeof(*n));
*n=M900;
r900make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms23_473))) {
{T209*n=malloc(sizeof(*n));
*n=M209;
r209make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
 else if (r818a_keyword(C,((T0*)ms25_473))) {
{T491*n=malloc(sizeof(*n));
*n=M491;
r491make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else {
R=0;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.em16*/
/*No:EIFFEL_PARSER.nb_warnings*/
/*No:EIFFEL_PARSER.last_expression*/
/*No:EIFFEL_PARSER.last_character_constant*/
void r818a_r8(T818* C,T0* a1){
T0* _infix_freeop=NULL;
T0* _infix_name=NULL;
/*IF*/if (r818a_free_operator(C)) {
_infix_name=r511to_infix_name_use(((T511*)(oBC818tmp_name)));
/*IF*/if (r818a_e8(C)) {
{T534*n=malloc(sizeof(*n));
*n=M534;
r534make(n,a1,_infix_name,(((T818*)C))->_last_expression/*97*/);
_infix_freeop=(T0*)n;
}
r818a_r8(C,_infix_freeop);
}
else {
r818err_exp((((T454*)((T454*)_infix_name)))->_start_position/*8*/,(((T454*)((T454*)_infix_name)))->_to_string/*4*/);
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e8(T818* C){
int R=0;
T0* _sp=NULL;
T0* _prefix_freeop=NULL;
T0* _op=NULL;
T0* _prefix_moins=NULL;
T0* _prefix_plus=NULL;
T0* _prefix_not=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e8(C)) {
{T180*n=malloc(sizeof(*n));
*n=M180;
r180make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_prefix_not=(T0*)n;
}
C->_last_expression=_prefix_not;
R=1;
}
else {
r818err_exp(_sp,((T0*)ms40_473));
}
/*FI*/}
 else if (r818skip1(C,'\53')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e8(C)) {
{T767*n=malloc(sizeof(*n));
*n=M767;
r767make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_prefix_plus=(T0*)n;
}
C->_last_expression=_prefix_plus;
R=1;
}
else {
r818err_exp(_sp,((T0*)ms73_818));
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e8(C)) {
{T72*n=malloc(sizeof(*n));
*n=M72;
r72make(n,_sp,(((T818*)C))->_last_expression/*97*/);
_prefix_moins=(T0*)n;
}
C->_last_expression=_prefix_moins;
R=1;
}
else {
r818err_exp(_sp,((T0*)ms74_818));
}
/*FI*/}
 else if (r818a_free_operator(C)) {
_op=r511to_prefix_name(((T511*)(oBC818tmp_name)));
/*IF*/if (r818a_e8(C)) {
{T990*n=malloc(sizeof(*n));
*n=M990;
/*[IRF3.6make*/{T990* C1=n;
T0* b1=(((T818*)C))->_last_expression/*97*/;
T0* b2=_op;
r990make_call0(C1,b1,b2);
}/*]*/
_prefix_freeop=(T0*)n;
}
C->_last_expression=_prefix_freeop;
R=1;
}
else {
/*[IRF3.6append*/{T0* b1=((T0*)ms75_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r818err_exp((((T406*)((T406*)_op)))->_start_position/*8*/,(((T406*)((T406*)_op)))->_to_string/*4*/);
}
/*FI*/}
else {
R=r818a_e9(C);
}
/*FI*/return R;
}
int r818a_feature_declaration(T818* C){
int R=0;
r505initialize(((T505*)(oBC818tmp_feature)));
/*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
/*IF*/if (r818a_feature_name(C)) {
R=1;
X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
else {
r818fcp(C,((T0*)ms140_818));
}
/*FI*/}
 else if (r818a_feature_name(C)) {
R=1;
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
/*FI*/while (!(!(r818skip1(C,'\54')))) {
/*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
/*IF*/if (r818a_feature_name(C)) {
X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
else {
r818fcp(C,((T0*)ms92_818));
}
/*FI*/}
 else if (r818a_feature_name(C)) {
/*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
r855add_last(((T855*)(oBC505names)),b1);
}/*]*/
}
else {
/*[IRF3.6ecp*/{T818* C1=C;
T0* b1=((T0*)ms93_818);
r818error(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*IF*/if (R) {
r818a_formal_arg_list(C);
C->_function_type=NULL;
/*IF*/if (r818skip1(C,'\72')) {
/*IF*/if (r818a_type(C)) {
C->_function_type=(((T818*)C))->_last_type/*157*/;
/*[IRF3.3set_type*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_type)=((((T818*)C))->_last_type/*157*/);
/*]*/
}
else {
r818fcp(C,((T0*)ms156_818));
}
/*FI*/}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms27_470))) {
/*IF*/if (r818a_keyword(C,((T0*)ms49_470))) {
C->_last_feature_declaration=r505to_cst_att_unique(((T505*)(oBC818tmp_feature)));
}
 else if (r818a_boolean_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_boolean(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_boolean_constant/*81*/);
}
 else if (r818a_character_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_character(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_character_constant/*85*/);
}
 else if (r818a_manifest_string(C)) {
C->_last_feature_declaration=r505to_cst_att_string(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_manifest_string/*145*/);
}
 else if (r818a_bit_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_bit(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_bit_constant/*77*/);
}
 else if (r818a_real_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_real(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_real_constant/*153*/);
}
 else if (r818a_integer_constant(C)) {
C->_last_feature_declaration=r505to_cst_att_integer(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_integer_constant/*129*/);
}
else {
C->_last_feature_declaration=r818a_routine(C);
}
/*FI*/}
else {
C->_last_feature_declaration=r505to_writable_attribute(((T505*)(oBC818tmp_feature)));
}
/*FI*/C->_function_type=NULL;
C->_arguments=NULL;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_integer*/
/*No:EIFFEL_PARSER.em17*/
int r818a_integer_constant(T818* C){
int R=0;
int _c=0;
int _l=0;
/*IF*/if (r818skip1(C,'\53')) {
_l=(((T818*)C))->_start_line/*169*/;
_c=(((T818*)C))->_start_column/*165*/;
/*IF*/if (r818a_integer(C)) {
r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*12*/)),_l,_c);
R=1;
}
else {
r818fcp(C,((T0*)ms69_470));
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
_l=(((T818*)C))->_start_line/*169*/;
_c=(((T818*)C))->_start_column/*165*/;
/*IF*/if (r818a_integer(C)) {
r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*12*/)),_l,_c);
r342unary_minus(((T342*)((((T818*)C))->_last_integer_constant/*129*/)));
R=1;
}
else {
r818fcp(C,((T0*)ms69_470));
}
/*FI*/}
else {
R=r818a_integer(C);
}
/*FI*/return R;
}
void r818a_creation_clause(T818* C,T0* a1){
T0* _creation_clause=NULL;
T0* _list=NULL;
T0* _comments=NULL;
T0* _clients=NULL;
_clients=r818a_clients(C);
_comments=r818get_comments(C);
/*IF*/if (r818a_feature_list(C)) {
_list=(((T818*)C))->_last_feature_list/*105*/;
}
/*FI*/{T583*n=malloc(sizeof(*n));
*n=M583;
r583make(n,a1,_clients,_comments,_list);
_creation_clause=(T0*)n;
}
r605add_creation_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_creation_clause);
}
int r818a_e9(T818* C){
int R=0;
T0* _e_old=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms34_470))) {
/*IF*/if (!((((T818*)C))->_in_ensure/*37*/)) {
r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms76_818));
}
/*FI*//*IF*/if (r818a_e10(C)) {
{T664*n=malloc(sizeof(*n));
*n=M664;
/*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T818*)C))->_last_expression/*97*/);
/*]*/
_e_old=(T0*)n;
}
C->_last_expression=_e_old;
R=1;
}
else {
r818fcp(C,((T0*)ms77_818));
}
/*FI*/}
else {
R=r818a_e10(C);
}
/*FI*/return R;
}
int r818a_index_value(T818* C){
int R=0;
/*IF*/if (r818a_identifier(C)) {
C->_last_index_value=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
R=1;
}
 else if (r818a_manifest_constant(C)) {
C->_last_index_value=(((T818*)C))->_last_manifest_constant/*141*/;
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.em18*/
void r818a_new_export_list(T818* C){
int _state=0;
T0* _new_export_item=NULL;
T0* _items=NULL;
T0* _clients=NULL;
T0* _sp=NULL;
T0* _export_list=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms15_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;

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

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

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

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

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

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

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

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

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

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

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

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

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

if((9==z2)||(32==z2)){
}
 else 
if((37==z2)){
r805break_line(((T805*)((((T818*)C))->_last_manifest_string/*145*/)));
_state=0;
}
 else 
if((10==z2)){
r818fcp(C,((T0*)ms146_818));
_state=0;
}
 else{r818fcp(C,((T0*)ms28_818));
_state=0;
}}
}}
}
r818next_char(C);
r818skip_comments(C);
}
/*FI*/return R;
}
void r818a_function_call(T818* C){
T0* _e_current=NULL;
T0* _sfn=NULL;
_sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*20*/,0);
_e_current=(T0*)n;
}
r818a_r10(C,0,_e_current,_sfn,r818a_actuals(C));
}
/*No:EIFFEL_PARSER.fz_01*/
int r818a_real_constant(T818* C){
int R=0;
int _c=0;
int _l=0;
_l=(((T818*)C))->_line/*16*/;
_c=(((T818*)C))->_column/*12*/;
/*IF*/if (r818skip1(C,'\53')) {
/*IF*/if (r818a_real(C)) {
r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*12*/)),_l,_c);
R=1;
}
else {
r818go_back_at(C,_l,_c);
}
/*FI*/}
 else if (r818skip1(C,'\55')) {
/*IF*/if (r818a_real(C)) {
r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*12*/)),_l,_c);
/*[IRF3.5unary_minus*/r7add_first(((T7*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_to_string/*16*/)),'\55');
/*]*/
R=1;
}
else {
r818go_back_at(C,_l,_c);
}
/*FI*/}
 else if (r818a_real(C)) {
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_inspect*/
void r818show_nb(int a1,T0* a2){
/*IF*/if ((a1)>(0)) {
r306w_put_string(((T0*)ms75_470));
r306w_put_integer(a1);
r306w_put_string(a2);
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_c_withcurrent*/
/*No:EIFFEL_PARSER.fz_03*/
/*No:EIFFEL_PARSER.fz_rename*/
T0* r818parse_feature_name(T818* C){
T0* R=NULL;
/*IF*/if (r818a_feature_name(C)) {
R=(((T818*)C))->_last_feature_name/*109*/;
}
else {
r818fcp(C,((T0*)ms140_818));
}
/*FI*/return R;
}
T0* r818connect_to_cecil(T818* C){
T0* R=NULL;
T0* _path=NULL;
_path=(((T590*)((T590*)(oBC364run_control))))->_cecil_path/*12*/;
r306put_string(((T306*)(oBC364echo)),((T0*)ms7_818));
r306put_string(((T306*)(oBC364echo)),_path);
r306put_character(((T306*)(oBC364echo)),'\n');
r676load_file(((T676*)(oBC364parser_buffer)),_path);
/*IF*/if (!(/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/)) {
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_is_running=1;
C->_formal_generic_list=NULL;
C->_function_type=NULL;
C->_in_ensure=0;
C->_last_comments=NULL;
C->_line=1;
C->_column=1;
C->_current_line=r676item((((T818*)C))->_line/*16*/);
/*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
C->_cc='\n';
}
else {
C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
}
/*FI*/r818skip_comments(C);
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,32);
R=(T0*)n;
}
while (!(((((T818*)C))->_cc/*24*/)==('\n'))) {
r7extend(((T7*)R),(((T818*)C))->_cc/*24*/);
r818next_char(C);
}
r818skip_comments(C);
return R;
}
int r818a_identifier1(T818* C){
int R=0;
int _state=0;
/*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
/*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
while (!((_state)>(0))) {
r818next_char(C);
{int z1=(((T818*)C))->_cc/*24*/;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

if((0==z1)){
/*IF*/if (r818skip1(C,'\50')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
_state=1;
}
else {
_state=6;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_identifier(C)) {
_name=r511to_argument_name1(((T511*)(oBC818tmp_name)));
_state=2;
}
 else if (r818skip1(C,'\51')) {
_state=6;
}
else {
_state=7;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip1(C,'\72')) {
/*IF*/if ((_name_list)!=((void*)(NULL))) {
r65add_last(((T65*)_name_list),_name);
_name=NULL;
}
/*FI*/_state=4;
}
else {
C->_ok=r818skip1(C,'\54');
/*IF*/if ((_name_list)==((void*)(NULL))) {
_name_list=se_ma65(1,_name);
}
else {
r65add_last(((T65*)_name_list),_name);
}
/*FI*/_name=NULL;
_state=3;
}
/*FI*/}
 else 
if((3==z1)){
/*IF*/if (r818a_identifier(C)) {
_name=r511to_argument_name1(((T511*)(oBC818tmp_name)));
_state=2;
}
 else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms151_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
}
else {
_state=7;
}
/*FI*/}
 else 
if((4==z1)){
/*IF*/if (r818a_type(C)) {
/*IF*/if ((_name_list)!=((void*)(NULL))) {
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,_name_list,(((T818*)C))->_last_type/*157*/);
_declaration=(T0*)n;
}
_name_list=NULL;
}
else {
{T723*n=malloc(sizeof(*n));
*n=M723;
r723make(n,_name,(((T818*)C))->_last_type/*157*/);
_declaration=(T0*)n;
}
_name=NULL;
}
/*FI*//*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma382(1,_declaration);
}
else {
r382add_last(((T382*)_list),_declaration);
}
/*FI*/_declaration=NULL;
_state=5;
}
else {
_state=7;
}
/*FI*/}
 else{/*IF*/if (r818skip1(C,'\51')) {
_state=6;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms13_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
_state=1;
}
else {
C->_ok=r818skip1(C,'\73');
_state=1;
}
/*FI*/}}
}
/*IF*/if ((_state)==(7)) {
r818fcp(C,((T0*)ms14_818));
}
 else if (((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))) {
r818warning(_sp,((T0*)ms15_818));
}
 else if ((_sp)!=((void*)(NULL))) {
{T31*n=malloc(sizeof(*n));
*n=M31;
r31make(n,_sp,_list);
C->_arguments=(T0*)n;
}
/*[IRF3.3set_arguments*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_arguments)=((((T818*)C))->_arguments/*45*/);
/*]*/
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_end*/
/*No:EIFFEL_PARSER.fz_else*/
/*No:EIFFEL_PARSER.last_class_name*/
int r818a_type_formal_generic(T818* C){
int R=0;
int _rank=0;
T0* _cn=NULL;
T0* _fga=NULL;
/*IF*/if (((((T818*)C))->_formal_generic_list/*33*/)!=((void*)(NULL))) {
_rank=1;
while (!((R)||((_rank)>(/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)((((T818*)C))->_formal_generic_list/*33*/))))->_list/*4*/))))->_upper/*8*//*)*/)))) {
_fga=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)((((T818*)C))->_formal_generic_list/*33*/))))->_list/*4*/)),_rank)/*)*/;
/*IF*/if (r818a_keyword(C,(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_to_string/*0*/)) {
{T451*n=malloc(sizeof(*n));
*n=M451;
r451make(n,(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_to_string/*0*/,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
_cn=(T0*)n;
}
{T283*n=malloc(sizeof(*n));
*n=M283;
r283make(n,_cn,_rank);
C->_last_type_formal_generic=(T0*)n;
}
R=1;
}
/*FI*/_rank=(_rank)+(1);
}
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_infix*/
int r818a_feature_name(T818* C){
int R=0;
/*IF*/if (r818a_prefix(C)) {
C->_last_feature_name=(((T818*)C))->_last_prefix/*125*/;
R=1;
}
 else if (r818a_infix(C)) {
C->_last_feature_name=(((T818*)C))->_last_infix/*121*/;
R=1;
}
 else if (r818a_identifier(C)) {
C->_last_feature_name=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_and*/
void r818a_feature_clause(T818* C){
T0* _comment=NULL;
T0* _clients=NULL;
T0* _feature_clause=NULL;
_clients=r818a_clients(C);
_comment=r818get_comments(C);
/*[IRF3.3clear*/((((T352*)(((T352*)(oBC818faof)))))->_upper)=(-(1));
/*]*/
while (!(!(r818a_feature_declaration(C)))) {
C->_ok=r818skip1(C,'\73');
/*IF*/if (((((T818*)C))->_last_feature_declaration/*101*/)!=((void*)(NULL))) {
r352add_last(((T352*)(oBC818faof)),(((T818*)C))->_last_feature_declaration/*101*/);
X359set_header_comment((((T818*)C))->_last_feature_declaration/*101*/,r818get_comments(C));
}
/*FI*/}
/*IF*/if (((((T352*)((T352*)(oBC818faof))))->_upper/*8*/)>=(0)) {
{T153*n=malloc(sizeof(*n));
*n=M153;
r153make(n,_clients,_comment,r352twin(((T352*)(oBC818faof))));
_feature_clause=(T0*)n;
}
r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause);
}
 else if ((_comment)!=((void*)(NULL))) {
{T153*n=malloc(sizeof(*n));
*n=M153;
r153make(n,_clients,_comment,NULL);
_feature_clause=(T0*)n;
}
r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause);
}
/*FI*/C->_last_keyword=NULL;
}
/*No:EIFFEL_PARSER.in_rescue*/
/*No:EIFFEL_PARSER.us_and_then*/
int r818a_manifest_constant(T818* C){
int R=0;
/*IF*/if (r818a_boolean_constant(C)) {
C->_last_manifest_constant=(((T818*)C))->_last_boolean_constant/*81*/;
R=1;
}
 else if (r818a_character_constant(C)) {
C->_last_manifest_constant=(((T818*)C))->_last_character_constant/*85*/;
R=1;
}
 else if (r818a_manifest_string(C)) {
C->_last_manifest_constant=(((T818*)C))->_last_manifest_string/*145*/;
R=1;
}
 else if (r818a_bit_constant(C)) {
C->_last_manifest_constant=(((T818*)C))->_last_bit_constant/*77*/;
R=1;
}
 else if (r818a_real_constant(C)) {
C->_last_manifest_constant=(((T818*)C))->_last_real_constant/*153*/;
R=1;
}
 else if (r818a_integer_constant(C)) {
C->_last_manifest_constant=(((T818*)C))->_last_integer_constant/*129*/;
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.last_instruction*/
int r818a_bit_constant(T818* C){
int R=0;
int _state=0;
int _c=0;
int _l=0;
/*IF*/if ((((((T818*)C))->_cc/*24*/)==('0'))||(((((T818*)C))->_cc/*24*/)==('1'))) {
_l=(((T818*)C))->_line/*16*/;
_c=(((T818*)C))->_column/*12*/;
/*[IRF3.3clear*/((((T7*)(((T7*)(oBC818tmp_string)))))->_count)=(0);
/*]*/
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
while (!((_state)>(0))) {
r818next_char(C);
{int z1=(((T818*)C))->_cc/*24*/;

if(((48<=z1)&&(z1<=49))){
r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
}
 else 
if((66==z1)||(98==z1)){
{T940*n=malloc(sizeof(*n));
*n=M940;
r940make(n,r818pos(_l,_c),r7twin(((T7*)(oBC818tmp_string))));
C->_last_bit_constant=(T0*)n;
}
r818next_char(C);
r818skip_comments(C);
_state=1;
R=1;
}
 else{r818go_back_at(C,_l,_c);
_state=2;
}}
}
}
/*FI*/return R;
}
T0*oBC818faof=NULL;
/*No:EIFFEL_PARSER.fz_jvm_invokestatic*/
int r818a_index_clause(T818* C){
int R=0;
T0* _index_clause=NULL;
/*IF*/if (r818a_identifier(C)) {
R=1;
/*IF*/if (r818skip1(C,'\72')) {
{T782*n=malloc(sizeof(*n));
*n=M782;
/*[IRF3.3make*/((((T782*)(n)))->_index)=(r511to_string(((T511*)(oBC818tmp_name))));
/*]*/
_index_clause=(T0*)n;
}
/*IF*/if (r818a_index_value(C)) {
r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/);
}
else {
r818fcp(C,((T0*)ms141_818));
}
/*FI*/}
else {
{T782*n=malloc(sizeof(*n));
*n=M782;
/*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL);
/*]*/
_index_clause=(T0*)n;
}
r782add_index_value(((T782*)_index_clause),r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
}
/*FI*/}
 else if (r818a_manifest_constant(C)) {
R=1;
{T782*n=malloc(sizeof(*n));
*n=M782;
/*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL);
/*]*/
_index_clause=(T0*)n;
}
r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_manifest_constant/*141*/);
}
/*FI*//*IF*/if (R) {
while (!(!(r818skip1(C,'\54')))) {
/*IF*/if (r818a_index_value(C)) {
r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/);
}
else {
r818fcp(C,((T0*)ms141_818));
}
/*FI*/}
r605add_index_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_index_clause);
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.line*/
/*No:EIFFEL_PARSER.make*/
/*No:EIFFEL_PARSER.last_index_value*/
/*No:EIFFEL_PARSER.show_nb_warnings*/
/*No:EIFFEL_PARSER.fz_rescue*/
int r818a_infix(T818* C){
int R=0;
T0* _sp=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms23_470))) {
R=1;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
r818next_char(C);
}
else {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms96_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*//*IF*/if (r818a_binary(C,_sp)) {
C->_last_infix=(((T818*)C))->_last_binary/*73*/;
}
 else if (r818a_free_operator(C)) {
C->_last_infix=r511to_infix_name(_sp);
}
else {
r818fcp(C,((T0*)ms97_818));
}
/*FI*//*IF*/if (!(r818skip1(C,'\42'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms98_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*FI*/return R;
}
T0* r818a_actuals(T818* C){
T0* R=NULL;
T0* _args=NULL;
/*IF*/if (r818skip1(C,'\50')) {
while (!(!(r818a_actual(C)))) {
/*IF*/if ((_args)==((void*)(NULL))) {
_args=se_ma96(1,(((T818*)C))->_last_expression/*97*/);
}
else {
X96add_last(_args,(((T818*)C))->_last_expression/*97*/);
}
/*FI*//*IF*/if ((!(r818skip1(C,'\54')))&&(((((T818*)C))->_cc/*24*/)!=('\51'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms143_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*IF*/if ((_args)==((void*)(NULL))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms31_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
else {
{T431*n=malloc(sizeof(*n));
*n=M431;
/*[IRF3.3make*/((((T431*)(n)))->_list)=(_args);
/*]*/
R=(T0*)n;
}
}
/*FI*//*IF*/if (!(r818skip1(C,'\51'))) {
r818fcp(C,((T0*)ms32_818));
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_pointer*/
/*No:EIFFEL_PARSER.fz_iinaiv*/
int r818a_actual(T818* C){
int R=0;
/*IF*/if (r818skip1(C,'\44')) {
/*IF*/if (r818a_identifier(C)) {
/*IF*/if (((r818a_result(C))||(r818a_void(C)))||(r818a_current(C))) {
r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms155_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
else {
{T708*n=malloc(sizeof(*n));
*n=M708;
/*[IRF3.3make*/((((T708*)(n)))->_feature_name)=(r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
/*]*/
C->_last_expression=(T0*)n;
}
R=1;
}
/*FI*/}
else {
r818fcp(C,((T0*)ms155_818));
}
/*FI*/}
 else if (r818a_expression(C)) {
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_string*/
/*No:EIFFEL_PARSER.local_vars*/
void r818a_base_class_name1(T818* C){
T0* _ccn=NULL;
int _do_warning=0;
int _state=0;
_ccn=(((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_base_class_name/*24*/;
/*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
r627set_line_column(((T627*)((((T451*)((T451*)_ccn)))->_start_position/*4*/)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
/*IF*/if ((((unsigned)((((T818*)C))->_cc/*24*/))>=((unsigned)('a')))) {
_do_warning=1;
C->_cc=r3to_upper((((T818*)C))->_cc/*24*/);
}
/*FI*//*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
while (!((_state)>(0))) {
r818next_char(C);
{int z1=(((T818*)C))->_cc/*24*/;

if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else 
if(((97<=z1)&&(z1<=122))){
_do_warning=1;
/*[IRF3.6extend*/{char b1=r3to_upper((((T818*)C))->_cc/*24*/);
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
}
 else{_state=1;
}}
}
r818skip_comments(C);
/*IF*/if (r511isa_keyword()) {
r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms154_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (_do_warning) {
r818warning((((T451*)((T451*)_ccn)))->_start_position/*4*/,((T0*)ms153_818));
}
/*FI*/r451identify(((T451*)_ccn),r511to_string(((T511*)(oBC818tmp_name))));
}
else {
r818fcp(C,((T0*)ms154_818));
}
/*FI*//*IF*/if (r52fast_has(((T52*)(oBC818forbidden_class)),(((T451*)((T451*)_ccn)))->_to_string/*0*/)) {
r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms25_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
int r818a_strip(T818* C){
int R=0;
T0* _sp=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms45_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818skip1(C,'\50')) {
C->_ok=r818a_feature_list(C);
{T420*n=malloc(sizeof(*n));
*n=M420;
r420make(n,_sp,(((T818*)C))->_last_feature_list/*105*/);
C->_last_expression=(T0*)n;
}
/*IF*/if (!(r818skip1(C,'\51'))) {
r818fcp(C,((T0*)ms123_818));
}
/*FI*/R=1;
}
else {
r818fcp(C,((T0*)ms124_818));
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_external*/
T0* r818a_compound1(T818* C,T0* a1){
T0* R=NULL;
T0* _instruction=NULL;
T0* _list=NULL;
T0* _hc=NULL;
_hc=r818get_comments(C);
while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_instruction=(((T818*)C))->_last_instruction/*133*/;
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms144_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/C->_ok=r818skip1(C,'\73');
while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C)));
}
else {
r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C)));
}
/*FI*/}
/*FI*/}
/*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
{T592*n=malloc(sizeof(*n));
*n=M592;
r592make(n,_hc,_list);
R=(T0*)n;
}
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_prefix*/
/*No:EIFFEL_PARSER.fz_all*/
/*No:EIFFEL_PARSER.column*/
int r818a_loop(T818* 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;
int _c2=0;
int _l2=0;
int _c1=0;
int _l1=0;
/*IF*/if (r818a_keyword(C,((T0*)ms19_470))) {
R=1;
_l1=(((T818*)C))->_start_line/*169*/;
_c1=(((T818*)C))->_start_column/*165*/;
_i=r818a_compound1(C,((T0*)ms102_818));
/*IF*/if (r818a_keyword(C,((T0*)ms26_470))) {
_l2=(((T818*)C))->_start_line/*169*/;
_c2=(((T818*)C))->_start_column/*165*/;
_hc=r818get_comments(C);
_al=r818a_assertion(C);
/*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
{T213*n=malloc(sizeof(*n));
*n=M213;
r213make(n,r818pos(_l2,_c2),_hc,_al);
_ic=(T0*)n;
}
}
/*FI*/}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms51_470))) {
/*IF*/if ((r818a_tag_mark(C))&&(r818a_expression(C))) {
{T158*n=malloc(sizeof(*n));
*n=M158;
r158make(n,(((T818*)C))->_last_tag_mark/*161*/,(((T818*)C))->_last_expression/*97*/,r818get_comments(C));
_vc=(T0*)n;
}
}
 else if (r818a_expression(C)) {
{T145*n=malloc(sizeof(*n));
*n=M145;
r145make(n,(((T818*)C))->_last_expression/*97*/,r818get_comments(C));
_vc=(T0*)n;
}
}
else {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms103_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms50_470))) {
/*IF*/if (r818a_expression(C)) {
_ue=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
}
else {
r818fcp(C,((T0*)ms104_818));
_ue=(((T818*)C))->_last_expression/*97*/;
}
/*FI*/}
else {
r818fcp(C,((T0*)ms105_818));
_ue=(((T818*)C))->_last_expression/*97*/;
}
/*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
/*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms32_470)))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms106_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/_lb=r818a_compound2(C,((T0*)ms107_818),((T0*)ms12_470));
{T880*n=malloc(sizeof(*n));
*n=M880;
r880make(n,r818pos(_l1,_c1),_i,_ic,_vc,_ue,_lb);
_e_loop=(T0*)n;
}
C->_last_instruction=_e_loop;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_feature*/
/*No:EIFFEL_PARSER.fz_true*/
int r818a_local_variable(T818* C){
int R=0;
int _rank=0;
/*IF*/if (((((T818*)C))->_local_vars/*49*/)!=((void*)(NULL))) {
_rank=r620rank_of(((T620*)((((T818*)C))->_local_vars/*49*/)),r511to_string(((T511*)(oBC818tmp_name))));
/*IF*/if ((_rank)>(0)) {
C->_last_expression=r511to_local_name2(((T511*)(oBC818tmp_name)),(((T818*)C))->_local_vars/*49*/,_rank);
R=1;
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.start_column*/
/*No:EIFFEL_PARSER.us_ge*/
/*No:EIFFEL_PARSER.us_neq*/
int r818skip1unless2(T818* C,char a1,char a2){
int R=0;
C->_start_line=(((T818*)C))->_line/*16*/;
C->_start_column=(((T818*)C))->_column/*12*/;
/*IF*/if (((((T818*)C))->_cc/*24*/)==(a1)) {
r818next_char(C);
/*IF*/if (((((T818*)C))->_cc/*24*/)==(a2)) {
r818prev_char(C);
}
else {
R=1;
r818skip_comments(C);
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.fz_if*/
T0* r818a_compound2(T818* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _instruction=NULL;
T0* _list=NULL;
T0* _hc=NULL;
_hc=r818get_comments(C);
while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
_instruction=(((T818*)C))->_last_instruction/*133*/;
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms144_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/C->_ok=r818skip1(C,'\73');
while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
/*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C)));
}
else {
r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C)));
}
/*FI*/}
/*FI*/}
/*IF*/if (!(r818a_keyword(C,a2))) {
/*[IRF3.6append*/{T0* b1=((T0*)ms57_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms58_818);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a2;
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r818fcp(C,((T0*)ms59_818));
}
/*FI*//*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
{T592*n=malloc(sizeof(*n));
*n=M592;
r592make(n,_hc,_list);
R=(T0*)n;
}
}
/*FI*/return R;
}
int r818a_rename_pair(T818* C){
int R=0;
T0* _rename_pair=NULL;
T0* _name1=NULL;
/*IF*/if (r818a_feature_name(C)) {
_name1=(((T818*)C))->_last_feature_name/*109*/;
/*IF*/if (r818a_keyword(C,((T0*)ms3_470))) {
/*IF*/if (r818a_feature_name(C)) {
R=1;
{T498*n=malloc(sizeof(*n));
*n=M498;
r498make(n,_name1,(((T818*)C))->_last_feature_name/*109*/);
_rename_pair=(T0*)n;
}
r877add_rename(((T877*)((((T818*)C))->_last_parent/*149*/)),_rename_pair);
}
else {
r818fcp(C,((T0*)ms113_818));
}
/*FI*/}
else {
/*[IRF3.6go_back*/{T818* C1=C;
T0* b1=X776start_position(_name1);
r818go_back_at(C1,/*(IRF4.6line*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)%(1000)/*)*/);
}/*]*/
}
/*FI*/}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_slash*/
/*No:EIFFEL_PARSER.fz_alias*/
/*No:EIFFEL_PARSER.fz_debug*/
int r818a_keyword(T818* C,T0* a1){
int R=0;
int _keyword_count=0;
int _i=0;
_keyword_count=(((T7*)((T7*)a1)))->_count/*4*/;
C->_start_line=(((T818*)C))->_line/*16*/;
C->_start_column=(((T818*)C))->_column/*12*/;
while (!(((_i)==(_keyword_count))||(!(r3same_as((((T818*)C))->_cc/*24*/,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) {
_i=(_i)+(1);
r818next_char(C);
}
/*IF*/if ((_i)==(_keyword_count)) {
{int z1=(((T818*)C))->_cc/*24*/;

if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){
R=1;
C->_last_keyword=a1;
r818skip_comments(C);
}
 else 
if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){
while (!((_i)==(0))) {
r818prev_char(C);
_i=(_i)-(1);
}
}
 else{R=1;
C->_last_keyword=a1;
}}
}
else {
while (!((_i)==(0))) {
r818prev_char(C);
_i=(_i)-(1);
}
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_character*/
/*No:EIFFEL_PARSER.us_le*/
/*No:EIFFEL_PARSER.fz_from*/
/*No:EIFFEL_PARSER.last_keyword*/
/*No:EIFFEL_PARSER.fz_unique*/
/*No:EIFFEL_PARSER.fz_loop*/
/*No:EIFFEL_PARSER.em1*/
/*No:EIFFEL_PARSER.fz_do*/
int r818a_unary(T818* C){
int R=0;
/*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,((T0*)ms40_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_prefix=(T0*)n;
}
R=1;
}
 else if (r818skip1(C,'\53')) {
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,((T0*)ms43_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_prefix=(T0*)n;
}
R=1;
}
 else if (r818skip1(C,'\55')) {
{T406*n=malloc(sizeof(*n));
*n=M406;
r406make(n,((T0*)ms37_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
C->_last_prefix=(T0*)n;
}
R=1;
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.em2*/
/*No:EIFFEL_PARSER.last_feature_declaration*/
/*No:EIFFEL_PARSER.em3*/
/*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/
/*No:EIFFEL_PARSER.fz_obsolete*/
/*No:EIFFEL_PARSER.em4*/
/*No:EIFFEL_PARSER.fz_se*/
void r818go_back_at(T818* C,int a1,int a2){
C->_line=a1;
C->_column=a2;
C->_current_line=r676item((((T818*)C))->_line/*16*/);
/*IF*/if (((((T818*)C))->_column/*12*/)==(((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)+(1))) {
C->_cc='\n';
}
 else if (((((T818*)C))->_column/*12*/)==(0)) {
C->_cc='\0';
}
else {
C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
}
/*FI*/}
void r818a_ascii_code(T818* C){
int _counter=0;
r818next_char(C);
_counter=0;
C->_last_ascii_code=0;
while (!(((_counter)>(3))||(((((T818*)C))->_cc/*24*/)==('\57')))) {
{int z1=(((T818*)C))->_cc/*24*/;

if(((48<=z1)&&(z1<=57))){
C->_last_ascii_code=(((((T818*)C))->_last_ascii_code/*61*/)*(10))+(r3value((((T818*)C))->_cc/*24*/));
}
 else{r818fcp(C,((T0*)ms21_818));
}}
_counter=(_counter)+(1);
r818next_char(C);
}
/*IF*/if ((_counter)==(0)) {
r818fcp(C,((T0*)ms22_818));
}
 else if ((_counter)>(3)) {
r818fcp(C,((T0*)ms23_818));
}
else {
}
/*FI*/}
/*No:EIFFEL_PARSER.fz_as*/
/*No:EIFFEL_PARSER.em5*/
/*No:EIFFEL_PARSER.fz_false*/
/*No:EIFFEL_PARSER.us_bit*/
/*No:EIFFEL_PARSER.em6*/
int r818end_of_input(T818* C){
int R=0;
R=((((T818*)C))->_cc/*24*/)==('\0');
return R;
}
int r818a_current(T818* C){
int R=0;
/*IF*/if (r511is_current()) {
C->_last_expression=r511to_e_current(((T511*)(oBC818tmp_name)));
R=1;
}
/*FI*/return R;
}
void r818a_parent_list(T818* C,T0* a1,T0* a2){
T0* _list=NULL;
while (!(!(r818a_parent(C)))) {
/*IF*/if ((_list)==((void*)(NULL))) {
_list=se_ma26(1,(((T818*)C))->_last_parent/*149*/);
}
else {
r26add_last(((T26*)_list),(((T818*)C))->_last_parent/*149*/);
}
/*FI*/C->_ok=r818skip1(C,'\73');
/*[IRF3.3set_comment*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_comment)=(r818get_comments(C));
/*]*/
}
/*IF*/if (((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
/*IF*/if ((_list)==((void*)(NULL))) {
/*IF*/if (((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)==((void*)(NULL))) {
/*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(a2);
/*]*/
}
else {
r393append(((T393*)((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)),a2);
}
/*FI*/}
else {
r605set_parent_list(((T605*)((((T818*)C))->_last_base_class/*65*/)),a1,a2,_list);
}
/*FI*/}
/*FI*/}
/*No:EIFFEL_PARSER.em7*/
/*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/
void r818a_select_list(T818* C){
/*IF*/if (r818a_feature_list(C)) {
r877set_select(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
}
/*FI*/}
void r818err_exp(T0* a1,T0* a2){
T0* _msg=NULL;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,0);
_msg=(T0*)n;
}
r7append(((T7*)_msg),((T0*)ms11_818));
r7append(((T7*)_msg),a2);
r7append(((T7*)_msg),((T0*)ms12_818));
r683add_position(a1);
/*[IRF3.6fatal_error*/{T0* b1=_msg;
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*No:EIFFEL_PARSER.em8*/
/*No:EIFFEL_PARSER.last_boolean_constant*/
/*No:EIFFEL_PARSER.em9*/
T0* r818current_position(T818* C){
T0* R=NULL;
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
R=(T0*)n;
}
return R;
}
/*No:EIFFEL_PARSER.last_tag_mark*/
/*No:EIFFEL_PARSER.us_boolean*/
/*No:EIFFEL_PARSER.last_feature_name*/
/*No:EIFFEL_PARSER.us_eq*/
int r818a_free_operator(T818* C){
int R=0;
/*IF*/if ((((((((T818*)C))->_cc/*24*/)==('\100'))||(((((T818*)C))->_cc/*24*/)==('\43')))||(((((T818*)C))->_cc/*24*/)==('\174')))||(((((T818*)C))->_cc/*24*/)==('\46'))) {
R=1;
r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
r818next_char(C);
while (!((((((((T818*)C))->_cc/*24*/)==('\n'))||(((((T818*)C))->_cc/*24*/)==('\40')))||(((((T818*)C))->_cc/*24*/)==('\11')))||(((((T818*)C))->_cc/*24*/)==('\42')))) {
/*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
r7extend(((T7*)(oBC511tmp_string)),b1);
}/*]*/
r818next_char(C);
}
r818skip_comments(C);
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.function_type*/
int r818a_then_part(T818* C,T0* a1){
int R=0;
T0* _expression=NULL;
/*IF*/if (r818a_expression(C)) {
R=1;
_expression=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
/*IF*/if (!(r818a_keyword(C,((T0*)ms46_470)))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms127_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/r530add_if_then(((T530*)a1),_expression,r818a_compound1(C,((T0*)ms128_818)));
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_xor*/
/*No:EIFFEL_PARSER.last_integer_constant*/
/*No:EIFFEL_PARSER.in_ensure*/
/*No:EIFFEL_PARSER.fz_frozen*/
/*No:EIFFEL_PARSER.ms_numbering*/
T0* r818a_clients(T818* C){
T0* R=NULL;
int _state=0;
T0* _list=NULL;
T0* _sp=NULL;
/*IF*/if (r818skip1(C,'\173')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818a_base_class_name(C)) {
_list=se_ma901(1,(((T818*)C))->_last_class_name/*89*/);
_state=2;
}
 else if (r818skip1(C,'\175')) {
_state=4;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms145_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
}
else {
_state=3;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_base_class_name(C)) {
r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/);
_state=2;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms145_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
}
 else if (((((T818*)C))->_cc/*24*/)==('\175')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms56_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\175');
_state=4;
}
else {
_state=3;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818skip1(C,'\54')) {
_state=1;
}
 else if (r818skip1(C,'\175')) {
_state=4;
}
 else if (r818a_base_class_name(C)) {
r818warning((((T451*)((T451*)((((T818*)C))->_last_class_name/*89*/))))->_start_position/*4*/,((T0*)ms143_818));
r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/);
}
else {
_state=3;
}
/*FI*/}
 else{r818fcp(C,((T0*)ms149_818));
_state=4;
}}
}
{T636*n=malloc(sizeof(*n));
*n=M636;
r636make(n,_sp,_list);
R=(T0*)n;
}
}
else {
{T636*n=malloc(sizeof(*n));
*n=M636;
/*[IRF3.1omitted*//*]*/
R=(T0*)n;
}
}
/*FI*/return R;
}
int r818a_when_part(T818* C,T0* a1){
int R=0;
T0* _constant=NULL;
T0* _e_when=NULL;
int _state=0;
/*IF*/if (r818a_keyword(C,((T0*)ms52_470))) {
R=1;
{T843*n=malloc(sizeof(*n));
*n=M843;
r843make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C));
_e_when=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818a_constant(C)) {
_constant=(((T818*)C))->_last_expression/*97*/;
_state=1;
}
 else if (r818a_keyword(C,((T0*)ms46_470))) {
/*IF*/if ((_constant)!=((void*)(NULL))) {
r843add_value(((T843*)_e_when),_constant);
}
/*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms132_818)));
/*]*/
r270add_when(((T270*)a1),_e_when);
_state=4;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms145_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
}
else {
r818fcp(C,((T0*)ms142_818));
_state=4;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
/*IF*/if ((_constant)!=((void*)(NULL))) {
r843add_value(((T843*)_e_when),_constant);
}
/*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms133_818)));
/*]*/
r270add_when(((T270*)a1),_e_when);
_state=4;
}
 else if (r818skip2(C,'\56','\56')) {
_state=2;
}
 else if (r818skip1(C,'\54')) {
r843add_value(((T843*)_e_when),_constant);
_constant=NULL;
_state=0;
}
else {
r818fcp(C,((T0*)ms142_818));
_state=4;
}
/*FI*/}
 else 
if((2==z1)){
/*IF*/if (r818a_constant(C)) {
r843add_slice(((T843*)_e_when),_constant,(((T818*)C))->_last_expression/*97*/);
_constant=NULL;
_state=3;
}
else {
r818fcp(C,((T0*)ms142_818));
_state=4;
}
/*FI*/}
 else{/*IF*/if (r818skip1(C,'\54')) {
_state=0;
}
 else if (r818a_keyword(C,((T0*)ms46_470))) {
/*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms134_818)));
/*]*/
r270add_when(((T270*)a1),_e_when);
_state=4;
}
 else if (r818a_constant(C)) {
_constant=(((T818*)C))->_last_expression/*97*/;
r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms143_818));
_state=1;
}
else {
r818fcp(C,((T0*)ms142_818));
_state=4;
}
/*FI*/}}
}
}
/*FI*/return R;
}
int r818a_feature_list(T818* C){
int R=0;
int _state=0;
C->_last_feature_list=NULL;
while (!((_state)>=(3))) {
{int z1=_state;

if((0==z1)){
/*IF*/if (r818a_feature_name(C)) {
C->_last_feature_list=se_ma855(1,(((T818*)C))->_last_feature_name/*109*/);
R=1;
_state=1;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms145_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
}
else {
_state=3;
}
/*FI*/}
 else 
if((1==z1)){
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\54')) {
C->_ok=r818skip1(C,'\54');
_state=2;
}
 else if (r818a_feature_name(C)) {
r818warning(X776start_position((((T818*)C))->_last_feature_name/*109*/),((T0*)ms143_818));
r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/);
}
else {
_state=3;
}
/*FI*/}
 else {/*IF*/if (r818a_feature_name(C)) {
r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/);
_state=1;
}
 else if (((((T818*)C))->_cc/*24*/)==('\54')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms150_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\54');
}
else {
/*[IRF3.6ecp*/{T818* C1=C;
T0* b1=((T0*)ms140_818);
r818error(r818current_position(C1),b1);
}/*]*/
_state=3;
}
/*FI*/}}
}
return R;
}
int r818a_instruction(T818* C){
int R=0;
R=(((((((r818a_check(C))||(r818a_debug(C)))||(r818a_conditional(C)))||(r818a_retry(C)))||(r818a_inspect(C)))||(r818a_loop(C)))||(r818a_creation(C)))||(r818a_assignment_or_call(C));
return R;
}
/*No:EIFFEL_PARSER.fz_is*/
/*No:EIFFEL_PARSER.fz_ensure*/
/*No:EIFFEL_PARSER.fz_indexing*/
/*No:EIFFEL_PARSER.us_not*/
int r818a_parent(T818* C){
int R=0;
/*IF*/if (r818a_class_type(C)) {
R=1;
{T877*n=malloc(sizeof(*n));
*n=M877;
r877make(n,(((T818*)C))->_last_class_type/*93*/);
C->_last_parent=(T0*)n;
}
/*IF*/if (r818a_keyword(C,((T0*)ms39_470))) {
r818a_rename_list(C);
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms108_818);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
/*FI*/}
/*FI*/r818a_new_export_list(C);
/*IF*/if (r818a_keyword(C,((T0*)ms48_470))) {
r818a_undefine_list(C);
}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms38_470))) {
r818a_redefine_list(C);
}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms43_470))) {
r818a_select_list(C);
}
/*FI*//*IF*/if (((((r818a_keyword(C,((T0*)ms39_470)))||(r818a_keyword(C,((T0*)ms15_470))))||(r818a_keyword(C,((T0*)ms48_470))))||(r818a_keyword(C,((T0*)ms38_470))))||(r818a_keyword(C,((T0*)ms43_470)))) {
r683add_position(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms109_818);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/C->_ok=r818a_keyword(C,((T0*)ms12_470));
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_muls*/
/*No:EIFFEL_PARSER.last_ascii_code*/
/*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/
int r818a_prefix(T818* C){
int R=0;
/*IF*/if (r818a_keyword(C,((T0*)ms37_470))) {
R=1;
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
r818next_char(C);
}
else {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms110_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*//*IF*/if (r818a_unary(C)) {
}
 else if (r818a_free_operator(C)) {
C->_last_prefix=r511to_prefix_name(((T511*)(oBC818tmp_name)));
}
else {
r818fcp(C,((T0*)ms111_818));
}
/*FI*//*IF*/if (!(r818skip1(C,'\42'))) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms112_818);
r818warning(r818current_position(C1),b1);
}/*]*/
}
/*FI*/}
/*FI*/return R;
}
void r818error(T0* a1,T0* a2){
r683add_position(a1);
r683error(((T683*)(oBC364eh)),a2);
}
/*No:EIFFEL_PARSER.us_gt*/
/*No:EIFFEL_PARSER.fz_until*/
int r818a_e0(T818* C){
int R=0;
R=r818a_e1(C);
r818a_r1(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
void r818a_class_declaration(T818* C){
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
r818a_indexing(C);
/*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
}
/*FI*//*IF*/if (r818a_keyword(C,((T0*)ms14_470))) {
r605set_is_expanded(((T605*)((((T818*)C))->_last_base_class/*65*/)));
/*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
}
/*FI*/}
/*FI*//*[IRF3.3set_heading_comment1*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment1)=(r818get_comments(C));
/*]*/
/*IF*/if (!(r818a_keyword(C,((T0*)ms5_470)))) {
r818fcp(C,((T0*)ms50_818));
}
/*FI*/r818a_base_class_name1(C);
r818a_formal_generic_list(C);
/*IF*/if (r818a_keyword(C,((T0*)ms33_470))) {
/*IF*/if (r818a_manifest_string(C)) {
/*[IRF3.3set_obsolete_type_string*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_obsolete_type_string)=((((T818*)C))->_last_manifest_string/*145*/);
/*]*/
}
else {
r818fcp(C,((T0*)ms51_818));
}
/*FI*/}
/*FI*//*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(r818get_comments(C));
/*]*/
/*IF*/if (r818a_keyword(C,((T0*)ms24_470))) {
r818a_parent_list(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C));
}
/*FI*/while (!(!(r818a_keyword(C,((T0*)ms6_470))))) {
r818a_creation_clause(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
}
while (!(!(r818a_keyword(C,((T0*)ms18_470))))) {
r818a_feature_clause(C);
}
/*IF*/if (r818a_keyword(C,((T0*)ms26_470))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
_hc=r818get_comments(C);
_al=r818a_assertion(C);
r605set_invariant(((T605*)((((T818*)C))->_last_base_class/*65*/)),_sp,_hc,_al);
}
/*FI*//*IF*/if ((r818a_keyword(C,((T0*)ms12_470)))||(((((T818*)C))->_last_keyword/*113*/)==((void*)(((T0*)ms12_470))))) {
/*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
/*[IRF3.6wcp*/{T818* C1=C;
T0* b1=((T0*)ms68_470);
r818warning(r818current_position(C1),b1);
}/*]*/
C->_ok=r818skip1(C,'\73');
}
/*FI*//*[IRF3.3set_end_comment*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_end_comment)=(r818get_comments(C));
/*]*/
/*IF*/if (((((T818*)C))->_cc/*24*/)!=('\0')) {
r818fcp(C,((T0*)ms52_818));
}
/*FI*/}
else {
r818fcp(C,((T0*)ms53_818));
}
/*FI*/}
int r818skip1(T818* C,char a1){
int R=0;
/*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) {
C->_start_line=(((T818*)C))->_line/*16*/;
C->_start_column=(((T818*)C))->_column/*12*/;
R=1;
r818next_char(C);
r818skip_comments(C);
}
/*FI*/return R;
}
/*No:EIFFEL_PARSER.us_plus*/
void r818a_r1(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_implies=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms34_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e1(C)) {
{T90*n=malloc(sizeof(*n));
*n=M90;
r90make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_implies=(T0*)n;
}
r818a_r1(C,_infix_implies);
}
else {
r818error(_sp,((T0*)ms119_818));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e1(T818* C){
int R=0;
R=r818a_e2(C);
r818a_r2(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.last_type_formal_generic*/
/*No:EIFFEL_PARSER.em10*/
/*No:EIFFEL_PARSER.em20*/
int r818skip2(T818* C,char a1,char a2){
int R=0;
/*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) {
C->_start_line=(((T818*)C))->_line/*16*/;
C->_start_column=(((T818*)C))->_column/*12*/;
r818next_char(C);
/*IF*/if ((a2)==((((T818*)C))->_cc/*24*/)) {
R=1;
r818next_char(C);
r818skip_comments(C);
}
else {
r818prev_char(C);
}
/*FI*/}
/*FI*/return R;
}
void r818a_r2(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_xor=NULL;
T0* _infix_or=NULL;
T0* _infix_or_else=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms41_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
/*IF*/if (r818a_e2(C)) {
{T278*n=malloc(sizeof(*n));
*n=M278;
r278make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_or_else=(T0*)n;
}
r818a_r2(C,_infix_or_else);
}
else {
r818err_exp(_sp,((T0*)ms42_473));
}
/*FI*/}
else {
/*IF*/if (r818a_e2(C)) {
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_or=(T0*)n;
}
r818a_r2(C,_infix_or);
}
else {
r818err_exp(_sp,((T0*)ms41_473));
}
/*FI*/}
/*FI*/}
 else if (r818a_keyword(C,((T0*)ms50_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e2(C)) {
{T760*n=malloc(sizeof(*n));
*n=M760;
r760make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_xor=(T0*)n;
}
r818a_r2(C,_infix_xor);
}
else {
r818err_exp(_sp,((T0*)ms50_473));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e2(T818* C){
int R=0;
R=r818a_e3(C);
r818a_r3(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.em11*/
/*No:EIFFEL_PARSER.fz_expanded*/
void r818a_r3(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_and=NULL;
T0* _infix_and_then=NULL;
/*IF*/if (r818a_keyword(C,((T0*)ms27_473))) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
/*IF*/if (r818a_e3(C)) {
{T655*n=malloc(sizeof(*n));
*n=M655;
r655make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_and_then=(T0*)n;
}
r818a_r3(C,_infix_and_then);
}
else {
r818err_exp(_sp,((T0*)ms28_473));
}
/*FI*/}
else {
/*IF*/if (r818a_e3(C)) {
{T313*n=malloc(sizeof(*n));
*n=M313;
r313make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_and=(T0*)n;
}
r818a_r3(C,_infix_and);
}
else {
r818err_exp(_sp,((T0*)ms27_473));
}
/*FI*/}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e3(T818* C){
int R=0;
R=r818a_e4(C);
r818a_r4(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.fz_class*/
/*No:EIFFEL_PARSER.last_base_class*/
/*No:EIFFEL_PARSER.fz_infix*/
/*No:EIFFEL_PARSER.em12*/
T0*oBC818forbidden_class=NULL;
/*No:EIFFEL_PARSER.us_lt*/
/*No:EIFFEL_PARSER.us_or*/
void r818a_r4(T818* C,T0* a1){
T0* _sp=NULL;
T0* _infix_gt=NULL;
T0* _infix_ge=NULL;
T0* _infix_lt=NULL;
T0* _infix_le=NULL;
T0* _infix_neq=NULL;
T0* _infix_eq=NULL;
/*IF*/if (r818skip1(C,'\75')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e4(C)) {
{T999*n=malloc(sizeof(*n));
*n=M999;
r999make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_eq=(T0*)n;
}
r818a_r4(C,_infix_eq);
}
else {
r818err_exp(_sp,((T0*)ms31_473));
}
/*FI*/}
 else if (r818skip2(C,'\57','\75')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e4(C)) {
{T517*n=malloc(sizeof(*n));
*n=M517;
r517make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_neq=(T0*)n;
}
r818a_r4(C,_infix_neq);
}
else {
r818err_exp(_sp,((T0*)ms39_473));
}
/*FI*/}
 else if (r818skip2(C,'\74','\75')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e4(C)) {
{T932*n=malloc(sizeof(*n));
*n=M932;
r932make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_le=(T0*)n;
}
r818a_r4(C,_infix_le);
}
else {
r818err_exp(_sp,((T0*)ms35_473));
}
/*FI*/}
 else if (r818skip2(C,'\76','\75')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e4(C)) {
{T890*n=malloc(sizeof(*n));
*n=M890;
r890make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_ge=(T0*)n;
}
r818a_r4(C,_infix_ge);
}
else {
r818err_exp(_sp,((T0*)ms32_473));
}
/*FI*/}
 else if (r818skip1(C,'\74')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e4(C)) {
{T112*n=malloc(sizeof(*n));
*n=M112;
r112make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_lt=(T0*)n;
}
r818a_r4(C,_infix_lt);
}
else {
r818err_exp(_sp,((T0*)ms36_473));
}
/*FI*/}
 else if (r818skip1unless2(C,'\76','\76')) {
{T627*n=malloc(sizeof(*n));
*n=M627;
r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
_sp=(T0*)n;
}
/*IF*/if (r818a_e4(C)) {
{T57*n=malloc(sizeof(*n));
*n=M57;
r57make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
_infix_gt=(T0*)n;
}
r818a_r4(C,_infix_gt);
}
else {
r818err_exp(_sp,((T0*)ms33_473));
}
/*FI*/}
else {
C->_last_expression=a1;
}
/*FI*/}
int r818a_e4(T818* C){
int R=0;
R=r818a_e5(C);
r818a_r5(C,(((T818*)C))->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.us_any*/
/*No:EIFFEL_PARSER.em13*/
/*No:EIFFEL_PARSER.current_class_name*/
/*No:EIFFEL_PARSER.fz_strip*/
void r390check_creation_clause(T390* C,T0* a1){
T0* _args=NULL;
T0* _top=NULL;
T0* _bottom=NULL;
T0* _fn=NULL;
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
/*IF*/if (X291is_like_current(a1)) {
_top=r627base_class(((T627*)(X776start_position(_fn))));
_bottom=X291base_class(a1);
_fn=r605new_name_of(((T605*)_bottom),_top,_fn);
/*IF*/if ((_fn)==((void*)(NULL))) {
_fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*/}
/*FI*/C->_run_feature=r355get_feature(((T355*)(X291run_class(a1))),_fn);
/*IF*/if (((((T390*)C))->_run_feature/*16*/)==((void*)(NULL))) {
r390cp_not_found(C,_fn);
}
/*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if (!(X291has_creation(a1,_fn))) {
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(_fn));
/*[IRF3.6append*/{T0* b1=X776to_string(_fn);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms67_470));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/X496add_client((((T390*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T390*)C))->_run_compound/*4*/))));
/*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
r683add_position(X776start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (((r390arg_count(C))==(0))&&((/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
r683add_position((((T390*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if ((r390arg_count(C))>(0)) {
_args=r431to_runnable(((T431*)(X173arguments((((T390*)C))->_call/*20*/))),r390current_type(C));
/*IF*/if ((_args)==((void*)(NULL))) {
r390error(r431start_position(((T431*)(X173arguments((((T390*)C))->_call/*20*/)))),((T0*)ms56_470));
}
else {
r431match_with(((T431*)_args),(((T390*)C))->_run_feature/*16*/);
}
/*FI*/}
/*FI*/C->_call=X173make_runnable((((T390*)C))->_call/*20*/,(((T390*)C))->_run_compound/*4*/,(((T390*)C))->_writable/*12*/,_args,(((T390*)C))->_run_feature/*16*/);
}
T0* r390add_comment(T390* C,T0* a1){
T0* R=NULL;
/*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
R=(T0*)C;
}
/*AF*/else {
{T46*n=malloc(sizeof(*n));
*n=M46;
r46make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI*/return R;
}
void r390check_created_type(T390* C,T0* a1){
T0* _rt=NULL;
_rt=X291run_type(a1);
/*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
}
 else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
r683add_type(_rt,((T0*)ms2_747));
r683add_position((((T390*)C))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*FI*//*IF*/if (X291is_formal_generic(a1)) {
r683add_position((((T390*)C))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
r7append(((T7*)(oBC683explanation)),b1);
}/*]*/
r683add_type(a1,((T0*)ms5_747));
r683print_as_fatal_error(((T683*)(oBC364eh)));
}
/*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
}
void r390cp_not_found(T390* C,T0* a1){
r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
r683add_position(X776start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
r683fatal_error(((T683*)(oBC364eh)),b1);
}/*]*/
}
/*No:CREATION_CALL_3.writable*/
/*No:CREATION_CALL_3.us_dictionary*/
/*No:CREATION_CALL_3.us_with_capacity*/
/*No:CREATION_CALL_3.fz_bad_arguments*/
/*No:CREATION_CALL_3.us_array*/

