Fix tabbing
[satune.git] / src / AST / function.c
1 #include "function.h"
2 #include "table.h"
3 #include "set.h"
4
5
6 Function* allocFunctionOperator( ArithOp op, Set ** domain, uint numDomain, Set * range,OverFlowBehavior overflowbehavior){
7         FunctionOperator* This = (FunctionOperator*) ourmalloc(sizeof(FunctionOperator));
8         GETFUNCTIONTYPE(This)=OPERATORFUNC;
9         This->numDomains=numDomain;
10         This->domains = ourmalloc(numDomain * sizeof(Set *));
11         memcpy(This->domains, domain, numDomain * sizeof(Set *));
12         This->op=op;
13         This->overflowbehavior = overflowbehavior;
14         This->range=range;
15         return &This->base;
16 }
17
18 Function* allocFunctionTable (Table* table){
19         FunctionTable* This = (FunctionTable*) ourmalloc(sizeof(FunctionTable));
20         GETFUNCTIONTYPE(This)=TABLEFUNC;
21         This->table = table;
22         return &This->base;
23 }
24
25 void deleteFunction(Function* This){
26         switch(GETFUNCTIONTYPE(This)){
27         case TABLEFUNC:
28                 break;
29         case OPERATORFUNC:
30                 ourfree(((FunctionOperator*) This)->domains);
31                 break;
32         default:
33                 ASSERT(0);
34         }
35         ourfree(This);
36 }