summaryrefslogtreecommitdiff
path: root/src/expr/metakind_template.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr/metakind_template.h')
-rw-r--r--src/expr/metakind_template.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/expr/metakind_template.h b/src/expr/metakind_template.h
index 052458cbe..96152d075 100644
--- a/src/expr/metakind_template.h
+++ b/src/expr/metakind_template.h
@@ -113,6 +113,9 @@ enum MetaKind_t {
// individual MetaKind constants under kind::metakind::
typedef ::CVC4::kind::metakind::MetaKind_t MetaKind;
+/**
+ * Get the metakind for a particular kind.
+ */
static inline MetaKind metaKindOf(Kind k) {
static const MetaKind metaKinds[] = {
metakind::INVALID, /* NULL_EXPR */
@@ -123,15 +126,20 @@ ${metakind_kinds}
return metaKinds[k];
}/* metaKindOf(k) */
-static inline bool kindIsAtomic(Kind k) {
- static const bool isAtomic[] = {
+/**
+ * Determine if a particular kind can be atomic or not. Some kinds
+ * are never atomic (OR, NOT, ITE...), some can be atomic depending on
+ * their children (PLUS might have an ITE under it, for instance).
+ */
+static inline bool kindCanBeAtomic(Kind k) {
+ static const bool canBeAtomic[] = {
false, /* NULL_EXPR */
-${metakind_isatomic}
+${metakind_canbeatomic}
false /* LAST_KIND */
- };/* isAtomic[] */
+ };/* canBeAtomic[] */
- return isAtomic[k];
-}/* kindIsAtomic(k) */
+ return canBeAtomic[k];
+}/* kindCanBeAtomic(k) */
}/* CVC4::kind namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback