hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
hobbes::MonoTypeUnifier Class Reference

#include <typeinf.H>

Collaboration diagram for hobbes::MonoTypeUnifier:
Collaboration graph

Public Member Functions

 MonoTypeUnifier (const TEnvPtr &)
 
 MonoTypeUnifier (const MonoTypeUnifier &)
 
MonoTypeUnifieroperator= (const MonoTypeUnifier &)
 
const TEnvPtrtypeEnv () const
 
size_t size () const
 
void suppress (const std::string &)
 
void suppress (const str::seq &)
 
void unsuppress (const std::string &)
 
void unsuppress (const str::seq &)
 
void bind (const std::string &, const MonoTypePtr &)
 
MonoTypePtr binding (const std::string &)
 
void unify (const MonoTypePtr &, const MonoTypePtr &)
 
MonoTypePtr substitute (const MonoTypePtr &)
 
MonoTypes substitute (const MonoTypes &)
 
size_t merge (const MonoTypeUnifier &)
 
MonoTypeSubst substitution ()
 

Private Types

typedef std::map< std::string, size_t > SuppressVarCounts
 
typedef equivalence_mapping< MonoTypePtr, UTypeRec, LiftUType, MoreDefinedTypeM
 

Private Member Functions

bool suppressed (const std::string &) const
 
bool suppressed (const MonoTypePtr &) const
 

Private Attributes

TEnvPtr tenv
 
size_t bcount
 
SuppressVarCounts suppressVarCounts
 
M m
 

Member Typedef Documentation

◆ M

◆ SuppressVarCounts

typedef std::map<std::string, size_t> hobbes::MonoTypeUnifier::SuppressVarCounts
private

Constructor & Destructor Documentation

◆ MonoTypeUnifier() [1/2]

hobbes::MonoTypeUnifier::MonoTypeUnifier ( const TEnvPtr tenv)

◆ MonoTypeUnifier() [2/2]

hobbes::MonoTypeUnifier::MonoTypeUnifier ( const MonoTypeUnifier u)

Member Function Documentation

◆ bind()

void hobbes::MonoTypeUnifier::bind ( const std::string &  vn,
const MonoTypePtr t 
)

◆ binding()

MonoTypePtr hobbes::MonoTypeUnifier::binding ( const std::string &  vn)

◆ merge()

size_t hobbes::MonoTypeUnifier::merge ( const MonoTypeUnifier u)

◆ operator=()

MonoTypeUnifier & hobbes::MonoTypeUnifier::operator= ( const MonoTypeUnifier u)

◆ size()

size_t hobbes::MonoTypeUnifier::size ( ) const

◆ substitute() [1/2]

MonoTypePtr hobbes::MonoTypeUnifier::substitute ( const MonoTypePtr ty)

◆ substitute() [2/2]

MonoTypes hobbes::MonoTypeUnifier::substitute ( const MonoTypes ts)

◆ substitution()

MonoTypeSubst hobbes::MonoTypeUnifier::substitution ( )

◆ suppress() [1/2]

void hobbes::MonoTypeUnifier::suppress ( const std::string &  vn)

◆ suppress() [2/2]

void hobbes::MonoTypeUnifier::suppress ( const str::seq vns)

◆ suppressed() [1/2]

bool hobbes::MonoTypeUnifier::suppressed ( const std::string &  vn) const
private

◆ suppressed() [2/2]

bool hobbes::MonoTypeUnifier::suppressed ( const MonoTypePtr ty) const
private

◆ typeEnv()

const TEnvPtr & hobbes::MonoTypeUnifier::typeEnv ( ) const

◆ unify()

void hobbes::MonoTypeUnifier::unify ( const MonoTypePtr lhs,
const MonoTypePtr rhs 
)

◆ unsuppress() [1/2]

void hobbes::MonoTypeUnifier::unsuppress ( const std::string &  vn)

◆ unsuppress() [2/2]

void hobbes::MonoTypeUnifier::unsuppress ( const str::seq vns)

Member Data Documentation

◆ bcount

size_t hobbes::MonoTypeUnifier::bcount
private

◆ m

M hobbes::MonoTypeUnifier::m
private

◆ suppressVarCounts

SuppressVarCounts hobbes::MonoTypeUnifier::suppressVarCounts
private

◆ tenv

TEnvPtr hobbes::MonoTypeUnifier::tenv
private

The documentation for this class was generated from the following files: