diff options
Diffstat (limited to 'src/theory/theory_id.cpp')
-rw-r--r-- | src/theory/theory_id.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/theory/theory_id.cpp b/src/theory/theory_id.cpp new file mode 100644 index 000000000..260bec418 --- /dev/null +++ b/src/theory/theory_id.cpp @@ -0,0 +1,56 @@ +#include "theory/theory_id.h" + +namespace CVC4 { +namespace theory { + +TheoryId& operator++(TheoryId& id) +{ + return id = static_cast<TheoryId>(static_cast<int>(id) + 1); +} + +std::ostream& operator<<(std::ostream& out, TheoryId theoryId) +{ + switch (theoryId) + { + case THEORY_BUILTIN: out << "THEORY_BUILTIN"; break; + case THEORY_BOOL: out << "THEORY_BOOL"; break; + case THEORY_UF: out << "THEORY_UF"; break; + case THEORY_ARITH: out << "THEORY_ARITH"; break; + case THEORY_BV: out << "THEORY_BV"; break; + case THEORY_FP: out << "THEORY_FP"; break; + case THEORY_ARRAYS: out << "THEORY_ARRAYS"; break; + case THEORY_DATATYPES: out << "THEORY_DATATYPES"; break; + case THEORY_SEP: out << "THEORY_SEP"; break; + case THEORY_SETS: out << "THEORY_SETS"; break; + case THEORY_STRINGS: out << "THEORY_STRINGS"; break; + case THEORY_QUANTIFIERS: out << "THEORY_QUANTIFIERS"; break; + + default: out << "UNKNOWN_THEORY"; break; + } + return out; +} + +std::string getStatsPrefix(TheoryId theoryId) +{ + switch (theoryId) + { + case THEORY_BUILTIN: return "theory::builtin"; break; + case THEORY_BOOL: return "theory::bool"; break; + case THEORY_UF: return "theory::uf"; break; + case THEORY_ARITH: return "theory::arith"; break; + case THEORY_BV: return "theory::bv"; break; + case THEORY_FP: return "theory::fp"; break; + case THEORY_ARRAYS: return "theory::arrays"; break; + case THEORY_DATATYPES: return "theory::datatypes"; break; + case THEORY_SEP: return "theory::sep"; break; + case THEORY_SETS: return "theory::sets"; break; + case THEORY_STRINGS: return "theory::strings"; break; + case THEORY_QUANTIFIERS: return "theory::quantifiers"; break; + + default: break; + } + return "unknown"; +} + +} // namespace theory +} // namespace CVC4 |