Commit after resolving conflicts
[satune.git] / src / AST / ops.h
index 40e6f9933a05180f45614b433a6b3094dc406169..9fa296630bc46bc415cf1af1a7d9c437dd8f67a0 100644 (file)
@@ -1,9 +1,16 @@
 #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};
+typedef enum CompOp CompOp;
+
 enum OrderType {PARTIAL, TOTAL};
+typedef enum OrderType OrderType;
 
 /**
  *    FLAGFORCESOVERFLOW forces the operation to overflow if the boolean flag is true
@@ -11,7 +18,17 @@ enum OrderType {PARTIAL, TOTAL};
  *  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
  */
-enum OverFlowBehavior {IGNORE, WRAPAROUND, FLAGFORCESOVERFLOW, OVERFLOWSETSFLAG, FLAGIFFOVERFLOW};
+enum OverFlowBehavior {IGNORE, WRAPAROUND, FLAGFORCESOVERFLOW, OVERFLOWSETSFLAG, FLAGIFFOVERFLOW, NOOVERFLOW};
+typedef enum OverFlowBehavior OverFlowBehavior;
+
+enum BooleanType {ORDERCONST, BOOLEANVAR, LOGICOP, COMPARE, PREDICATEOP};
+typedef enum BooleanType BooleanType;
+
+enum FunctionType {TABLEFUNC, OPERATORFUNC};
+typedef enum FunctionType FunctionType;
 
+enum ElementType {ELEMSET, ELEMFUNCRETURN};
+typedef enum ElementType ElementType;
 #endif