hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
|
#include <class.H>
Public Types | |
typedef std::map< std::string, MonoTypePtr > | Members |
Public Member Functions | |
TClass (const Constraints &reqs, const std::string &tcname, int tvs, const Members &tcmembers, const LexicalAnnotation &) | |
TClass (const Constraints &reqs, const std::string &tcname, int tvs, const Members &tcmembers, const FunDeps &fundeps, const LexicalAnnotation &) | |
TClass (const std::string &tcname, int tvs, const Members &tcmembers, const LexicalAnnotation &) | |
TClass (const std::string &tcname, int tvs, const Members &tcmembers, const FunDeps &fundeps, const LexicalAnnotation &) | |
const std::string & | name () const |
const Constraints & | constraints () const |
int | typeVars () const |
const Members & | members () const |
const FunDeps & | deps () const |
void | insert (const TEnvPtr &tenv, const TCInstancePtr &ip, Definitions *ds) |
void | insert (const TCInstanceFnPtr &ifp) |
TCInstances | matches (const TEnvPtr &tenv, const ConstraintPtr &c, MonoTypeUnifier *, Definitions *ds) const |
TCInstances | matches (const TEnvPtr &tenv, const MonoTypes &mts, MonoTypeUnifier *, Definitions *ds) const |
bool | refine (const TEnvPtr &tenv, const ConstraintPtr &cst, MonoTypeUnifier *s, Definitions *ds) |
bool | satisfied (const TEnvPtr &tenv, const ConstraintPtr &cst, Definitions *ds) const |
bool | satisfiable (const TEnvPtr &tenv, const ConstraintPtr &cst, Definitions *ds) const |
void | explain (const TEnvPtr &tenv, const ConstraintPtr &cst, const ExprPtr &e, Definitions *ds, annmsgs *msgs) |
ExprPtr | unqualify (const TEnvPtr &tenv, const ConstraintPtr &cst, const ExprPtr &e, Definitions *ds) const |
PolyTypePtr | lookup (const std::string &vn) const |
SymSet | bindings () const |
FunDeps | dependencies (const ConstraintPtr &) const |
MonoTypePtr | memberType (const std::string &vn) const |
void | show (std::ostream &) const |
const TCInstances & | instances () const |
bool | hasGroundInstanceAt (const MonoTypes &) const |
const TCInstanceFns & | instanceFns () const |
![]() | |
LexicallyAnnotated (const LexicallyAnnotated &) | |
LexicallyAnnotated (const LexicalAnnotation &) | |
LexicallyAnnotated (const LexRange &) | |
LexicallyAnnotated (const Pos &, const Pos &) | |
const LexicalAnnotation & | la () const |
Private Types | |
typedef type_map< TCInstancePtr > | TCMonoInstDB |
typedef type_map< TCInstanceFns > | TCInstFnDB |
typedef type_map< bool > | TestedInstances |
Private Member Functions | |
void | candidateTCInstFns (const TEnvPtr &, const MonoTypes &, TCInstanceFns *) const |
bool | refine (const TEnvPtr &tenv, const ConstraintPtr &c, const FunDep &fd, MonoTypeUnifier *s, Definitions *ds) const |
Private Attributes | |
std::string | tcname |
int | tvs |
Constraints | reqs |
Members | tcmembers |
FunDeps | fundeps |
TCInstances | tcinstances |
TCMonoInstDB | tcinstdb |
TCInstanceFns | tcinstancefns |
TCInstFnDB | tcinstfndb |
TestedInstances | testedInstances |
TestedInstances | satfInstances |
Friends | |
class | TCInstanceFn |
Additional Inherited Members | |
![]() | |
static void | pushFileContext (const std::string &) |
static void | pushLiteralContext (const std::string &) |
static void | popContext () |
static LexicalAnnotation | make (const Pos &, const Pos &) |
typedef std::map<std::string, MonoTypePtr> hobbes::TClass::Members |
|
private |
|
private |
|
private |
hobbes::TClass::TClass | ( | const Constraints & | reqs, |
const std::string & | tcname, | ||
int | tvs, | ||
const Members & | tcmembers, | ||
const LexicalAnnotation & | la | ||
) |
hobbes::TClass::TClass | ( | const Constraints & | reqs, |
const std::string & | tcname, | ||
int | tvs, | ||
const Members & | tcmembers, | ||
const FunDeps & | fundeps, | ||
const LexicalAnnotation & | la | ||
) |
hobbes::TClass::TClass | ( | const std::string & | tcname, |
int | tvs, | ||
const Members & | tcmembers, | ||
const LexicalAnnotation & | la | ||
) |
hobbes::TClass::TClass | ( | const std::string & | tcname, |
int | tvs, | ||
const Members & | tcmembers, | ||
const FunDeps & | fundeps, | ||
const LexicalAnnotation & | la | ||
) |
|
virtual |
Implements hobbes::Unqualifier.
|
private |
const Constraints & hobbes::TClass::constraints | ( | ) | const |
|
virtual |
Implements hobbes::Unqualifier.
const FunDeps & hobbes::TClass::deps | ( | ) | const |
|
virtual |
Implements hobbes::Unqualifier.
bool hobbes::TClass::hasGroundInstanceAt | ( | const MonoTypes & | mts | ) | const |
void hobbes::TClass::insert | ( | const TEnvPtr & | tenv, |
const TCInstancePtr & | ip, | ||
Definitions * | ds | ||
) |
void hobbes::TClass::insert | ( | const TCInstanceFnPtr & | ifp | ) |
const TCInstanceFns & hobbes::TClass::instanceFns | ( | ) | const |
const TCInstances & hobbes::TClass::instances | ( | ) | const |
|
virtual |
Implements hobbes::Unqualifier.
TCInstances hobbes::TClass::matches | ( | const TEnvPtr & | tenv, |
const ConstraintPtr & | c, | ||
MonoTypeUnifier * | u, | ||
Definitions * | ds | ||
) | const |
TCInstances hobbes::TClass::matches | ( | const TEnvPtr & | tenv, |
const MonoTypes & | mts, | ||
MonoTypeUnifier * | u, | ||
Definitions * | ds | ||
) | const |
const TClass::Members & hobbes::TClass::members | ( | ) | const |
MonoTypePtr hobbes::TClass::memberType | ( | const std::string & | vn | ) | const |
const std::string & hobbes::TClass::name | ( | ) | const |
|
virtual |
Implements hobbes::Unqualifier.
|
private |
|
virtual |
Implements hobbes::Unqualifier.
|
virtual |
Implements hobbes::Unqualifier.
void hobbes::TClass::show | ( | std::ostream & | out | ) | const |
int hobbes::TClass::typeVars | ( | ) | const |
|
virtual |
Implements hobbes::Unqualifier.
|
friend |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |