Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/src/hpc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 184 kB image not shown  

Quelle  c_oper1.c   Sprache: C

 
/* C file produced by GAC */
#include "compiled.h"
#define FILE_CRC  "-115201159"

/* global variables used in handlers */
static GVar G_REREADING;
static Obj  GC_REREADING;
static GVar G_SHALLOW__COPY__OBJ;
static Obj  GF_SHALLOW__COPY__OBJ;
static GVar G_PRINT__OBJ;
static Obj  GC_PRINT__OBJ;
static GVar G_GAPInfo;
static Obj  GC_GAPInfo;
static GVar G_TYPE__FUNCTION__WITH__NAME;
static Obj  GC_TYPE__FUNCTION__WITH__NAME;
static GVar G_TYPE__OPERATION__WITH__NAME;
static Obj  GC_TYPE__OPERATION__WITH__NAME;
static GVar G_IS__FUNCTION;
static Obj  GF_IS__FUNCTION;
static GVar G_NAME__FUNC;
static Obj  GF_NAME__FUNC;
static GVar G_SET__NAME__FUNC;
static Obj  GF_SET__NAME__FUNC;
static GVar G_NARG__FUNC;
static Obj  GF_NARG__FUNC;
static GVar G_CHECK__REPEATED__ATTRIBUTE__SET;
static GVar G_IS__OPERATION;
static Obj  GF_IS__OPERATION;
static GVar G_IS__INT;
static Obj  GF_IS__INT;
static GVar G_IS__LIST;
static Obj  GF_IS__LIST;
static GVar G_ADD__LIST;
static Obj  GF_ADD__LIST;
static GVar G_IS__STRING__REP;
static Obj  GF_IS__STRING__REP;
static GVar G_Error;
static Obj  GF_Error;
static GVar G_VAL__GVAR;
static Obj  GF_VAL__GVAR;
static GVar G_TYPE__OBJ;
static Obj  GF_TYPE__OBJ;
static GVar G_IMMUTABLE__COPY__OBJ;
static Obj  GF_IMMUTABLE__COPY__OBJ;
static GVar G_IS__IDENTICAL__OBJ;
static Obj  GF_IS__IDENTICAL__OBJ;
static GVar G_MakeImmutable;
static Obj  GF_MakeImmutable;
static GVar G_INPUT__FILENAME;
static Obj  GF_INPUT__FILENAME;
static GVar G_INPUT__LINENUMBER;
static Obj  GF_INPUT__LINENUMBER;
static GVar G_IS__OBJECT;
static Obj  GC_IS__OBJECT;
static GVar G_TRY__NEXT__METHOD;
static Obj  GC_TRY__NEXT__METHOD;
static GVar G_SUB__FLAGS;
static Obj  GF_SUB__FLAGS;
static GVar G_WITH__HIDDEN__IMPS__FLAGS;
static Obj  GF_WITH__HIDDEN__IMPS__FLAGS;
static GVar G_WITH__IMPS__FLAGS;
static Obj  GF_WITH__IMPS__FLAGS;
static GVar G_IS__SUBSET__FLAGS;
static Obj  GF_IS__SUBSET__FLAGS;
static GVar G_TRUES__FLAGS;
static Obj  GF_TRUES__FLAGS;
static GVar G_FLAG1__FILTER;
static Obj  GF_FLAG1__FILTER;
static GVar G_FLAGS__FILTER;
static Obj  GF_FLAGS__FILTER;
static GVar G_METHODS__OPERATION;
static Obj  GF_METHODS__OPERATION;
static GVar G_SET__METHODS__OPERATION;
static Obj  GF_SET__METHODS__OPERATION;
static GVar G_INSTALL__EARLY__METHOD;
static Obj  GC_INSTALL__EARLY__METHOD;
static GVar G_DO__NOTHING__SETTER;
static Obj  GC_DO__NOTHING__SETTER;
static GVar G_IS__CONSTRUCTOR;
static Obj  GF_IS__CONSTRUCTOR;
static GVar G_QUO__INT;
static Obj  GF_QUO__INT;
static GVar G_STRING__INT;
static Obj  GF_STRING__INT;
static GVar G_fail;
static Obj  GC_fail;
static GVar G_RETURN__TRUE;
static Obj  GC_RETURN__TRUE;
static GVar G_RETURN__FALSE;
static Obj  GC_RETURN__FALSE;
static GVar G_LEN__LIST;
static Obj  GF_LEN__LIST;
static GVar G_APPEND__LIST__INTR;
static Obj  GF_APPEND__LIST__INTR;
static GVar G_COPY__LIST__ENTRIES;
static Obj  GF_COPY__LIST__ENTRIES;
static GVar G_CONV__STRING;
static Obj  GF_CONV__STRING;
static GVar G_Print;
static Obj  GF_Print;
static GVar G_ViewObj;
static Obj  GC_ViewObj;
static GVar G_WRITE__LOCK;
static Obj  GF_WRITE__LOCK;
static GVar G_READ__LOCK;
static Obj  GF_READ__LOCK;
static GVar G_UNLOCK;
static Obj  GF_UNLOCK;
static GVar G_MakeReadOnlySingleObj;
static Obj  GF_MakeReadOnlySingleObj;
static GVar G_RUN__IMMEDIATE__METHODS__RUNS;
static Obj  GC_RUN__IMMEDIATE__METHODS__RUNS;
static GVar G_RUN__IMMEDIATE__METHODS__CHECKS;
static Obj  GC_RUN__IMMEDIATE__METHODS__CHECKS;
static GVar G_RUN__IMMEDIATE__METHODS__HITS;
static Obj  GC_RUN__IMMEDIATE__METHODS__HITS;
static GVar G_BIND__GLOBAL;
static Obj  GF_BIND__GLOBAL;
static GVar G_IGNORE__IMMEDIATE__METHODS;
static Obj  GC_IGNORE__IMMEDIATE__METHODS;
static GVar G_IMM__FLAGS;
static Obj  GC_IMM__FLAGS;
static GVar G_TRACE__IMMEDIATE__METHODS;
static Obj  GC_TRACE__IMMEDIATE__METHODS;
static GVar G_IMMEDIATES;
static Obj  GC_IMMEDIATES;
static GVar G_SIZE__IMMEDIATE__METHOD__ENTRY;
static Obj  GC_SIZE__IMMEDIATE__METHOD__ENTRY;
static GVar G_IMMEDIATE__METHODS;
static Obj  GC_IMMEDIATE__METHODS;
static GVar G_NewSpecialRegion;
static Obj  GF_NewSpecialRegion;
static GVar G_METHODS__OPERATION__REGION;
static Obj  GC_METHODS__OPERATION__REGION;
static GVar G_RankFilter;
static Obj  GF_RankFilter;
static GVar G_CHECK__INSTALL__METHOD;
static Obj  GC_CHECK__INSTALL__METHOD;
static GVar G_READEVALCOMMAND__LINENUMBER;
static Obj  GC_READEVALCOMMAND__LINENUMBER;
static GVar G_INSTALL__METHOD;
static Obj  GF_INSTALL__METHOD;
static GVar G_DeclareGlobalFunction;
static Obj  GF_DeclareGlobalFunction;
static GVar G_OPERATIONS__REGION;
static Obj  GC_OPERATIONS__REGION;
static GVar G_EvalString;
static Obj  GF_EvalString;
static GVar G_RANK__SHIFT__FUNCTION;
static Obj  GF_RANK__SHIFT__FUNCTION;
static GVar G_WRAPPER__OPERATIONS;
static Obj  GC_WRAPPER__OPERATIONS;
static GVar G_INFO__DEBUG;
static Obj  GF_INFO__DEBUG;
static GVar G_GET__OPER__FLAGS;
static Obj  GF_GET__OPER__FLAGS;
static GVar G_NamesFilter;
static Obj  GF_NamesFilter;
static GVar G_Ordinal;
static Obj  GF_Ordinal;
static GVar G_HasNameFunction;
static Obj  GC_HasNameFunction;
static GVar G_INSTALL__METHOD__FLAGS;
static Obj  GF_INSTALL__METHOD__FLAGS;
static GVar G_LENGTH__SETTER__METHODS__2;
static Obj  GC_LENGTH__SETTER__METHODS__2;
static GVar G_InstallAttributeFunction;
static Obj  GF_InstallAttributeFunction;
static GVar G_FILTER__REGION;
static Obj  GC_FILTER__REGION;
static GVar G_INFO__FILTERS;
static Obj  GC_INFO__FILTERS;
static GVar G_FNUM__CATS__AND__REPS;
static Obj  GC_FNUM__CATS__AND__REPS;
static GVar G_FILTERS;
static Obj  GC_FILTERS;
static GVar G_FNUM__PROS;
static Obj  GC_FNUM__PROS;
static GVar G_InstallOtherMethod;
static Obj  GF_InstallOtherMethod;
static GVar G_Tester;
static Obj  GF_Tester;
static GVar G_IsPrimeInt;
static Obj  GF_IsPrimeInt;
static GVar G_DeclareOperation;
static Obj  GF_DeclareOperation;
static GVar G_VALUE__GLOBAL;
static Obj  GF_VALUE__GLOBAL;
static GVar G_DeclareAttribute;
static Obj  GF_DeclareAttribute;
static GVar G_InstallMethod;
static Obj  GF_InstallMethod;
static GVar G_PositionSortedOddPositions;
static Obj  GF_PositionSortedOddPositions;
static GVar G_CallFuncList;
static Obj  GF_CallFuncList;

/* record names used in handlers */
static RNam R_MaxNrArgsMethod;
static RNam R_CommandLineOptions;
static RNam R_N;

/* information for the functions */
static Obj  NameFunc[20];
static Obj FileName;

