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

#include <obj.H>

Inheritance diagram for hobbes::Objs:
Inheritance graph
Collaboration diagram for hobbes::Objs:
Collaboration graph

Public Types

typedef __cxxabiv1::__class_type_info class_type
 
typedef __cxxabiv1::__si_class_type_info si_class_type
 
typedef __cxxabiv1::__vmi_class_type_info vmi_class_type
 

Public Member Functions

void add (const class_type *ct)
 
bool add (const std::type_info &ti)
 
bool add (const std::type_info *ti)
 
template<typename T >
bool add ()
 
bool isObjName (const std::string &tn) const
 
bool isObjType (const MonoTypePtr &mt) const
 
PtrAdjustmentPath adjustment (const std::string &derived, const std::string &base) const
 
PtrAdjustmentPath adjustment (const MonoTypePtr &derived, const MonoTypePtr &base) const
 
PtrAdjustmentPath adjustment (const ConstraintPtr &cst) const
 
PolyTypePtr generalize (const MonoTypePtr &mt) const
 
bool refine (const TEnvPtr &tenv, const MonoTypePtr &lhs, const MonoTypePtr &rhs, MonoTypeUnifier *s)
 
bool satisfied (const TEnvPtr &tenv, const MonoTypePtr &lhs, const MonoTypePtr &rhs) const
 
bool satisfiable (const TEnvPtr &tenv, const MonoTypePtr &lhs, const MonoTypePtr &rhs) const
 
ExprPtr unqualify (const TEnvPtr &, const ConstraintPtr &, const ExprPtr &, Definitions *) const
 
PolyTypePtr lookup (const std::string &vn) const
 
SymSet bindings () const
 

Private Types

typedef std::map< std::string, const class_type * > ClassDefs
 

Private Member Functions

bool mayBeKnown (const MonoTypePtr &mt) const
 
bool pathExists (const std::string &from, const std::string &to) const
 

Private Attributes

ClassDefs classDefs
 

Member Typedef Documentation

◆ class_type

typedef __cxxabiv1::__class_type_info hobbes::Objs::class_type

◆ ClassDefs

typedef std::map<std::string, const class_type*> hobbes::Objs::ClassDefs
private

◆ si_class_type

typedef __cxxabiv1::__si_class_type_info hobbes::Objs::si_class_type

◆ vmi_class_type

typedef __cxxabiv1::__vmi_class_type_info hobbes::Objs::vmi_class_type

Member Function Documentation

◆ add() [1/4]

void hobbes::Objs::add ( const class_type ct)

◆ add() [2/4]

bool hobbes::Objs::add ( const std::type_info &  ti)

◆ add() [3/4]

bool hobbes::Objs::add ( const std::type_info *  ti)

◆ add() [4/4]

template<typename T >
bool hobbes::Objs::add ( )
inline

◆ adjustment() [1/3]

PtrAdjustmentPath hobbes::Objs::adjustment ( const std::string &  derived,
const std::string &  base 
) const

◆ adjustment() [2/3]

PtrAdjustmentPath hobbes::Objs::adjustment ( const MonoTypePtr derived,
const MonoTypePtr base 
) const

◆ adjustment() [3/3]

PtrAdjustmentPath hobbes::Objs::adjustment ( const ConstraintPtr cst) const

◆ bindings()

SymSet hobbes::Objs::bindings ( ) const
virtual

◆ generalize()

PolyTypePtr hobbes::Objs::generalize ( const MonoTypePtr mt) const

◆ isObjName()

bool hobbes::Objs::isObjName ( const std::string &  tn) const

◆ isObjType()

bool hobbes::Objs::isObjType ( const MonoTypePtr mt) const

◆ lookup()

PolyTypePtr hobbes::Objs::lookup ( const std::string &  vn) const
virtual

◆ mayBeKnown()

bool hobbes::Objs::mayBeKnown ( const MonoTypePtr mt) const
private

◆ pathExists()

bool hobbes::Objs::pathExists ( const std::string &  from,
const std::string &  to 
) const
private

◆ refine()

bool hobbes::Objs::refine ( const TEnvPtr tenv,
const MonoTypePtr lhs,
const MonoTypePtr rhs,
MonoTypeUnifier s 
)
virtual

◆ satisfiable()

bool hobbes::Objs::satisfiable ( const TEnvPtr tenv,
const MonoTypePtr lhs,
const MonoTypePtr rhs 
) const
virtual

◆ satisfied()

bool hobbes::Objs::satisfied ( const TEnvPtr tenv,
const MonoTypePtr lhs,
const MonoTypePtr rhs 
) const
virtual

◆ unqualify()

ExprPtr hobbes::Objs::unqualify ( const TEnvPtr tenv,
const ConstraintPtr cst,
const ExprPtr e,
Definitions ds 
) const
virtual

Member Data Documentation

◆ classDefs

ClassDefs hobbes::Objs::classDefs
private

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