hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Namespaces | Typedefs | Functions
pattern.H File Reference
#include <hobbes/lang/expr.H>
#include <hobbes/lang/pat/regex.H>
#include <hobbes/util/hash.H>
#include <hobbes/util/lannotation.H>
Include dependency graph for pattern.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hobbes::PatternRow
 
class  hobbes::Pattern
 
class  hobbes::PatternCase< Case >
 
class  hobbes::MatchLiteral
 
class  hobbes::MatchAny
 
class  hobbes::MatchArray
 
class  hobbes::MatchRegex
 
class  hobbes::MatchRecord
 
class  hobbes::MatchVariant
 
struct  hobbes::switchPattern< T >
 
struct  std::hash< hobbes::PatternRow >
 

Namespaces

 hobbes
 
 std
 

Typedefs

typedef std::vector< size_t > hobbes::Idxs
 
typedef std::shared_ptr< Pattern > hobbes::PatternPtr
 
typedef std::vector< PatternPtr > hobbes::Patterns
 
typedef std::vector< PatternRow > hobbes::PatternRows
 
typedef std::shared_ptr< std::vector< std::pair< size_t, PatternRow > > > hobbes::UnreachableMatchRowsPtr
 

Functions

bool hobbes::operator== (const PatternRow &, const PatternRow &)
 
size_t hobbes::hash (const PatternRow &)
 
ExprPtr hobbes::compileMatch (cc *, const Exprs &, const PatternRows &, const LexicalAnnotation &)
 
ExprPtr hobbes::compileMatchTest (cc *, const ExprPtr &, const PatternPtr &, const LexicalAnnotation &)
 
std::string hobbes::show (const PatternPtr &p)
 
std::string hobbes::show (const Patterns &ps)
 
std::string hobbes::show (const PatternRow &pr)
 
template<typename T >
hobbes::switchOf (const PatternPtr &p, const switchPattern< T > &f)
 
template<typename T >
std::vector< T > hobbes::switchOf (const Patterns &ps, const switchPattern< T > &f)
 
MatchArray * hobbes::mkpatarray (const std::vector< unsigned char > &bs, const LexicalAnnotation &la)
 
MatchArray * hobbes::mkpatarray (const std::string &cs, const LexicalAnnotation &la)
 
bool hobbes::refutable (const PatternPtr &)
 
bool hobbes::isUnitPat (const PatternPtr &)