Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler
[satune.git] / src / AST / ops.h
index 35418088be0ff31e624a3f72fbcf2acf650a42f4..1f9c19761ba86539f847c48cc7d25fe813c4f0b5 100644 (file)
@@ -1,17 +1,20 @@
 #ifndef OPS_H
 #define OPS_H
-enum LogicOp {AND, OR, NOT, XOR, IMPLIES};
+enum LogicOp {L_AND, L_OR, L_NOT, L_XOR, L_IMPLIES};
 typedef enum LogicOp LogicOp;
 
 enum ArithOp {ADD, SUB};
 typedef enum ArithOp ArithOp;
 
-enum CompOp {EQUALS};
+enum CompOp {EQUALS, LT, GT, LTE, GTE};
 typedef enum CompOp CompOp;
 
 enum OrderType {PARTIAL, TOTAL};
 typedef enum OrderType OrderType;
 
+enum HappenedBefore {FIRST, SECOND, UNORDERED};
+typedef enum HappenedBefore HappenedBefore;
+
 /**
  *    FLAGFORCESOVERFLOW forces the operation to overflow if the boolean flag is true
  *  OVERFLOWSETSFLAG -- sets the flag if the operation overflows
@@ -23,6 +26,22 @@ typedef enum OrderType OrderType;
 enum OverFlowBehavior {IGNORE, WRAPAROUND, FLAGFORCESOVERFLOW, OVERFLOWSETSFLAG, FLAGIFFOVERFLOW, NOOVERFLOW};
 typedef enum OverFlowBehavior OverFlowBehavior;
 
-enum BooleanType {ORDERCONST, BOOLEANVAR, LOGICOP, COMPARE};
-typedef enum BooleanType BooleanType;
+enum UndefinedBehavior {IGNOREBEHAVIOR, FLAGFORCEUNDEFINED, UNDEFINEDSETSFLAG, FLAGIFFUNDEFINED};
+typedef enum UndefinedBehavior UndefinedBehavior;
+
+enum FunctionType {TABLEFUNC, OPERATORFUNC};
+typedef enum FunctionType FunctionType;
+
+enum PredicateType {TABLEPRED, OPERATORPRED};
+typedef enum PredicateType PredicateType;
+
+enum ASTNodeType {ORDERCONST, BOOLEANVAR, LOGICOP, PREDICATEOP, BOOLCONST, ELEMSET, ELEMFUNCRETURN, ELEMCONST};
+typedef enum ASTNodeType ASTNodeType;
+
+enum Polarity {P_UNDEFINED=0, P_TRUE=1, P_FALSE=2, P_BOTHTRUEFALSE=3};
+typedef enum Polarity Polarity;
+
+enum BooleanValue {BV_UNDEFINED=0, BV_MUSTBETRUE=1, BV_MUSTBEFALSE=2, BV_UNSAT=3};
+typedef enum BooleanValue BooleanValue;
+
 #endif