--- /dev/null
+#include "concretepredicate.h"
+
+ConcretePredicate::ConcretePredicate(void * loc) :
+ location(loc),
+ expressions()
+{}
+
+ConcretePredicate::~ConcretePredicate()
+{
+ expressions.clear();
+}
+
+void ConcretePredicate::add_expression(token_t token, uint64_t value, bool equality)
+{
+ expressions.push_back(concrete_pred_expr(token, value, equality));
+}
--- /dev/null
+#ifndef __CONCRETE_PREDICATE_H__
+#define __CONCRETE_PREDICATE_H__
+
+#include <inttypes.h>
+#include "classlist.h"
+#include "predicatetypes.h"
+
+class ConcretePredicate {
+public:
+ ConcretePredicate(void * loc);
+ ~ConcretePredicate();
+
+ void add_expression(token_t token, uint64_t value, bool equality);
+ SnapVector<struct concrete_pred_expr> * getExpressions() { return &expressions; }
+ void * get_location() { return location; }
+
+ SNAPSHOTALLOC
+private:
+ void * location;
+ SnapVector<struct concrete_pred_expr> expressions;
+};
+
+#endif /* __CONCRETE_PREDICATE_H */