4 Element *allocElementSet(Set * s) {
5 ElementSet * tmp=(ElementSet *)ourmalloc(sizeof(ElementSet));
6 GETELEMENTTYPE(tmp)= ELEMSET;
9 allocInlineDefVectorASTNode(GETELEMENTPARENTS(tmp));
13 Element* allocElementFunction(Function * function, Element ** array, uint numArrays, Boolean * overflowstatus){
14 ElementFunction* tmp = (ElementFunction*) ourmalloc(sizeof(ElementFunction));
15 GETELEMENTTYPE(tmp)= ELEMFUNCRETURN;
16 tmp->function=function;
17 tmp->overflowstatus = overflowstatus;
18 allocInlineArrayInitElement(&tmp->inputs, array, numArrays);
19 allocInlineDefVectorASTNode(GETELEMENTPARENTS(tmp));
20 for(uint i=0;i<numArrays;i++)
21 pushVectorASTNode(GETELEMENTPARENTS(array[i]), (ASTNode *) tmp);
25 void deleteElement(Element *This) {
26 switch(GETELEMENTTYPE(This)) {
28 deleteInlineArrayElement(&((ElementFunction *)This)->inputs);
33 deleteVectorArrayASTNode(GETELEMENTPARENTS(This));