diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2013-11-06 16:58:16 -0500 |
---|---|---|
committer | Tianyi Liang <tianyi-liang@uiowa.edu> | 2013-11-10 18:47:35 -0600 |
commit | 726603e0e5a5482cf98538079790747e43313276 (patch) | |
tree | 12e41e99a21a16cf9cff7374a84d9a6527f03c8b /src/expr/node_manager_attributes.h | |
parent | 6c6f44c32a6bb957c1e82ae75fbf62db2e286595 (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.h | 48 |
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 */ |