Adding SMT Interpreters
[satune.git] / src / AST / ops.h
index b330d1bedfd77a1a5cdc53508ada60dfb2bd51ad..6d6fd97a36242e1eac656145f145fc05bd348c86 100644 (file)
@@ -1,31 +1,33 @@
 #ifndef OPS_H
 #define OPS_H
-enum LogicOp {L_AND, L_OR, L_NOT, L_XOR, L_IMPLIES};
+enum LogicOp {SATC_AND, SATC_OR, SATC_NOT, SATC_XOR, SATC_IFF, SATC_IMPLIES};
 typedef enum LogicOp LogicOp;
 
-enum ArithOp {ADD, SUB};
+enum ArithOp {SATC_ADD, SATC_SUB};
 typedef enum ArithOp ArithOp;
 
-enum CompOp {EQUALS};
+enum CompOp {SATC_EQUALS, SATC_LT, SATC_GT, SATC_LTE, SATC_GTE};
 typedef enum CompOp CompOp;
 
-enum OrderType {PARTIAL, TOTAL};
+enum OrderType {SATC_PARTIAL, SATC_TOTAL};
 typedef enum OrderType OrderType;
 
 /**
- *    FLAGFORCESOVERFLOW forces the operation to overflow if the boolean flag is true
- *  OVERFLOWSETSFLAG -- sets the flag if the operation overflows
- *  FLAGIFFOVERFLOW -- flag is set iff the operation overflows
- *  IGNORE -- doesn't constrain output if the result cannot be represented
- *  WRAPAROUND -- wraps around like stand integer arithmetic
- *  NOOVERFLOW -- client has ensured that overflow is impossible
+ *    SATC_FLAGFORCESOVERFLOW forces the operation to overflow if the boolean flag is true
+ *  SATC_OVERFLOWSETSFLAG -- sets the flag if the operation overflows
+ *  SATC_FLAGIFFOVERFLOW -- flag is set iff the operation overflows
+ *  SATC_IGNORE -- doesn't constrain output if the result cannot be represented
+ *  SATC_WRAPAROUND -- wraps around like stand integer arithmetic
+ *  SATC_NOOVERFLOW -- client has ensured that overflow is impossible
  */
-enum OverFlowBehavior {IGNORE, WRAPAROUND, FLAGFORCESOVERFLOW, OVERFLOWSETSFLAG, FLAGIFFOVERFLOW, NOOVERFLOW};
+enum OverFlowBehavior {SATC_IGNORE, SATC_WRAPAROUND, SATC_FLAGFORCESOVERFLOW, SATC_OVERFLOWSETSFLAG, SATC_FLAGIFFOVERFLOW, SATC_NOOVERFLOW};
 typedef enum OverFlowBehavior OverFlowBehavior;
 
-enum BooleanType {ORDERCONST, BOOLEANVAR, LOGICOP, COMPARE};
-typedef enum BooleanType BooleanType;
+enum UndefinedBehavior {SATC_IGNOREBEHAVIOR, SATC_FLAGFORCEUNDEFINED, SATC_UNDEFINEDSETSFLAG, SATC_FLAGIFFUNDEFINED};
+typedef enum UndefinedBehavior UndefinedBehavior;
+
+enum InterpreterType {SATUNE, ALLOY, Z3, MATHSAT, SMTRAT};
+typedef enum InterpreterType InterpreterType;
+
 
-enum FunctionType {TABLEFUNC, OPERATORFUNC};
-typedef enum FunctionType FunctionType;
 #endif