986e380e0f03c9eb83ae1f299d4e3b95dc8abbcd
[satune.git] / src / AST / element.h
1 #ifndef ELEMENT_H
2 #define ELEMENT_H
3 #include "classlist.h"
4 #include "mymemory.h"
5 #include "ops.h"
6 #include "structs.h"
7
8 #define GETELEMENTTYPE(o) (((Element*)o)->type)
9
10 //FIXME:TALK ABOUT ELEMENT
11 struct Element {
12         ElementType type;
13 };
14
15 struct ElementSet {
16     Element base;
17     Set * set;
18     ElementEncoding * encoding;
19 };
20
21 struct ElementFunction{
22     Element base;
23     Function * function;
24     VectorElement* Elements;
25     Boolean * overflowstatus;
26 };
27
28 Element * allocElementSet(Set *s);
29 Element* allocElementFunction(Function * function, Element ** array, uint numArrays, Boolean * overflowstatus);
30 void deleteElement(Element *This);
31 #endif