9 /* allocate new element */
11 element_t
*newelement (func_t function
, int nbops
, int prio
)
13 element_t
*new = (element_t
*) callocordie (1, sizeof (element_t
));
15 new->ops
= (element_t
**) callocordie (nbops
, sizeof (element_t
*));
24 /* desallocate element */
26 void delelement (element_t
*root
)
28 if ((root
!= NULL
) && (root
!= ERROR_OP
)) {
30 for (i
= 0; i
< root
->nbops
; i
++) {
31 delelement (root
->ops
[i
]);
40 /* duplicate element */
42 element_t
*dupelement (element_t
*root
)
44 element_t
*tmp
= NULL
;
47 if ((root
== NULL
) || (root
== ERROR_OP
)) {
50 tmp
= newelement (root
->func
, root
->nbops
, root
->prio
);
51 tmp
->value
= root
->value
;
52 for (i
= 0; i
< root
->nbops
; i
++) {
53 tmp
->ops
[i
] = dupelement (root
->ops
[i
]);
58 /* vim: set ts=4 sw=4 et: */