Fix warnings, merge, and check my code in
[satune.git] / src / AST / function.h
index 82379f782d6db72c06ef53f6783237e6841323b2..3f2a1a9310f2dd077cce62762535455e25c09edb 100644 (file)
@@ -4,11 +4,28 @@
 #include "mymemory.h"
 #include "ops.h"
 #include "structs.h"
-struct Function {
-    enum ArithOp op;
-    VectorSet* domains; 
+
+#define GETFUNCTIONTYPE(o) (((Function*)o)->type)
+
+struct Function{
+    FunctionType type;
+};
+
+struct FunctionOperator {
+    Function base;
+    ArithOp op;
+    VectorSet* 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