#include "mymemory.h"
#include <inttypes.h>
-#define bool int
-#define true 1
-#define false 0
+#include "classes.h"
+#include "astnode.h"
-struct CSolver;
-typedef struct CSolver CSolver;
-struct Constraint;
-typedef struct Constraint Constraint;
+class BooleanOrder;
+class BooleanVar;
-struct Boolean;
-typedef struct Boolean Boolean;
+class BooleanPredicate;
+class ASTNode;
-struct IncrementalSolver;
-typedef struct IncrementalSolver IncrementalSolver;
-struct Set;
-typedef struct Set Set;
-typedef struct Set MutableSet;
+class ElementFunction;
+class ElementSet;
+class ElementConst;
+
+class FunctionOperator;
+class FunctionTable;
+
+
-struct Element;
-typedef struct Element Element;
+class PredicateTable;
+class PredicateOperator;
-struct Function;
-typedef struct Function Function;
-struct Predicate;
-typedef struct Predicate Predicate;
+class OrderPair;
-struct Table;
-typedef struct Table Table;
+class OrderElement;
+class IntegerEncodingRecord;
+class Transform;
+class Pass;
+class Transformer;
+class AnalysisData;
-struct Order;
-typedef struct Order Order;
+class ElementEncoding;
+class FunctionEncoding;
+class OrderEncoding;
-struct ElementEncoding;
-typedef struct ElementEncoding ElementEncoding;
+class OrderGraph;
+class OrderNode;
+class OrderEdge;
-struct FunctionEncoding;
-typedef struct FunctionEncoding FunctionEncoding;
+class AutoTuner;
+class SearchTuner;
+class TunableSetting;
-typedef unsigned int uint;
-typedef uint64_t VarType;
+class TunableDesc;
+
+class OrderResolver;
+class DecomposeOrderResolver;
+
+class EncodingGraph;
+class EncodingNode;
+class EncodingEdge;
+
+struct IncrementalSolver;
+typedef struct IncrementalSolver IncrementalSolver;
+struct TableEntry;
+typedef struct TableEntry TableEntry;
+typedef int TunableParam;
#endif