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

#include <class.H>

Inheritance diagram for hobbes::TCInstance:
Inheritance graph
Collaboration diagram for hobbes::TCInstance:
Collaboration graph

Public Types

typedef std::shared_ptr< ExprExprPtr
 

Public Member Functions

 TCInstance (const std::string &tcname, const MonoTypes &itys, const MemberMapping &mmap, const LexicalAnnotation &)
 
size_t arity () const
 
const MonoTypestypes () const
 
const MemberMappingmemberMapping () const
 
bool hasMapping (const std::string &oname) const
 
const ExprPtrmemberMapping (const std::string &oname) const
 
void bind (const TEnvPtr &, const TClass *, Definitions *)
 
bool matches (const TEnvPtr &, const MonoTypes &) const
 
ExprPtr unqualify (Definitions *ds, const TEnvPtr &tenv, const ConstraintPtr &cst, const ExprPtr &e) const
 
void show (std::ostream &) const
 
- Public Member Functions inherited from hobbes::LexicallyAnnotated
 LexicallyAnnotated (const LexicallyAnnotated &)
 
 LexicallyAnnotated (const LexicalAnnotation &)
 
 LexicallyAnnotated (const LexRange &)
 
 LexicallyAnnotated (const Pos &, const Pos &)
 
const LexicalAnnotationla () const
 

Private Attributes

std::string tcname
 
MonoTypes itys
 
MemberMapping mmap
 

Additional Inherited Members

- Static Public Member Functions inherited from hobbes::LexicallyAnnotated
static void pushFileContext (const std::string &)
 
static void pushLiteralContext (const std::string &)
 
static void popContext ()
 
static LexicalAnnotation make (const Pos &, const Pos &)
 

Member Typedef Documentation

◆ ExprPtr

typedef std::shared_ptr<Expr> hobbes::TCInstance::ExprPtr

Constructor & Destructor Documentation

◆ TCInstance()

hobbes::TCInstance::TCInstance ( const std::string &  tcname,
const MonoTypes itys,
const MemberMapping mmap,
const LexicalAnnotation la 
)

Member Function Documentation

◆ arity()

size_t hobbes::TCInstance::arity ( ) const

◆ bind()

void hobbes::TCInstance::bind ( const TEnvPtr tenv,
const TClass c,
Definitions ds 
)

◆ hasMapping()

bool hobbes::TCInstance::hasMapping ( const std::string &  oname) const

◆ matches()

bool hobbes::TCInstance::matches ( const TEnvPtr tenv,
const MonoTypes ctys 
) const

◆ memberMapping() [1/2]

const MemberMapping & hobbes::TCInstance::memberMapping ( ) const

◆ memberMapping() [2/2]

const TCInstance::ExprPtr & hobbes::TCInstance::memberMapping ( const std::string &  oname) const

◆ show()

void hobbes::TCInstance::show ( std::ostream &  out) const

◆ types()

const MonoTypes & hobbes::TCInstance::types ( ) const

◆ unqualify()

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

Member Data Documentation

◆ itys

MonoTypes hobbes::TCInstance::itys
private

◆ mmap

MemberMapping hobbes::TCInstance::mmap
private

◆ tcname

std::string hobbes::TCInstance::tcname
private

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