Пример #1
0
extern List_t f_ListDuplicate( List_t List, Elem_t (*pfElemDuplicate)(Elem_t))
{
   List_t ListDuplicate;
   Elem_t Elem;
   Elem_t ElemDuplicate;

   if( List == 0 )
   {
      return 0;
   }

   if( List->iCheck != LIST_CHECK ) Abort();

   ListDuplicate = f_ListCreate();

   for( Elem = d_ElemFirst( List )
      ; Elem
      ; Elem = Elem->ElemNext
      )
   {
      ElemDuplicate = (*pfElemDuplicate)( Elem );
      f_ListAddLast( &ListDuplicate, ElemDuplicate );
   }

   return ListDuplicate;
}
Пример #2
0
extern void f_TypeDelPointer( Type_t Type )
{
   Oper_t Oper;

   if( Type == 0 )
   {
      f_InternalError( 33 );
      return;
   }

   if( Type->s_unknown ) return;

   if( Type->Declarator )
   {
      if(( Oper = (Oper_t) d_ElemFirst( Type->Declarator->ListOper )))
      {
         if( Oper->type == POINTER_STAR
          || Oper->type == POINTER_AMPERSAND )
         {
            f_ListRemoveFirst( Type->Declarator->ListOper );
            f_OperDestroy( Oper );
         }
      }
   }
}
Пример #3
0
extern void f_InitProcess( Init_t Init )
{
   Init_t Init2;

   if( Init->Expr ) f_ExprProcess( Init->Expr );

   for( Init2 = (Init_t) d_ElemFirst( Init->ListInit )
      ; Init2
      ; Init2 = Init2->InitNext
      )
   {
      f_InitProcess( Init2 );
   }
}
Пример #4
0
extern void f_TypeDelFunction( Type_t Type )
{
   Oper_t Oper;

   if( Type->s_unknown ) return;

   if( Type->Declarator )
   {
      if(( Oper = (Oper_t) d_ElemFirst( Type->Declarator->ListOper )))
      {
         if( Oper->type == FUNCTION )
         {
            f_ListRemoveFirst( Type->Declarator->ListOper );
            f_OperDestroy( Oper );
         }
      }
   }
}