/* handler for function 2 */
static Obj  HdlrFunc2 (
 Obj  self,
 Obj  a_obj,
 Obj  a_flags )
{
 Obj l_flagspos = 0;
 Obj l_tried = 0;
 Obj l_type = 0;
 Obj l_j = 0;
 Obj l_imm = 0;
 Obj l_i = 0;
 Obj l_meth = 0;
 Obj l_res = 0;
 Obj l_loc = 0;
 Obj l_newflags = 0;
 Obj t_1 = 0;
 Obj t_2 = 0;
 Obj t_3 = 0;
 Obj t_4 = 0;
 Obj t_5 = 0;
 Obj t_6 = 0;
 Obj t_7 = 0;
 Obj t_8 = 0;
 Obj t_9 = 0;
 Obj t_10 = 0;
 Obj t_11 = 0;
 Obj t_12 = 0;
 Obj t_13 = 0;
 Obj t_14 = 0;
 Obj t_15 = 0;
 Obj t_16 = 0;
 Obj t_17 = 0;
 (void)l_flagspos;
 (void)l_tried;
 (void)l_type;
 (void)l_j;
 (void)l_imm;
 (void)l_i;
 (void)l_meth;
 (void)l_res;
 (void)l_loc;
 (void)l_newflags;
 Bag oldFrame;
 
 /* allocate new stack frame */
 SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
 
 /* if IGNORE_IMMEDIATE_METHODS then */
 t_2 = GC_IGNORE__IMMEDIATE__METHODS;
 CHECK_BOUND( t_2, "IGNORE_IMMEDIATE_METHODS" );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* return; */
  SWITCH_TO_OLD_FRAME(oldFrame);
  return 0;
  
 }
 /* fi */
 
 /* if IS_SUBSET_FLAGS( IMM_FLAGS, flags ) then */
 t_3 = GF_IS__SUBSET__FLAGS;
 t_4 = GC_IMM__FLAGS;
 CHECK_BOUND( t_4, "IMM_FLAGS" );
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_2ARGS( t_3, t_4, a_flags );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( t_4, a_flags ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* return; */
  SWITCH_TO_OLD_FRAME(oldFrame);
  return 0;
  
 }
 /* fi */
 
 /* flags := SUB_FLAGS( flags, IMM_FLAGS ); */
 t_2 = GF_SUB__FLAGS;
 t_3 = GC_IMM__FLAGS;
 CHECK_BOUND( t_3, "IMM_FLAGS" );
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_2ARGS( t_2, a_flags, t_3 );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_flags, t_3 ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 a_flags = t_1;
 
 /* flagspos := SHALLOW_COPY_OBJ( TRUES_FLAGS( flags ) ); */
 t_2 = GF_SHALLOW__COPY__OBJ;
 t_4 = GF_TRUES__FLAGS;
 if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
  t_3 = CALL_1ARGS( t_4, a_flags );
 }
 else {
  t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( a_flags ) );
 }
 CHECK_FUNC_RESULT( t_3 );
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_1ARGS( t_2, t_3 );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( t_3 ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_flagspos = t_1;
 
 /* tried := [  ]; */
 t_1 = NEW_PLIST( T_PLIST, 0 );
 SET_LEN_PLIST( t_1, 0 );
 l_tried = t_1;
 
 /* type := TYPE_OBJ( obj ); */
 t_2 = GF_TYPE__OBJ;
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_1ARGS( t_2, a_obj );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_obj ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_type = t_1;
 
 /* flags := type![2]; */
 t_1 = ElmPosObj( l_type, 2 );
 a_flags = t_1;
 
 /* RUN_IMMEDIATE_METHODS_RUNS := RUN_IMMEDIATE_METHODS_RUNS + 1; */
 t_2 = GC_RUN__IMMEDIATE__METHODS__RUNS;
 CHECK_BOUND( t_2, "RUN_IMMEDIATE_METHODS_RUNS" );
 C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
 AssGVar( G_RUN__IMMEDIATE__METHODS__RUNS, t_1 );
 
 /* if TRACE_IMMEDIATE_METHODS then */
 t_2 = GC_TRACE__IMMEDIATE__METHODS;
 CHECK_BOUND( t_2, "TRACE_IMMEDIATE_METHODS" );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* Print( "#I RunImmediateMethods\n" ); */
  t_1 = GF_Print;
  t_2 = MakeString( "#I RunImmediateMethods\n" );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_1ARGS( t_1, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2 ) );
  }
  
 }
 /* fi */
 
 /* for j in flagspos do */
 t_4 = l_flagspos;
 if ( IS_SMALL_LIST(t_4) ) {
  t_3 = (Obj)(UInt)1;
  t_1 = INTOBJ_INT(1);
 }
 else {
  t_3 = (Obj)(UInt)0;
  t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
 }
 while ( 1 ) {
  if ( t_3 ) {
   if ( LEN_LIST(t_4) < Int_ObjInt(t_1) )  break;
   t_2 = ELMV0_LIST( t_4, Int_ObjInt(t_1) );
   t_1 = (Obj)(((UInt)t_1)+4);
   if ( t_2 == 0 )  continue;
  }
  else {
   if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False )  break;
   t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
  }
  l_j = t_2;
  
  /* if IsBound( IMMEDIATES[j] ) then */
  t_7 = GC_IMMEDIATES;
  CHECK_BOUND( t_7, "IMMEDIATES" );
  CHECK_INT_POS( l_j );
  t_6 = C_ISB_LIST( t_7, l_j );
  t_5 = (Obj)(UInt)(t_6 != False);
  if ( t_5 ) {
   
   /* imm := IMMEDIATES[j]; */
   t_6 = GC_IMMEDIATES;
   CHECK_BOUND( t_6, "IMMEDIATES" );
   C_ELM_LIST_FPL( t_5, t_6, l_j )
   l_imm = t_5;
   
   /* for i in [ 0, SIZE_IMMEDIATE_METHOD_ENTRY .. LEN_LIST( imm ) - SIZE_IMMEDIATE_METHOD_ENTRY ] do */
   t_9 = GC_SIZE__IMMEDIATE__METHOD__ENTRY;
   CHECK_BOUND( t_9, "SIZE_IMMEDIATE_METHOD_ENTRY" );
   t_12 = GF_LEN__LIST;
   if ( TNUM_OBJ( t_12 ) == T_FUNCTION ) {
    t_11 = CALL_1ARGS( t_12, l_imm );
   }
   else {
    t_11 = DoOperation2Args( CallFuncListOper, t_12, NewPlistFromArgs( l_imm ) );
   }
   CHECK_FUNC_RESULT( t_11 );
   t_12 = GC_SIZE__IMMEDIATE__METHOD__ENTRY;
   CHECK_BOUND( t_12, "SIZE_IMMEDIATE_METHOD_ENTRY" );
   C_DIFF_FIA( t_10, t_11, t_12 )
   t_8 = Range3Check( INTOBJ_INT(0), t_9, t_10 );
   if ( IS_SMALL_LIST(t_8) ) {
    t_7 = (Obj)(UInt)1;
    t_5 = INTOBJ_INT(1);
   }
   else {
    t_7 = (Obj)(UInt)0;
    t_5 = CALL_1ARGS( GF_ITERATOR, t_8 );
   }
   while ( 1 ) {
    if ( t_7 ) {
     if ( LEN_LIST(t_8) < Int_ObjInt(t_5) )  break;
     t_6 = ELMV0_LIST( t_8, Int_ObjInt(t_5) );
     t_5 = (Obj)(((UInt)t_5)+4);
     if ( t_6 == 0 )  continue;
    }
    else {
     if ( CALL_1ARGS( GF_IS_DONE_ITER, t_5 ) != False )  break;
     t_6 = CALL_1ARGS( GF_NEXT_ITER, t_5 );
    }
    l_i = t_6;
    
    /* if IS_SUBSET_FLAGS( flags, imm[i + 4] ) and not IS_SUBSET_FLAGS( flags, imm[i + 3] ) and not imm[i + 6] in tried then */
    t_13 = GF_IS__SUBSET__FLAGS;
    C_SUM_FIA( t_15, l_i, INTOBJ_INT(4) )
    CHECK_INT_POS( t_15 );
    C_ELM_LIST_FPL( t_14, l_imm, t_15 )
    if ( TNUM_OBJ( t_13 ) == T_FUNCTION ) {
     t_12 = CALL_2ARGS( t_13, a_flags, t_14 );
    }
    else {
     t_12 = DoOperation2Args( CallFuncListOper, t_13, NewPlistFromArgs( a_flags, t_14 ) );
    }
    CHECK_FUNC_RESULT( t_12 );
    CHECK_BOOL( t_12 );
    t_11 = (Obj)(UInt)(t_12 != False);
    t_10 = t_11;
    if ( t_10 ) {
     t_15 = GF_IS__SUBSET__FLAGS;
     C_SUM_FIA( t_17, l_i, INTOBJ_INT(3) )
     CHECK_INT_POS( t_17 );
     C_ELM_LIST_FPL( t_16, l_imm, t_17 )
     if ( TNUM_OBJ( t_15 ) == T_FUNCTION ) {
      t_14 = CALL_2ARGS( t_15, a_flags, t_16 );
     }
     else {
      t_14 = DoOperation2Args( CallFuncListOper, t_15, NewPlistFromArgs( a_flags, t_16 ) );
     }
     CHECK_FUNC_RESULT( t_14 );
     CHECK_BOOL( t_14 );
     t_13 = (Obj)(UInt)(t_14 != False);
     t_12 = (Obj)(UInt)( ! ((Int)t_13) );
     t_10 = t_12;
    }
    t_9 = t_10;
    if ( t_9 ) {
     C_SUM_FIA( t_14, l_i, INTOBJ_INT(6) )
     CHECK_INT_POS( t_14 );
     C_ELM_LIST_FPL( t_13, l_imm, t_14 )
     t_12 = (Obj)(UInt)(IN( t_13, l_tried ));
     t_11 = (Obj)(UInt)( ! ((Int)t_12) );
     t_9 = t_11;
    }
    if ( t_9 ) {
     
     /* meth := IMMEDIATE_METHODS[imm[i + 6]]; */
     t_10 = GC_IMMEDIATE__METHODS;
     CHECK_BOUND( t_10, "IMMEDIATE_METHODS" );
     C_SUM_FIA( t_12, l_i, INTOBJ_INT(6) )
     CHECK_INT_POS( t_12 );
     C_ELM_LIST_FPL( t_11, l_imm, t_12 )
     CHECK_INT_POS( t_11 );
     C_ELM_LIST_FPL( t_9, t_10, t_11 )
     l_meth = t_9;
     
     /* res := meth( obj ); */
     if ( TNUM_OBJ( l_meth ) == T_FUNCTION ) {
      t_9 = CALL_1ARGS( l_meth, a_obj );
     }
     else {
      t_9 = DoOperation2Args( CallFuncListOper, l_meth, NewPlistFromArgs( a_obj ) );
     }
     CHECK_FUNC_RESULT( t_9 );
     l_res = t_9;
     
     /* ADD_LIST( tried, imm[i + 6] ); */
     t_9 = GF_ADD__LIST;
     C_SUM_FIA( t_11, l_i, INTOBJ_INT(6) )
     CHECK_INT_POS( t_11 );
     C_ELM_LIST_FPL( t_10, l_imm, t_11 )
     if ( TNUM_OBJ( t_9 ) == T_FUNCTION ) {
      CALL_2ARGS( t_9, l_tried, t_10 );
     }
     else {
      DoOperation2Args( CallFuncListOper, t_9, NewPlistFromArgs( l_tried, t_10 ) );
     }
     
     /* RUN_IMMEDIATE_METHODS_CHECKS := RUN_IMMEDIATE_METHODS_CHECKS + 1; */
     t_10 = GC_RUN__IMMEDIATE__METHODS__CHECKS;
     CHECK_BOUND( t_10, "RUN_IMMEDIATE_METHODS_CHECKS" );
     C_SUM_FIA( t_9, t_10, INTOBJ_INT(1) )
     AssGVar( G_RUN__IMMEDIATE__METHODS__CHECKS, t_9 );
     
     /* if TRACE_IMMEDIATE_METHODS then */
     t_10 = GC_TRACE__IMMEDIATE__METHODS;
     CHECK_BOUND( t_10, "TRACE_IMMEDIATE_METHODS" );
     CHECK_BOOL( t_10 );
     t_9 = (Obj)(UInt)(t_10 != False);
     if ( t_9 ) {
      
      /* Print( "#I  immediate: ", NAME_FUNC( imm[i + 1] ) ); */
      t_9 = GF_Print;
      t_10 = MakeString( "#I immediate: " );
      t_12 = GF_NAME__FUNC;
      C_SUM_FIA( t_14, l_i, INTOBJ_INT(1) )
      CHECK_INT_POS( t_14 );
      C_ELM_LIST_FPL( t_13, l_imm, t_14 )
      if ( TNUM_OBJ( t_12 ) == T_FUNCTION ) {
       t_11 = CALL_1ARGS( t_12, t_13 );
      }
      else {
       t_11 = DoOperation2Args( CallFuncListOper, t_12, NewPlistFromArgs( t_13 ) );
      }
      CHECK_FUNC_RESULT( t_11 );
      if ( TNUM_OBJ( t_9 ) == T_FUNCTION ) {
       CALL_2ARGS( t_9, t_10, t_11 );
      }
      else {
       DoOperation2Args( CallFuncListOper, t_9, NewPlistFromArgs( t_10, t_11 ) );
      }
      
      /* if imm[i + 7] <> false then */
      C_SUM_FIA( t_11, l_i, INTOBJ_INT(7) )
      CHECK_INT_POS( t_11 );
      C_ELM_LIST_FPL( t_10, l_imm, t_11 )
      t_11 = False;
      t_9 = (Obj)(UInt)( ! EQ( t_10, t_11 ));
      if ( t_9 ) {
       
       /* Print( ": ", imm[i + 7] ); */
       t_9 = GF_Print;
       t_10 = MakeString( ": " );
       C_SUM_FIA( t_12, l_i, INTOBJ_INT(7) )
       CHECK_INT_POS( t_12 );
       C_ELM_LIST_FPL( t_11, l_imm, t_12 )
       if ( TNUM_OBJ( t_9 ) == T_FUNCTION ) {
        CALL_2ARGS( t_9, t_10, t_11 );
       }
       else {
        DoOperation2Args( CallFuncListOper, t_9, NewPlistFromArgs( t_10, t_11 ) );
       }
       
      }
      /* fi */
      
      /* Print( " at ", imm[i + 8][1], ":", imm[i + 8][2], "\n" ); */
      t_9 = GF_Print;
      t_10 = MakeString( " at " );
      C_SUM_FIA( t_13, l_i, INTOBJ_INT(8) )
      CHECK_INT_POS( t_13 );
      C_ELM_LIST_FPL( t_12, l_imm, t_13 )
      C_ELM_LIST_FPL( t_11, t_12, INTOBJ_INT(1) )
      t_12 = MakeString( ":" );
      C_SUM_FIA( t_15, l_i, INTOBJ_INT(8) )
      CHECK_INT_POS( t_15 );
      C_ELM_LIST_FPL( t_14, l_imm, t_15 )
      C_ELM_LIST_FPL( t_13, t_14, INTOBJ_INT(2) )
      t_14 = MakeString( "\n" );
      if ( TNUM_OBJ( t_9 ) == T_FUNCTION ) {
       CALL_5ARGS( t_9, t_10, t_11, t_12, t_13, t_14 );
      }
      else {
       DoOperation2Args( CallFuncListOper, t_9, NewPlistFromArgs( t_10, t_11, t_12, t_13, t_14 ) );
      }
      
     }
     /* fi */
     
     /* if res <> TRY_NEXT_METHOD then */
     t_10 = GC_TRY__NEXT__METHOD;
     CHECK_BOUND( t_10, "TRY_NEXT_METHOD" );
     t_9 = (Obj)(UInt)( ! EQ( l_res, t_10 ));
     if ( t_9 ) {
      
      /* IGNORE_IMMEDIATE_METHODS := true; */
      t_9 = True;
      AssGVar( G_IGNORE__IMMEDIATE__METHODS, t_9 );
      
      /* imm[i + 2]( obj, res ); */
      C_SUM_FIA( t_10, l_i, INTOBJ_INT(2) )
      CHECK_INT_POS( t_10 );
      C_ELM_LIST_FPL( t_9, l_imm, t_10 )
      if ( TNUM_OBJ( t_9 ) == T_FUNCTION ) {
       CALL_2ARGS( t_9, a_obj, l_res );
      }
      else {
       DoOperation2Args( CallFuncListOper, t_9, NewPlistFromArgs( a_obj, l_res ) );
      }
      
      /* IGNORE_IMMEDIATE_METHODS := false; */
      t_9 = False;
      AssGVar( G_IGNORE__IMMEDIATE__METHODS, t_9 );
      
      /* RUN_IMMEDIATE_METHODS_HITS := RUN_IMMEDIATE_METHODS_HITS + 1; */
      t_10 = GC_RUN__IMMEDIATE__METHODS__HITS;
      CHECK_BOUND( t_10, "RUN_IMMEDIATE_METHODS_HITS" );
      C_SUM_FIA( t_9, t_10, INTOBJ_INT(1) )
      AssGVar( G_RUN__IMMEDIATE__METHODS__HITS, t_9 );
      
      /* if not IS_IDENTICAL_OBJ( TYPE_OBJ( obj ), type ) then */
      t_12 = GF_IS__IDENTICAL__OBJ;
      t_14 = GF_TYPE__OBJ;
      if ( TNUM_OBJ( t_14 ) == T_FUNCTION ) {
       t_13 = CALL_1ARGS( t_14, a_obj );
      }
      else {
       t_13 = DoOperation2Args( CallFuncListOper, t_14, NewPlistFromArgs( a_obj ) );
      }
      CHECK_FUNC_RESULT( t_13 );
      if ( TNUM_OBJ( t_12 ) == T_FUNCTION ) {
       t_11 = CALL_2ARGS( t_12, t_13, l_type );
      }
      else {
       t_11 = DoOperation2Args( CallFuncListOper, t_12, NewPlistFromArgs( t_13, l_type ) );
      }
      CHECK_FUNC_RESULT( t_11 );
      CHECK_BOOL( t_11 );
      t_10 = (Obj)(UInt)(t_11 != False);
      t_9 = (Obj)(UInt)( ! ((Int)t_10) );
      if ( t_9 ) {
       
       /* type := TYPE_OBJ( obj ); */
       t_10 = GF_TYPE__OBJ;
       if ( TNUM_OBJ( t_10 ) == T_FUNCTION ) {
        t_9 = CALL_1ARGS( t_10, a_obj );
       }
       else {
        t_9 = DoOperation2Args( CallFuncListOper, t_10, NewPlistFromArgs( a_obj ) );
       }
       CHECK_FUNC_RESULT( t_9 );
       l_type = t_9;
       
       /* newflags := SUB_FLAGS( type![2], IMM_FLAGS ); */
       t_10 = GF_SUB__FLAGS;
       t_11 = ElmPosObj( l_type, 2 );
       t_12 = GC_IMM__FLAGS;
       CHECK_BOUND( t_12, "IMM_FLAGS" );
       if ( TNUM_OBJ( t_10 ) == T_FUNCTION ) {
        t_9 = CALL_2ARGS( t_10, t_11, t_12 );
       }
       else {
        t_9 = DoOperation2Args( CallFuncListOper, t_10, NewPlistFromArgs( t_11, t_12 ) );
       }
       CHECK_FUNC_RESULT( t_9 );
       l_newflags = t_9;
       
       /* newflags := SUB_FLAGS( newflags, flags ); */
       t_10 = GF_SUB__FLAGS;
       if ( TNUM_OBJ( t_10 ) == T_FUNCTION ) {
        t_9 = CALL_2ARGS( t_10, l_newflags, a_flags );
       }
       else {
        t_9 = DoOperation2Args( CallFuncListOper, t_10, NewPlistFromArgs( l_newflags, a_flags ) );
       }
       CHECK_FUNC_RESULT( t_9 );
       l_newflags = t_9;
       
       /* APPEND_LIST_INTR( flagspos, TRUES_FLAGS( newflags ) ); */
       t_9 = GF_APPEND__LIST__INTR;
       t_11 = GF_TRUES__FLAGS;
       if ( TNUM_OBJ( t_11 ) == T_FUNCTION ) {
        t_10 = CALL_1ARGS( t_11, l_newflags );
       }
       else {
        t_10 = DoOperation2Args( CallFuncListOper, t_11, NewPlistFromArgs( l_newflags ) );
       }
       CHECK_FUNC_RESULT( t_10 );
       if ( TNUM_OBJ( t_9 ) == T_FUNCTION ) {
        CALL_2ARGS( t_9, l_flagspos, t_10 );
       }
       else {
        DoOperation2Args( CallFuncListOper, t_9, NewPlistFromArgs( l_flagspos, t_10 ) );
       }
       
       /* flags := type![2]; */
       t_9 = ElmPosObj( l_type, 2 );
       a_flags = t_9;
       
      }
      /* fi */
      
     }
     /* fi */
     
    }
    /* fi */
    
   }
   /* od */
   
  }
  /* fi */
  
 }
 /* od */
 
 /* return; */
 SWITCH_TO_OLD_FRAME(oldFrame);
 return 0;
}

