

Overloaded version of listExpr with string operator and two arguments. Expr listExpr (const std::string &op, const Expr &e1, const Expr &e2).Overloaded version of listExpr with string operator and one argument. Expr listExpr (const std::string &op, const Expr &e1).Overloaded version of listExpr with string operator and many arguments. Expr listExpr (const std::string &op, const std::vector &kids).Overloaded version of listExpr with three arguments. Expr listExpr (const Expr &e1, const Expr &e2, const Expr &e3).Overloaded version of listExpr with two arguments. Expr listExpr (const Expr &e1, const Expr &e2).Overloaded version of listExpr with one argument. Expr listExpr (const std::vector &kids).Expr stringExpr (const std::string &str).Expr getTypePred (const Type &t, const Expr &e).Get the variable associated with a name, and its type.

Expr lookupVar (const std::string &name, Type *type).Expr varExpr (const std::string &name, const Type &type, const Expr &def)Ĭreate a variable with a given name, type, and value.Expr varExpr (const std::string &name, const Type &type)Ĭreate a variable with a given name and type.Lookup a user-defined (uninterpreted) type by name. Type lookupType (const std::string &typeName).Type createType (const std::string &typeName, const Type &def)Ĭreate named user-defined interpreted type (type abbreviation).Type createType (const std::string &typeName)Ĭreate named user-defined uninterpreted type.Type funType (const std::vector &typeDom, const Type &typeRan)Ĭreate a function type (t1,t2.,tn) -> typeRan.Type funType (const Type &typeDom, const Type &typeRan)Ĭreate a function type typeDom -> typeRan.Type arrayType (const Type &typeIndex, const Type &typeData)Ĭreate an array type (ARRAY typeIndex OF typeData).void dataType (const std::vector &names, const std::vector > &constructors, const std::vector > &selectors, const std::vector > &types, std::vector &returnTypes).Type dataType (const std::string &name, const std::vector &constructors, const std::vector > &selectors, const std::vector > &types).Type dataType (const std::string &name, const std::string &constructor, const std::vector &selectors, const std::vector &types).N-element record (fields and types must be of the same length)

Type recordType (const std::vector &fields, const std::vector &types).Type recordType (const std::string &field0, const Type &type0, const std::string &field1, const Type &type1, const std::string &field2, const Type &type2).Type recordType (const std::string &field0, const Type &type0, const std::string &field1, const Type &type1).Type recordType (const std::string &field, const Type &type).N-element tuple (from a vector of types) Type tupleType (const std::vector &types).Type tupleType (const Type &type0, const Type &type1, const Type &type2).Type tupleType (const Type &type0, const Type &type1).Type subtypeType (const Expr &pred, const Expr &witness)Ĭreates a subtype defined by the given predicate.

