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

Go to the source code of this file.

Classes

class  hobbes::MState
 
class  hobbes::MStateCase< Case >
 
class  hobbes::LoadVars
 
class  hobbes::SwitchVal
 
class  hobbes::SwitchVariant
 
class  hobbes::FinishExpr
 
struct  hobbes::switchMState< T >
 
struct  hobbes::MDFA
 

Namespaces

 hobbes
 

Typedefs

typedef size_t hobbes::stateidx_t
 
typedef std::set< stateidx_t > hobbes::stateidxset
 
typedef std::pair< std::string, MonoTypePtr > hobbes::PrimFArg
 
typedef std::vector< PrimFArg > hobbes::PrimFArgs
 
typedef std::shared_ptr< MState > hobbes::MStatePtr
 
typedef std::vector< MStatePtr > hobbes::MStates
 
typedef std::unordered_map< std::string, stateidx_t > hobbes::StatesIdx
 
typedef std::unordered_map< std::string, ExprPtr > hobbes::VarNames
 
typedef std::map< size_t, ExprPtr > hobbes::ArrayElem
 
typedef std::unordered_map< std::string, ArrayElem > hobbes::VarArrayElem
 
typedef std::unordered_map< std::string, ExprPtr > hobbes::VarArrayLen
 
typedef std::unordered_map< std::string, ExprPtr > hobbes::StructField
 
typedef std::unordered_map< std::string, StructField > hobbes::VarStructField
 
typedef std::pair< std::string, ExprPtr > hobbes::FoldedState
 
typedef std::vector< FoldedState > hobbes::FoldedStates
 
typedef std::unordered_map< stateidx_t, ExprPtr > hobbes::FoldedStateCalls
 
typedef std::unordered_map< PatternRows, stateidx_t, hobbes::genHash< PatternRows > > hobbes::TableCfgStates
 
typedef std::unordered_map< Expr *, size_t > hobbes::ExprIdxs
 

Functions

template<typename T >
hobbes::switchOf (const MState &s, const switchMState< T > &f)
 
template<typename T >
hobbes::switchOf (const MStatePtr &s, const switchMState< T > &f)
 
stateidx_t hobbes::makeDFA (MDFA *, const PatternRows &, const LexicalAnnotation &)
 
stateidx_t hobbes::makeDFAState (MDFA *dfa, const PatternRows &ps)
 
ExprPtr hobbes::liftDFAExpr (cc *, const PatternRows &, const LexicalAnnotation &)
 

Variables

stateidx_t hobbes::nullState = (stateidx_t)-1