summaryrefslogtreecommitdiff
path: root/src/expr/attribute_unique_id.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr/attribute_unique_id.h')
-rw-r--r--src/expr/attribute_unique_id.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/expr/attribute_unique_id.h b/src/expr/attribute_unique_id.h
new file mode 100644
index 000000000..79c6bfd8f
--- /dev/null
+++ b/src/expr/attribute_unique_id.h
@@ -0,0 +1,52 @@
+
+#pragma once
+
+#include "cvc4_private.h"
+#include <stdint.h>
+
+// ATTRIBUTE IDs ============================================================
+
+namespace CVC4 {
+namespace expr {
+namespace attr {
+
+/** A unique id for each attribute table. */
+enum AttrTableId {
+ AttrTableBool,
+ AttrTableUInt64,
+ AttrTableTNode,
+ AttrTableNode,
+ AttrTableTypeNode,
+ AttrTableString,
+ AttrTablePointer,
+ AttrTableCDBool,
+ AttrTableCDUInt64,
+ AttrTableCDTNode,
+ AttrTableCDNode,
+ AttrTableCDString,
+ AttrTableCDPointer,
+ LastAttrTable
+};
+
+/**
+ * This uniquely indentifies attributes across tables.
+ */
+class AttributeUniqueId {
+ AttrTableId d_tableId;
+ uint64_t d_withinTypeId;
+
+public:
+ AttributeUniqueId() : d_tableId(LastAttrTable), d_withinTypeId(0){}
+
+ AttributeUniqueId(AttrTableId tableId, uint64_t within)
+ : d_tableId(tableId), d_withinTypeId(within)
+ {}
+
+ AttrTableId getTableId() const{ return d_tableId; }
+ uint64_t getWithinTypeId() const{ return d_withinTypeId; }
+
+};/* CVC4::expr::attr::AttributeUniqueId */
+
+}/* CVC4::expr::attr namespace */
+}/* CVC4::expr namespace */
+}/* CVC4 namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback