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]);
- }
+ delelement (root->ops[i]);
}
if (root->nbops) {
free (root->ops);
delelement (root);
return ERROR_OP;
}
- element_t **prog = NULL;
- new = newelement (Code, 0, 5);
- root = new;
- prog = &root;
+ root = newelement (Code, 0, 5);
do {
new = parser (str + 1, &str, 0);
delelement (root);
return ERROR_OP;
}
- element_t *newprog = newelement (Code, (*prog)->nbops + 1, 5);
- for (i = 0; i < (*prog)->nbops; i++) {
- newprog->ops[i] = (*prog)->ops[i];
- (*prog)->ops[i] = NULL;
+ element_t *newprog = newelement (Code, root->nbops + 1, 5);
+ for (i = 0; i < root->nbops; i++) {
+ newprog->ops[i] = root->ops[i];
+ root->ops[i] = NULL;
}
- newprog->ops[(*prog)->nbops] = new;
- delelement (*prog);
- (*prog) = newprog;
+ newprog->ops[root->nbops] = new;
+ delelement (root);
+ root = newprog;
} while (*str == ',');
if (*str != '}') {
int i;
for (i = 0; i < nbcalls; i++) {
ret = evaluate_element (prog[i], 0);
- prog[i] = NULL;
}
return ret;
}