summaryrefslogtreecommitdiff
path: root/lib/parserel/include
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2016-09-19 22:32:41 +0000
committerTuowen Zhao <ztuowen@gmail.com>2016-09-19 22:32:41 +0000
commitcf2eb3dde8d9d49f28b9f91a726c865abe948109 (patch)
treedeff333167b9a132df5903cf629e623f20c9a7e8 /lib/parserel/include
parentad802305ebdc4a3956f90382f7d40a104e8c2f73 (diff)
downloadchill-cf2eb3dde8d9d49f28b9f91a726c865abe948109.tar.gz
chill-cf2eb3dde8d9d49f28b9f91a726c865abe948109.tar.bz2
chill-cf2eb3dde8d9d49f28b9f91a726c865abe948109.zip
parseRel as lib
Diffstat (limited to 'lib/parserel/include')
-rw-r--r--lib/parserel/include/parseRel.hh29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/parserel/include/parseRel.hh b/lib/parserel/include/parseRel.hh
new file mode 100644
index 0000000..8df5871
--- /dev/null
+++ b/lib/parserel/include/parseRel.hh
@@ -0,0 +1,29 @@
+#ifndef CHILL_RUN_UTIL_HH
+#define CHILL_RUN_UTIL_HH
+
+#include <vector>
+#include <map>
+#include <string>
+
+typedef std::map<std::string, int> simap_t;
+typedef std::vector<std::map<std::string, int> > simap_vec_t;
+
+// in chill_run_util.cc
+simap_vec_t* make_prog(simap_vec_t* cond);
+simap_vec_t* make_cond_gt(simap_t* lhs, simap_t* rhs);
+simap_vec_t* make_cond_lt(simap_t* lhs, simap_t* rhs);
+simap_vec_t* make_cond_ge(simap_t* lhs, simap_t* rhs);
+simap_vec_t* make_cond_le(simap_t* lhs, simap_t* rhs);
+simap_vec_t* make_cond_eq(simap_t* lhs, simap_t* rhs);
+simap_t* make_cond_item_add(simap_t* lhs, simap_t* rhs);
+simap_t* make_cond_item_sub(simap_t* lhs, simap_t* rhs);
+simap_t* make_cond_item_mul(simap_t* lhs, simap_t* rhs);
+simap_t* make_cond_item_neg(simap_t* expr);
+simap_t* make_cond_item_number(int n);
+simap_t* make_cond_item_variable(const char* var);
+simap_t* make_cond_item_level(int n);
+
+// in parse_expr.yy
+simap_vec_t* parse_relation_vector(const char* expr);
+
+#endif