text: /*
   * Code for class LIST [CHARACTER_32]
   */
  
  #include "eif_eiffel.h"
  #include "../E1/estructure.h"
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  extern EIF_TYPED_VALUE F923_3331(EIF_REFERENCE, EIF_TYPED_VALUE);
  extern EIF_TYPED_VALUE F923_3332(EIF_REFERENCE);
  extern EIF_TYPED_VALUE F923_3333(EIF_REFERENCE);
  extern void F923_7169(EIF_REFERENCE, int);
  extern void EIF_Minit923(void);
  
  #ifdef __cplusplus
  }
  #endif
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  
  #ifdef __cplusplus
  }
  #endif
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /* {LIST}.is_equal */
  EIF_TYPED_VALUE F923_3331 (EIF_REFERENCE Current, EIF_TYPED_VALUE arg1x)
  {
  	GTCX
  	char *l_feature_name = "is_equal";
  	RTEX;
  	EIF_REFERENCE loc1 = (EIF_REFERENCE) 0;
  	EIF_REFERENCE loc2 = (EIF_REFERENCE) 0;
  #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_REFERENCE tr2 = NULL;
  	EIF_REFERENCE tr3 = NULL;
  	EIF_INTEGER_32 ti4_1;
  	EIF_INTEGER_32 ti4_2;
  	EIF_INTEGER_32 ti4_3;
  	EIF_INTEGER_32 ti4_4;
  	EIF_CHARACTER_32 tw1;
  	EIF_CHARACTER_32 tw2;
  	EIF_BOOLEAN tb1;
  	EIF_BOOLEAN tb2;
  	EIF_BOOLEAN tb3;
  	EIF_BOOLEAN tb4;
  	EIF_BOOLEAN Result = ((EIF_BOOLEAN) 0);
  	
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	
  	RTLI(8);
  	RTLR(0,arg1);
  	RTLR(1,Current);
  	RTLR(2,tr1);
  	RTLR(3,tr2);
  	RTLR(4,loc1);
  	RTLR(5,tr3);
  	RTLR(6,loc2);
  	RTLR(7,ur1);
  	RTLIU(8);
  	RTLU (SK_BOOL, &Result);
  	RTLU(SK_REF,&arg1);
  	RTLU (SK_REF, &Current);
  	RTLU(SK_REF, &loc1);
  	RTLU(SK_REF, &loc2);
  	
  	RTEAA(l_feature_name, 922, Current, 2, 1, 6211);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(922, Current, 6211);
  	RTCC(arg1, 922, l_feature_name, 1, eif_new_type(Dftype(Current), 1), 0x01);
  	RTIV(Current, RTAL);
  	if ((RTAL & CK_REQUIRE) || RTAC) {
  		RTHOOK(1);
  		RTCT("other_not_void", EX_PRE);
  		RTTE((EIF_BOOLEAN)(arg1 != NULL), label_1);
  		RTCK;
  		RTJB;
  label_1:
  		RTCF;
  	}
  body:;
  	if (RTAL & CK_ENSURE) {
  		in_assertion = ~0;
  		RTE_OT
  		ti4_2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2302, dtype))(Current)).it_i4);
  		ti4_1 = ti4_2;
  		tr1 = NULL;
  		RTE_O
  		tr1 = RTLA;
  		RTE_OE
  		RTE_OT
  		ti4_3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2302, "index", arg1))(arg1)).it_i4);
  		ti4_2 = ti4_3;
  		tr2 = NULL;
  		RTE_O
  		tr2 = RTLA;
  		RTE_OE
  		in_assertion = 0;
  	}
  	RTHOOK(2);
  	if (RTCEQ(Current, arg1)) {
  		RTHOOK(3);
  		RTDBGAL(0, 0x04000000, 1,0); /* Result */
  		Result = (EIF_BOOLEAN) (EIF_BOOLEAN) 1;
  	} else {
  		RTHOOK(4);
  		RTDBGAL(0, 0x04000000, 1,0); /* Result */
  		tb1 = '\0';
  		tb2 = '\0';
  		tb3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2210, dtype))(Current)).it_b);
  		tb4 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2210, "is_empty", arg1))(arg1)).it_b);
  		if ((EIF_BOOLEAN)(tb3 == tb4)) {
  			tb3 = *(EIF_BOOLEAN *)(Current + RTWA(2212, dtype));
  			tb4 = *(EIF_BOOLEAN *)(arg1 + RTVA(2212, "object_comparison", arg1));
  			tb2 = (EIF_BOOLEAN)(tb3 == tb4);
  		}
  		if (tb2) {
  			ti4_3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2269, dtype))(Current)).it_i4);
  			ti4_4 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2269, "count", arg1))(arg1)).it_i4);
  			tb1 = (EIF_BOOLEAN)(ti4_3 == ti4_4);
  		}
  		Result = (EIF_BOOLEAN) tb1;
  		RTHOOK(5);
  		tb1 = '\0';
  		if (Result) {
  			tb2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2210, dtype))(Current)).it_b);
  			tb1 = (EIF_BOOLEAN) !tb2;
  		}
  		if (tb1) {
  			RTHOOK(6);
  			tb1 = '\0';
  			tr3 = ((up1x = (FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2264, dtype))(Current)), (((up1x.type & SK_HEAD) == SK_REF)? (EIF_REFERENCE) 0: (up1x.it_r = RTBU(up1x))), (up1x.type = SK_POINTER), up1x.it_r);
  			loc1 = RTCCL(tr3);
  			if (EIF_TEST(loc1)) {
  				tr3 = ((up1x = (FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2264, "cursor", arg1))(arg1)), (((up1x.type & SK_HEAD) == SK_REF)? (EIF_REFERENCE) 0: (up1x.it_r = RTBU(up1x))), (up1x.type = SK_POINTER), up1x.it_r);
  				loc2 = RTCCL(tr3);
  				tb1 = EIF_TEST(loc2);
  			}
  			if (tb1) {
  				RTHOOK(7);
  				(FUNCTION_CAST(void, (EIF_REFERENCE)) RTWF(2292, dtype))(Current);
  				RTHOOK(8);
  				(FUNCTION_CAST(void, (EIF_REFERENCE)) RTVF(2292, "start", arg1))(arg1);
  				for (;;) {
  					RTHOOK(9);
  					tb1 = '\01';
  					tb2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2306, dtype))(Current)).it_b);
  					if (!tb2) {
  						tb1 = (EIF_BOOLEAN) !Result;
  					}
  					if (tb1) break;
  					RTHOOK(10);
  					tb2 = *(EIF_BOOLEAN *)(Current + RTWA(2212, dtype));
  					if (tb2) {
  						RTHOOK(11);
  						RTDBGAL(0, 0x04000000, 1,0); /* Result */
  						tw1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2258, dtype))(Current)).it_c4);
  						tw2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2258, "item", arg1))(arg1)).it_c4);
  						Result = (EIF_BOOLEAN) (tw1 == tw2);
  					} else {
  						RTHOOK(12);
  						RTDBGAL(0, 0x04000000, 1,0); /* Result */
  						tw1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2258, dtype))(Current)).it_c4);
  						tw2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2258, "item", arg1))(arg1)).it_c4);
  						Result = (EIF_BOOLEAN) (EIF_BOOLEAN)(tw1 == tw2);
  					}
  					RTHOOK(13);
  					(FUNCTION_CAST(void, (EIF_REFERENCE)) RTWF(2308, dtype))(Current);
  					RTHOOK(14);
  					(FUNCTION_CAST(void, (EIF_REFERENCE)) RTVF(2308, "forth", arg1))(arg1);
  				}
  				RTHOOK(15);
  				ur1 = RTCCL(loc1);
  				(FUNCTION_CAST(void, (EIF_REFERENCE, EIF_TYPED_VALUE)) RTWF(2266, dtype))(Current, ur1x);
  				RTHOOK(16);
  				ur1 = RTCCL(loc2);
  				(FUNCTION_CAST(void, (EIF_REFERENCE, EIF_TYPED_VALUE)) RTVF(2266, "go_to", arg1))(arg1, ur1x);
  			} else {
  				if (RTAL & CK_CHECK) {
  					RTHOOK(17);
  					RTCT("cursors_exist", EX_CHECK);
  						RTCF;
  				}
  			}
  		} else {
  			RTHOOK(18);
  			tb2 = '\0';
  			tb3 = '\0';
  			tb4 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2210, dtype))(Current)).it_b);
  			if (tb4) {
  				tb4 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2210, "is_empty", arg1))(arg1)).it_b);
  				tb3 = tb4;
  			}
  			if (tb3) {
  				tb3 = *(EIF_BOOLEAN *)(Current + RTWA(2212, dtype));
  				tb4 = *(EIF_BOOLEAN *)(arg1 + RTVA(2212, "object_comparison", arg1));
  				tb2 = (EIF_BOOLEAN)(tb3 == tb4);
  			}
  			if (tb2) {
  				RTHOOK(19);
  				RTDBGAL(0, 0x04000000, 1,0); /* Result */
  				Result = (EIF_BOOLEAN) (EIF_BOOLEAN) 1;
  			}
  		}
  	}
  	if (RTAL & CK_ENSURE) {
  		RTHOOK(20);
  		RTCT("symmetric", EX_POST);
  		if ((!(Result) || (RTEQ(arg1, Current)))) {
  			RTCK;
  		} else {
  			RTCF;
  		}
  		RTHOOK(21);
  		RTCT("consistent", EX_POST);
  		tb2 = '\01';
  		ur1 = RTCCL(arg1);
  		tb3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE, EIF_TYPED_VALUE)) RTWF(12, dtype))(Current, ur1x)).it_b);
  		if (tb3) {
  			tb2 = Result;
  		}
  		if (tb2) {
  			RTCK;
  		} else {
  			RTCF;
  		}
  		RTHOOK(22);
  		RTCT("indices_unchanged", EX_POST);
  		tb2 = '\0';
  		ti4_3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2302, dtype))(Current)).it_i4);
  		RTCO(tr1);
  		if ((EIF_BOOLEAN)(ti4_3 == ti4_1)) {
  			ti4_3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2302, "index", arg1))(arg1)).it_i4);
  			RTCO(tr2);
  			tb2 = (EIF_BOOLEAN)(ti4_3 == ti4_2);
  		}
  		if (tb2) {
  			RTCK;
  		} else {
  			RTCF;
  		}
  		RTHOOK(23);
  		RTCT("true_implies_same_size", EX_POST);
  		tb2 = '\01';
  		if (Result) {
  			ti4_3 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2269, dtype))(Current)).it_i4);
  			ti4_4 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTVF(2269, "count", arg1))(arg1)).it_i4);
  			tb2 = (EIF_BOOLEAN)(ti4_3 == ti4_4);
  		}
  		if (tb2) {
  			RTCK;
  		} else {
  			RTCF;
  		}
  	}
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(24);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(5);
  	RTEE;
  	{ EIF_TYPED_VALUE r; r.type = SK_BOOL; r.it_b = Result; return r; }
  #undef up1
  #undef ur1
  #undef arg1
  }
  
  /* {LIST}.after */
  EIF_TYPED_VALUE F923_3332 (EIF_REFERENCE Current)
  {
  	GTCX
  	char *l_feature_name = "after";
  	RTEX;
  	EIF_INTEGER_32 ti4_1;
  	EIF_INTEGER_32 ti4_2;
  	EIF_BOOLEAN Result = ((EIF_BOOLEAN) 0);
  	
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	RTLI(1);
  	RTLR(0,Current);
  	RTLIU(1);
  	RTLU (SK_BOOL, &Result);
  	RTLU (SK_REF, &Current);
  	
  	RTEAA(l_feature_name, 922, Current, 0, 0, 6212);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(922, Current, 6212);
  	RTIV(Current, RTAL);
  	RTHOOK(1);
  	RTDBGAL(0, 0x04000000, 1,0); /* Result */
  	ti4_1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2302, dtype))(Current)).it_i4);
  	ti4_2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2269, dtype))(Current)).it_i4);
  	Result = (EIF_BOOLEAN) (EIF_BOOLEAN)(ti4_1 == (EIF_INTEGER_32) (ti4_2 + ((EIF_INTEGER_32) 1L)));
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(2);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(2);
  	RTEE;
  	{ EIF_TYPED_VALUE r; r.type = SK_BOOL; r.it_b = Result; return r; }
  }
  
  /* {LIST}.before */
  EIF_TYPED_VALUE F923_3333 (EIF_REFERENCE Current)
  {
  	GTCX
  	char *l_feature_name = "before";
  	RTEX;
  	EIF_INTEGER_32 ti4_1;
  	EIF_BOOLEAN Result = ((EIF_BOOLEAN) 0);
  	
  	RTCDT;
  	RTSN;
  	RTDA;
  	RTLD;
  	
  	RTLI(1);
  	RTLR(0,Current);
  	RTLIU(1);
  	RTLU (SK_BOOL, &Result);
  	RTLU (SK_REF, &Current);
  	
  	RTEAA(l_feature_name, 922, Current, 0, 0, 6213);
  	RTSA(dtype);
  	RTSC;
  	RTME(dtype, 0);
  	RTGC;
  	RTDBGEAA(922, Current, 6213);
  	RTIV(Current, RTAL);
  	RTHOOK(1);
  	RTDBGAL(0, 0x04000000, 1,0); /* Result */
  	ti4_1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2302, dtype))(Current)).it_i4);
  	Result = (EIF_BOOLEAN) (EIF_BOOLEAN)(ti4_1 == ((EIF_INTEGER_32) 0L));
  	RTVI(Current, RTAL);
  	RTRS;
  	RTHOOK(2);
  	RTDBGLE;
  	RTMD(0);
  	RTLE;
  	RTLO(2);
  	RTEE;
  	{ EIF_TYPED_VALUE r; r.type = SK_BOOL; r.it_b = Result; return r; }
  }
  
  /* {LIST}._invariant */
  void F923_7169 (EIF_REFERENCE Current, int where)
  {
  	GTCX
  	char *l_feature_name = "_invariant";
  	RTEX;
  	EIF_INTEGER_32 ti4_1;
  	EIF_INTEGER_32 ti4_2;
  	EIF_BOOLEAN tb1;
  	RTCDT;
  	RTLD;
  	RTDA;
  	
  	RTLI(1);
  	RTLR(0,Current);
  	RTLIU(1);
  	RTLU (SK_VOID, NULL);
  	RTLU (SK_REF, &Current);
  	RTEAINV(l_feature_name, 922, Current, 0, 7168);
  	RTSA(dtype);
  	RTME(dtype, 0);
  	RTIT("before_definition", Current);
  	tb1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2359, dtype))(Current)).it_b);
  	ti4_1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2302, dtype))(Current)).it_i4);
  	if ((EIF_BOOLEAN)(tb1 == (EIF_BOOLEAN)(ti4_1 == ((EIF_INTEGER_32) 0L)))) {
  		RTCK;
  	} else {
  		RTCF;
  	}
  	RTIT("after_definition", Current);
  	tb1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2306, dtype))(Current)).it_b);
  	ti4_1 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2302, dtype))(Current)).it_i4);
  	ti4_2 = (((FUNCTION_CAST(EIF_TYPED_VALUE, (EIF_REFERENCE)) RTWF(2269, dtype))(Current)).it_i4);
  	if ((EIF_BOOLEAN)(tb1 == (EIF_BOOLEAN)(ti4_1 == (EIF_INTEGER_32) (ti4_2 + ((EIF_INTEGER_32) 1L))))) {
  		RTCK;
  	} else {
  		RTCF;
  	}
  	RTLO(2);
  	RTMD(0);
  	RTLE;
  	RTEE;
  }
  
  void EIF_Minit923 (void)
  {
  	GTCX
  }
  
  
  #ifdef __cplusplus
  }
  #endif
  