summaryrefslogtreecommitdiff
path: root/src/api/python/cvc4.pxi
diff options
context:
space:
mode:
authorAina Niemetz <aina.niemetz@gmail.com>2020-06-03 20:56:24 -0700
committerGitHub <noreply@github.com>2020-06-03 20:56:24 -0700
commit5938faaf034a761f3462d8e03b86b1726a332f68 (patch)
tree864fcd067ac024689b2fb3ee782ce7edd99e0a3a /src/api/python/cvc4.pxi
parent418b0281e62a6b657da32f6504965269ad90c18b (diff)
New C++ Api: First batch of API guards. (#4557)
This is the first batch of API guards, mainly extending existing guards in the Solver object with checks that Ops, Terms, Sorts, and datatype objects are associated to this solver object. This further changes how DatatypeConstructorDecl objects are created. Previously, they were not created via the Solver object (while DatatypeDecl was). Now, they are created via Solver::mkDatatypeConstructorDecl, consistent with how DatatypeDecl objects are created.
Diffstat (limited to 'src/api/python/cvc4.pxi')
-rw-r--r--src/api/python/cvc4.pxi17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/api/python/cvc4.pxi b/src/api/python/cvc4.pxi
index fa5313f0e..e742e0061 100644
--- a/src/api/python/cvc4.pxi
+++ b/src/api/python/cvc4.pxi
@@ -134,12 +134,14 @@ cdef class DatatypeConstructor:
cdef class DatatypeConstructorDecl:
- cdef c_DatatypeConstructorDecl* cddc
- def __cinit__(self, str name):
- self.cddc = new c_DatatypeConstructorDecl(name.encode())
+ cdef c_DatatypeConstructorDecl cddc
+
+ def __cinit__(self):
+ pass
def addSelector(self, str name, Sort sort):
self.cddc.addSelector(name.encode(), sort.csort)
+
def addSelectorSelf(self, str name):
self.cddc.addSelectorSelf(name.encode())
@@ -156,7 +158,7 @@ cdef class DatatypeDecl:
pass
def addConstructor(self, DatatypeConstructorDecl ctor):
- self.cdd.addConstructor(ctor.cddc[0])
+ self.cdd.addConstructor(ctor.cddc)
def isParametric(self):
return self.cdd.isParametric()
@@ -675,6 +677,11 @@ cdef class Solver:
(<str?> symbol).encode())
return term
+ def mkDatatypeConstructorDecl(self, str name):
+ cdef DatatypeConstructorDecl ddc = DatatypeConstructorDecl()
+ ddc.cddc = self.csolver.mkDatatypeConstructorDecl(name.encode())
+ return ddc
+
def mkDatatypeDecl(self, str name, sorts_or_bool=None, isCoDatatype=None):
cdef DatatypeDecl dd = DatatypeDecl()
cdef vector[c_Sort] v
@@ -790,7 +797,7 @@ cdef class Solver:
cdef vector[c_DatatypeConstructorDecl] v
for c in ctors:
- v.push_back((<DatatypeConstructorDecl?> c).cddc[0])
+ v.push_back((<DatatypeConstructorDecl?> c).cddc)
sort.csort = self.csolver.declareDatatype(symbol.encode(), v)
return sort
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback