Introduce the Node-level Datatypes API (#3462)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 6 Dec 2019 07:22:01 +0000 (01:22 -0600)
committerAndres Noetzli <andres.noetzli@gmail.com>
Fri, 6 Dec 2019 07:22:01 +0000 (23:22 -0800)
commit46bae5d2a8b22867f917c6f644e46e29884049f9
treea915862a8b8fda9d50b2fbed950640f8da280f7d
parent643e4d5369734923267694c55363ec0456f18263
Introduce the Node-level Datatypes API (#3462)

This adds classes corresponding to the Node-level Datatype API "DType", which is a specification for a datatype type. It does not enable the use of this layer yet. A followup PR will update the Expr-level Datatype to use the Node-level code, which is currently verified to be functional on this branch: https://github.com/ajreynol/CVC4/tree/dtype-integrate. Futher PRs will make the internal (Node-level) code forgo the use of the Expr-layer datatype, which will then enable the Expr-layer to be replaced by the Term-layer datatype.

Most of the documentation for the methods in DType/DTypeConstructor/DTypeSelector was copied from Datatype/DatatypeConstructor/DatatypeConstructorArg.
13 files changed:
src/expr/CMakeLists.txt
src/expr/datatype.cpp
src/expr/datatype.h
src/expr/dtype.cpp [new file with mode: 0644]
src/expr/dtype.h [new file with mode: 0644]
src/expr/dtype_cons.cpp [new file with mode: 0644]
src/expr/dtype_cons.h [new file with mode: 0644]
src/expr/dtype_selector.cpp [new file with mode: 0644]
src/expr/dtype_selector.h [new file with mode: 0644]
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/type_node.cpp
src/expr/type_node.h