(this commit was certified error- and warning-free by the test-and-commit script.)
break;
// DATATYPES
+ case kind::PARAMETRIC_DATATYPE:
+ out << n[0].getConst<Datatype>().getName() << '[';
+ for(unsigned i = 1; i < n.getNumChildren(); ++i) {
+ if(i > 1) {
+ out << ',';
+ }
+ out << n[i];
+ }
+ out << ']';
+ return;
+ break;
case kind::APPLY_TYPE_ASCRIPTION: {
toStream(out, n[0], depth, types, false);
out << "::";
op << ">=";
opType = INFIX;
break;
- case kind::PARAMETRIC_DATATYPE:
- out << n[0].getConst<Datatype>().getName();
- break;
// BITVECTORS
case kind::BITVECTOR_XOR:
cardinality PARAMETRIC_DATATYPE \
"DatatypeType(%TYPE%.toType()).getDatatype().getCardinality()" \
"util/datatype.h"
-well-founded PARAMETRIC_DATATYPE\
+well-founded PARAMETRIC_DATATYPE \
"DatatypeType(%TYPE%.toType()).getDatatype().isWellFounded()" \
"DatatypeType(%TYPE%.toType()).getDatatype().mkGroundTerm(%TYPE%.toType())" \
"util/datatype.h"
+enumerator PARAMETRIC_DATATYPE \
+ "::CVC4::theory::datatypes::DatatypesEnumerator" \
+ "theory/datatypes/type_enumerator.h"
+
parameterized APPLY_TYPE_ASCRIPTION ASCRIPTION_TYPE 1 \
"type ascription, for datatype constructor applications"
constant ASCRIPTION_TYPE \
d_zeroCtor(0),
d_argEnumerators(NULL) {
+ //Assert(type.isDatatype());
+ Debug("te") << "datatype is datatype? " << type.isDatatype() << std::endl;
+ Debug("te") << "datatype is kind " << type.getKind() << std::endl;
+ Debug("te") << "datatype is " << type << std::endl;
+
/* find the "zero" constructor (the first non-recursive one) */
/* FIXME: this isn't sufficient for mutually-recursive datatypes! */
while(d_zeroCtor < d_datatype.getNumConstructors()) {