VERBOSE (ERROR, fprintf (stderr, "can't allocate memory\n"));
return NULL;
}
+ new->ops = (element_t **) calloc (1, sizeof (element_t *));
+ if (new->ops == NULL) {
+ free (new);
+ VERBOSE (ERROR, fprintf (stderr, "can't allocate memory\n"));
+ return NULL;
+ }
new->func = function;
new->nbops = nbops;
new->prio = prio;
void delelement (element_t *root)
{
- int i;
if ((root != NULL) && (root != ERROR_OP)) {
+ int i;
for (i = 0; i < root->nbops; i++) {
if ((root->ops[i] != NULL) && (root->ops[i] != ERROR_OP)) {
delelement (root->ops[i]);
}
}
+ if (root->nbops) {
+ free (root->ops);
+ }
free (root);
}
}
case Ans:
case Pi:
case E:
+ break;
case While:
+ if (root->ops[0] == NULL) {
+ VERBOSE (WARNING, fprintf (stdout, "error while evaluating (op[0])\n"));
+ return 0;
+ }
break;
}