diff options
Diffstat (limited to 'src/expr/metakind_template.h')
-rw-r--r-- | src/expr/metakind_template.h | 20 |
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 */ |