souffle
2.0.2-371-g6315b36
|
#include "ast/QualifiedName.h"
#include "ast/Type.h"
#include "souffle/TypeAttribute.h"
#include "souffle/utility/ContainerUtil.h"
#include "souffle/utility/FunctionalUtil.h"
#include "souffle/utility/MiscUtil.h"
#include "souffle/utility/StreamUtil.h"
#include "souffle/utility/tinyformat.h"
#include <algorithm>
#include <iostream>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <stdexcept>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
Data Structures | |
class | souffle::ast::analysis::AlgebraicDataType |
Aggregates types using sums and products. More... | |
struct | souffle::ast::analysis::AlgebraicDataType::Branch |
class | souffle::ast::analysis::ConstantType |
Representing the type assigned to a constant. More... | |
class | souffle::ast::analysis::PrimitiveType |
PrimitiveType = Number/Unsigned/Float/Symbol The class representing pre-built, concrete types. More... | |
struct | souffle::ast::analysis::RecordType |
A record type combining a list of fields into a new, aggregated type. More... | |
class | souffle::ast::analysis::SubsetType |
A type being a subset of another type. More... | |
class | souffle::ast::analysis::Type |
An abstract base class for types to be covered within a type environment. More... | |
class | souffle::ast::analysis::TypeEnvironment |
A type environment is a set of types. More... | |
struct | souffle::ast::analysis::TypeSet |
A collection to represent sets of types. More... | |
class | souffle::ast::analysis::UnionType |
A union type combining a list of types into a new, aggregated type. More... | |
Namespaces | |
souffle | |
souffle::ast | |
souffle::ast::analysis | |
Functions | |
bool | souffle::ast::analysis::areEquivalentTypes (const Type &a, const Type &b) |
Determine if two types are equivalent. More... | |
TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const Type &a, const Type &b) |
Computes the greatest common sub types of the two given types. More... | |
template<typename... Types> | |
TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const Types &... types) |
Computes the greatest common sub types of the given types. More... | |
TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const TypeSet &a, const TypeSet &b) |
The set of pair-wise greatest common sub types of the types in the two given sets. More... | |
TypeSet | souffle::ast::analysis::getGreatestCommonSubtypes (const TypeSet &set) |
Computes the greatest common sub types of all the types in the given set. More... | |
TypeAttribute | souffle::ast::analysis::getTypeAttribute (const Type &type) |
std::optional< TypeAttribute > | souffle::ast::analysis::getTypeAttribute (const TypeSet &type) |
std::string | souffle::ast::analysis::getTypeQualifier (const Type &type) |
Returns full type qualifier for a given type. More... | |
bool | souffle::ast::analysis::haveCommonSupertype (const Type &a, const Type &b) |
Determine if there exist a type t such that a <: t and b <: t. More... | |
bool | souffle::ast::analysis::isADTEnum (const AlgebraicDataType &type) |
Determine if ADT is enumerations (are all constructors empty) More... | |
bool | souffle::ast::analysis::isNumericType (const TypeSet &type) |
bool | souffle::ast::analysis::isOfKind (const Type &type, TypeAttribute kind) |
Check if the type is of a kind corresponding to the TypeAttribute. More... | |
bool | souffle::ast::analysis::isOfKind (const TypeSet &typeSet, TypeAttribute kind) |
bool | souffle::ast::analysis::isOrderableType (const TypeSet &type) |
bool | souffle::ast::analysis::isSubtypeOf (const Type &a, const Type &b) |
Determines whether type a is a subtype of type b. More... | |