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; }
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 ); } } } }
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 ); } }
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 ); } } } }