hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Typedefs | Functions
pattern.C File Reference
#include <hobbes/lang/expr.H>
#include <hobbes/lang/type.H>
#include <hobbes/lang/typeinf.H>
#include <hobbes/lang/pat/pattern.H>
#include <hobbes/lang/pat/dfa.H>
#include <hobbes/lang/pat/print.H>
#include <hobbes/util/array.H>
#include <hobbes/util/perf.H>
#include <hobbes/util/str.H>
#include <hobbes/eval/cc.H>
#include <fstream>
Include dependency graph for pattern.C:

Classes

struct  hobbes::inferTypeF
 
struct  hobbes::inferMappingF
 
struct  hobbes::refutableP
 

Namespaces

 hobbes
 

Typedefs

typedef std::map< std::string, Patterns > hobbes::NamedPatternGroups
 

Functions

bool hobbes::operator== (const PatternRow &, const PatternRow &)
 
size_t hobbes::hash (const PatternRow &)
 
std::string hobbes::show (const PatternPtr &p)
 
std::string hobbes::show (const Patterns &ps)
 
std::string hobbes::show (const PatternRow &pr)
 
void hobbes::normalizeRecPatterns (MatchRecord *r, const std::set< std::string > &fnames)
 
void hobbes::normalizeRecPatterns (const Patterns &ps, const std::set< std::string > &fnames)
 
NamedPatternGroups hobbes::groupRecordPatterns (const Patterns &ps)
 
NamedPatternGroups hobbes::groupVariantPatterns (const Patterns &ps)
 
Patterns hobbes::concatArrayPatterns (const Patterns &ps)
 
void hobbes::normalizeRecAccess (const Patterns &ps)
 
bool hobbes::canHoldRecPatterns (const PatternPtr &p)
 
void hobbes::normalizeRecAccess (const PatternRows &prs)
 
void hobbes::validateDimensions (size_t c, const PatternRows &ps, const LexicalAnnotation &la)
 
MonoTypes hobbes::matchRowType (const TEnvPtr &tenv, const PatternRows &ps)
 
void hobbes::validate (const TEnvPtr &tenv, size_t c, const PatternRows &ps, const LexicalAnnotation &la)
 
str::seq hobbes::varNames (unsigned int n)
 
ExprPtr hobbes::inLetExp (const str::seq &vns, const Exprs &es, const ExprPtr &b, const LexicalAnnotation &la)
 
VarMapping hobbes::varMapping (const Patterns &ps)
 
void hobbes::assignNames (const str::seq &vns, PatternRows &ps, bool *mappedVs)
 
ExprPtr hobbes::compileMatch (cc *, const Exprs &, const PatternRows &, const LexicalAnnotation &)
 
ExprPtr hobbes::compileMatchTest (cc *, const ExprPtr &, const PatternPtr &, const LexicalAnnotation &)
 
bool hobbes::refutable (const PatternPtr &)
 
bool hobbes::isUnitPat (const PatternPtr &)