/* handler for function 3 */
static Obj  HdlrFunc3 (
 Obj  self,
 Obj  a_opr,
 Obj  a_info,
 Obj  a_rel,
 Obj  a_flags,
 Obj  a_baserank,
 Obj  a_method )
{
 Obj l_methods = 0;
 Obj l_narg = 0;
 Obj l_i = 0;
 Obj l_k = 0;
 Obj l_tmp = 0;
 Obj l_replace = 0;
 Obj l_match = 0;
 Obj l_j = 0;
 Obj l_lk = 0;
 Obj l_rank = 0;
 Obj t_1 = 0;
 Obj t_2 = 0;
 Obj t_3 = 0;
 Obj t_4 = 0;
 Obj t_5 = 0;
 Obj t_6 = 0;
 Obj t_7 = 0;
 Obj t_8 = 0;
 (void)l_methods;
 (void)l_narg;
 (void)l_i;
 (void)l_k;
 (void)l_tmp;
 (void)l_replace;
 (void)l_match;
 (void)l_j;
 (void)l_lk;
 (void)l_rank;
 Bag oldFrame;
 
 /* allocate new stack frame */
 SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
 
 /* if IS_IDENTICAL_OBJ( opr, method ) then */
 t_3 = GF_IS__IDENTICAL__OBJ;
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_2ARGS( t_3, a_opr, a_method );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr, a_method ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* Error( "Cannot install an operation as a method for itself" ); */
  t_1 = GF_Error;
  t_2 = MakeString( "Cannot install an operation as a method for itself" );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_1ARGS( t_1, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2 ) );
  }
  
 }
 /* fi */
 
 /* lk := WRITE_LOCK( METHODS_OPERATION_REGION ); */
 t_2 = GF_WRITE__LOCK;
 t_3 = GC_METHODS__OPERATION__REGION;
 CHECK_BOUND( t_3, "METHODS_OPERATION_REGION" );
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_1ARGS( t_2, t_3 );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( t_3 ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_lk = t_1;
 
 /* if IS_FUNCTION( baserank ) then */
 t_3 = GF_IS__FUNCTION;
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_1ARGS( t_3, a_baserank );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_baserank ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* rank := baserank(  ); */
  if ( TNUM_OBJ( a_baserank ) == T_FUNCTION ) {
   t_1 = CALL_0ARGS( a_baserank );
  }
  else {
   t_1 = DoOperation2Args( CallFuncListOper, a_baserank, NewPlistFromArgs( ) );
  }
  CHECK_FUNC_RESULT( t_1 );
  l_rank = t_1;
  
 }
 
 /* else */
 else {
  
  /* rank := baserank; */
  l_rank = a_baserank;
  
 }
 /* fi */
 
 /* if IS_CONSTRUCTOR( opr ) then */
 t_3 = GF_IS__CONSTRUCTOR;
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_1ARGS( t_3, a_opr );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* if 0 = LEN_LIST( flags ) then */
  t_3 = GF_LEN__LIST;
  if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
   t_2 = CALL_1ARGS( t_3, a_flags );
  }
  else {
   t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_flags ) );
  }
  CHECK_FUNC_RESULT( t_2 );
  t_1 = (Obj)(UInt)(EQ( INTOBJ_INT(0), t_2 ));
  if ( t_1 ) {
   
   /* Error( NAME_FUNC( opr ), ": constructors must have at least one argument" ); */
   t_1 = GF_Error;
   t_3 = GF_NAME__FUNC;
   if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
    t_2 = CALL_1ARGS( t_3, a_opr );
   }
   else {
    t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr ) );
   }
   CHECK_FUNC_RESULT( t_2 );
   t_3 = MakeString( ": constructors must have at least one argument" );
   if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
    CALL_2ARGS( t_1, t_2, t_3 );
   }
   else {
    DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, t_3 ) );
   }
   
  }
  /* fi */
  
  /* flags[1] := WITH_IMPS_FLAGS( flags[1] ); */
  t_2 = GF_WITH__IMPS__FLAGS;
  C_ELM_LIST_FPL( t_3, a_flags, INTOBJ_INT(1) )
  if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
   t_1 = CALL_1ARGS( t_2, t_3 );
  }
  else {
   t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( t_3 ) );
  }
  CHECK_FUNC_RESULT( t_1 );
  C_ASS_LIST_FPL( a_flags, INTOBJ_INT(1), t_1 )
  
  /* rank := rank - RankFilter( flags[1] ); */
  t_3 = GF_RankFilter;
  C_ELM_LIST_FPL( t_4, a_flags, INTOBJ_INT(1) )
  if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
   t_2 = CALL_1ARGS( t_3, t_4 );
  }
  else {
   t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( t_4 ) );
  }
  CHECK_FUNC_RESULT( t_2 );
  C_DIFF_FIA( t_1, l_rank, t_2 )
  l_rank = t_1;
  
 }
 
 /* else */
 else {
  
  /* for i in flags do */
  t_4 = a_flags;
  if ( IS_SMALL_LIST(t_4) ) {
   t_3 = (Obj)(UInt)1;
   t_1 = INTOBJ_INT(1);
  }
  else {
   t_3 = (Obj)(UInt)0;
   t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
  }
  while ( 1 ) {
   if ( t_3 ) {
    if ( LEN_LIST(t_4) < Int_ObjInt(t_1) )  break;
    t_2 = ELMV0_LIST( t_4, Int_ObjInt(t_1) );
    t_1 = (Obj)(((UInt)t_1)+4);
    if ( t_2 == 0 )  continue;
   }
   else {
    if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False )  break;
    t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
   }
   l_i = t_2;
   
   /* rank := rank + RankFilter( i ); */
   t_7 = GF_RankFilter;
   if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
    t_6 = CALL_1ARGS( t_7, l_i );
   }
   else {
    t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( l_i ) );
   }
   CHECK_FUNC_RESULT( t_6 );
   C_SUM_FIA( t_5, l_rank, t_6 )
   l_rank = t_5;
   
  }
  /* od */
  
 }
 /* fi */
 
 /* narg := LEN_LIST( flags ); */
 t_2 = GF_LEN__LIST;
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_1ARGS( t_2, a_flags );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_flags ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_narg = t_1;
 
 /* methods := METHODS_OPERATION( opr, narg ); */
 t_2 = GF_METHODS__OPERATION;
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_2ARGS( t_2, a_opr, l_narg );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_opr, l_narg ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_methods = t_1;
 
 /* methods := methods{[ 1 .. LEN_LIST( methods ) ]}; */
 t_4 = GF_LEN__LIST;
 if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
  t_3 = CALL_1ARGS( t_4, l_methods );
 }
 else {
  t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( l_methods ) );
 }
 CHECK_FUNC_RESULT( t_3 );
 t_2 = Range2Check( INTOBJ_INT(1), t_3 );
 t_1 = ElmsListCheck( l_methods, t_2 );
 l_methods = t_1;
 
 /* if info = false then */
 t_2 = False;
 t_1 = (Obj)(UInt)(EQ( a_info, t_2 ));
 if ( t_1 ) {
  
  /* info := NAME_FUNC( opr ); */
  t_2 = GF_NAME__FUNC;
  if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
   t_1 = CALL_1ARGS( t_2, a_opr );
  }
  else {
   t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_opr ) );
  }
  CHECK_FUNC_RESULT( t_1 );
  a_info = t_1;
  
 }
 
 /* else */
 else {
  
  /* k := SHALLOW_COPY_OBJ( NAME_FUNC( opr ) ); */
  t_2 = GF_SHALLOW__COPY__OBJ;
  t_4 = GF_NAME__FUNC;
  if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
   t_3 = CALL_1ARGS( t_4, a_opr );
  }
  else {
   t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( a_opr ) );
  }
  CHECK_FUNC_RESULT( t_3 );
  if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
   t_1 = CALL_1ARGS( t_2, t_3 );
  }
  else {
   t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( t_3 ) );
  }
  CHECK_FUNC_RESULT( t_1 );
  l_k = t_1;
  
  /* APPEND_LIST_INTR( k, ": " ); */
  t_1 = GF_APPEND__LIST__INTR;
  t_2 = MakeString( ": " );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_2ARGS( t_1, l_k, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( l_k, t_2 ) );
  }
  
  /* APPEND_LIST_INTR( k, info ); */
  t_1 = GF_APPEND__LIST__INTR;
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_2ARGS( t_1, l_k, a_info );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( l_k, a_info ) );
  }
  
  /* info := k; */
  a_info = l_k;
  
  /* CONV_STRING( info ); */
  t_1 = GF_CONV__STRING;
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_1ARGS( t_1, a_info );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( a_info ) );
  }
  
 }
 /* fi */
 
 /* i := 0; */
 l_i = INTOBJ_INT(0);
 
 /* while i < LEN_LIST( methods ) and rank < methods[i + (narg + 3)] do */
 while ( 1 ) {
  t_4 = GF_LEN__LIST;
  if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
   t_3 = CALL_1ARGS( t_4, l_methods );
  }
  else {
   t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( l_methods ) );
  }
  CHECK_FUNC_RESULT( t_3 );
  t_2 = (Obj)(UInt)(LT( l_i, t_3 ));
  t_1 = t_2;
  if ( t_1 ) {
   C_SUM_FIA( t_6, l_narg, INTOBJ_INT(3) )
   C_SUM_FIA( t_5, l_i, t_6 )
   CHECK_INT_POS( t_5 );
   C_ELM_LIST_FPL( t_4, l_methods, t_5 )
   t_3 = (Obj)(UInt)(LT( l_rank, t_4 ));
   t_1 = t_3;
  }
  if ( ! t_1 ) break;
  
  /* i := i + (narg + 6); */
  C_SUM_FIA( t_2, l_narg, INTOBJ_INT(6) )
  C_SUM_FIA( t_1, l_i, t_2 )
  l_i = t_1;
  
 }
 /* od */
 
 /* replace := false; */
 t_1 = False;
 l_replace = t_1;
 
 /* if REREADING then */
 t_2 = GC_REREADING;
 CHECK_BOUND( t_2, "REREADING" );
 CHECK_BOOL( t_2 );
 t_1 = (Obj)(UInt)(t_2 != False);
 if ( t_1 ) {
  
  /* k := i; */
  l_k = l_i;
  
  /* while k < LEN_LIST( methods ) and rank = methods[k + narg + 3] do */
  while ( 1 ) {
   t_4 = GF_LEN__LIST;
   if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
    t_3 = CALL_1ARGS( t_4, l_methods );
   }
   else {
    t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( l_methods ) );
   }
   CHECK_FUNC_RESULT( t_3 );
   t_2 = (Obj)(UInt)(LT( l_k, t_3 ));
   t_1 = t_2;
   if ( t_1 ) {
    C_SUM_FIA( t_6, l_k, l_narg )
    C_SUM_FIA( t_5, t_6, INTOBJ_INT(3) )
    CHECK_INT_POS( t_5 );
    C_ELM_LIST_FPL( t_4, l_methods, t_5 )
    t_3 = (Obj)(UInt)(EQ( l_rank, t_4 ));
    t_1 = t_3;
   }
   if ( ! t_1 ) break;
   
   /* if info = methods[k + narg + 4] then */
   C_SUM_FIA( t_4, l_k, l_narg )
   C_SUM_FIA( t_3, t_4, INTOBJ_INT(4) )
   CHECK_INT_POS( t_3 );
   C_ELM_LIST_FPL( t_2, l_methods, t_3 )
   t_1 = (Obj)(UInt)(EQ( a_info, t_2 ));
   if ( t_1 ) {
    
    /* match := true; */
    t_1 = True;
    l_match = t_1;
    
    /* for j in [ 1 .. narg ] do */
    CHECK_INT_SMALL( l_narg );
    t_2 = l_narg;
    for ( t_1 = INTOBJ_INT(1);
          ((Int)t_1) <= ((Int)t_2);
          t_1 = (Obj)(((UInt)t_1)+4) ) {
     l_j = t_1;
     
     /* match := match and methods[k + j + 1] = flags[j]; */
     if ( l_match == False ) {
      t_3 = l_match;
     }
     else if ( l_match == True ) {
      C_SUM_FIA( t_7, l_k, l_j )
      C_SUM_FIA( t_6, t_7, INTOBJ_INT(1) )
      CHECK_INT_POS( t_6 );
      C_ELM_LIST_FPL( t_5, l_methods, t_6 )
      C_ELM_LIST_FPL( t_6, a_flags, l_j )
      t_4 = (EQ( t_5, t_6 ) ? True : False);
      t_3 = t_4;
     }
     else if (IS_FILTER( l_match ) ) {
      C_SUM_FIA( t_8, l_k, l_j )
      C_SUM_FIA( t_7, t_8, INTOBJ_INT(1) )
      CHECK_INT_POS( t_7 );
      C_ELM_LIST_FPL( t_6, l_methods, t_7 )
      C_ELM_LIST_FPL( t_7, a_flags, l_j )
      t_5 = (EQ( t_6, t_7 ) ? True : False);
      t_3 = NewAndFilter( l_match, t_5 );
     }
     else {
      RequireArgumentEx(0, l_match, "",
      "must be 'true' or 'false' or a filter" );
     }
     l_match = t_3;
     
    }
    /* od */
    
    /* if match then */
    CHECK_BOOL( l_match );
    t_1 = (Obj)(UInt)(l_match != False);
    if ( t_1 ) {
     
     /* replace := true; */
     t_1 = True;
     l_replace = t_1;
     
     /* i := k; */
     l_i = l_k;
     
     /* break; */
     break;
     
    }
    /* fi */
    
   }
   /* fi */
   
   /* k := k + narg + 6; */
   C_SUM_FIA( t_2, l_k, l_narg )
   C_SUM_FIA( t_1, t_2, INTOBJ_INT(6) )
   l_k = t_1;
   
  }
  /* od */
  
 }
 /* fi */
 
 /* if not REREADING or not replace then */
 t_4 = GC_REREADING;
 CHECK_BOUND( t_4, "REREADING" );
 CHECK_BOOL( t_4 );
 t_3 = (Obj)(UInt)(t_4 != False);
 t_2 = (Obj)(UInt)( ! ((Int)t_3) );
 t_1 = t_2;
 if ( ! t_1 ) {
  t_4 = (Obj)(UInt)(l_replace != False);
  t_3 = (Obj)(UInt)( ! ((Int)t_4) );
  t_1 = t_3;
 }
 if ( t_1 ) {
  
  /* COPY_LIST_ENTRIES( methods, i + 1, 1, methods, narg + 6 + i + 1, 1, LEN_LIST( methods ) - i ); */
  t_1 = GF_COPY__LIST__ENTRIES;
  t_2 = NEW_PLIST( T_PLIST, 7 );
  SET_LEN_PLIST( t_2, 7 );
  SET_ELM_PLIST( t_2, 1, l_methods );
  CHANGED_BAG( t_2 );
  C_SUM_FIA( t_3, l_i, INTOBJ_INT(1) )
  SET_ELM_PLIST( t_2, 2, t_3 );
  CHANGED_BAG( t_2 );
  SET_ELM_PLIST( t_2, 3, INTOBJ_INT(1) );
  SET_ELM_PLIST( t_2, 4, l_methods );
  CHANGED_BAG( t_2 );
  C_SUM_FIA( t_5, l_narg, INTOBJ_INT(6) )
  C_SUM_FIA( t_4, t_5, l_i )
  C_SUM_FIA( t_3, t_4, INTOBJ_INT(1) )
  SET_ELM_PLIST( t_2, 5, t_3 );
  CHANGED_BAG( t_2 );
  SET_ELM_PLIST( t_2, 6, INTOBJ_INT(1) );
  t_5 = GF_LEN__LIST;
  if ( TNUM_OBJ( t_5 ) == T_FUNCTION ) {
   t_4 = CALL_1ARGS( t_5, l_methods );
  }
  else {
   t_4 = DoOperation2Args( CallFuncListOper, t_5, NewPlistFromArgs( l_methods ) );
  }
  CHECK_FUNC_RESULT( t_4 );
  C_DIFF_FIA( t_3, t_4, l_i )
  SET_ELM_PLIST( t_2, 7, t_3 );
  CHANGED_BAG( t_2 );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_XARGS( t_1, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, t_2 );
  }
  
 }
 /* fi */
 
 /* if rel = true then */
 t_2 = True;
 t_1 = (Obj)(UInt)(EQ( a_rel, t_2 ));
 if ( t_1 ) {
  
  /* rel := RETURN_TRUE; */
  t_1 = GC_RETURN__TRUE;
  CHECK_BOUND( t_1, "RETURN_TRUE" );
  a_rel = t_1;
  
 }
 
 /* elif rel = false then */
 else {
  t_2 = False;
  t_1 = (Obj)(UInt)(EQ( a_rel, t_2 ));
  if ( t_1 ) {
   
   /* rel := RETURN_FALSE; */
   t_1 = GC_RETURN__FALSE;
   CHECK_BOUND( t_1, "RETURN_FALSE" );
   a_rel = t_1;
   
  }
  
  /* elif IS_FUNCTION( rel ) then */
  else {
   t_3 = GF_IS__FUNCTION;
   if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
    t_2 = CALL_1ARGS( t_3, a_rel );
   }
   else {
    t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_rel ) );
   }
   CHECK_FUNC_RESULT( t_2 );
   CHECK_BOOL( t_2 );
   t_1 = (Obj)(UInt)(t_2 != False);
   if ( t_1 ) {
    
    /* if CHECK_INSTALL_METHOD then */
    t_2 = GC_CHECK__INSTALL__METHOD;
    CHECK_BOUND( t_2, "CHECK_INSTALL_METHOD" );
    CHECK_BOOL( t_2 );
    t_1 = (Obj)(UInt)(t_2 != False);
    if ( t_1 ) {
     
     /* tmp := NARG_FUNC( rel ); */
     t_2 = GF_NARG__FUNC;
     if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
      t_1 = CALL_1ARGS( t_2, a_rel );
     }
     else {
      t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_rel ) );
     }
     CHECK_FUNC_RESULT( t_1 );
     l_tmp = t_1;
     
     /* if tmp < - narg - 1 or tmp >= 0 and tmp <> narg then */
     C_AINV_FIA( t_4, l_narg )
     C_DIFF_FIA( t_3, t_4, INTOBJ_INT(1) )
     t_2 = (Obj)(UInt)(LT( l_tmp, t_3 ));
     t_1 = t_2;
     if ( ! t_1 ) {
      t_4 = (Obj)(UInt)(! LT( l_tmp, INTOBJ_INT(0) ));
      t_3 = t_4;
      if ( t_3 ) {
       t_5 = (Obj)(UInt)( ! EQ( l_tmp, l_narg ));
       t_3 = t_5;
      }
      t_1 = t_3;
     }
     if ( t_1 ) {
      
      /* Error( NAME_FUNC( opr ), ": <famrel> must accept ", narg, " arguments" ); */
      t_1 = GF_Error;
      t_3 = GF_NAME__FUNC;
      if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
       t_2 = CALL_1ARGS( t_3, a_opr );
      }
      else {
       t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr ) );
      }
      CHECK_FUNC_RESULT( t_2 );
      t_3 = MakeString( ": must accept " );
      t_4 = MakeString( " arguments" );
      if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
       CALL_4ARGS( t_1, t_2, t_3, l_narg, t_4 );
      }
      else {
       DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, t_3, l_narg, t_4 ) );
      }
      
     }
     /* fi */
     
    }
    /* fi */
    
   }
   
   /* else */
   else {
    
    /* Error( NAME_FUNC( opr ), ": <famrel> must be a function, `true', or `false'" ); */
    t_1 = GF_Error;
    t_3 = GF_NAME__FUNC;
    if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
     t_2 = CALL_1ARGS( t_3, a_opr );
    }
    else {
     t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr ) );
    }
    CHECK_FUNC_RESULT( t_2 );
    t_3 = MakeString( ": must be a function, `true', or `false'" );
    if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
     CALL_2ARGS( t_1, t_2, t_3 );
    }
    else {
     DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, t_3 ) );
    }
    
   }
  }
 }
 /* fi */
 
 /* if method = true then */
 t_2 = True;
 t_1 = (Obj)(UInt)(EQ( a_method, t_2 ));
 if ( t_1 ) {
  
  /* method := RETURN_TRUE; */
  t_1 = GC_RETURN__TRUE;
  CHECK_BOUND( t_1, "RETURN_TRUE" );
  a_method = t_1;
  
 }
 
 /* elif method = false then */
 else {
  t_2 = False;
  t_1 = (Obj)(UInt)(EQ( a_method, t_2 ));
  if ( t_1 ) {
   
   /* method := RETURN_FALSE; */
   t_1 = GC_RETURN__FALSE;
   CHECK_BOUND( t_1, "RETURN_FALSE" );
   a_method = t_1;
   
  }
  
  /* elif IS_FUNCTION( method ) then */
  else {
   t_3 = GF_IS__FUNCTION;
   if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
    t_2 = CALL_1ARGS( t_3, a_method );
   }
   else {
    t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_method ) );
   }
   CHECK_FUNC_RESULT( t_2 );
   CHECK_BOOL( t_2 );
   t_1 = (Obj)(UInt)(t_2 != False);
   if ( t_1 ) {
    
    /* if CHECK_INSTALL_METHOD and not IS_OPERATION( method ) then */
    t_3 = GC_CHECK__INSTALL__METHOD;
    CHECK_BOUND( t_3, "CHECK_INSTALL_METHOD" );
    CHECK_BOOL( t_3 );
    t_2 = (Obj)(UInt)(t_3 != False);
    t_1 = t_2;
    if ( t_1 ) {
     t_6 = GF_IS__OPERATION;
     if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
      t_5 = CALL_1ARGS( t_6, a_method );
     }
     else {
      t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( a_method ) );
     }
     CHECK_FUNC_RESULT( t_5 );
     CHECK_BOOL( t_5 );
     t_4 = (Obj)(UInt)(t_5 != False);
     t_3 = (Obj)(UInt)( ! ((Int)t_4) );
     t_1 = t_3;
    }
    if ( t_1 ) {
     
     /* tmp := NARG_FUNC( method ); */
     t_2 = GF_NARG__FUNC;
     if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
      t_1 = CALL_1ARGS( t_2, a_method );
     }
     else {
      t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_method ) );
     }
     CHECK_FUNC_RESULT( t_1 );
     l_tmp = t_1;
     
     /* if tmp < - narg - 1 or tmp >= 0 and tmp <> narg then */
     C_AINV_FIA( t_4, l_narg )
     C_DIFF_FIA( t_3, t_4, INTOBJ_INT(1) )
     t_2 = (Obj)(UInt)(LT( l_tmp, t_3 ));
     t_1 = t_2;
     if ( ! t_1 ) {
      t_4 = (Obj)(UInt)(! LT( l_tmp, INTOBJ_INT(0) ));
      t_3 = t_4;
      if ( t_3 ) {
       t_5 = (Obj)(UInt)( ! EQ( l_tmp, l_narg ));
       t_3 = t_5;
      }
      t_1 = t_3;
     }
     if ( t_1 ) {
      
      /* Error( NAME_FUNC( opr ), ": <method> must accept ", narg, " arguments" ); */
      t_1 = GF_Error;
      t_3 = GF_NAME__FUNC;
      if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
       t_2 = CALL_1ARGS( t_3, a_opr );
      }
      else {
       t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr ) );
      }
      CHECK_FUNC_RESULT( t_2 );
      t_3 = MakeString( ": must accept " );
      t_4 = MakeString( " arguments" );
      if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
       CALL_4ARGS( t_1, t_2, t_3, l_narg, t_4 );
      }
      else {
       DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, t_3, l_narg, t_4 ) );
      }
      
     }
     /* fi */
     
    }
    /* fi */
    
   }
   
   /* else */
   else {
    
    /* Error( NAME_FUNC( opr ), ": <method> must be a function, `true', or `false'" ); */
    t_1 = GF_Error;
    t_3 = GF_NAME__FUNC;
    if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
     t_2 = CALL_1ARGS( t_3, a_opr );
    }
    else {
     t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_opr ) );
    }
    CHECK_FUNC_RESULT( t_2 );
    t_3 = MakeString( ": must be a function, `true', or `false'" );
    if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
     CALL_2ARGS( t_1, t_2, t_3 );
    }
    else {
     DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, t_3 ) );
    }
    
   }
  }
 }
 /* fi */
 
 /* methods[i + 1] := rel; */
 C_SUM_FIA( t_1, l_i, INTOBJ_INT(1) )
 CHECK_INT_POS( t_1 );
 C_ASS_LIST_FPL( l_methods, t_1, a_rel )
 
 /* for k in [ 1 .. narg ] do */
 CHECK_INT_SMALL( l_narg );
 t_2 = l_narg;
 for ( t_1 = INTOBJ_INT(1);
       ((Int)t_1) <= ((Int)t_2);
       t_1 = (Obj)(((UInt)t_1)+4) ) {
  l_k = t_1;
  
  /* methods[i + k + 1] := flags[k]; */
  C_SUM_FIA( t_4, l_i, l_k )
  C_SUM_FIA( t_3, t_4, INTOBJ_INT(1) )
  CHECK_INT_POS( t_3 );
  C_ELM_LIST_FPL( t_4, a_flags, l_k )
  C_ASS_LIST_FPL( l_methods, t_3, t_4 )
  
 }
 /* od */
 
 /* methods[i + (narg + 2)] := method; */
 C_SUM_INTOBJS( t_2, l_narg, INTOBJ_INT(2) )
 C_SUM_FIA( t_1, l_i, t_2 )
 CHECK_INT_POS( t_1 );
 C_ASS_LIST_FPL( l_methods, t_1, a_method )
 
 /* methods[i + (narg + 3)] := rank; */
 C_SUM_INTOBJS( t_2, l_narg, INTOBJ_INT(3) )
 C_SUM_FIA( t_1, l_i, t_2 )
 CHECK_INT_POS( t_1 );
 C_ASS_LIST_FPL( l_methods, t_1, l_rank )
 
 /* methods[i + (narg + 4)] := IMMUTABLE_COPY_OBJ( info ); */
 C_SUM_INTOBJS( t_2, l_narg, INTOBJ_INT(4) )
 C_SUM_FIA( t_1, l_i, t_2 )
 CHECK_INT_POS( t_1 );
 t_3 = GF_IMMUTABLE__COPY__OBJ;
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_1ARGS( t_3, a_info );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( a_info ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 C_ASS_LIST_FPL( l_methods, t_1, t_2 )
 
 /* methods[i + (narg + 5)] := MakeImmutable( [ INPUT_FILENAME(  ), READEVALCOMMAND_LINENUMBER, INPUT_LINENUMBER(  ) ] ); */
 C_SUM_INTOBJS( t_2, l_narg, INTOBJ_INT(5) )
 C_SUM_FIA( t_1, l_i, t_2 )
 CHECK_INT_POS( t_1 );
 t_3 = GF_MakeImmutable;
 t_4 = NEW_PLIST( T_PLIST, 3 );
 SET_LEN_PLIST( t_4, 3 );
 t_6 = GF_INPUT__FILENAME;
 if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
  t_5 = CALL_0ARGS( t_6 );
 }
 else {
  t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( ) );
 }
 CHECK_FUNC_RESULT( t_5 );
 SET_ELM_PLIST( t_4, 1, t_5 );
 CHANGED_BAG( t_4 );
 t_5 = GC_READEVALCOMMAND__LINENUMBER;
 CHECK_BOUND( t_5, "READEVALCOMMAND_LINENUMBER" );
 SET_ELM_PLIST( t_4, 2, t_5 );
 CHANGED_BAG( t_4 );
 t_6 = GF_INPUT__LINENUMBER;
 if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
  t_5 = CALL_0ARGS( t_6 );
 }
 else {
  t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( ) );
 }
 CHECK_FUNC_RESULT( t_5 );
 SET_ELM_PLIST( t_4, 3, t_5 );
 CHANGED_BAG( t_4 );
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_1ARGS( t_3, t_4 );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( t_4 ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 C_ASS_LIST_FPL( l_methods, t_1, t_2 )
 
 /* methods[i + (narg + 6)] := baserank; */
 C_SUM_INTOBJS( t_2, l_narg, INTOBJ_INT(6) )
 C_SUM_FIA( t_1, l_i, t_2 )
 CHECK_INT_POS( t_1 );
 C_ASS_LIST_FPL( l_methods, t_1, a_baserank )
 
 /* SET_METHODS_OPERATION( opr, narg, MakeReadOnlySingleObj( methods ) ); */
 t_1 = GF_SET__METHODS__OPERATION;
 t_3 = GF_MakeReadOnlySingleObj;
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_1ARGS( t_3, l_methods );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_methods ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
  CALL_3ARGS( t_1, a_opr, l_narg, t_2 );
 }
 else {
  DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( a_opr, l_narg, t_2 ) );
 }
 
 /* UNLOCK( lk ); */
 t_1 = GF_UNLOCK;
 if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
  CALL_1ARGS( t_1, l_lk );
 }
 else {
  DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( l_lk ) );
 }
 
 /* return; */
 SWITCH_TO_OLD_FRAME(oldFrame);
 return 0;
}

