Edits
[satune.git] / src / AST / predicate.c
1 #include "predicate.h"
2 #include "structs.h"
3
4
5 Predicate* allocPredicate(CompOp op, Set ** domain, uint numDomain){
6         PredicateOperator* predicate = ourmalloc(sizeof(PredicateOperator));
7         GETPREDICATETYPE(predicate)=OPERATORPRED;
8         predicate->numDomains=numDomain;
9         predicate->domains = ourmalloc(numDomain * sizeof(Set *));
10         memcpy(predicate->domains, domain, numDomain * sizeof(Set *));
11         predicate->op=op;
12         return &predicate->base;
13 }
14
15 void deletePredicate(Predicate* predicate){
16         switch(GETPREDICATETYPE(predicate)) {
17         case OPERATORPRED: {
18                 PredicateOperator * operpred=(PredicateOperator *) predicate;
19                 ourfree(operpred->domains);
20                 break;
21         }
22         case TABLEPRED: {
23                 break;
24         }
25         }
26
27         //need to handle freeing array...
28         ourfree(predicate);
29 }
30