GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/expr/attribute_unique_id.h Lines: 0 5 0.0 %
Date: 2021-03-22 Branches: 0 0 0.0 %

Line Exec Source
1
/*********************                                                        */
2
/*! \file attribute_unique_id.h
3
 ** \verbatim
4
 ** Top contributors (to current version):
5
 **   Tim King, Morgan Deters
6
 ** This file is part of the CVC4 project.
7
 ** Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8
 ** in the top-level source directory and their institutional affiliations.
9
 ** All rights reserved.  See the file COPYING in the top-level source
10
 ** directory for licensing information.\endverbatim
11
 **
12
 ** \brief [[ Add one-line brief description here ]]
13
 **
14
 ** [[ Add lengthier description here ]]
15
 ** \todo document this file
16
 **/
17
18
#include "cvc4_private.h"
19
20
#pragma once
21
22
// ATTRIBUTE IDs ============================================================
23
24
namespace CVC4 {
25
namespace expr {
26
namespace attr {
27
28
/** A unique id for each attribute table. */
29
enum AttrTableId {
30
  AttrTableBool,
31
  AttrTableUInt64,
32
  AttrTableTNode,
33
  AttrTableNode,
34
  AttrTableTypeNode,
35
  AttrTableString,
36
  AttrTableCDBool,
37
  AttrTableCDUInt64,
38
  AttrTableCDTNode,
39
  AttrTableCDNode,
40
  AttrTableCDString,
41
  AttrTableCDPointer,
42
  LastAttrTable
43
};
44
45
/**
46
 * This uniquely identifies attributes across tables.
47
 */
48
class AttributeUniqueId {
49
  AttrTableId d_tableId;
50
  uint64_t d_withinTypeId;
51
52
public:
53
  AttributeUniqueId() : d_tableId(LastAttrTable), d_withinTypeId(0){}
54
55
  AttributeUniqueId(AttrTableId tableId, uint64_t within)
56
    : d_tableId(tableId), d_withinTypeId(within)
57
  {}
58
59
  AttrTableId getTableId() const{ return d_tableId; }
60
  uint64_t getWithinTypeId() const{ return d_withinTypeId; }
61
62
};/* CVC4::expr::attr::AttributeUniqueId */
63
64
}/* CVC4::expr::attr namespace */
65
}/* CVC4::expr namespace */
66
}/* CVC4 namespace */