From c5aa88ae6e416bd79459c619b2a30bf565c50ac0 Mon Sep 17 00:00:00 2001
From: bdemsky <bdemsky@uci.edu>
Date: Mon, 19 Jun 2017 15:58:58 -0700
Subject: [PATCH] Changes

---
 design/notes.txt                |  3 +++
 src/AST/element.c               |  1 +
 src/AST/element.h               |  1 +
 src/AST/function.h              |  1 +
 src/Backend/satencoder.c        | 10 ++++++++++
 src/Backend/satencoder.h        | 14 ++++++++++++++
 src/Encoders/elementencoding.c  |  2 +-
 src/Encoders/functionencoding.c |  4 ++--
 src/Encoders/orderencoding.c    | 10 ++++++++++
 src/Encoders/orderencoding.h    | 12 ++++++++++++
 src/classlist.h                 |  7 ++++++-
 11 files changed, 61 insertions(+), 4 deletions(-)
 create mode 100644 src/Backend/satencoder.c
 create mode 100644 src/Backend/satencoder.h
 create mode 100644 src/Encoders/orderencoding.c
 create mode 100644 src/Encoders/orderencoding.h

diff --git a/design/notes.txt b/design/notes.txt
index 1159c96..ce399c3 100644
--- a/design/notes.txt
+++ b/design/notes.txt
@@ -6,3 +6,6 @@
 
 (4) Might need to indicate what variables we can query about in
 future?
+
+(5) Could simplify output of functions...  Maybe several outputs have
+same effect...
diff --git a/src/AST/element.c b/src/AST/element.c
index 45117e1..df29cfe 100644
--- a/src/AST/element.c
+++ b/src/AST/element.c
@@ -3,6 +3,7 @@
 Element *allocElement(Set * s) {
 	Element * tmp=(Element *)ourmalloc(sizeof(Element));
 	tmp->set=s;
+	tmp->encoding=NULL;
 	return tmp;
 }
 
diff --git a/src/AST/element.h b/src/AST/element.h
index 6cbf94c..91d19db 100644
--- a/src/AST/element.h
+++ b/src/AST/element.h
@@ -5,6 +5,7 @@
 
 struct Element {
 	Set * set;
+	ElementEncoding * encoding;
 };
 
 Element * allocElement(Set *s);
diff --git a/src/AST/function.h b/src/AST/function.h
index 459f0b5..65a4b29 100644
--- a/src/AST/function.h
+++ b/src/AST/function.h
@@ -4,6 +4,7 @@
 #include "mymemory.h"
 #include "ops.h"
 #include "structs.h"
+
 struct Function {
 	ArithOp op;
 	VectorSet* domains;
diff --git a/src/Backend/satencoder.c b/src/Backend/satencoder.c
new file mode 100644
index 0000000..5f2be2e
--- /dev/null
+++ b/src/Backend/satencoder.c
@@ -0,0 +1,10 @@
+#include "satencoder.h"
+
+SATEncoder * allocSATEncoder() {
+	SATEncoder *This=ourmalloc(sizeof (SATEncoder));
+	return This;
+}
+
+void deleteSATEncoder(SATEncoder *This) {
+	ourfree(This);
+}
diff --git a/src/Backend/satencoder.h b/src/Backend/satencoder.h
new file mode 100644
index 0000000..04c4923
--- /dev/null
+++ b/src/Backend/satencoder.h
@@ -0,0 +1,14 @@
+#ifndef SATENCODER_H
+#define SATENCODER_H
+
+#include "classlist.h"
+
+struct SATEncoder {
+
+};
+
+
+SATEncoder * allocSATEncoder();
+void deleteSATEncoder(SATEncoder *This);
+
+#endif
diff --git a/src/Encoders/elementencoding.c b/src/Encoders/elementencoding.c
index fb2ce4a..08385db 100644
--- a/src/Encoders/elementencoding.c
+++ b/src/Encoders/elementencoding.c
@@ -1,7 +1,7 @@
 #include "elementencoding.h"
 
 ElementEncoding * allocElementEncoding(ElementEncodingType type, Element *element) {
-	ElementEncoding * This=(ElementEncoding *)ourmalloc(sizeof(ElementEncoding));
+	ElementEncoding * This=ourmalloc(sizeof(ElementEncoding));
 	This->element=element;
 	This->type=type;
 	This->variables=NULL;
diff --git a/src/Encoders/functionencoding.c b/src/Encoders/functionencoding.c
index 282912d..c9c0e19 100644
--- a/src/Encoders/functionencoding.c
+++ b/src/Encoders/functionencoding.c
@@ -1,14 +1,14 @@
 #include "functionencoding.h"
 
 FunctionEncoding * allocFunctionEncoding(FunctionEncodingType type, Element *function) {
-	FunctionEncoding * This=(FunctionEncoding *)ourmalloc(sizeof(FunctionEncoding));
+	FunctionEncoding * This=ourmalloc(sizeof(FunctionEncoding));
 	This->op.function=function;
 	This->type=type;
 	return This;
 }
 
 FunctionEncoding * allocPredicateEncoding(FunctionEncodingType type, Boolean *predicate) {
-	FunctionEncoding * This=(FunctionEncoding *)ourmalloc(sizeof(FunctionEncoding));
+	FunctionEncoding * This=ourmalloc(sizeof(FunctionEncoding));
 	This->op.predicate=predicate;
 	This->type=type;
 	return This;
diff --git a/src/Encoders/orderencoding.c b/src/Encoders/orderencoding.c
new file mode 100644
index 0000000..fcef2f3
--- /dev/null
+++ b/src/Encoders/orderencoding.c
@@ -0,0 +1,10 @@
+#include "orderencoding.h"
+
+OrderEncoding * allocOrderEncoding() {
+	OrderEncoding *This=ourmalloc(sizeof(OrderEncoding));
+	return This;
+}
+
+void deleteOrderEncoding(OrderEncoding *This) {
+	ourfree(This);
+}
diff --git a/src/Encoders/orderencoding.h b/src/Encoders/orderencoding.h
new file mode 100644
index 0000000..c0e4c00
--- /dev/null
+++ b/src/Encoders/orderencoding.h
@@ -0,0 +1,12 @@
+#ifndef ORDERENCODING_H
+#define ORDERENCODING_H
+#include "classlist.h"
+
+struct OrderEncoding {
+
+};
+
+OrderEncoding * allocOrderEncoding();
+void deleteOrderEncoding(OrderEncoding *This);
+
+#endif
diff --git a/src/classlist.h b/src/classlist.h
index d232592..6335297 100644
--- a/src/classlist.h
+++ b/src/classlist.h
@@ -18,6 +18,9 @@
 
 struct CSolver;
 typedef struct CSolver CSolver;
+struct SATEncoder;
+typedef struct SATEncoder SATEncoder;
+
 
 struct Constraint;
 typedef struct Constraint Constraint;
@@ -35,7 +38,6 @@ typedef struct IncrementalSolver IncrementalSolver;
 
 struct Set;
 typedef struct Set Set;
-
 typedef struct Set MutableSet;
 
 struct Element;
@@ -59,6 +61,9 @@ typedef struct ElementEncoding ElementEncoding;
 struct FunctionEncoding;
 typedef struct FunctionEncoding FunctionEncoding;
 
+struct OrderEncoding;
+typedef struct OrderEncoding OrderEncoding;
+
 struct TableEntry;
 typedef struct TableEntry TableEntry;
 
-- 
2.34.1