#include "mymemory.h"
#include "ops.h"
#include "structs.h"
+
+#define GETFUNCTIONTYPE(o) (((Function*)o)->type)
+
struct Function {
- enum ArithOp op;
- VectorSet* domains;
+ FunctionType type;
+};
+
+struct FunctionOperator {
+ Function base;
+ ArithOp op;
+ uint numDomains;
+ Set ** domains;
Set * range;
- enum OverFlowBehavior overflowbehavior;
+ OverFlowBehavior overflowbehavior;
+};
+
+struct FunctionTable {
+ Function base;
Table* table;
};
+
+Function* allocFunctionOperator( ArithOp op, Set ** domain, uint numDomain, Set * range,OverFlowBehavior overflowbehavior);
+Function* allocFunctionTable (Table* table);
+void deleteFunction(Function* This);
+
#endif