summaryrefslogtreecommitdiff
path: root/src/expr/node_manager_attributes.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2013-11-06 16:58:16 -0500
committerTianyi Liang <tianyi-liang@uiowa.edu>2013-11-10 18:47:35 -0600
commit726603e0e5a5482cf98538079790747e43313276 (patch)
tree12e41e99a21a16cf9cff7374a84d9a6527f03c8b /src/expr/node_manager_attributes.h
parent6c6f44c32a6bb957c1e82ae75fbf62db2e286595 (diff)
Flatten libcvc4 build structure; remove some #include interdependences
Diffstat (limited to 'src/expr/node_manager_attributes.h')
-rw-r--r--src/expr/node_manager_attributes.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/expr/node_manager_attributes.h b/src/expr/node_manager_attributes.h
new file mode 100644
index 000000000..ab55baa6e
--- /dev/null
+++ b/src/expr/node_manager_attributes.h
@@ -0,0 +1,48 @@
+/********************* */
+/*! \file node_manager_attributes.h
+ ** \verbatim
+ ** Original author: Morgan Deters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 project.
+ ** Copyright (c) 2009-2013 New York University and The University of Iowa
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
+#pragma once
+
+#include "expr/attribute.h"
+
+namespace CVC4 {
+namespace expr {
+
+// Definition of an attribute for the variable name.
+// TODO: hide this attribute behind a NodeManager interface.
+namespace attr {
+ struct VarNameTag { };
+ struct GlobalVarTag { };
+ struct SortArityTag { };
+ struct DatatypeTupleTag { };
+ struct DatatypeRecordTag { };
+ struct TypeTag { };
+ struct TypeCheckedTag { };
+}/* CVC4::expr::attr namespace */
+
+typedef Attribute<attr::VarNameTag, std::string> VarNameAttr;
+typedef Attribute<attr::GlobalVarTag(), bool> GlobalVarAttr;
+typedef Attribute<attr::SortArityTag, uint64_t> SortArityAttr;
+/** Attribute true for datatype types that are replacements for tuple types */
+typedef expr::Attribute<expr::attr::DatatypeTupleTag, TypeNode> DatatypeTupleAttr;
+/** Attribute true for datatype types that are replacements for record types */
+typedef expr::Attribute<expr::attr::DatatypeRecordTag, TypeNode> DatatypeRecordAttr;
+typedef expr::Attribute<expr::attr::TypeTag, TypeNode> TypeAttr;
+typedef expr::Attribute<expr::attr::TypeCheckedTag, bool> TypeCheckedAttr;
+
+}/* CVC4::expr namespace */
+}/* CVC4 namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback