text: /*
   * Code for class TRAVERSABLE [CHARACTER_8]
   */
  
  #include "eif_eiffel.h"
  #include "../E1/estructure.h"
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  extern void F505_2595(EIF_REFERENCE, EIF_TYPED_VALUE);
  extern void F505_2596(EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE);
  extern EIF_TYPED_VALUE F505_2597(EIF_REFERENCE, EIF_TYPED_VALUE);
  extern EIF_TYPED_VALUE F505_2598(EIF_REFERENCE, EIF_TYPED_VALUE);
  extern void F505_7151(EIF_REFERENCE, int);
  extern void EIF_Minit505(void);
  
  #ifdef __cplusplus
  }
  #endif
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  
  #ifdef __cplusplus
  }
  #endif
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /* {TRAVERSABLE}.do_all */
  void F505_2595 (EIF_REFERENCE Current, EIF_TYPED_VALUE arg1x)
  {
  	GTCX
  	char *l_feature_name = "do_all";
  	RTEX;
  #define arg1 arg1x.it_r
  	EIF_TYPED_VALUE up1x = {{0}, SK_POINTER};
  #define up1 up1x.it_p
  	EIF_TYPED_VALUE ur1x = {{0}, SK_REF};
  #define ur1 ur1x.it_r
  	EIF_REFERENCE tr1 = NULL;
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	
  	RTLI(4);
  	RTLR(0,arg1);
  	RTLR(1,Current);
  	RTLR(2,tr1);
  	RTLR(3,ur1);
  	RTLIU(4);
  	RTLU (SK_VOID, NULL);
  	RTLU(SK_REF,&arg1);
  	RTLU (SK_REF, &Current);
  	
  	RTEAA(l_feature_name, 504, Current, 0, 1, 3560);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(504, Current, 3560);
  	{
  		EIF_TYPE_INDEX typarr0[] = {0xFF01,250,0xFF01,0xFFF9,1,186,0,0,0xFFFF};
  		EIF_TYPE typres0;
  		{
  			EIF_TYPE l_type;
  			l_type = RTWCT(2164, dtype, Dftype(Current));
  			typarr0[6] = l_type.annotations | 0xFF00;
  			typarr0[7] = l_type.id;
  		}
  		
  		typres0 = eif_compound_id(Dftype(Current), typarr0);
  		RTCC(arg1, 504, l_feature_name, 1, typres0, 0x01);
  	}
  	RTIV(Current, RTAL);
  	if ((RTAL & CK_REQUIRE) || RTAC) {
  		RTHOOK(1);
  		RTCT("action_exists", EX_PRE);
  		RTTE((EIF_BOOLEAN)(arg1 != NULL), label_1);
  		RTCK;
  		RTJB;
  label_1:
  		RTCF;
  	}
  body:;
  	RTHOOK(2);
  	tr1 = ((up1x = (FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2216, dtype))(Current)), (((up1x.type & SK_HEAD) == SK_REF)? (EIF_REFERENCE) 0: (up1x.it_r = RTBU(up1x))), (up1x.type = SK_POINTER), up1x.it_r);
  	RTNHOOK(2,1);
  	ur1 = RTCCL(arg1);
  	(FUNCTION_CAST(void, (EIF_REFERENCE, EIF_TYPED_VALUE)) RTVF(2293, "do_all", tr1))(tr1, ur1x);
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(3);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(3);
  	RTEE;
  #undef up1
  #undef ur1
  #undef arg1
  }
  
  /* {TRAVERSABLE}.do_if */
  void F505_2596 (EIF_REFERENCE Current, EIF_TYPED_VALUE arg1x, EIF_TYPED_VALUE arg2x)
  {
  	GTCX
  	char *l_feature_name = "do_if";
  	RTEX;
  #define arg1 arg1x.it_r
  #define arg2 arg2x.it_r
  	EIF_TYPED_VALUE up1x = {{0}, SK_POINTER};
  #define up1 up1x.it_p
  	EIF_TYPED_VALUE ur1x = {{0}, SK_REF};
  #define ur1 ur1x.it_r
  	EIF_TYPED_VALUE ur2x = {{0}, SK_REF};
  #define ur2 ur2x.it_r
  	EIF_REFERENCE tr1 = NULL;
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	
  	RTLI(6);
  	RTLR(0,arg1);
  	RTLR(1,arg2);
  	RTLR(2,Current);
  	RTLR(3,tr1);
  	RTLR(4,ur1);
  	RTLR(5,ur2);
  	RTLIU(6);
  	RTLU (SK_VOID, NULL);
  	RTLU(SK_REF,&arg1);
  	RTLU(SK_REF,&arg2);
  	RTLU (SK_REF, &Current);
  	
  	RTEAA(l_feature_name, 504, Current, 0, 2, 3561);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(504, Current, 3561);
  	{
  		EIF_TYPE_INDEX typarr0[] = {0xFF01,250,0xFF01,0xFFF9,1,186,0,0,0xFFFF};
  		EIF_TYPE typres0;
  		{
  			EIF_TYPE l_type;
  			l_type = RTWCT(2164, dtype, Dftype(Current));
  			typarr0[6] = l_type.annotations | 0xFF00;
  			typarr0[7] = l_type.id;
  		}
  		
  		typres0 = eif_compound_id(Dftype(Current), typarr0);
  		RTCC(arg1, 504, l_feature_name, 1, typres0, 0x01);
  	}
  	{
  		EIF_TYPE_INDEX typarr0[] = {0xFF01,264,0xFF01,0xFFF9,1,186,0,0,203,0xFFFF};
  		EIF_TYPE typres0;
  		{
  			EIF_TYPE l_type;
  			l_type = RTWCT(2164, dtype, Dftype(Current));
  			typarr0[6] = l_type.annotations | 0xFF00;
  			typarr0[7] = l_type.id;
  		}
  		
  		typres0 = eif_compound_id(Dftype(Current), typarr0);
  		RTCC(arg2, 504, l_feature_name, 2, typres0, 0x01);
  	}
  	RTIV(Current, RTAL);
  	if ((RTAL & CK_REQUIRE) || RTAC) {
  		RTHOOK(1);
  		RTCT("action_exists", EX_PRE);
  		RTTE((EIF_BOOLEAN)(arg1 != NULL), label_1);
  		RTCK;
  		RTHOOK(2);
  		RTCT("test_exists", EX_PRE);
  		RTTE((EIF_BOOLEAN)(arg2 != NULL), label_1);
  		RTCK;
  		RTJB;
  label_1:
  		RTCF;
  	}
  body:;
  	RTHOOK(3);
  	tr1 = ((up1x = (FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2216, dtype))(Current)), (((up1x.type & SK_HEAD) == SK_REF)? (EIF_REFERENCE) 0: (up1x.it_r = RTBU(up1x))), (up1x.type = SK_POINTER), up1x.it_r);
  	RTNHOOK(3,1);
  	ur1 = RTCCL(arg1);
  	ur2 = RTCCL(arg2);
  	(FUNCTION_CAST(void, (EIF_REFERENCE, EIF_TYPED_VALUE, EIF_TYPED_VALUE)) RTVF(2294, "do_if", tr1))(tr1, ur1x, ur2x);
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(4);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(4);
  	RTEE;
  #undef up1
  #undef ur1
  #undef ur2
  #undef arg2
  #undef arg1
  }
  
  /* {TRAVERSABLE}.there_exists */
  EIF_TYPED_VALUE F505_2597 (EIF_REFERENCE Current, EIF_TYPED_VALUE arg1x)
  {
  	GTCX
  	char *l_feature_name = "there_exists";
  	RTEX;
  #define arg1 arg1x.it_r
  	EIF_TYPED_VALUE up1x = {{0}, SK_POINTER};
  #define up1 up1x.it_p
  	EIF_TYPED_VALUE ur1x = {{0}, SK_REF};
  #define ur1 ur1x.it_r
  	EIF_REFERENCE tr1 = NULL;
  	EIF_BOOLEAN tb1;
  	EIF_BOOLEAN Result = ((EIF_BOOLEAN) 0);
  	
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	
  	RTLI(4);
  	RTLR(0,arg1);
  	RTLR(1,Current);
  	RTLR(2,tr1);
  	RTLR(3,ur1);
  	RTLIU(4);
  	RTLU (SK_BOOL, &Result);
  	RTLU(SK_REF,&arg1);
  	RTLU (SK_REF, &Current);
  	
  	RTEAA(l_feature_name, 504, Current, 0, 1, 3562);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(504, Current, 3562);
  	{
  		EIF_TYPE_INDEX typarr0[] = {0xFF01,264,0xFF01,0xFFF9,1,186,0,0,203,0xFFFF};
  		EIF_TYPE typres0;
  		{
  			EIF_TYPE l_type;
  			l_type = RTWCT(2164, dtype, Dftype(Current));
  			typarr0[6] = l_type.annotations | 0xFF00;
  			typarr0[7] = l_type.id;
  		}
  		
  		typres0 = eif_compound_id(Dftype(Current), typarr0);
  		RTCC(arg1, 504, l_feature_name, 1, typres0, 0x01);
  	}
  	RTIV(Current, RTAL);
  	if ((RTAL & CK_REQUIRE) || RTAC) {
  		RTHOOK(1);
  		RTCT("test_exists", EX_PRE);
  		RTTE((EIF_BOOLEAN)(arg1 != NULL), label_1);
  		RTCK;
  		RTJB;
  label_1:
  		RTCF;
  	}
  body:;
  	RTHOOK(2);
  	RTDBGAL(0, 0x04000000, 1,0); /* Result */
  	tr1 = ((up1x = (FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2216, dtype))(Current)), (((up1x.type & SK_HEAD) == SK_REF)? (EIF_REFERENCE) 0: (up1x.it_r = RTBU(up1x))), (up1x.type = SK_POINTER), up1x.it_r);
  	RTNHOOK(2,1);
  	ur1 = RTCCL(arg1);
  	tb1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE, EIF_TYPED_VALUE)) RTVF(2295, "there_exists", tr1))(tr1, ur1x)).it_b);
  	Result = (EIF_BOOLEAN) tb1;
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(3);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(3);
  	RTEE;
  	{ EIF_TYPED_VALUE r; r.type = SK_BOOL; r.it_b = Result; return r; }
  #undef up1
  #undef ur1
  #undef arg1
  }
  
  /* {TRAVERSABLE}.for_all */
  EIF_TYPED_VALUE F505_2598 (EIF_REFERENCE Current, EIF_TYPED_VALUE arg1x)
  {
  	GTCX
  	char *l_feature_name = "for_all";
  	RTEX;
  #define arg1 arg1x.it_r
  	EIF_TYPED_VALUE up1x = {{0}, SK_POINTER};
  #define up1 up1x.it_p
  	EIF_TYPED_VALUE ur1x = {{0}, SK_REF};
  #define ur1 ur1x.it_r
  	EIF_REFERENCE tr1 = NULL;
  	EIF_BOOLEAN tb1;
  	EIF_BOOLEAN Result = ((EIF_BOOLEAN) 0);
  	
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	
  	RTLI(4);
  	RTLR(0,arg1);
  	RTLR(1,Current);
  	RTLR(2,tr1);
  	RTLR(3,ur1);
  	RTLIU(4);
  	RTLU (SK_BOOL, &Result);
  	RTLU(SK_REF,&arg1);
  	RTLU (SK_REF, &Current);
  	
  	RTEAA(l_feature_name, 504, Current, 0, 1, 3563);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(504, Current, 3563);
  	{
  		EIF_TYPE_INDEX typarr0[] = {0xFF01,264,0xFF01,0xFFF9,1,186,0,0,203,0xFFFF};
  		EIF_TYPE typres0;
  		{
  			EIF_TYPE l_type;
  			l_type = RTWCT(2164, dtype, Dftype(Current));
  			typarr0[6] = l_type.annotations | 0xFF00;
  			typarr0[7] = l_type.id;
  		}
  		
  		typres0 = eif_compound_id(Dftype(Current), typarr0);
  		RTCC(arg1, 504, l_feature_name, 1, typres0, 0x01);
  	}
  	RTIV(Current, RTAL);
  	if ((RTAL & CK_REQUIRE) || RTAC) {
  		RTHOOK(1);
  		RTCT("test_exists", EX_PRE);
  		RTTE((EIF_BOOLEAN)(arg1 != NULL), label_1);
  		RTCK;
  		RTJB;
  label_1:
  		RTCF;
  	}
  body:;
  	RTHOOK(2);
  	RTDBGAL(0, 0x04000000, 1,0); /* Result */
  	tr1 = ((up1x = (FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2216, dtype))(Current)), (((up1x.type & SK_HEAD) == SK_REF)? (EIF_REFERENCE) 0: (up1x.it_r = RTBU(up1x))), (up1x.type = SK_POINTER), up1x.it_r);
  	RTNHOOK(2,1);
  	ur1 = RTCCL(arg1);
  	tb1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE, EIF_TYPED_VALUE)) RTVF(2296, "for_all", tr1))(tr1, ur1x)).it_b);
  	Result = (EIF_BOOLEAN) tb1;
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(3);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(3);
  	RTEE;
  	{ EIF_TYPED_VALUE r; r.type = SK_BOOL; r.it_b = Result; return r; }
  #undef up1
  #undef ur1
  #undef arg1
  }
  
  /* {TRAVERSABLE}._invariant */
  void F505_7151 (EIF_REFERENCE Current, int where)
  {
  	GTCX
  	char *l_feature_name = "_invariant";
  	RTEX;
  	EIF_BOOLEAN tb1;
  	EIF_BOOLEAN tb2;
  	RTCDT;
  	RTLD;
  	RTDA;
  	
  	RTLI(1);
  	RTLR(0,Current);
  	RTLIU(1);
  	RTLU (SK_VOID, NULL);
  	RTLU (SK_REF, &Current);
  	RTEAINV(l_feature_name, 504, Current, 0, 7150);
  	RTSA(dtype);
  	RTME(dtype, 0);
  	RTIT("empty_constraint", Current);
  	tb1 = '\01';
  	tb2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2210, dtype))(Current)).it_b);
  	if (tb2) {
  		tb2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2291, dtype))(Current)).it_b);
  		tb1 = tb2;
  	}
  	if (tb1) {
  		RTCK;
  	} else {
  		RTCF;
  	}
  	RTLO(2);
  	RTMD(0);
  	RTLE;
  	RTEE;
  }
  
  void EIF_Minit505 (void)
  {
  	GTCX
  }
  
  
  #ifdef __cplusplus
  }
  #endif
  