hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Functions
expr.C File Reference
#include <hobbes/lang/expr.H>
#include <hobbes/util/array.H>
#include <hobbes/util/time.H>
#include <hobbes/util/codec.H>
#include <hobbes/util/stream.H>
#include <sstream>
Include dependency graph for expr.C:

Classes

struct  hobbes::substVarF
 
struct  hobbes::substTyF
 
struct  hobbes::isConstP
 
struct  hobbes::liftTypeAsAssumpF
 
struct  hobbes::stripAssumpF
 
struct  hobbes::freeVarF
 
struct  hobbes::etvarNamesF
 
struct  hobbes::encodeExprF
 
struct  hobbes::hasSingularTypeF
 
struct  hobbes::tgenSizeExprF
 

Namespaces

 hobbes
 

Functions

Exprs hobbes::clones (const Exprs &es)
 
std::string hobbes::show (const Expr &e)
 
std::string hobbes::show (const Expr *e)
 
std::string hobbes::show (const ExprPtr &e)
 
std::string hobbes::show (const Definition &d)
 
void hobbes::showTy (std::ostream &out, const QualTypePtr &qty)
 
std::string hobbes::showAnnotated (const Expr &e)
 
std::string hobbes::showAnnotated (const Expr *e)
 
std::string hobbes::showAnnotated (const ExprPtr &e)
 
std::string hobbes::showAnnotated (const Definition &d)
 
ExprPtr hobbes::substitute (const VarMapping &vm, const ExprPtr &e, bool *mapped=0)
 
ExprPtr hobbes::substitute (const MonoTypeSubst &s, const ExprPtr &e)
 
bool hobbes::isConst (const ExprPtr &)
 
Case::Bindings hobbes::switchOf (const Case::Bindings &bs, const switchExpr< ExprPtr > &f)
 
UnitV hobbes::switchOf (const Case::Bindings &bs, const switchExprTyFnM &f)
 
const MonoTypePtr & hobbes::requireMonotype (const ExprPtr &)
 
MonoTypes hobbes::requireMonotype (const Exprs &)
 
ExprPtr hobbes::liftTypesAsAssumptions (const ExprPtr &e)
 
ExprPtr hobbes::stripExplicitAssumptions (const ExprPtr &)
 
const ExprPtr & hobbes::stripAssumpHead (const ExprPtr &)
 
VarSet hobbes::freeVars (const ExprPtr &)
 
VarSet hobbes::freeVars (const Expr &)
 
NameSet hobbes::tvarNames (const ExprPtr &)
 
ExprPtr hobbes::desugarCompFilter (const ExprPtr &ex, const ExprPtr &filterE, const LexicalAnnotation &la)
 
ExprPtr hobbes::desugarCompMap (const std::string &vn, const ExprPtr &ex, const ExprPtr &ae, const LexicalAnnotation &la)
 
ExprPtr hobbes::desugarCompConcat (const ExprPtr &ex, const LexicalAnnotation &la)
 
ExprPtr hobbes::desugarComprehensionFrom (const ExprPtr &ex, const ComprehensionDefs &cdefs, unsigned int i, const LexicalAnnotation &la)
 
ExprPtr hobbes::desugarComprehension (const ExprPtr &ex, const ComprehensionDefs &cdefs, const LexicalAnnotation &la)
 
ExprPtr hobbes::fmtFoldConst (const ExprPtr &e, const std::string &c)
 
ExprPtr hobbes::fmtFoldExpr (const ExprPtr &e, const std::string &expr)
 
ExprPtr hobbes::mkFormatExpr (const std::string &fmt, const LexicalAnnotation &)
 
PrimitivePtr hobbes::mkTimespanPrim (const str::seq &, const LexicalAnnotation &)
 
ExprPtr hobbes::mkTimespanExpr (const str::seq &, const LexicalAnnotation &)
 
PrimitivePtr hobbes::mkTimePrim (const std::string &, const LexicalAnnotation &)
 
ExprPtr hobbes::mkTimeExpr (const std::string &, const LexicalAnnotation &)
 
PrimitivePtr hobbes::mkDateTimePrim (const std::string &, const LexicalAnnotation &)
 
ExprPtr hobbes::mkDateTimeExpr (const std::string &, const LexicalAnnotation &)
 
void hobbes::encode (const Case::Binding &b, std::ostream &out)
 
void hobbes::decode (Case::Binding *b, std::istream &in)
 
void hobbes::encode (const Switch::Binding &b, std::ostream &out)
 
void hobbes::decode (Switch::Binding *b, std::istream &in)
 
void hobbes::encode (const PrimitivePtr &, std::ostream &)
 
void hobbes::decode (PrimitivePtr *, std::istream &)
 
void hobbes::encode (const ExprPtr &, std::ostream &)
 
void hobbes::decode (ExprPtr *, std::istream &)
 
void hobbes::encode (const ExprPtr &, std::vector< uint8_t > *)
 
void hobbes::decode (const std::vector< uint8_t > &, ExprPtr *)
 
bool hobbes::hasSingularType (const ExprPtr &)
 
int hobbes::tgenSize (const ExprPtr &)