/* handler for function 4 */
static Obj  HdlrFunc4 (
 Obj  self,
 Obj  a_arg )
{
 Obj t_1 = 0;
 Obj t_2 = 0;
 Bag oldFrame;
 
 /* allocate new stack frame */
 SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
 
 /* INSTALL_METHOD( arg, true ); */
 t_1 = GF_INSTALL__METHOD;
 t_2 = True;
 if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
  CALL_2ARGS( t_1, a_arg, t_2 );
 }
 else {
  DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( a_arg, t_2 ) );
 }
 
 /* return; */
 SWITCH_TO_OLD_FRAME(oldFrame);
 return 0;
}

/* handler for function 5 */
static Obj  HdlrFunc5 (
 Obj  self,
 Obj  a_arg )
{
 Obj t_1 = 0;
 Obj t_2 = 0;
 Bag oldFrame;
 
 /* allocate new stack frame */
 SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
 
 /* INSTALL_METHOD( arg, false ); */
 t_1 = GF_INSTALL__METHOD;
 t_2 = False;
 if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
  CALL_2ARGS( t_1, a_arg, t_2 );
 }
 else {
  DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( a_arg, t_2 ) );
 }
 
 /* return; */
 SWITCH_TO_OLD_FRAME(oldFrame);
 return 0;
}

/* handler for function 6 */
static Obj  HdlrFunc6 (
 Obj  self,
 Obj  a_arglist,
 Obj  a_check )
{
 Obj l_len = 0;
 Obj l_opr = 0;
 Obj l_info = 0;
 Obj l_pos = 0;
 Obj l_rel = 0;
 Obj l_filters = 0;
 Obj l_info1 = 0;
 Obj l_isstr = 0;
 Obj l_flags = 0;
 Obj l_i = 0;
 Obj l_rank = 0;
 Obj l_method = 0;
 Obj l_oreqs = 0;
 Obj l_req = 0;
 Obj l_reqs = 0;
 Obj l_match = 0;
 Obj l_j = 0;
 Obj l_k = 0;
 Obj l_imp = 0;
 Obj l_notmatch = 0;
 Obj l_lk = 0;
 Obj l_funcname = 0;
 Obj l_alt__rank = 0;
 Obj t_1 = 0;
 Obj t_2 = 0;
 Obj t_3 = 0;
 Obj t_4 = 0;
 Obj t_5 = 0;
 Obj t_6 = 0;
 Obj t_7 = 0;
 Obj t_8 = 0;
 Obj t_9 = 0;
 Obj t_10 = 0;
 Obj t_11 = 0;
 (void)l_len;
 (void)l_opr;
 (void)l_info;
 (void)l_pos;
 (void)l_rel;
 (void)l_filters;
 (void)l_info1;
 (void)l_isstr;
 (void)l_flags;
 (void)l_i;
 (void)l_rank;
 (void)l_method;
 (void)l_oreqs;
 (void)l_req;
 (void)l_reqs;
 (void)l_match;
 (void)l_j;
 (void)l_k;
 (void)l_imp;
 (void)l_notmatch;
 (void)l_lk;
 (void)l_funcname;
 (void)l_alt__rank;
 Bag oldFrame;
 
 /* allocate new stack frame */
 SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
 
 /* lk := READ_LOCK( OPERATIONS_REGION ); */
 t_2 = GF_READ__LOCK;
 t_3 = GC_OPERATIONS__REGION;
 CHECK_BOUND( t_3, "OPERATIONS_REGION" );
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_1ARGS( t_2, t_3 );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( t_3 ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_lk = t_1;
 
 /* len := LEN_LIST( arglist ); */
 t_2 = GF_LEN__LIST;
 if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
  t_1 = CALL_1ARGS( t_2, a_arglist );
 }
 else {
  t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( a_arglist ) );
 }
 CHECK_FUNC_RESULT( t_1 );
 l_len = t_1;
 
 /* if len < 3 then */
 t_1 = (Obj)(UInt)(LT( l_len, INTOBJ_INT(3) ));
 if ( t_1 ) {
  
  /* Error( "too few arguments given in <arglist>" ); */
  t_1 = GF_Error;
  t_2 = MakeString( "too few arguments given in " );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_1ARGS( t_1, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2 ) );
  }
  
 }
 /* fi */
 
 /* opr := arglist[1]; */
 C_ELM_LIST_FPL( t_1, a_arglist, INTOBJ_INT(1) )
 l_opr = t_1;
 
 /* if not IS_OPERATION( opr ) then */
 t_4 = GF_IS__OPERATION;
 if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
  t_3 = CALL_1ARGS( t_4, l_opr );
 }
 else {
  t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( l_opr ) );
 }
 CHECK_FUNC_RESULT( t_3 );
 CHECK_BOOL( t_3 );
 t_2 = (Obj)(UInt)(t_3 != False);
 t_1 = (Obj)(UInt)( ! ((Int)t_2) );
 if ( t_1 ) {
  
  /* Error( "<opr> is not an operation" ); */
  t_1 = GF_Error;
  t_2 = MakeString( " is not an operation" );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_1ARGS( t_1, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2 ) );
  }
  
 }
 /* fi */
 
 /* if IS_STRING_REP( arglist[2] ) or arglist[2] = false then */
 t_4 = GF_IS__STRING__REP;
 C_ELM_LIST_FPL( t_5, a_arglist, INTOBJ_INT(2) )
 if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
  t_3 = CALL_1ARGS( t_4, t_5 );
 }
 else {
  t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( t_5 ) );
 }
 CHECK_FUNC_RESULT( t_3 );
 CHECK_BOOL( t_3 );
 t_2 = (Obj)(UInt)(t_3 != False);
 t_1 = t_2;
 if ( ! t_1 ) {
  C_ELM_LIST_FPL( t_4, a_arglist, INTOBJ_INT(2) )
  t_5 = False;
  t_3 = (Obj)(UInt)(EQ( t_4, t_5 ));
  t_1 = t_3;
 }
 if ( t_1 ) {
  
  /* info := arglist[2]; */
  C_ELM_LIST_FPL( t_1, a_arglist, INTOBJ_INT(2) )
  l_info = t_1;
  
  /* pos := 3; */
  l_pos = INTOBJ_INT(3);
  
 }
 
 /* else */
 else {
  
  /* info := false; */
  t_1 = False;
  l_info = t_1;
  
  /* pos := 2; */
  l_pos = INTOBJ_INT(2);
  
 }
 /* fi */
 
 /* if arglist[pos] = true or IS_FUNCTION( arglist[pos] ) then */
 C_ELM_LIST_FPL( t_3, a_arglist, l_pos )
 t_4 = True;
 t_2 = (Obj)(UInt)(EQ( t_3, t_4 ));
 t_1 = t_2;
 if ( ! t_1 ) {
  t_5 = GF_IS__FUNCTION;
  C_ELM_LIST_FPL( t_6, a_arglist, l_pos )
  if ( TNUM_OBJ( t_5 ) == T_FUNCTION ) {
   t_4 = CALL_1ARGS( t_5, t_6 );
  }
  else {
   t_4 = DoOperation2Args( CallFuncListOper, t_5, NewPlistFromArgs( t_6 ) );
  }
  CHECK_FUNC_RESULT( t_4 );
  CHECK_BOOL( t_4 );
  t_3 = (Obj)(UInt)(t_4 != False);
  t_1 = t_3;
 }
 if ( t_1 ) {
  
  /* rel := arglist[pos]; */
  C_ELM_LIST_FPL( t_1, a_arglist, l_pos )
  l_rel = t_1;
  
  /* pos := pos + 1; */
  C_SUM_INTOBJS( t_1, l_pos, INTOBJ_INT(1) )
  l_pos = t_1;
  
 }
 
 /* else */
 else {
  
  /* rel := true; */
  t_1 = True;
  l_rel = t_1;
  
 }
 /* fi */
 
 /* if not IsBound( arglist[pos] ) or not IS_LIST( arglist[pos] ) then */
 CHECK_INT_POS( l_pos );
 t_4 = C_ISB_LIST( a_arglist, l_pos );
 t_3 = (Obj)(UInt)(t_4 != False);
 t_2 = (Obj)(UInt)( ! ((Int)t_3) );
 t_1 = t_2;
 if ( ! t_1 ) {
  t_6 = GF_IS__LIST;
  C_ELM_LIST_FPL( t_7, a_arglist, l_pos )
  if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
   t_5 = CALL_1ARGS( t_6, t_7 );
  }
  else {
   t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( t_7 ) );
  }
  CHECK_FUNC_RESULT( t_5 );
  CHECK_BOOL( t_5 );
  t_4 = (Obj)(UInt)(t_5 != False);
  t_3 = (Obj)(UInt)( ! ((Int)t_4) );
  t_1 = t_3;
 }
 if ( t_1 ) {
  
  /* Error( "<arglist>[", pos, "] must be a list of filters" ); */
  t_1 = GF_Error;
  t_2 = MakeString( "[" );
  t_3 = MakeString( "] must be a list of filters" );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_3ARGS( t_1, t_2, l_pos, t_3 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, l_pos, t_3 ) );
  }
  
 }
 /* fi */
 
 /* filters := arglist[pos]; */
 C_ELM_LIST_FPL( t_1, a_arglist, l_pos )
 l_filters = t_1;
 
 /* if GAPInfo.MaxNrArgsMethod < LEN_LIST( filters ) then */
 t_3 = GC_GAPInfo;
 CHECK_BOUND( t_3, "GAPInfo" );
 t_2 = ELM_REC( t_3, R_MaxNrArgsMethod );
 t_4 = GF_LEN__LIST;
 if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
  t_3 = CALL_1ARGS( t_4, l_filters );
 }
 else {
  t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( l_filters ) );
 }
 CHECK_FUNC_RESULT( t_3 );
 t_1 = (Obj)(UInt)(LT( t_2, t_3 ));
 if ( t_1 ) {
  
  /* Error( "methods can have at most ", GAPInfo.MaxNrArgsMethod, " arguments" ); */
  t_1 = GF_Error;
  t_2 = MakeString( "methods can have at most " );
  t_4 = GC_GAPInfo;
  CHECK_BOUND( t_4, "GAPInfo" );
  t_3 = ELM_REC( t_4, R_MaxNrArgsMethod );
  t_4 = MakeString( " arguments" );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_3ARGS( t_1, t_2, t_3, t_4 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2, t_3, t_4 ) );
  }
  
 }
 /* fi */
 
 /* if 0 < LEN_LIST( filters ) then */
 t_3 = GF_LEN__LIST;
 if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
  t_2 = CALL_1ARGS( t_3, l_filters );
 }
 else {
  t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_filters ) );
 }
 CHECK_FUNC_RESULT( t_2 );
 t_1 = (Obj)(UInt)(LT( INTOBJ_INT(0), t_2 ));
 if ( t_1 ) {
  
  /* info1 := "[ "; */
  t_1 = MakeString( "[ " );
  l_info1 = t_1;
  
  /* isstr := true; */
  t_1 = True;
  l_isstr = t_1;
  
  /* for i in [ 1 .. LEN_LIST( filters ) ] do */
  t_3 = GF_LEN__LIST;
  if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
   t_2 = CALL_1ARGS( t_3, l_filters );
  }
  else {
   t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_filters ) );
  }
  CHECK_FUNC_RESULT( t_2 );
  CHECK_INT_SMALL( t_2 );
  for ( t_1 = INTOBJ_INT(1);
        ((Int)t_1) <= ((Int)t_2);
        t_1 = (Obj)(((UInt)t_1)+4) ) {
   l_i = t_1;
   
   /* if IS_STRING_REP( filters[i] ) then */
   t_5 = GF_IS__STRING__REP;
   C_ELM_LIST_FPL( t_6, l_filters, l_i )
   if ( TNUM_OBJ( t_5 ) == T_FUNCTION ) {
    t_4 = CALL_1ARGS( t_5, t_6 );
   }
   else {
    t_4 = DoOperation2Args( CallFuncListOper, t_5, NewPlistFromArgs( t_6 ) );
   }
   CHECK_FUNC_RESULT( t_4 );
   CHECK_BOOL( t_4 );
   t_3 = (Obj)(UInt)(t_4 != False);
   if ( t_3 ) {
    
    /* APPEND_LIST_INTR( info1, filters[i] ); */
    t_3 = GF_APPEND__LIST__INTR;
    C_ELM_LIST_FPL( t_4, l_filters, l_i )
    if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
     CALL_2ARGS( t_3, l_info1, t_4 );
    }
    else {
     DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_info1, t_4 ) );
    }
    
    /* APPEND_LIST_INTR( info1, ", " ); */
    t_3 = GF_APPEND__LIST__INTR;
    t_4 = MakeString( ", " );
    if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
     CALL_2ARGS( t_3, l_info1, t_4 );
    }
    else {
     DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_info1, t_4 ) );
    }
    
    /* filters[i] := EvalString( filters[i] ); */
    t_4 = GF_EvalString;
    C_ELM_LIST_FPL( t_5, l_filters, l_i )
    if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
     t_3 = CALL_1ARGS( t_4, t_5 );
    }
    else {
     t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( t_5 ) );
    }
    CHECK_FUNC_RESULT( t_3 );
    C_ASS_LIST_FPL( l_filters, l_i, t_3 )
    
    /* if not IS_FUNCTION( filters[i] ) then */
    t_6 = GF_IS__FUNCTION;
    C_ELM_LIST_FPL( t_7, l_filters, l_i )
    if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
     t_5 = CALL_1ARGS( t_6, t_7 );
    }
    else {
     t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( t_7 ) );
    }
    CHECK_FUNC_RESULT( t_5 );
    CHECK_BOOL( t_5 );
    t_4 = (Obj)(UInt)(t_5 != False);
    t_3 = (Obj)(UInt)( ! ((Int)t_4) );
    if ( t_3 ) {
     
     /* Error( "string does not evaluate to a function" ); */
     t_3 = GF_Error;
     t_4 = MakeString( "string does not evaluate to a function" );
     if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
      CALL_1ARGS( t_3, t_4 );
     }
     else {
      DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( t_4 ) );
     }
     
    }
    /* fi */
    
   }
   
   /* else */
   else {
    
    /* isstr := false; */
    t_3 = False;
    l_isstr = t_3;
    
    /* break; */
    break;
    
   }
   /* fi */
   
  }
  /* od */
  
  /* if isstr and info = false then */
  t_2 = (Obj)(UInt)(l_isstr != False);
  t_1 = t_2;
  if ( t_1 ) {
   t_4 = False;
   t_3 = (Obj)(UInt)(EQ( l_info, t_4 ));
   t_1 = t_3;
  }
  if ( t_1 ) {
   
   /* info1[LEN_LIST( info1 ) - 1] := ' '; */
   t_3 = GF_LEN__LIST;
   if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
    t_2 = CALL_1ARGS( t_3, l_info1 );
   }
   else {
    t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_info1 ) );
   }
   CHECK_FUNC_RESULT( t_2 );
   C_DIFF_FIA( t_1, t_2, INTOBJ_INT(1) )
   CHECK_INT_POS( t_1 );
   t_2 = ObjsChar[32];
   C_ASS_LIST_FPL( l_info1, t_1, t_2 )
   
   /* info1[LEN_LIST( info1 )] := ']'; */
   t_2 = GF_LEN__LIST;
   if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
    t_1 = CALL_1ARGS( t_2, l_info1 );
   }
   else {
    t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( l_info1 ) );
   }
   CHECK_FUNC_RESULT( t_1 );
   CHECK_INT_POS( t_1 );
   t_2 = ObjsChar[93];
   C_ASS_LIST_FPL( l_info1, t_1, t_2 )
   
   /* info := info1; */
   l_info = l_info1;
   
  }
  /* fi */
  
 }
 /* fi */
 
 /* pos := pos + 1; */
 C_SUM_FIA( t_1, l_pos, INTOBJ_INT(1) )
 l_pos = t_1;
 
 /* flags := [  ]; */
 t_1 = NEW_PLIST( T_PLIST, 0 );
 SET_LEN_PLIST( t_1, 0 );
 l_flags = t_1;
 
 /* for i in filters do */
 t_4 = l_filters;
 if ( IS_SMALL_LIST(t_4) ) {
  t_3 = (Obj)(UInt)1;
  t_1 = INTOBJ_INT(1);
 }
 else {
  t_3 = (Obj)(UInt)0;
  t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
 }
 while ( 1 ) {
  if ( t_3 ) {
   if ( LEN_LIST(t_4) < Int_ObjInt(t_1) )  break;
   t_2 = ELMV0_LIST( t_4, Int_ObjInt(t_1) );
   t_1 = (Obj)(((UInt)t_1)+4);
   if ( t_2 == 0 )  continue;
  }
  else {
   if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False )  break;
   t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
  }
  l_i = t_2;
  
  /* ADD_LIST( flags, FLAGS_FILTER( i ) ); */
  t_5 = GF_ADD__LIST;
  t_7 = GF_FLAGS__FILTER;
  if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
   t_6 = CALL_1ARGS( t_7, l_i );
  }
  else {
   t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( l_i ) );
  }
  CHECK_FUNC_RESULT( t_6 );
  if ( TNUM_OBJ( t_5 ) == T_FUNCTION ) {
   CALL_2ARGS( t_5, l_flags, t_6 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_5, NewPlistFromArgs( l_flags, t_6 ) );
  }
  
 }
 /* od */
 
 /* if not IsBound( arglist[pos] ) then */
 CHECK_INT_POS( l_pos );
 t_3 = C_ISB_LIST( a_arglist, l_pos );
 t_2 = (Obj)(UInt)(t_3 != False);
 t_1 = (Obj)(UInt)( ! ((Int)t_2) );
 if ( t_1 ) {
  
  /* Error( "the method is missing in <arglist>" ); */
  t_1 = GF_Error;
  t_2 = MakeString( "the method is missing in " );
  if ( TNUM_OBJ( t_1 ) == T_FUNCTION ) {
   CALL_1ARGS( t_1, t_2 );
  }
  else {
   DoOperation2Args( CallFuncListOper, t_1, NewPlistFromArgs( t_2 ) );
  }
  
 }
 
 /* elif IS_INT( arglist[pos] ) or IS_FUNCTION( arglist[pos] ) and NARG_FUNC( arglist[pos] ) = 0 and pos < LEN_LIST( arglist ) then */
 else {
  t_4 = GF_IS__INT;
  C_ELM_LIST_FPL( t_5, a_arglist, l_pos )
  if ( TNUM_OBJ( t_4 ) == T_FUNCTION ) {
   t_3 = CALL_1ARGS( t_4, t_5 );
  }
  else {
   t_3 = DoOperation2Args( CallFuncListOper, t_4, NewPlistFromArgs( t_5 ) );
  }
  CHECK_FUNC_RESULT( t_3 );
  CHECK_BOOL( t_3 );
  t_2 = (Obj)(UInt)(t_3 != False);
  t_1 = t_2;
  if ( ! t_1 ) {
   t_7 = GF_IS__FUNCTION;
   C_ELM_LIST_FPL( t_8, a_arglist, l_pos )
   if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
    t_6 = CALL_1ARGS( t_7, t_8 );
   }
   else {
    t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( t_8 ) );
   }
   CHECK_FUNC_RESULT( t_6 );
   CHECK_BOOL( t_6 );
   t_5 = (Obj)(UInt)(t_6 != False);
   t_4 = t_5;
   if ( t_4 ) {
    t_8 = GF_NARG__FUNC;
    C_ELM_LIST_FPL( t_9, a_arglist, l_pos )
    if ( TNUM_OBJ( t_8 ) == T_FUNCTION ) {
     t_7 = CALL_1ARGS( t_8, t_9 );
    }
    else {
     t_7 = DoOperation2Args( CallFuncListOper, t_8, NewPlistFromArgs( t_9 ) );
    }
    CHECK_FUNC_RESULT( t_7 );
    t_6 = (Obj)(UInt)(EQ( t_7, INTOBJ_INT(0) ));
    t_4 = t_6;
   }
   t_3 = t_4;
   if ( t_3 ) {
    t_7 = GF_LEN__LIST;
    if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
     t_6 = CALL_1ARGS( t_7, a_arglist );
    }
    else {
     t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( a_arglist ) );
    }
    CHECK_FUNC_RESULT( t_6 );
    t_5 = (Obj)(UInt)(LT( l_pos, t_6 ));
    t_3 = t_5;
   }
   t_1 = t_3;
  }
  if ( t_1 ) {
   
   /* rank := arglist[pos]; */
   C_ELM_LIST_FPL( t_1, a_arglist, l_pos )
   l_rank = t_1;
   
   /* pos := pos + 1; */
   C_SUM_FIA( t_1, l_pos, INTOBJ_INT(1) )
   l_pos = t_1;
   
  }
  
  /* elif IS_LIST( arglist[pos] ) and LEN_LIST( arglist[pos] ) <= 2 and LEN_LIST( arglist[pos] ) >= 1 and IS_LIST( arglist[pos][1] ) and (LEN_LIST( arglist[pos] ) = 1 or IS_INT( arglist[pos][2] )) then */
  else {
   t_7 = GF_IS__LIST;
   C_ELM_LIST_FPL( t_8, a_arglist, l_pos )
   if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
    t_6 = CALL_1ARGS( t_7, t_8 );
   }
   else {
    t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( t_8 ) );
   }
   CHECK_FUNC_RESULT( t_6 );
   CHECK_BOOL( t_6 );
   t_5 = (Obj)(UInt)(t_6 != False);
   t_4 = t_5;
   if ( t_4 ) {
    t_8 = GF_LEN__LIST;
    C_ELM_LIST_FPL( t_9, a_arglist, l_pos )
    if ( TNUM_OBJ( t_8 ) == T_FUNCTION ) {
     t_7 = CALL_1ARGS( t_8, t_9 );
    }
    else {
     t_7 = DoOperation2Args( CallFuncListOper, t_8, NewPlistFromArgs( t_9 ) );
    }
    CHECK_FUNC_RESULT( t_7 );
    t_6 = (Obj)(UInt)(! LT( INTOBJ_INT(2), t_7 ));
    t_4 = t_6;
   }
   t_3 = t_4;
   if ( t_3 ) {
    t_7 = GF_LEN__LIST;
    C_ELM_LIST_FPL( t_8, a_arglist, l_pos )
    if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
     t_6 = CALL_1ARGS( t_7, t_8 );
    }
    else {
     t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( t_8 ) );
    }
    CHECK_FUNC_RESULT( t_6 );
    t_5 = (Obj)(UInt)(! LT( t_6, INTOBJ_INT(1) ));
    t_3 = t_5;
   }
   t_2 = t_3;
   if ( t_2 ) {
    t_6 = GF_IS__LIST;
    C_ELM_LIST_FPL( t_8, a_arglist, l_pos )
    C_ELM_LIST_FPL( t_7, t_8, INTOBJ_INT(1) )
    if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
     t_5 = CALL_1ARGS( t_6, t_7 );
    }
    else {
     t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( t_7 ) );
    }
    CHECK_FUNC_RESULT( t_5 );
    CHECK_BOOL( t_5 );
    t_4 = (Obj)(UInt)(t_5 != False);
    t_2 = t_4;
   }
   t_1 = t_2;
   if ( t_1 ) {
    t_6 = GF_LEN__LIST;
    C_ELM_LIST_FPL( t_7, a_arglist, l_pos )
    if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
     t_5 = CALL_1ARGS( t_6, t_7 );
    }
    else {
     t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( t_7 ) );
    }
    CHECK_FUNC_RESULT( t_5 );
    t_4 = (Obj)(UInt)(EQ( t_5, INTOBJ_INT(1) ));
    t_3 = t_4;
    if ( ! t_3 ) {
     t_7 = GF_IS__INT;
     C_ELM_LIST_FPL( t_9, a_arglist, l_pos )
     C_ELM_LIST_FPL( t_8, t_9, INTOBJ_INT(2) )
     if ( TNUM_OBJ( t_7 ) == T_FUNCTION ) {
      t_6 = CALL_1ARGS( t_7, t_8 );
     }
     else {
      t_6 = DoOperation2Args( CallFuncListOper, t_7, NewPlistFromArgs( t_8 ) );
     }
     CHECK_FUNC_RESULT( t_6 );
     CHECK_BOOL( t_6 );
     t_5 = (Obj)(UInt)(t_6 != False);
     t_3 = t_5;
    }
    t_1 = t_3;
   }
   if ( t_1 ) {
    
    /* alt_rank := arglist[pos]; */
    C_ELM_LIST_FPL( t_1, a_arglist, l_pos )
    l_alt__rank = t_1;
    
    /* for i in [ 1 .. LEN_LIST( alt_rank[1] ) ] do */
    t_3 = GF_LEN__LIST;
    C_ELM_LIST_FPL( t_4, l_alt__rank, INTOBJ_INT(1) )
    if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
     t_2 = CALL_1ARGS( t_3, t_4 );
    }
    else {
     t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( t_4 ) );
    }
    CHECK_FUNC_RESULT( t_2 );
    CHECK_INT_SMALL( t_2 );
    for ( t_1 = INTOBJ_INT(1);
          ((Int)t_1) <= ((Int)t_2);
          t_1 = (Obj)(((UInt)t_1)+4) ) {
     l_i = t_1;
     
     /* if IS_STRING_REP( alt_rank[1][i] ) then */
     t_5 = GF_IS__STRING__REP;
     C_ELM_LIST_FPL( t_7, l_alt__rank, INTOBJ_INT(1) )
     C_ELM_LIST_FPL( t_6, t_7, l_i )
     if ( TNUM_OBJ( t_5 ) == T_FUNCTION ) {
      t_4 = CALL_1ARGS( t_5, t_6 );
     }
     else {
      t_4 = DoOperation2Args( CallFuncListOper, t_5, NewPlistFromArgs( t_6 ) );
     }
     CHECK_FUNC_RESULT( t_4 );
     CHECK_BOOL( t_4 );
     t_3 = (Obj)(UInt)(t_4 != False);
     if ( t_3 ) {
      
      /* alt_rank[1][i] := EvalString( alt_rank[1][i] ); */
      C_ELM_LIST_FPL( t_3, l_alt__rank, INTOBJ_INT(1) )
      t_5 = GF_EvalString;
      C_ELM_LIST_FPL( t_7, l_alt__rank, INTOBJ_INT(1) )
      C_ELM_LIST_FPL( t_6, t_7, l_i )
      if ( TNUM_OBJ( t_5 ) == T_FUNCTION ) {
       t_4 = CALL_1ARGS( t_5, t_6 );
      }
      else {
       t_4 = DoOperation2Args( CallFuncListOper, t_5, NewPlistFromArgs( t_6 ) );
      }
      CHECK_FUNC_RESULT( t_4 );
      C_ASS_LIST_FPL( t_3, l_i, t_4 )
      
      /* if not IS_FUNCTION( alt_rank[1][i] ) then */
      t_6 = GF_IS__FUNCTION;
      C_ELM_LIST_FPL( t_8, l_alt__rank, INTOBJ_INT(1) )
      C_ELM_LIST_FPL( t_7, t_8, l_i )
      if ( TNUM_OBJ( t_6 ) == T_FUNCTION ) {
       t_5 = CALL_1ARGS( t_6, t_7 );
      }
      else {
       t_5 = DoOperation2Args( CallFuncListOper, t_6, NewPlistFromArgs( t_7 ) );
      }
      CHECK_FUNC_RESULT( t_5 );
      CHECK_BOOL( t_5 );
      t_4 = (Obj)(UInt)(t_5 != False);
      t_3 = (Obj)(UInt)( ! ((Int)t_4) );
      if ( t_3 ) {
       
       /* Error( "string does not evaluate to a function" ); */
       t_3 = GF_Error;
       t_4 = MakeString( "string does not evaluate to a function" );
       if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
        CALL_1ARGS( t_3, t_4 );
       }
       else {
        DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( t_4 ) );
       }
       
      }
      /* fi */
      
     }
     /* fi */
     
    }
    /* od */
    
    /* if LEN_LIST( alt_rank ) = 1 then */
    t_3 = GF_LEN__LIST;
    if ( TNUM_OBJ( t_3 ) == T_FUNCTION ) {
     t_2 = CALL_1ARGS( t_3, l_alt__rank );
    }
    else {
     t_2 = DoOperation2Args( CallFuncListOper, t_3, NewPlistFromArgs( l_alt__rank ) );
    }
    CHECK_FUNC_RESULT( t_2 );
    t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(1) ));
    if ( t_1 ) {
     
     /* rank := RANK_SHIFT_FUNCTION( filters, alt_rank[1], 0 ); */
     t_2 = GF_RANK__SHIFT__FUNCTION;
     C_ELM_LIST_FPL( t_3, l_alt__rank, INTOBJ_INT(1) )
     if ( TNUM_OBJ( t_2 ) == T_FUNCTION ) {
      t_1 = CALL_3ARGS( t_2, l_filters, t_3, INTOBJ_INT(0) );
     }
     else {
      t_1 = DoOperation2Args( CallFuncListOper, t_2, NewPlistFromArgs( l_filters, t_3, INTOBJ_INT(0) ) );
     }
     CHECK_FUNC_RESULT( t_1 );
     l_rank = t_1;
     
    }
    
    /* else */
    else {
     
--> --------------------

--> maximum size reached

--> --------------------

95%


¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.46Bemerkung:  (vorverarbeitet)  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.